summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-08-25 04:08:38 +0000
committerGerrit Code Review <review@openstack.org>2016-08-25 04:08:38 +0000
commitdf64853e93b6d7057d18dff212b4732a35d44448 (patch)
tree9c621d422ff1c1317dc6f18b7b1aa7aa95f16faf
parent5e04d15a5a10587d15dab211689532bb4d45b77b (diff)
parenteb8d9e84809c146459b972bb258a979d52903217 (diff)
downloadpython-ironicclient-df64853e93b6d7057d18dff212b4732a35d44448.tar.gz
Merge "Add 'openstack baremetal node adopt' command"
-rw-r--r--ironicclient/osc/v1/baremetal_node.py9
-rw-r--r--ironicclient/tests/unit/osc/v1/test_baremetal_node.py22
-rw-r--r--releasenotes/notes/osc-plugin-node-adopt-72e195998d305978.yaml5
-rw-r--r--setup.cfg1
4 files changed, 36 insertions, 1 deletions
diff --git a/ironicclient/osc/v1/baremetal_node.py b/ironicclient/osc/v1/baremetal_node.py
index 1906df2..b38b705 100644
--- a/ironicclient/osc/v1/baremetal_node.py
+++ b/ironicclient/osc/v1/baremetal_node.py
@@ -67,6 +67,13 @@ class AbortBaremetalNode(ProvisionStateBaremetalNode):
PROVISION_STATE = 'abort'
+class AdoptBaremetalNode(ProvisionStateBaremetalNode):
+ """Set provision state of baremetal node to 'adopt'"""
+
+ log = logging.getLogger(__name__ + ".AdoptBaremetalNode")
+ PROVISION_STATE = 'adopt'
+
+
class CleanBaremetalNode(ProvisionStateBaremetalNode):
"""Set provision state of baremetal node to 'clean'"""
@@ -271,7 +278,7 @@ class ListBaremetalNode(lister.Lister):
log = logging.getLogger(__name__ + ".ListBaremetalNode")
PROVISION_STATES = ['active', 'deleted', 'rebuild', 'inspect', 'provide',
- 'manage', 'clean', 'abort']
+ 'manage', 'clean', 'adopt', 'abort']
def get_parser(self, prog_name):
parser = super(ListBaremetalNode, self).get_parser(prog_name)
diff --git a/ironicclient/tests/unit/osc/v1/test_baremetal_node.py b/ironicclient/tests/unit/osc/v1/test_baremetal_node.py
index 0f1eab0..407201a 100644
--- a/ironicclient/tests/unit/osc/v1/test_baremetal_node.py
+++ b/ironicclient/tests/unit/osc/v1/test_baremetal_node.py
@@ -34,6 +34,28 @@ class TestBaremetal(baremetal_fakes.TestBaremetal):
self.baremetal_mock.reset_mock()
+class TestAdopt(TestBaremetal):
+ def setUp(self):
+ super(TestAdopt, self).setUp()
+
+ # Get the command object to test
+ self.cmd = baremetal_node.AdoptBaremetalNode(self.app, None)
+
+ def test_adopt(self):
+ arglist = ['node_uuid']
+ verifylist = [
+ ('node', 'node_uuid'),
+ ('provision_state', 'adopt'),
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.cmd.take_action(parsed_args)
+
+ self.baremetal_mock.node.set_provision_state.assert_called_once_with(
+ 'node_uuid', 'adopt')
+
+
class TestBaremetalCreate(TestBaremetal):
def setUp(self):
super(TestBaremetalCreate, self).setUp()
diff --git a/releasenotes/notes/osc-plugin-node-adopt-72e195998d305978.yaml b/releasenotes/notes/osc-plugin-node-adopt-72e195998d305978.yaml
new file mode 100644
index 0000000..eb28579
--- /dev/null
+++ b/releasenotes/notes/osc-plugin-node-adopt-72e195998d305978.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Extends the OpenStackClient plug-in with the command
+ "openstack baremetal node adopt".
diff --git a/setup.cfg b/setup.cfg
index a53e54c..01d73df 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -33,6 +33,7 @@ openstack.baremetal.v1 =
baremetal_delete = ironicclient.osc.v1.baremetal_node:DeleteBaremetal
baremetal_list = ironicclient.osc.v1.baremetal_node:ListBaremetal
baremetal_node_abort = ironicclient.osc.v1.baremetal_node:AbortBaremetalNode
+ baremetal_node_adopt = ironicclient.osc.v1.baremetal_node:AdoptBaremetalNode
baremetal_node_clean = ironicclient.osc.v1.baremetal_node:CleanBaremetalNode
baremetal_node_create = ironicclient.osc.v1.baremetal_node:CreateBaremetalNode
baremetal_node_delete = ironicclient.osc.v1.baremetal_node:DeleteBaremetalNode