diff options
author | rabi <ramishra@redhat.com> | 2018-03-23 11:10:55 +0530 |
---|---|---|
committer | rabi <ramishra@redhat.com> | 2018-06-29 09:37:44 +0530 |
commit | 3c06347a93343850409a243b3c7e1f11eeb4db3f (patch) | |
tree | 0e54c8697530d76724312e2ec5e75044a7e13dbc /heat/tests | |
parent | 72f18efe02df4056a4c22576b4fffb97a5e6ba2e (diff) | |
download | heat-3c06347a93343850409a243b3c7e1f11eeb4db3f.tar.gz |
Refactor resource plugins for microversion usage
This changes the way nova client plugin is used in some nova
resource plugins.
Change-Id: Ibc41e0387a3056b3fde7b7690bf924e7493a7a7e
Diffstat (limited to 'heat/tests')
-rw-r--r-- | heat/tests/openstack/nova/test_keypair.py | 27 | ||||
-rw-r--r-- | heat/tests/openstack/nova/test_server.py | 22 |
2 files changed, 22 insertions, 27 deletions
diff --git a/heat/tests/openstack/nova/test_keypair.py b/heat/tests/openstack/nova/test_keypair.py index 5cd956521..cc412bbd2 100644 --- a/heat/tests/openstack/nova/test_keypair.py +++ b/heat/tests/openstack/nova/test_keypair.py @@ -117,7 +117,7 @@ class NovaKeyPairTest(common.HeatTestCase): self.assertEqual(tp_test.resource_id, created_key.name) self.fake_keypairs.create.assert_called_once_with( name=key_name, public_key=None, type='ssh') - self.cp_mock.assert_called_once_with(version='2.2') + self.cp_mock.assert_called_once_with() def test_create_key_with_user_id(self): key_name = "create_with_user_id" @@ -130,7 +130,7 @@ class NovaKeyPairTest(common.HeatTestCase): self.assertEqual(tp_test.resource_id, created_key.name) self.fake_keypairs.create.assert_called_once_with( name=key_name, public_key=None, user_id='userA_ID') - self.cp_mock.assert_called_once_with(version='2.10') + self.cp_mock.assert_called_once_with() def test_create_key_with_user_and_type(self): key_name = "create_with_user_id_and_type" @@ -145,7 +145,7 @@ class NovaKeyPairTest(common.HeatTestCase): self.fake_keypairs.create.assert_called_once_with( name=key_name, public_key=None, user_id='userA_ID', type='x509') - self.cp_mock.assert_called_once_with(version='2.10') + self.cp_mock.assert_called_once_with() def test_create_key_empty_name(self): """Test creation of a keypair whose name is of length zero.""" @@ -175,7 +175,7 @@ class NovaKeyPairTest(common.HeatTestCase): self.assertIn("kp.properties.name: length (256) is out of " "range (min: 1, max: 255)", six.text_type(error)) - def _test_validate(self, key_type=None, user=None, nc_version=None): + def _test_validate(self, key_type=None, user=None): template = copy.deepcopy(self.kp_template) validate_props = [] if key_type: @@ -187,26 +187,23 @@ class NovaKeyPairTest(common.HeatTestCase): stack = utils.parse_stack(template) definition = stack.t.resource_definitions(stack)['kp'] kp_res = keypair.KeyPair('kp', definition, stack) - self.patchobject(nova.NovaClientPlugin, 'client', - side_effect=exception.InvalidServiceVersion( - service='compute', - version=nc_version - )) - error = self.assertRaises(exception.StackValidationFailed, kp_res.validate) - msg = (('Cannot use "%(prop)s" properties - nova does not support: ' - 'Invalid service compute version %(ver)s') % - {'prop': validate_props, 'ver': nc_version}) + msg = (('Cannot use "%s" properties - nova does not support ' + 'required api microversion.') % validate_props) self.assertIn(msg, six.text_type(error)) def test_validate_key_type(self): - self._test_validate(key_type='x509', nc_version='2.2') + self.patchobject(nova.NovaClientPlugin, 'get_max_microversion', + return_value='2.1') + self._test_validate(key_type='x509') def test_validate_user(self): self.patchobject(keystone.KeystoneClientPlugin, 'get_user_id', return_value='user_A') - self._test_validate(user='user_A', nc_version='2.10') + self.patchobject(nova.NovaClientPlugin, 'get_max_microversion', + return_value='2.1') + self._test_validate(user='user_A') def test_check_key(self): res = self._get_test_resource(self.kp_template) diff --git a/heat/tests/openstack/nova/test_server.py b/heat/tests/openstack/nova/test_server.py index bf80c8a0e..6e73827e2 100644 --- a/heat/tests/openstack/nova/test_server.py +++ b/heat/tests/openstack/nova/test_server.py @@ -417,6 +417,8 @@ class ServersTest(common.HeatTestCase): server_name = 'test_server_create' stack_name = '%s_s' % server_name server = self._create_test_server(return_server, server_name) + self.patchobject(nova.NovaClientPlugin, 'is_version_supported', + return_value=True) # this makes sure the auto increment worked on server creation self.assertGreater(server.id, 0) @@ -484,9 +486,8 @@ class ServersTest(common.HeatTestCase): self.assertEqual(expected_name, server.FnGetAtt('name')) self.assertEqual(['test'], server.FnGetAtt('tags')) # test with unsupported version - server.client = mock.Mock(side_effect=[ - self.fc, - exception.InvalidServiceVersion(service='a', version='0')]) + self.patchobject(nova.NovaClientPlugin, 'is_version_supported', + return_value=False) if server.attributes._resolved_values.get('tags'): del server.attributes._resolved_values['tags'] self.assertIsNone(server.FnGetAtt('tags')) @@ -576,9 +577,7 @@ class ServersTest(common.HeatTestCase): create_mock = self.patchobject(self.fc.servers, 'create', return_value=return_server) scheduler.TaskRunner(server.create)() - mock_nc.assert_has_calls([mock.call(), - mock.call(version='2.37'), - mock.call()]) + mock_nc.assert_called_with() self.assertEqual(3, mock_nc.call_count) self.assertEqual('none', create_mock.call_args[1]['nics']) @@ -1982,7 +1981,8 @@ class ServersTest(common.HeatTestCase): def test_server_get_live_state(self): return_server = self.fc.servers.list()[1] return_server.id = '5678' - + self.patchobject(nova.NovaClientPlugin, 'is_version_supported', + return_value=False) server = self._create_test_server(return_server, 'get_live_state_stack') @@ -3112,10 +3112,8 @@ class ServersTest(common.HeatTestCase): props['tags'] = ['a'] # no need test with key_name props.pop('key_name') - self.patchobject(nova.NovaClientPlugin, 'client', - side_effect=[ - exception.InvalidServiceVersion(service='a', - version='2.26')]) + self.patchobject(nova.NovaClientPlugin, 'is_version_supported', + return_value=False) resource_defns = tmpl.resource_definitions(stack) server = servers.Server('server_create_image_err', resource_defns['WebServer'], stack) @@ -3127,7 +3125,7 @@ class ServersTest(common.HeatTestCase): exc = self.assertRaises(exception.StackValidationFailed, server.validate) self.assertEqual('Cannot use "tags" property - nova does not support ' - 'it: Invalid service a version 2.26', + 'required api microversion.', six.text_type(exc)) def test_server_validate_too_many_personality(self): |