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): def get_server(self, **data):
return server.Server(data).get(self.session) return server.Server(data).get(self.session)
def list_servers(self): def list_servers(self, details=True):
return server.Server.list(self.session, paginated=True) srv = server.ServerDetail if details else server.Server
return srv.list(self.session, paginated=True)
def update_server(self, **data): def update_server(self, **data):
return server.Server(data).update(self.session) return server.Server(data).update(self.session)

View File

@@ -193,3 +193,14 @@ class Server(resource.Resource):
if address['OS-EXT-IPS:type'] == 'floating': if address['OS-EXT-IPS:type'] == 'floating':
result.append(address['addr']) result.append(address['addr'])
return result 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['updated'], sot.updated)
self.assertEqual(EXAMPLE['user_id'], sot.user_id) 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): def test_change_passowrd(self):
sot = server.Server(EXAMPLE) sot = server.Server(EXAMPLE)