Add --no-retired list option

This patch adds the --no-retired option to list nodes that are not
marked for retirement.

Change-Id: If20529e12854e0e6a0a09515f3cbc2fbf3390e03
This commit is contained in:
Riccardo Pittau 2020-02-11 16:50:20 +01:00
parent e8914a7ef9
commit 1488d41f0a
4 changed files with 63 additions and 2 deletions

View File

@ -591,12 +591,21 @@ class ListBaremetalNode(command.Lister):
default=None,
help=_("Limit list to nodes not in maintenance mode"),
)
parser.add_argument(
retired_group = parser.add_mutually_exclusive_group(required=False)
retired_group.add_argument(
'--retired',
dest='retired',
action='store_true',
default=None,
help=_("Limit list to retired nodes."))
help=_("Limit list to retired nodes.")
)
retired_group.add_argument(
'--no-retired',
dest='retired',
action='store_false',
default=None,
help=_("Limit list to not retired nodes.")
)
parser.add_argument(
'--fault',
dest='fault',

View File

@ -746,6 +746,36 @@ class TestBaremetalList(TestBaremetal):
self.check_parser,
self.cmd, arglist, verifylist)
def _test_baremetal_list_retired(self, retired_option, retired_value):
arglist = [
retired_option,
]
verifylist = [
('retired', retired_value),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
# DisplayCommandBase.take_action() returns two tuples
self.cmd.take_action(parsed_args)
# Set expected values
kwargs = {
'marker': None,
'limit': None,
'retired': retired_value,
}
self.baremetal_mock.node.list.assert_called_with(
**kwargs
)
def test_baremetal_list_retired(self):
self._test_baremetal_list_retired('--retired', True)
def test_baremetal_list_no_retired(self):
self._test_baremetal_list_retired('--no-retired', False)
def test_baremetal_list_fault(self):
arglist = [
'--maintenance',

View File

@ -171,6 +171,13 @@ fake_responses = {
{"nodes": [NODE2]},
)
},
'/v1/nodes/?retired=False':
{
'GET': (
{},
{"nodes": [NODE1]},
)
},
'/v1/nodes/?retired=True':
{
'GET': (
@ -822,6 +829,15 @@ class NodeManagerTest(testtools.TestCase):
self.assertThat(nodes, HasLength(1))
self.assertEqual(NODE2['uuid'], getattr(nodes[0], 'uuid'))
def test_node_list_not_retired(self):
nodes = self.mgr.list(retired=False)
expect = [
('GET', '/v1/nodes/?retired=False', {}, None),
]
self.assertEqual(expect, self.api.calls)
self.assertThat(nodes, HasLength(1))
self.assertEqual(NODE1['uuid'], getattr(nodes[0], 'uuid'))
def test_node_list_provision_state(self):
nodes = self.mgr.list(provision_state="available")
expect = [

View File

@ -0,0 +1,6 @@
---
features:
- |
Adds ability to get list of nodes that are not marked
for retirement adding the --no-retired optional argument
to the ``openstack baremetal node list`` command.