in src/sagemaker_core/tools/resources_codegen.py [0:0]
def generate_wait_for_status_method(self, resource_name: str) -> str:
"""Auto-Generate WAIT_FOR_STATUS Method for a waitable resource.
Args:
resource_name (str): The resource name.
Returns:
str: The formatted wait_for_status Method template.
"""
resource_status_chain, resource_states = (
self.resources_extractor.get_status_chain_and_states(resource_name)
)
# Get resource status key path
status_key_path = ""
for member in resource_status_chain:
status_key_path += f'.{convert_to_snake_case(member["name"])}'
formatted_failed_block = ""
if any("failed" in state.lower() for state in resource_states):
failure_reason = self._get_failure_reason_ref(resource_name)
formatted_failed_block = FAILED_STATUS_ERROR_TEMPLATE.format(
resource_name=resource_name, reason=failure_reason
)
formatted_failed_block = add_indent(formatted_failed_block, 12)
formatted_method = WAIT_FOR_STATUS_METHOD_TEMPLATE.format(
resource_states=resource_states,
status_key_path=status_key_path,
failed_error_block=formatted_failed_block,
resource_name=resource_name,
)
return formatted_method