Provide access to Trove client
python-troveclient is required for implementing Database As A Service (DBaaS) resource. This patch makes Heat depend on python-troveclient and also changing clients.py and resource.py to provide access to troveclient. Implements: blueprint dbaas-trove-resource Change-Id: I010d4a11793cc634aa0af5f01b637fff4effbf61
This commit is contained in:
parent
01fb048330
commit
89376661cb
|
@ -41,6 +41,12 @@ except ImportError:
|
|||
cinderclient = None
|
||||
logger.info(_('cinderclient not available'))
|
||||
|
||||
try:
|
||||
from troveclient import client as troveclient
|
||||
except ImportError:
|
||||
troveclient = None
|
||||
logger.info(_('troveclient not available'))
|
||||
|
||||
try:
|
||||
from ceilometerclient.v2 import client as ceilometerclient
|
||||
except ImportError:
|
||||
|
@ -68,6 +74,7 @@ class OpenStackClients(object):
|
|||
self._swift = None
|
||||
self._neutron = None
|
||||
self._cinder = None
|
||||
self._trove = None
|
||||
self._ceilometer = None
|
||||
|
||||
@property
|
||||
|
@ -195,6 +202,32 @@ class OpenStackClients(object):
|
|||
|
||||
return self._cinder
|
||||
|
||||
def trove(self, service_type="database"):
|
||||
if troveclient is None:
|
||||
return None
|
||||
if self._trove:
|
||||
return self._trove
|
||||
|
||||
con = self.context
|
||||
if self.auth_token is None:
|
||||
logger.error(_("Trove connection failed, no auth_token!"))
|
||||
return None
|
||||
|
||||
args = {
|
||||
'service_type': service_type,
|
||||
'auth_url': con.auth_url,
|
||||
'proxy_token': con.auth_token,
|
||||
'username': None,
|
||||
'password': None
|
||||
}
|
||||
|
||||
self._trove = troveclient.Client('1.0', **args)
|
||||
management_url = self.url_for(service_type=service_type)
|
||||
self._trove.client.auth_token = con.auth_token
|
||||
self._trove.client.management_url = management_url
|
||||
|
||||
return self._trove
|
||||
|
||||
def ceilometer(self):
|
||||
if ceilometerclient is None:
|
||||
return None
|
||||
|
|
|
@ -338,6 +338,9 @@ class Resource(object):
|
|||
def cinder(self):
|
||||
return self.stack.clients.cinder()
|
||||
|
||||
def trove(self):
|
||||
return self.stack.clients.trove()
|
||||
|
||||
def ceilometer(self):
|
||||
return self.stack.clients.ceilometer()
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ python-swiftclient>=1.5
|
|||
python-neutronclient>=2.3.0,<3
|
||||
python-ceilometerclient>=1.0.6
|
||||
python-cinderclient>=1.0.6
|
||||
python-troveclient>=1.0.0
|
||||
PyYAML>=3.1.0
|
||||
paramiko>=1.8.0
|
||||
Babel>=1.3
|
||||
|
|
Loading…
Reference in New Issue