Adds trove python client to rally.osclients
Change-Id: Ibac269afdfcc9a0b2b13827cf16dab2c6041f2d4
This commit is contained in:
parent
23d045cf53
commit
662af3dda5
@ -29,6 +29,7 @@ from neutronclient.neutron import client as neutron
|
||||
from novaclient import client as nova
|
||||
from oslo.config import cfg
|
||||
from saharaclient import client as sahara
|
||||
from troveclient import client as trove
|
||||
from zaqarclient.queues import client as zaqar
|
||||
|
||||
from rally import consts
|
||||
@ -298,6 +299,20 @@ class Clients(object):
|
||||
insecure=CONF.https_insecure)
|
||||
return client
|
||||
|
||||
@cached
|
||||
def trove(self, version='1.0'):
|
||||
"""Returns trove client."""
|
||||
client = trove.Client(version,
|
||||
username=self.endpoint.username,
|
||||
api_key=self.endpoint.password,
|
||||
project_id=self.endpoint.tenant_name,
|
||||
auth_url=self.endpoint.auth_url,
|
||||
region_name=self.endpoint.region_name,
|
||||
timeout=CONF.openstack_client_http_timeout,
|
||||
insecure=CONF.https_insecure,
|
||||
cacert=CONF.https_cacert)
|
||||
return client
|
||||
|
||||
@cached
|
||||
def services(self):
|
||||
"""Return available services names and types.
|
||||
|
@ -27,6 +27,7 @@ python-heatclient>=0.2.9
|
||||
python-ceilometerclient>=1.0.6
|
||||
python-ironicclient>=0.2.1
|
||||
python-saharaclient>=0.7.6
|
||||
python-troveclient>=1.0.7
|
||||
python-zaqarclient>=0.0.3
|
||||
python-subunit>=0.0.18
|
||||
requests>=2.2.0,!=2.4.0
|
||||
|
@ -253,6 +253,10 @@ class FakeQueue(FakeResource):
|
||||
self.messages.create(**msg)
|
||||
|
||||
|
||||
class FakeDbInstance(FakeResource):
|
||||
pass
|
||||
|
||||
|
||||
class FakeMessage(FakeResource):
|
||||
def __init__(self, manager=None, **kwargs):
|
||||
super(FakeMessage, self).__init__(manager)
|
||||
@ -741,6 +745,32 @@ class FakeQueuesManager(FakeManager):
|
||||
del self.__queues[queue.name]
|
||||
|
||||
|
||||
class FakeDbInstanceManager(FakeManager):
|
||||
def __init__(self):
|
||||
super(FakeDbInstanceManager, self).__init__()
|
||||
self.__db_instances = {}
|
||||
|
||||
def create(self, name, flavor_id, size):
|
||||
instance = FakeDbInstance(self)
|
||||
instance.name = name or instance.name
|
||||
instance.flavor_id = flavor_id
|
||||
instance.size = size
|
||||
return self._cache(instance)
|
||||
|
||||
def list(self):
|
||||
return self.__db_instances.values()
|
||||
|
||||
def delete(self, resource):
|
||||
if not isinstance(resource, basestring):
|
||||
resource = resource.id
|
||||
|
||||
cached = self.get(resource)
|
||||
if cached is not None:
|
||||
cached.status = "DELETE_COMPLETE"
|
||||
del self.cache[resource]
|
||||
self.resources_order.remove(resource)
|
||||
|
||||
|
||||
class FakeMessagesManager(FakeManager):
|
||||
def __init__(self, queue='myqueue'):
|
||||
super(FakeMessagesManager, self).__init__()
|
||||
@ -1144,6 +1174,12 @@ class FakeZaqarClient(object):
|
||||
return self.queues.create(name, **kwargs)
|
||||
|
||||
|
||||
class FakeTroveClient(object):
|
||||
|
||||
def __init__(self):
|
||||
self.instances = FakeDbInstanceManager()
|
||||
|
||||
|
||||
class FakeClients(object):
|
||||
|
||||
def __init__(self, endpoint_=None):
|
||||
@ -1157,6 +1193,7 @@ class FakeClients(object):
|
||||
self._designate = None
|
||||
self._ceilometer = None
|
||||
self._zaqar = None
|
||||
self._trove = None
|
||||
self._endpoint = endpoint_ or endpoint.Endpoint(
|
||||
"http://fake.example.org:5000/v2.0/",
|
||||
"fake_username",
|
||||
@ -1216,6 +1253,11 @@ class FakeClients(object):
|
||||
self._zaqar = FakeZaqarClient()
|
||||
return self._zaqar
|
||||
|
||||
def trove(self):
|
||||
if not self._trove:
|
||||
self._trove = FakeTroveClient()
|
||||
return self._trove
|
||||
|
||||
|
||||
class FakeRunner(object):
|
||||
|
||||
|
@ -263,6 +263,26 @@ class OSClientsTestCase(test.TestCase):
|
||||
conf=conf)
|
||||
self.assertEqual(self.clients.cache["zaqar"], fake_zaqar)
|
||||
|
||||
@mock.patch("rally.osclients.trove")
|
||||
def test_trove(self, mock_trove):
|
||||
fake_trove = fakes.FakeTroveClient()
|
||||
mock_trove.Client = mock.MagicMock(return_value=fake_trove)
|
||||
self.assertNotIn("trove", self.clients.cache)
|
||||
client = self.clients.trove()
|
||||
self.assertEqual(client, fake_trove)
|
||||
kw = {
|
||||
"username": self.endpoint.username,
|
||||
"api_key": self.endpoint.password,
|
||||
"project_id": self.endpoint.tenant_name,
|
||||
"auth_url": self.endpoint.auth_url,
|
||||
"region_name": self.endpoint.region_name,
|
||||
"timeout": cfg.CONF.openstack_client_http_timeout,
|
||||
"insecure": cfg.CONF.https_insecure,
|
||||
"cacert": cfg.CONF.https_cacert
|
||||
}
|
||||
mock_trove.Client.assert_called_once_with("1.0", **kw)
|
||||
self.assertEqual(self.clients.cache["trove"], fake_trove)
|
||||
|
||||
@mock.patch("rally.osclients.Clients.keystone")
|
||||
def test_services(self, mock_keystone):
|
||||
available_services = {consts.ServiceType.IDENTITY: {},
|
||||
|
Loading…
Reference in New Issue
Block a user