def get_vm_metadata()

in playbooks/roles/cyclecloud/files/configure.py [0:0]


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

    for _ in range(30):
        print("Fetching metadata")
        metadata_response = urlopen(metadata_req, timeout=2)

        try:
            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