summaryrefslogtreecommitdiff
path: root/ironicclient/osc/v1/baremetal_node.py
diff options
context:
space:
mode:
authorCenne <cennedee+opendev@protonmail.com>2021-08-09 19:32:53 +0200
committerCenne <cennedee+opendev@protonmail.com>2021-08-13 18:24:58 +0200
commit00808631c1ffa3a9ec2cecafd5ea9f7447f440a8 (patch)
tree035d6232e171c2940a80f6fa5e8e4c87f0a09251 /ironicclient/osc/v1/baremetal_node.py
parenta5a3d4e4426ce8700f193aae77688cd63ac26b05 (diff)
downloadpython-ironicclient-00808631c1ffa3a9ec2cecafd5ea9f7447f440a8.tar.gz
Add support for changing 'boot_mode' and 'secure_boot' states
Story: 2008567 Task: 41709 depends-on: https://review.opendev.org/c/openstack/ironic/+/800084 Change-Id: I2937ea924ccc4ca6e9ab5599aa02e3c078c166b3
Diffstat (limited to 'ironicclient/osc/v1/baremetal_node.py')
-rwxr-xr-xironicclient/osc/v1/baremetal_node.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/ironicclient/osc/v1/baremetal_node.py b/ironicclient/osc/v1/baremetal_node.py
index 45b3b30..2229ac0 100755
--- a/ironicclient/osc/v1/baremetal_node.py
+++ b/ironicclient/osc/v1/baremetal_node.py
@@ -242,6 +242,38 @@ class BootdeviceShowBaremetalNode(command.ShowOne):
return zip(*sorted(info.items()))
+class BootmodeSetBaremetalNode(command.Command):
+ """Set boot mode for baremetal node"""
+
+ log = logging.getLogger(__name__ + ".BootmodeSetBaremetalNode")
+
+ def get_parser(self, prog_name):
+ parser = super(BootmodeSetBaremetalNode, self).get_parser(prog_name)
+
+ parser.add_argument(
+ 'node',
+ metavar='<node>',
+ help=_("Name or UUID of the node.")
+ )
+ parser.add_argument(
+ 'boot_mode',
+ choices=['uefi', 'bios'],
+ metavar='<boot_mode>',
+ help=_('The boot mode to set for node (uefi/bios)')
+ )
+
+ 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_boot_mode(
+ parsed_args.node,
+ parsed_args.boot_mode)
+
+
class CleanBaremetalNode(ProvisionStateWithWait):
"""Set provision state of baremetal node to 'clean'"""
@@ -1086,6 +1118,50 @@ class RescueBaremetalNode(ProvisionStateWithWait):
return parser
+class SecurebootOnBaremetalNode(command.Command):
+ """Turn secure boot on"""
+
+ log = logging.getLogger(__name__ + ".SecurebootOnBaremetalNode")
+
+ def get_parser(self, prog_name):
+ parser = super(SecurebootOnBaremetalNode, 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_secure_boot(parsed_args.node, 'on')
+
+
+class SecurebootOffBaremetalNode(command.Command):
+ """Turn secure boot off"""
+
+ log = logging.getLogger(__name__ + ".SecurebootOffBaremetalNode")
+
+ def get_parser(self, prog_name):
+ parser = super(SecurebootOffBaremetalNode, 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_secure_boot(parsed_args.node, 'off')
+
+
class SetBaremetalNode(command.Command):
"""Set baremetal properties"""