Skip to content

Instantly share code, notes, and snippets.

@djoreilly
Created March 1, 2016 11:10

Revisions

  1. Darragh O'Reilly created this gist Mar 1, 2016.
    42 changes: 42 additions & 0 deletions keystone_v3_session.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,42 @@
    # http://docs.openstack.org/developer/keystoneauth/index.html
    # http://www.jamielennox.net/blog/2014/09/15/how-to-use-keystoneclient-sessions/

    # In iPython: execfile('path/to/this/file')

    import os
    import logging

    from keystoneauth1.identity import v3
    from keystoneauth1 import session

    import requests
    # suppress warning
    requests.packages.urllib3.disable_warnings()

    # logging.basicConfig(level=logging.DEBUG)
    logging.basicConfig(level=logging.INFO)

    LOG = logging.getLogger(__name__)

    if os.environ.get('http_proxy') or os.environ.get('https_proxy'):
    LOG.WARN("Proxy env vars set")

    # TODO howto pass internalURL
    auth = v3.Password(auth_url=os.environ['OS_AUTH_URL'],
    username=os.environ['OS_USERNAME'],
    password=os.environ['OS_PASSWORD'],
    project_name=os.environ['OS_PROJECT_NAME'],
    user_domain_id=os.environ['OS_USER_DOMAIN_NAME'],
    project_domain_name=os.environ['OS_PROJECT_DOMAIN_NAME'])

    # sess = session.Session(auth=auth, verify='/path/to/ca.cert')
    sess = session.Session(auth=auth, verify=False)


    import novaclient.client
    novac = novaclient.client.Client(2, session=sess)
    novac.servers.list()

    import neutronclient.neutron.client
    neutc = neutronclient.neutron.client.Client('2.0', session=sess)
    neutc.list_networks()