in migration/bring-your-own-role/byor.py [0:0]
def _stop_apps_under_domain(sagemaker_client, sagemaker_domain_id, execute_flag):
paginator = sagemaker_client.get_paginator('list_apps')
for page in paginator.paginate(DomainIdEquals=sagemaker_domain_id):
for app in page['Apps']:
print(f"Found app {app['AppName']} under Project's SageMaker Domain id: {sagemaker_domain_id}\n")
if execute_flag:
try:
if app.get('UserProfileName'):
sagemaker_client.delete_app(
DomainId=sagemaker_domain_id,
AppType=app['AppType'],
AppName=app['AppName'],
UserProfileName=app['UserProfileName']
)
_wait_for_sagemaker_app_deletion(sagemaker_client, sagemaker_domain_id, app['AppName'], app['AppType'], app['UserProfileName'], None)
elif app.get('SpaceName'):
sagemaker_client.delete_app(
DomainId=sagemaker_domain_id,
AppType=app['AppType'],
AppName=app['AppName'],
SpaceName=app['SpaceName']
)
_wait_for_sagemaker_app_deletion(sagemaker_client, sagemaker_domain_id, app['AppName'], app['AppType'], None, app['SpaceName'])
print(f"Stopped app {app['AppName']} successfully\n")
except ClientError as e:
if e.response['Error']['Code'] == 'ValidationException':
print(f"App {app['AppName']} already deleted, skipping...\n")
else:
raise e
else:
print(f"Skipping stop app {app['AppName']}, set --execute flag to True to do the actual update")