in ad-joining/register-computer/main.py [0:0]
def __get_managed_instance_group_for_instance(gce_instance):
if ("metadata" in gce_instance.keys() and "items" in gce_instance["metadata"]):
metadata_created_by = next((x for x in gce_instance["metadata"]["items"] if x["key"] == "created-by"), None)
if (metadata_created_by and "instanceGroupManagers" in metadata_created_by["value"]):
# https://cloud.google.com/compute/docs/instance-groups/getting-info-about-migs#checking_if_a_vm_instance_is_part_of_a_mig
# The "created-by" metadata value is in the format of either:
# projects/[number]/zones/[zone]/instanceGroupManagers/[mig-name]
# or
# # projects/[number]/regions/[region]/instanceGroupManagers/[mig-name]
# Return the mig-name, and the region/zone it belongs to
mig_info = {}
mig_id_parts = (metadata_created_by["value"]).split('/')
mig_info["zone"] = mig_id_parts[3] if mig_id_parts[2] == "zones" else None
mig_info["region"] = mig_id_parts[3] if mig_id_parts[2] == "regions" else None
mig_info["name"] = mig_id_parts[5]
return mig_info
return