Add helper to get authenticated octaviaclient

This commit is contained in:
Frode Nordahl
2018-11-26 06:39:44 +01:00
parent cc4adabba9
commit e1f360f823
3 changed files with 28 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ python-heatclient
python-keystoneclient
python-neutronclient
python-novaclient
python-octaviaclient
python-swiftclient
tenacity
distro-info

View File

@@ -38,6 +38,7 @@ install_require = [
'python-keystoneclient',
'python-novaclient',
'python-neutronclient',
'python-octaviaclient',
'python-cinderclient',
]

View File

@@ -37,6 +37,7 @@ import zaza.utilities.cert as cert
from novaclient import client as novaclient_client
from neutronclient.v2_0 import client as neutronclient
from neutronclient.common import exceptions as neutronexceptions
from octaviaclient.api.v2 import octavia as octaviaclient
import io
import juju_wait
@@ -200,6 +201,31 @@ def get_neutron_session_client(session):
return neutronclient.Client(session=session)
def get_octavia_session_client(session, service_type='load-balancer',
interface='internal'):
"""Return neutronclient authenticated by keystone session.
:param session: Keystone session object
:type session: keystoneauth1.session.Session object
:param service_type: Service type to look for in catalog
:type service_type: str
:param interface: Interface to look for in catalog
:type interface: str
:returns: Authenticated octaviaclient
:rtype: octaviaclient.OctaviaAPI object
"""
keystone_client = get_keystone_session_client(session)
lbaas_service = keystone_client.services.list(type=service_type)
for service in lbaas_service:
lbaas_endpoint = keystone_client.endpoints.list(service=service,
interface='internal')
for endpoint in lbaas_endpoint:
break
return octaviaclient.OctaviaAPI(session=session,
service_type=service_type,
endpoint=endpoint.url)
def get_cinder_session_client(session):
"""Return cinderclient authenticated by keystone session.