in infrastructure-provisioning/src/general/scripts/aws/project_terminate.py [0:0]
def terminate_edge_node(tag_name, project_name, tag_value, nb_sg, edge_sg, de_sg, emr_sg, endpoint_name,
service_base_name):
logging.info('Terminating EMR cluster')
try:
clusters_list = datalab.meta_lib.get_emr_list(tag_name)
if clusters_list:
for cluster_id in clusters_list:
client = boto3.client('emr')
cluster = client.describe_cluster(ClusterId=cluster_id)
cluster = cluster.get("Cluster")
emr_name = cluster.get('Name')
if '{}'.format(tag_value[:-1]) in emr_name:
datalab.actions_lib.terminate_emr(cluster_id)
logging.info("The EMR cluster {} has been terminated successfully".format(emr_name))
else:
logging.info("There are no EMR clusters to terminate.")
except Exception as err:
datalab.fab.append_result("Failed to terminate EMR cluster.", str(err))
sys.exit(1)
logging.info("Terminating EDGE and notebook instances")
try:
datalab.actions_lib.remove_ec2(tag_name, tag_value)
except Exception as err:
datalab.fab.append_result("Failed to terminate instances.", str(err))
sys.exit(1)
logging.info("Removing s3 bucket")
try:
datalab.actions_lib.remove_s3('edge', project_name)
except Exception as err:
datalab.fab.append_result("Failed to remove buckets.", str(err))
sys.exit(1)
logging.info("Removing IAM roles and profiles")
try:
datalab.actions_lib.remove_all_iam_resources('notebook', project_name, endpoint_name)
datalab.actions_lib.remove_all_iam_resources('edge', project_name, endpoint_name)
except Exception as err:
datalab.fab.append_result("Failed to remove IAM roles and profiles.", str(err))
sys.exit(1)
logging.info("Deregistering project specific notebook's AMI")
try:
datalab.actions_lib.deregister_image('{}-{}-{}-*'.format(service_base_name, project_name, endpoint_name))
except Exception as err:
datalab.fab.append_result("Failed to deregister images.", str(err))
sys.exit(1)
logging.info("Removing security groups")
try:
datalab.actions_lib.remove_sgroups(emr_sg)
datalab.actions_lib.remove_sgroups(de_sg)
datalab.actions_lib.remove_sgroups(nb_sg)
datalab.actions_lib.remove_sgroups(edge_sg)
except Exception as err:
datalab.fab.append_result("Failed to remove Security Groups.", str(err))
sys.exit(1)
logging.info("Removing private subnet")
try:
datalab.actions_lib.remove_subnets(tag_value)
except Exception as err:
datalab.fab.append_result("Failed to remove subnets.", str(err))
sys.exit(1)
logging.info("Removing project route tables")
try:
datalab.actions_lib.remove_route_tables("Name", False, '{}-{}-{}-nat-rt'.format(service_base_name, project_name, endpoint_name))
except Exception as err:
datalab.fab.append_result("Failed to remove project route table.", str(err))
sys.exit(1)