def delete(self): logger.info(f"Deleting cluster {self.cluster_name}") # Load details cluster_details = self.cluster_details cluster_id = cluster_details['id'] resource_group = cluster_details['cloud']['resource_group'] # Get resource list resource_list = AzureExecutor.list_resources(resource_group=resource_group) # Filter resources deletable_ids = [] for resource in resource_list: if resource['name'].startswith(cluster_id): deletable_ids.append(resource['id']) # Delete resources if deletable_ids: AzureExecutor.delete_resources(resources=deletable_ids) # Delete cluster folder rmtree(os.path.expanduser(f"{GlobalPaths.MARO_CLUSTERS}/{self.cluster_name}")) logger.info_green(f"Cluster {self.cluster_name} is deleted")
def _delete_node(self, node_name: str): logger.info(f"Deleting node {node_name}") # Load details cluster_details = self.cluster_details cluster_id = cluster_details['id'] resource_group = cluster_details['cloud']['resource_group'] # Get resource list resource_list = AzureExecutor.list_resources(resource_group=resource_group) # Filter resources deletable_ids = [] for resource_info in resource_list: if resource_info['name'].startswith(f"{cluster_id}-{node_name}"): deletable_ids.append(resource_info['id']) # Delete resources if len(deletable_ids) > 0: AzureExecutor.delete_resources(resources=deletable_ids) # Delete azure deployment AzureExecutor.delete_deployment( resource_group=resource_group, deployment_name=node_name ) # Delete parameters_file parameters_file_location = f"{GlobalPaths.MARO_CLUSTERS}/{self.cluster_name}/parameters/{node_name}.json" command = f"rm {parameters_file_location}" _ = SubProcess.run(command) # Update node status self.grass_executor.remote_update_node_status( node_name=node_name, action='delete' ) logger.info_green(f"Node {node_name} is deleted")