diff --git a/metalsmith/test/test_metalsmith_instances.py b/metalsmith/test/test_metalsmith_instances.py index 7a0578c..8616295 100644 --- a/metalsmith/test/test_metalsmith_instances.py +++ b/metalsmith/test/test_metalsmith_instances.py @@ -260,3 +260,24 @@ class TestMetalsmithInstances(unittest.TestCase): mock.call(1), mock.call(2) ]) + + @mock.patch('metalsmith.sources.detect', autospec=True) + @mock.patch('metalsmith.instance_config.CloudInitConfig', autospec=True) + def test_unprovision(self, mock_config, mock_detect): + + provisioner = mock.Mock() + instances = [{ + 'name': 'node-1', + 'hostname': 'overcloud-controller-1', + 'image': {'href': 'overcloud-full'}, + 'state': 'absent' + }, { + 'name': 'node-2', + 'image': {'href': 'overcloud-full'}, + 'state': 'absent' + }] + self.assertTrue(mi.unprovision(provisioner, instances)) + provisioner.unprovision_node.assert_has_calls([ + mock.call('overcloud-controller-1'), + mock.call('node-2') + ]) diff --git a/metalsmith_ansible/ansible_plugins/modules/metalsmith_instances.py b/metalsmith_ansible/ansible_plugins/modules/metalsmith_instances.py index 4aad599..9268e65 100644 --- a/metalsmith_ansible/ansible_plugins/modules/metalsmith_instances.py +++ b/metalsmith_ansible/ansible_plugins/modules/metalsmith_instances.py @@ -375,7 +375,8 @@ def _provision_instance(provisioner, instance, nodes, timeout, wait): def unprovision(provisioner, instances): for instance in instances: - provisioner.unprovision_node(instance.get('name')) + provisioner.unprovision_node(instance.get('hostname', + instance.get('name'))) return True