Add maintenance mode commands
baremetal node maintenance set baremetal node maintenance unset Change-Id: Idbb451b90dbe8ad6ee410b06a18592ba74d29514 Partial-Bug: #1526479
This commit is contained in:
parent
77e543779f
commit
b9b6e93f80
@ -395,6 +395,64 @@ class ListBaremetal(ListBaremetalNode):
|
||||
return super(ListBaremetal, self).take_action(parsed_args)
|
||||
|
||||
|
||||
class MaintenanceSetBaremetalNode(command.Command):
|
||||
"""Set baremetal node to maintenance mode"""
|
||||
|
||||
log = logging.getLogger(__name__ + ".MaintenanceSetBaremetalNode")
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(MaintenanceSetBaremetalNode, self).get_parser(prog_name)
|
||||
|
||||
parser.add_argument(
|
||||
'node',
|
||||
metavar='<node>',
|
||||
help="Name or UUID of the node."
|
||||
)
|
||||
parser.add_argument(
|
||||
'--reason',
|
||||
metavar='<reason>',
|
||||
default=None,
|
||||
help=("Reason for setting maintenance mode."))
|
||||
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
|
||||
baremetal_client.node.set_maintenance(
|
||||
parsed_args.node,
|
||||
True,
|
||||
maint_reason=parsed_args.reason)
|
||||
|
||||
|
||||
class MaintenanceUnsetBaremetalNode(command.Command):
|
||||
"""Unset baremetal node from maintenance mode"""
|
||||
|
||||
log = logging.getLogger(__name__ + ".MaintenanceUnsetBaremetalNode")
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(MaintenanceUnsetBaremetalNode,
|
||||
self).get_parser(prog_name)
|
||||
|
||||
parser.add_argument(
|
||||
'node',
|
||||
metavar='<node>',
|
||||
help="Name or UUID of the node."
|
||||
)
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
|
||||
baremetal_client.node.set_maintenance(
|
||||
parsed_args.node,
|
||||
False)
|
||||
|
||||
|
||||
class ManageBaremetalNode(ProvisionStateBaremetalNode):
|
||||
"""Set provision state of baremetal node to 'manage'"""
|
||||
|
||||
|
@ -495,6 +495,68 @@ class TestBaremetalList(TestBaremetal):
|
||||
self.cmd, arglist, verifylist)
|
||||
|
||||
|
||||
class TestBaremetalMaintenanceSet(TestBaremetal):
|
||||
def setUp(self):
|
||||
super(TestBaremetalMaintenanceSet, self).setUp()
|
||||
|
||||
# Get the command object to test
|
||||
self.cmd = baremetal_node.MaintenanceSetBaremetalNode(self.app, None)
|
||||
|
||||
def test_baremetal_maintenance_on(self):
|
||||
arglist = ['node_uuid',
|
||||
'--reason', 'maintenance reason']
|
||||
verifylist = [
|
||||
('node', 'node_uuid'),
|
||||
('reason', 'maintenance reason'),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
self.cmd.take_action(parsed_args)
|
||||
|
||||
self.baremetal_mock.node.set_maintenance.assert_called_once_with(
|
||||
'node_uuid',
|
||||
True,
|
||||
maint_reason='maintenance reason'
|
||||
)
|
||||
|
||||
def test_baremetal_maintenance_on_no_reason(self):
|
||||
arglist = ['node_uuid']
|
||||
verifylist = [
|
||||
('node', 'node_uuid'),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
self.cmd.take_action(parsed_args)
|
||||
|
||||
self.baremetal_mock.node.set_maintenance.assert_called_once_with(
|
||||
'node_uuid',
|
||||
True,
|
||||
maint_reason=None
|
||||
)
|
||||
|
||||
|
||||
class TestBaremetalMaintenanceUnset(TestBaremetal):
|
||||
def setUp(self):
|
||||
super(TestBaremetalMaintenanceUnset, self).setUp()
|
||||
|
||||
# Get the command object to test
|
||||
self.cmd = baremetal_node.MaintenanceUnsetBaremetalNode(self.app, None)
|
||||
|
||||
def test_baremetal_maintenance_off(self):
|
||||
arglist = ['node_uuid']
|
||||
verifylist = [('node', 'node_uuid')]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
self.cmd.take_action(parsed_args)
|
||||
|
||||
self.baremetal_mock.node.set_maintenance.assert_called_once_with(
|
||||
'node_uuid',
|
||||
False)
|
||||
|
||||
|
||||
class TestBaremetalPower(TestBaremetal):
|
||||
def setUp(self):
|
||||
super(TestBaremetalPower, self).setUp()
|
||||
|
@ -10,6 +10,8 @@ features:
|
||||
* openstack baremetal node deploy
|
||||
* openstack baremetal node inspect
|
||||
* openstack baremetal node list
|
||||
* openstack baremetal node maintenance set
|
||||
* opnestack baremetal node maintenance unset
|
||||
* openstack baremetal node manage
|
||||
* openstack baremetal node power
|
||||
* openstack baremetal node provide
|
||||
|
@ -38,6 +38,8 @@ openstack.baremetal.v1 =
|
||||
baremetal_node_deploy = ironicclient.osc.v1.baremetal_node:DeployBaremetalNode
|
||||
baremetal_node_inspect = ironicclient.osc.v1.baremetal_node:InspectBaremetalNode
|
||||
baremetal_node_list = ironicclient.osc.v1.baremetal_node:ListBaremetalNode
|
||||
baremetal_node_maintenance_set = ironicclient.osc.v1.baremetal_node:MaintenanceSetBaremetalNode
|
||||
baremetal_node_maintenance_unset = ironicclient.osc.v1.baremetal_node:MaintenanceUnsetBaremetalNode
|
||||
baremetal_node_manage = ironicclient.osc.v1.baremetal_node:ManageBaremetalNode
|
||||
baremetal_node_power = ironicclient.osc.v1.baremetal_node:PowerBaremetalNode
|
||||
baremetal_node_provide = ironicclient.osc.v1.baremetal_node:ProvideBaremetalNode
|
||||
|
Loading…
Reference in New Issue
Block a user