Merge "Add --node to 'openstack baremetal port list'"
This commit is contained in:
@@ -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
|
||||
|
@@ -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)]
|
||||
|
@@ -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 = [
|
||||
|
@@ -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:
|
||||
|
Reference in New Issue
Block a user