def get_vm_metadata()

in bicep/files-to-load/cyclecloud_install.py [0:0]


def get_vm_metadata():
    metadata_url = "http://169.254.169.254/metadata/instance?api-version=2017-08-01"
    metadata_req = Request(metadata_url, headers={"Metadata": "true"})

    for _ in range(30):
        print("Fetching metadata")

        try:
            metadata_response = urlopen(metadata_req, timeout=2)
            return json.load(metadata_response)
        except ValueError as e:
            print("Failed to get metadata %s" % e)
            print("    Retrying")
            sleep(2)
            continue
        except:
            print("Unable to obtain metadata after 30 tries")
            raise