from keystoneauth1.identity import v3 from keystoneauth1 import session import os auth_url = os.environ.get('OS_AUTH_URL') ac_id = os.environ.get('OS_APPLICATION_CREDENTIAL_ID') ac_secret=os.environ.get('OS_APPLICATION_CREDENTIAL_SECRET') region_name = os.environ.get('OS_REGION_NAME') auth = v3.ApplicationCredential( auth_url=auth_url, application_credential_id=ac_id, application_credential_secret=ac_secret ) mysession = session.Session(auth=auth) #----------------------------------------------------------------- from keystoneclient.v3 import client as keystone keystone_client = keystone.Client(session=mysession) projects = keystone_client.projects.list() p = projects[42] print(type(p)) print(p.id) print(p.name) users = keystone_client.users.list() u = users[42] print(type(u)) print(u.id) print(u.email) #----------------------------------------------------------------- import novaclient nova_client = novaclient.client.Client(novaclient.API_MAX_VERSION, session=mysession, region_name=region_name) flavors = nova_client.flavors.list() hypervisors = nova_client.hypervisors.list() my_servers = nova_client.servers.list() help(nova_client.usage.list) import datetime usage = nova_client.usage.list(datetime.datetime(2019,1,1), datetime.datetime(2019,04,30)) us = usage[42] print(us.tenant_id) print(us.total_vcpus_usage) #----------------------------------------------------------------- import glanceclient glance_client = glanceclient.client.Client(version='2', session=mysession) images = glance_client.images.list() print(type(images)) imagelist = list(images) i = imagelist[42] print(i[‘name’]) print(i[‘status’]) print(i[‘size’]) #----------------------------------------------------------------- import cinderclient.client cinder_client = cinderclient.client.Client('3', session=mysession, region_name=region_name) volumes = cinder_client.volumes.list() print(len(volumes)) help(cinder_client.volumes.list) volumes = cinder_client.volumes.list(detailed=True, search_opts={'all_tenants': True}) v = volumes[42] print(type(v)) print(v.name) help(v) #----------------------------------------------------------------- import neutronclient.v2_0.client neutron_client = neutronclient.v2_0.client.Client(session=mysession, region_name=region_name) routers = neutron_client.list_routers() r = routers[‘routers’][42] print(type(r)) print(r[‘name’]) floatingips = neutron_client.list_floatingips() f = floatingips['floatingips'][42] print(type(f)) print(f['floating_ip_address'])