You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
#!/usr/bin/env python
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
|
|
if (not os.environ.get('MITOGEN_GCLOUD_GROUP')) or any('--host' in s for s in sys.argv):
|
|
sys.stdout.write('{}')
|
|
sys.exit(0)
|
|
|
|
import googleapiclient.discovery
|
|
|
|
|
|
def main():
|
|
project = 'mitogen-load-testing'
|
|
zone = 'europe-west1-d'
|
|
group_name = 'target'
|
|
|
|
client = googleapiclient.discovery.build('compute', 'v1')
|
|
resp = client.instances().list(project=project, zone=zone).execute()
|
|
|
|
ips = []
|
|
for inst in resp['items']:
|
|
if inst['status'] == 'RUNNING' and inst['name'].startswith(group_name):
|
|
ips.extend(
|
|
#bytes(config['natIP'])
|
|
bytes(interface['networkIP'])
|
|
for interface in inst['networkInterfaces']
|
|
#for config in interface['accessConfigs']
|
|
)
|
|
|
|
sys.stderr.write('Addresses: %s\n' % (ips,))
|
|
gname = os.environ['MITOGEN_GCLOUD_GROUP']
|
|
groups = {
|
|
gname: {
|
|
'hosts': ips
|
|
}
|
|
}
|
|
|
|
for i in 1, 10, 20, 50, 100:
|
|
groups['%s-%s' % (gname, i)] = {
|
|
'hosts': ips[:i]
|
|
}
|
|
|
|
sys.stdout.write(json.dumps(groups, indent=4))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|