summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-26 17:36:52 +0000
committerGerrit Code Review <review@openstack.org>2016-02-26 17:36:52 +0000
commitbf9401bda8ee5ed58f63387615b739f4e07891cd (patch)
tree27ba6dd4d8014e6bfe1bdc42cab47e3290af9d68
parent4568e4565409cf02f3d12ccfbed95d622cbdd90b (diff)
parent36d2e1360fc02bf9da6dcb9a0287a4bf176e7ab2 (diff)
downloadpython-ironicclient-bf9401bda8ee5ed58f63387615b739f4e07891cd.tar.gz
Merge "continue to delete next node if failed with previous one"
-rw-r--r--ironicclient/tests/unit/v1/test_node_shell.py11
-rw-r--r--ironicclient/v1/node_shell.py8
-rw-r--r--releasenotes/notes/continue-del-next-node-8827e67e1c41a0a5.yaml3
3 files changed, 20 insertions, 2 deletions
diff --git a/ironicclient/tests/unit/v1/test_node_shell.py b/ironicclient/tests/unit/v1/test_node_shell.py
index 4545b92..1049587 100644
--- a/ironicclient/tests/unit/v1/test_node_shell.py
+++ b/ironicclient/tests/unit/v1/test_node_shell.py
@@ -79,6 +79,17 @@ class NodeShellTest(utils.BaseTestCase):
client_mock.node.delete.assert_has_calls(
[mock.call('node_uuid1'), mock.call('node_uuid2')])
+ def test_do_node_delete_multiple_with_exception(self):
+ client_mock = mock.MagicMock()
+ client_mock.node.delete.side_effect = (
+ [exceptions.ClientException, None])
+ args = mock.MagicMock()
+ args.node = ['node_uuid1', 'node_uuid2']
+
+ n_shell.do_node_delete(client_mock, args)
+ client_mock.node.delete.assert_has_calls(
+ [mock.call('node_uuid1'), mock.call('node_uuid2')])
+
def test_do_node_update(self):
client_mock = mock.MagicMock()
args = mock.MagicMock()
diff --git a/ironicclient/v1/node_shell.py b/ironicclient/v1/node_shell.py
index 1850124..e78ee4c 100644
--- a/ironicclient/v1/node_shell.py
+++ b/ironicclient/v1/node_shell.py
@@ -261,8 +261,12 @@ def do_node_create(cc, args):
def do_node_delete(cc, args):
"""Unregister node(s) from the Ironic service."""
for n in args.node:
- cc.node.delete(n)
- print(_('Deleted node %s') % n)
+ try:
+ cc.node.delete(n)
+ print(_('Deleted node %s') % n)
+ except exceptions.ClientException as e:
+ print(_("Failed to delete node %(node)s: %(error)s")
+ % {'node': n, 'error': e})
@cliutils.arg('node', metavar='<node>', help="Name or UUID of the node.")
diff --git a/releasenotes/notes/continue-del-next-node-8827e67e1c41a0a5.yaml b/releasenotes/notes/continue-del-next-node-8827e67e1c41a0a5.yaml
new file mode 100644
index 0000000..52f8acc
--- /dev/null
+++ b/releasenotes/notes/continue-del-next-node-8827e67e1c41a0a5.yaml
@@ -0,0 +1,3 @@
+---
+fixes:
+ - when deleting multiple nodes, continue with deletes even if one fails.