diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-02-26 17:36:52 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-02-26 17:36:52 +0000 |
| commit | bf9401bda8ee5ed58f63387615b739f4e07891cd (patch) | |
| tree | 27ba6dd4d8014e6bfe1bdc42cab47e3290af9d68 | |
| parent | 4568e4565409cf02f3d12ccfbed95d622cbdd90b (diff) | |
| parent | 36d2e1360fc02bf9da6dcb9a0287a4bf176e7ab2 (diff) | |
| download | python-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.py | 11 | ||||
| -rw-r--r-- | ironicclient/v1/node_shell.py | 8 | ||||
| -rw-r--r-- | releasenotes/notes/continue-del-next-node-8827e67e1c41a0a5.yaml | 3 |
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. |
