Add a show capabilities command to view the capabilities of nodes

Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1212390
Change-Id: I18715be7db6b640f2b6f4d5ca0a6459656fad13b
This commit is contained in:
Dougal Matthews 2015-08-28 13:58:26 +01:00
parent b27dcc652d
commit 273f7acfad
3 changed files with 46 additions and 0 deletions

View File

@ -1003,3 +1003,33 @@ class TestConfigureBaremetalBoot(fakes.TestBaremetal):
'path': '/driver_info/deploy_kernel'
}]),
])
class TestShowNodeCapabilities(fakes.TestBaremetal):
def setUp(self):
super(TestShowNodeCapabilities, self).setUp()
# Get the command object to test
self.cmd = baremetal.ShowNodeCapabilities(self.app, None)
def test_success(self):
bm_client = self.app.client_manager.rdomanager_oscplugin.baremetal()
bm_client.node.list.return_value = [
mock.Mock(uuid='UUID1'),
mock.Mock(uuid='UUID2'),
]
bm_client.node.get.return_value = mock.Mock(
properties={'capabilities': 'boot_option:local'})
arglist = []
parsed_args = self.check_parser(self.cmd, arglist, [])
result = self.cmd.take_action(parsed_args)
self.assertEqual((
('Node UUID', 'Node Capabilities'),
[('UUID1', 'boot_option:local'), ('UUID2', 'boot_option:local')]
), result)

View File

@ -531,3 +531,18 @@ class ConfigureBaremetalBoot(command.Command):
'value': kernel_id,
},
])
class ShowNodeCapabilities(lister.Lister):
"""List the capabilities for all Nodes"""
log = logging.getLogger(__name__ + ".ShowNodeProfile")
def take_action(self, parsed_args):
bm_client = self.app.client_manager.rdomanager_oscplugin.baremetal()
rows = []
for node in bm_client.node.list():
node_detail = bm_client.node.get(node.uuid)
capabilities = node_detail.properties.get('capabilities')
rows.append((node.uuid, capabilities))
return (("Node UUID", "Node Capabilities"), rows, )

View File

@ -59,6 +59,7 @@ openstack.rdomanager_oscplugin.v1 =
baremetal_instackenv_validate = rdomanager_oscplugin.v1.baremetal:ValidateInstackEnv
baremetal_import = rdomanager_oscplugin.v1.baremetal:ImportBaremetal
baremetal_introspection_bulk_start = rdomanager_oscplugin.v1.baremetal:StartBaremetalIntrospectionBulk
baremetal_show_capabilities = rdomanager_oscplugin.v1.baremetal:ShowNodeCapabilities
baremetal_introspection_bulk_status = rdomanager_oscplugin.v1.baremetal:StatusBaremetalIntrospectionBulk
baremetal_configure_ready_state = rdomanager_oscplugin.v1.baremetal:ConfigureReadyState
baremetal_configure_boot = rdomanager_oscplugin.v1.baremetal:ConfigureBaremetalBoot