Last active
September 16, 2022 16:53
-
-
Save rajathithan/c26c84cdaf74011fe3a6716f665e6269 to your computer and use it in GitHub Desktop.
retrieve-compute-engine-details
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script to retrieve compute engine details. | |
# Author - Rajathithan Rajasekar - 03/03/2020 | |
from pprint import pprint | |
from googleapiclient import discovery | |
from oauth2client.client import GoogleCredentials | |
import re | |
import sys | |
credentials = GoogleCredentials.get_application_default() | |
service = discovery.build('compute', 'v1', credentials=credentials) | |
#print(str(sys.argv)) | |
if (len(sys.argv)) >=3: | |
project = sys.argv[1] | |
instance = sys.argv[2] | |
zone = sys.argv[3] | |
# Get instance details | |
request = service.instances().get(project=project, zone=zone, instance=instance) | |
response = request.execute() | |
# Get machine type | |
mtype = re.search(r'(.*)/(.*)', response['machineType']).group(2) | |
# Get operating system name | |
osu = response['disks'][0]['licenses'][0] | |
os = re.search(r'(.*)/(.*)', osu).group(2) | |
# Get disk size | |
dsize = str(response['disks'][0]['diskSizeGb']) + ' GB' | |
# Use machine type to get cpu count & memory size | |
mrequest = service.machineTypes().get(project=project, zone=zone, machineType=mtype) | |
mresponse = mrequest.execute() | |
# Get cpu count | |
cpu = mresponse['guestCpus'] | |
# Get memory size | |
megabyte = mresponse['memoryMb'] | |
gigabyte = 1.0/1024 | |
memory = str(gigabyte * megabyte) + ' GB' | |
print(f'{project},{instance},{zone},{mtype},{os},{cpu},{memory},{dsize}') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment