Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
    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))
Esempio n. 4
0
 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))
Esempio n. 5
0
    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))
Esempio n. 6
0
 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))
Esempio n. 7
0
 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