import os
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient

credential = DefaultAzureCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
compute_client = ComputeManagementClient(credential, subscription_id)

def delete_unused_disks():
    print("Scanning for unattached managed disks...")
    disks = compute_client.disks.list()
    
    for disk in disks:
        # Check if disk is not attached to any VM
        if disk.managed_by is None:
            print(f"Deleting unused disk: {disk.name} (Size: {disk.disk_size_gb}GB)")
            async_delete = compute_client.disks.begin_delete(
                resource_group_name=disk.id.split("/")[4],
                disk_name=disk.name
            )
            async_delete.wait()
            print("Deleted.")

if __name__ == "__main__":
    delete_unused_disks()
