Do not treat empty key_name as None
When running instance, empty ("") key_name is treated as None and keypair lookup does not happen. However, empty string is written to key_name field in instance's database record. When horizon renders instance info, it looks up keypair if key_name is not None. Having empty string in this property generates error and instance info is not displayed. Change-Id: Ib67b124e6480f3435d31c983f1bfca769899c8e7 Closes-Bug: #1403544
This commit is contained in:
parent
4f59f773e4
commit
2ad3009f35
@ -822,7 +822,7 @@ class API(base.Base):
|
|||||||
|
|
||||||
config_drive = self._check_config_drive(config_drive)
|
config_drive = self._check_config_drive(config_drive)
|
||||||
|
|
||||||
if key_data is None and key_name:
|
if key_data is None and key_name is not None:
|
||||||
key_pair = objects.KeyPair.get_by_name(context,
|
key_pair = objects.KeyPair.get_by_name(context,
|
||||||
context.user_id,
|
context.user_id,
|
||||||
key_name)
|
key_name)
|
||||||
|
@ -2289,6 +2289,15 @@ class ServersControllerCreateTest(test.TestCase):
|
|||||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
self.controller.create, self.req, self.body)
|
self.controller.create, self.req, self.body)
|
||||||
|
|
||||||
|
@mock.patch('nova.compute.api.API.create',
|
||||||
|
side_effect=exception.KeypairNotFound(name='',
|
||||||
|
user_id=1))
|
||||||
|
def test_create_instance_empty_key_name(self, mock_create):
|
||||||
|
self.body['server']['key_name'] = ''
|
||||||
|
self.req.body = jsonutils.dumps(self.body)
|
||||||
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
|
self.controller.create, self.req, self.body)
|
||||||
|
|
||||||
def test_create_instance_valid_key_name(self):
|
def test_create_instance_valid_key_name(self):
|
||||||
self.body['server']['key_name'] = 'key'
|
self.body['server']['key_name'] = 'key'
|
||||||
self.req.body = jsonutils.dumps(self.body)
|
self.req.body = jsonutils.dumps(self.body)
|
||||||
|
Loading…
Reference in New Issue
Block a user