Expose subresources for Chassis and Node

This patch will expose the "nodes" subresource of Chassis and the "ports"
subresource of Nodes. Linking and pagination is also available for those,
as well as in any other collection in the API.

Change-Id: Icf805b0c47cdcb0521b66b85b0ffd8dd41414fe9
This commit is contained in:
Lucas Alvares Gomes
2013-07-31 12:27:21 +01:00
committed by Devananda van der Veen
parent f06a40d319
commit f15510bae3
7 changed files with 172 additions and 12 deletions

View File

@@ -122,9 +122,10 @@ def _check_port_change_forbidden(port, session):
raise exception.NodeLocked(node=node_id)
def _paginate_query(model, limit=None, marker=None,
sort_key=None, sort_dir=None):
query = model_query(model)
def _paginate_query(model, limit=None, marker=None, sort_key=None,
sort_dir=None, query=None):
if not query:
query = model_query(model)
sort_keys = ['id']
if sort_key and sort_key not in sort_keys:
sort_keys.insert(0, sort_key)
@@ -150,11 +151,12 @@ class Connection(api.Connection):
sort_key, sort_dir)
@objects.objectify(objects.Node)
def get_nodes_by_chassis(self, chassis):
def get_nodes_by_chassis(self, chassis, limit=None, marker=None,
sort_key=None, sort_dir=None):
query = model_query(models.Node)
query = add_node_filter_by_chassis(query, chassis)
return query.all()
return _paginate_query(models.Node, limit, marker,
sort_key, sort_dir, query)
@objects.objectify(objects.Node)
def get_associated_nodes(self):
@@ -326,11 +328,12 @@ class Connection(api.Connection):
sort_key, sort_dir)
@objects.objectify(objects.Port)
def get_ports_by_node(self, node):
def get_ports_by_node(self, node, limit=None, marker=None,
sort_key=None, sort_dir=None):
query = model_query(models.Port)
query = add_port_filter_by_node(query, node)
return query.all()
return _paginate_query(models.Port, limit, marker,
sort_key, sort_dir, query)
@objects.objectify(objects.Port)
def create_port(self, values):