OpenStack Python API
The snippet can be accessed without any authentication.
Authored by
Claudio Pisa
Edited
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'])
Please register or sign in to comment