Fix node show detail image id error
This patch fix if image is not in server boot,Node detail return dict Closes-Bug:#1662053 Change-Id: I5bbabf1f5be000000a960df1df0279992ab75683
This commit is contained in:
parent
5bd1c2fffb
commit
fa6252d9d3
|
@ -1006,8 +1006,12 @@ class ServerProfile(base.Profile):
|
||||||
if server is None:
|
if server is None:
|
||||||
return {}
|
return {}
|
||||||
server_data = server.to_dict()
|
server_data = server.to_dict()
|
||||||
|
if 'id' in server_data['image']:
|
||||||
|
image_id = server_data['image']['id']
|
||||||
|
else:
|
||||||
|
image_id = server_data['image']
|
||||||
details = {
|
details = {
|
||||||
'image': server_data['image']['id'],
|
'image': image_id,
|
||||||
'flavor': server_data['flavor']['id'],
|
'flavor': server_data['flavor']['id'],
|
||||||
}
|
}
|
||||||
for key in known_keys:
|
for key in known_keys:
|
||||||
|
|
|
@ -723,6 +723,45 @@ class TestNovaServerBasic(base.SenlinTestCase):
|
||||||
self.assertEqual(expected, res)
|
self.assertEqual(expected, res)
|
||||||
cc.server_get.assert_called_once_with('FAKE_ID')
|
cc.server_get.assert_called_once_with('FAKE_ID')
|
||||||
|
|
||||||
|
def test_do_get_details_image_no_id_key(self):
|
||||||
|
cc = mock.Mock()
|
||||||
|
profile = server.ServerProfile('t', self.spec)
|
||||||
|
profile._computeclient = cc
|
||||||
|
node_obj = mock.Mock(physical_id='FAKE_ID')
|
||||||
|
|
||||||
|
# Test normal path
|
||||||
|
nova_server = mock.Mock()
|
||||||
|
nova_server.to_dict.return_value = {
|
||||||
|
'addresses': {
|
||||||
|
'private': [{
|
||||||
|
'version': 4,
|
||||||
|
'addr': '10.0.0.3',
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
'flavor': {
|
||||||
|
'id': 'FAKE_FLAVOR',
|
||||||
|
},
|
||||||
|
'id': 'FAKE_ID',
|
||||||
|
'image': {},
|
||||||
|
'security_groups': [{'name': 'default'}],
|
||||||
|
}
|
||||||
|
cc.server_get.return_value = nova_server
|
||||||
|
res = profile.do_get_details(node_obj)
|
||||||
|
expected = {
|
||||||
|
'flavor': 'FAKE_FLAVOR',
|
||||||
|
'id': 'FAKE_ID',
|
||||||
|
'image': {},
|
||||||
|
'addresses': {
|
||||||
|
'private': [{
|
||||||
|
'version': 4,
|
||||||
|
'addr': '10.0.0.3',
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
'security_groups': 'default',
|
||||||
|
}
|
||||||
|
self.assertEqual(expected, res)
|
||||||
|
cc.server_get.assert_called_once_with('FAKE_ID')
|
||||||
|
|
||||||
def test_do_get_details_with_more_network_or_sg(self):
|
def test_do_get_details_with_more_network_or_sg(self):
|
||||||
cc = mock.Mock()
|
cc = mock.Mock()
|
||||||
profile = server.ServerProfile('t', self.spec)
|
profile = server.ServerProfile('t', self.spec)
|
||||||
|
|
Loading…
Reference in New Issue