def main()

in Hands-on lab/labfiles/sap-hana/deploy/vm/python-scripts/migrate-disk.py [0:0]


def main():
    mdUrl = "http://169.254.169.254/metadata/instance/compute?api-version=2017-08-01"
    header={'Metadata': 'True'}
    request = urllib2.Request(url=mdUrl, headers=header) 
    response = urllib2.urlopen(request)
    data = response.read()
    metaData = data.decode("utf-8")
    vm_meta_json = json.loads(metaData)
    print(vm_meta_json)
    GROUP_NAME = vm_meta_json["resourceGroupName"]
    VM_NAME = sys.argv[1]

    subscription_id = os.environ.get('AZURE_SUBSCRIPTION_ID')
    credentials = ServicePrincipalCredentials(
            client_id=os.environ['AZURE_CLIENT_ID'],
            secret=os.environ['AZURE_SECRET'],
            tenant=os.environ['AZURE_TENANT']
        )

    compute_client = ComputeManagementClient(credentials, subscription_id)
    failed_virtual_machine = compute_client.virtual_machines.get(
            GROUP_NAME,
            VM_NAME
        )

    data_disks = failed_virtual_machine.storage_profile.data_disks
    data_disks_r = copy.deepcopy(data_disks)
    data_disks[:] = []
    async_vm_update = compute_client.virtual_machines.create_or_update(GROUP_NAME, VM_NAME, failed_virtual_machine)
    failed_virtual_machine = async_vm_update.result()


    for disk_r in data_disks_r:
       print(disk_r)

    current_host = sys.argv[2]
    async_vm_update = compute_client.virtual_machines.create_or_update(GROUP_NAME, current_host, 
           {
             'location': vm_meta_json["location"],
             'storage_profile': {
                 'data_disks': data_disks_r
           }

        })

    async_vm_update.wait()