Add functions to list or find nova server instances.

Change-Id: I9ddbacb62c2cfa3148ef310610746c5fa16a4900
This commit is contained in:
Federico Ressi
2019-08-20 16:29:29 +02:00
parent f0f9c3c551
commit 13f92eaec8
3 changed files with 29 additions and 0 deletions

View File

@@ -20,6 +20,8 @@ from tobiko.openstack.nova import _hypervisor
CLIENT_CLASSES = _client.CLIENT_CLASSES
get_nova_client = _client.get_nova_client
list_hypervisors = _client.list_hypervisors
list_servers = _client.list_servers
find_server = _client.find_server
nova_client = _client.nova_client
NovaClientFixture = _client.NovaClientFixture
find_hypervisor = _client.find_hypervisor

View File

@@ -76,6 +76,20 @@ def find_hypervisor(client=None, unique=False, **params):
return hypervisors.first
def list_servers(client=None, **params):
client = nova_client(client)
servers = client.servers.list()
return tobiko.select(servers).with_attributes(**params)
def find_server(client=None, unique=False, **params):
servers = list_servers(client=client, **params)
if unique:
return servers.unique
else:
return servers.first
def get_server(server, client=None):
return nova_client(client).servers.get(server)

View File

@@ -80,6 +80,19 @@ class ClientTest(testtools.TestCase):
length=50)
self.assertTrue(output)
def test_list_servers(self):
server_id = self.stack.server_id
for server in nova.list_servers():
if server_id == server.id:
break
else:
self.fail('Server {} not found'.format(server_id))
def test_find_server(self):
server_id = self.stack.server_id
server = nova.find_server(id=server_id, unique=True)
self.assertEqual(server_id, server.id)
class HypervisorTest(testtools.TestCase):