Merge "Add --node to 'openstack baremetal port list'"

This commit is contained in:
Jenkins
2016-08-30 16:12:36 +00:00
committed by Gerrit Code Review
4 changed files with 45 additions and 3 deletions

View File

@@ -292,6 +292,12 @@ class ListBaremetalPort(command.Lister):
metavar='<mac-address>',
help="Only show information for the port with this MAC address."
)
parser.add_argument(
'--node',
dest='node',
metavar='<node>',
help="Only list ports of this node (name or UUID)."
)
parser.add_argument(
'--limit',
metavar='<limit>',
@@ -351,6 +357,8 @@ class ListBaremetalPort(command.Lister):
if parsed_args.address is not None:
params['address'] = parsed_args.address
if parsed_args.node is not None:
params['node'] = parsed_args.node
if parsed_args.detail:
params['detail'] = parsed_args.detail

View File

@@ -407,6 +407,20 @@ class TestBaremetalPortList(TestBaremetalPort):
}
self.baremetal_mock.port.list.assert_called_with(**kwargs)
def test_baremetal_port_list_node(self):
arglist = ['--node', baremetal_fakes.baremetal_uuid]
verifylist = [('node', baremetal_fakes.baremetal_uuid)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
kwargs = {
'node': baremetal_fakes.baremetal_uuid,
'marker': None,
'limit': None,
}
self.baremetal_mock.port.list.assert_called_with(**kwargs)
def test_baremetal_port_list_long(self):
arglist = ['--long']
verifylist = [('detail', True)]

View File

@@ -110,7 +110,14 @@ fake_responses = {
{},
{"ports": [PORT]},
),
}
},
'/v1/ports/?node=%s' % PORT['node_uuid']:
{
'GET': (
{},
{"ports": [PORT]},
),
},
}
fake_responses_pagination = {
@@ -187,6 +194,14 @@ class PortManagerTest(testtools.TestCase):
self.assertEqual(expect, self.api.calls)
self.assertEqual(1, len(ports))
def test_ports_list_by_node(self):
ports = self.mgr.list(node=PORT['node_uuid'])
expect = [
('GET', '/v1/ports/?node=%s' % PORT['node_uuid'], {}, None),
]
self.assertEqual(expect, self.api.calls)
self.assertEqual(1, len(ports))
def test_ports_list_detail(self):
ports = self.mgr.list(detail=True)
expect = [

View File

@@ -32,8 +32,8 @@ class PortManager(base.CreateManager):
_resource_name = 'ports'
def list(self, address=None, limit=None, marker=None, sort_key=None,
sort_dir=None, detail=False, fields=None):
"""Retrieve a list of port.
sort_dir=None, detail=False, fields=None, node=None):
"""Retrieve a list of ports.
:param address: Optional, MAC address of a port, to get
the port which has this MAC address
@@ -61,6 +61,9 @@ class PortManager(base.CreateManager):
of the resource to be returned. Can not be used
when 'detail' is set.
:param node: Optional, name or UUID of a node. Used to get
ports of this node.
:returns: A list of ports.
"""
@@ -75,6 +78,8 @@ class PortManager(base.CreateManager):
fields)
if address is not None:
filters.append('address=%s' % address)
if node is not None:
filters.append('node=%s' % node)
path = ''
if detail: