ADO2VMCrawler/utils/kill_myself.py

30 lines
1019 B
Python

from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
from pprint import pprint
import azure.mgmt.compute as compute
import uuid
import requests
import json
#subscription_id = instance_metadata['compute']['subscription_id']
def delete_self_instance():
instance_metadata = requests.get("http://169.254.169.254/metadata/instance?api-version=2025-04-07&format=json", headers={"Metadata":"True"}).json()
instance_resource_id = instance_metadata['compute']['resourceId']
parts = instance_resource_id.split('/')
subscription_id = parts[2]
resource_group = parts[4]
vm_name = parts[8]
if vm_name == "ado2-crawler-dev":
print("This is dev, don't die")
return False
credential = DefaultAzureCredential()
compute_client = ComputeManagementClient(credential, subscription_id)
compute_client.virtual_machines.begin_delete(resource_group, vm_name)
print("Kill this instance")
return True
delete_self_instance()