Add ServerDetail so list can include details

This change falls in line with how Flavor and Image did it, just adding
support for the extended listing of the Server resource.

Change-Id: Ib1675f51c0d7f97b2d5eeced9520142dde52e834
This commit is contained in:
Brian Curtin
2015-03-02 19:42:45 -06:00
committed by Terry Howe
parent 3f75c4f25e
commit dfddec0c11
3 changed files with 26 additions and 2 deletions

View File

@@ -119,8 +119,9 @@ class Proxy(proxy.BaseProxy):
def get_server(self, **data):
return server.Server(data).get(self.session)
def list_servers(self):
return server.Server.list(self.session, paginated=True)
def list_servers(self, details=True):
srv = server.ServerDetail if details else server.Server
return srv.list(self.session, paginated=True)
def update_server(self, **data):
return server.Server(data).update(self.session)

View File

@@ -193,3 +193,14 @@ class Server(resource.Resource):
if address['OS-EXT-IPS:type'] == 'floating':
result.append(address['addr'])
return result
class ServerDetail(Server):
base_path = '/servers/detail'
# capabilities
allow_create = False
allow_retrieve = False
allow_update = False
allow_delete = False
allow_list = True

View File

@@ -83,6 +83,18 @@ class TestServer(testtools.TestCase):
self.assertEqual(EXAMPLE['updated'], sot.updated)
self.assertEqual(EXAMPLE['user_id'], sot.user_id)
def test_detail(self):
sot = server.ServerDetail()
self.assertEqual('server', sot.resource_key)
self.assertEqual('servers', sot.resources_key)
self.assertEqual('/servers/detail', sot.base_path)
self.assertEqual('compute', sot.service.service_type)
self.assertFalse(sot.allow_create)
self.assertFalse(sot.allow_retrieve)
self.assertFalse(sot.allow_update)
self.assertFalse(sot.allow_delete)
self.assertTrue(sot.allow_list)
def test_change_passowrd(self):
sot = server.Server(EXAMPLE)