import json import sys from googleapiclient import discovery computeClient = discovery.build('compute', 'v1') if __name__ == "__main__": project = sys.argv[1] apply_labels_list = json.load(open('labels_gcp_apply_labels_list.json', 'r')) for request in apply_labels_list: if request['account_id'] != project: continue instances_set_labels_request_body = { 'labels': request['labels'], 'labelFingerprint': request['labelFingerprint'], } tagResponse = None if request['product'] == 'vm': print("set labels: ") print({ 'project': project, 'zone': request['region'], 'instance': request['resource_id'], 'body': instances_set_labels_request_body }) # FIXME(chenfei): disable gcp VM label sync # tagRequest = computeClient.instances().setLabels( # project=project, # zone=request['region'], # instance=request['resource_id'], # body=instances_set_labels_request_body # ) # try: # tagResponse = tagRequest.execute() # except Exception as e: # print(e) elif request['product'] == 'disk': print("set labels: ") print({ 'project': project, 'zone': request['region'], 'instance': request['resource_id'], 'body': instances_set_labels_request_body }) # FIXME(chenfei): disable gcp disk label sync # tagRequest = computeClient.disks().setLabels( # project=project, # zone=request['region'], # resource=request['resource_id'], # body=instances_set_labels_request_body # ) # try: # tagResponse = tagRequest.execute() # except Exception as e: # print(e) else: print(f'unsupported resource {request["product"]}/{request["resource_id"]} in region({request["region"]}') continue print(f'apply tags for {request["product"]}/{request["resource_id"]} in {request["region"]}' f', response: {tagResponse}')