Merge "Add support for GET /v1/nodes to return a list."

This commit is contained in:
Jenkins 2013-06-20 20:47:35 +00:00 committed by Gerrit Code Review
commit 4fa43289c6
4 changed files with 24 additions and 0 deletions

View File

@ -90,6 +90,11 @@ class Node(APIBase):
class NodesController(rest.RestController):
"""REST controller for Nodes."""
@wsme_pecan.wsexpose([unicode])
def get(self):
"""Retrieve a list of nodes."""
return pecan.request.dbapi.get_node_list()
@wsme_pecan.wsexpose(Node, unicode)
def get_one(self, uuid):
"""Retrieve information about the given node."""

View File

@ -47,6 +47,10 @@ class Connection(object):
:param columns: List of columns to return.
"""
@abc.abstractmethod
def get_node_list(self):
"""Return a list of node UUIDs."""
@abc.abstractmethod
def get_associated_nodes(self):
"""Return a list of ids of all associated nodes."""

View File

@ -103,6 +103,10 @@ class Connection(api.Connection):
def get_nodes(self, columns):
pass
def get_node_list(self):
query = model_query(models.Node.uuid)
return [i[0] for i in query.all()]
@objects.objectify(objects.Node)
def get_associated_nodes(self):
pass

View File

@ -67,6 +67,17 @@ class DbNodeTestCase(base.DbTestCase):
self.assertRaises(exception.InvalidIdentity,
self.dbapi.get_node, 'not-a-uuid')
def test_get_node_list(self):
uuids = []
for i in xrange(1, 6):
n = utils.get_test_node(id=i, uuid=uuidutils.generate_uuid())
self.dbapi.create_node(n)
uuids.append(unicode(n['uuid']))
res = self.dbapi.get_node_list()
uuids.sort()
res.sort()
self.assertEqual(uuids, res)
def test_get_node_by_instance(self):
n = self._create_test_node()