0

I am building a list of gcloud instances using the Python API.

These are the commands that pull the info from GCP on the servers:

project_id = 'company1'
zone = 'us-east1-b'
compute = googleapiclient.discovery.build('compute', 'v1')
result = compute.instances().list(project=project_id, zone=zone).execute()

When I run the script it pulls info for ALL the servers in the projects both running and stopped.

How can I specify that I only want to get the running servers using these commands? Can I specify a status=running somewhere in those commands?

John Hanley
  • 74,467
  • 6
  • 95
  • 159
bluethundr
  • 1,005
  • 17
  • 68
  • 141

1 Answers1

1

If you refer to the API documentation for list(), notice the parameter filter=None. To filter the output, specify a filter.

More details about filers are here.

To filter on running instances, use the filter status=running

result = compute.instances().list(project=project_id, zone=zone, filter='status=running').execute()
John Hanley
  • 74,467
  • 6
  • 95
  • 159