def _get_test_resource(self, template): self.stack = utils.parse_stack(template) definition = self.stack.t.resource_definitions(self.stack)['kp'] kp_res = keypair.KeyPair('kp', definition, self.stack) self.m.StubOutWithMock(nova.NovaClientPlugin, '_create') nova.NovaClientPlugin._create().AndReturn(self.fake_nova) return kp_res
def _get_test_resource(self, template): self.stack = utils.parse_stack(template) definition = self.stack.t.resource_definitions(self.stack)['kp'] kp_res = keypair.KeyPair('kp', definition, self.stack) self.patchobject(nova.NovaClientPlugin, '_create', return_value=self.fake_nova) return kp_res
def _test_validate(self, key_type=None, user=None, nc_version=None): template = copy.deepcopy(self.kp_template) validate_props = [] if key_type: template['resources']['kp']['properties']['type'] = key_type validate_props.append('type') if user: template['resources']['kp']['properties']['user'] = user validate_props.append('user') stack = utils.parse_stack(template) definition = stack.t.resource_definitions(stack)['kp'] kp_res = keypair.KeyPair('kp', definition, stack) self.patchobject(nova.NovaClientPlugin, '_create', 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 }) self.assertIn(msg, six.text_type(error))
def test_create_key_excess_name_length(self): """Test creation of a keypair whose name is of excess length.""" key_name = 'k' * 256 template = copy.deepcopy(self.kp_template) template['resources']['kp']['properties']['name'] = key_name stack = utils.parse_stack(template) definition = stack.t.resource_definitions(stack)['kp'] kp_res = keypair.KeyPair('kp', definition, stack) error = self.assertRaises(exception.StackValidationFailed, kp_res.validate) self.assertIn("Property error", six.text_type(error)) self.assertIn("kp.properties.name: length (256) is out of " "range (min: 1, max: 255)", six.text_type(error))
def test_validate(self): template = copy.deepcopy(self.kp_template) template['resources']['kp']['properties']['type'] = 'x509' stack = utils.parse_stack(template) definition = stack.t.resource_definitions(stack)['kp'] kp_res = keypair.KeyPair('kp', definition, stack) self.patchobject(nova.NovaClientPlugin, '_create', side_effect=exception.InvalidServiceVersion( service='compute', version='2.2')) error = self.assertRaises(exception.StackValidationFailed, kp_res.validate) self.assertIn( 'Cannot use "type" property - nova does not support it: ' 'Invalid service compute version 2.2', six.text_type(error))
def _test_validate(self, key_type=None, user=None): template = copy.deepcopy(self.kp_template) validate_props = [] if key_type: template['resources']['kp']['properties']['type'] = key_type validate_props.append('type') if user: template['resources']['kp']['properties']['user'] = user validate_props.append('user') stack = utils.parse_stack(template) definition = stack.t.resource_definitions(stack)['kp'] kp_res = keypair.KeyPair('kp', definition, stack) error = self.assertRaises(exception.StackValidationFailed, kp_res.validate) msg = (('Cannot use "%s" properties - nova does not support ' 'required api microversion.') % validate_props) self.assertIn(msg, six.text_type(error))
def _get_test_resource(self, template): self.stack = utils.parse_stack(template) definition = self.stack.t.resource_definitions(self.stack)['kp'] kp_res = keypair.KeyPair('kp', definition, self.stack) return kp_res