Faithful dump nova server addresses property

Previously we were selectively dumping nova server's addresses property
in hope the output is similar to that of a 'nova show' command.
Considering that there are other properties which will be required from
the client's perspective, such as IP address version, IP address type
(i.e. 'fixed' vs. 'floating'). We are now faithfully dumping the
addresses content so that users have a chance to make a sane call.

Change-Id: I7f65f4399a9990a6ec781d9dfa0f736623f6ff77
This commit is contained in:
tengqm 2016-08-25 03:50:05 -04:00
parent c853a4e8cb
commit 6303d71386
5 changed files with 38 additions and 23 deletions

View File

@ -99,7 +99,12 @@ from the following command, you will find the IP address for the specific node:
| | +-----------+--------------------------------------+ |
| | | addresses | { | |
| | | | "private": [ | |
| | | | "10.0.0.9" | |
| | | | { | |
| | | | "OS-EXT-IPS-MAC:mac-addr": ... | |
| | | | "OS-EXT-IPS:type": "fixed", | |
| | | | "addr": "10.0.0.9", | |
| | | | "version": 4 | |
| | | | } | |
| | | | ] | |
| | | | } | |
| | | flavor | 1 | |

View File

@ -272,7 +272,7 @@ class LoadBalancerDriver(base.DriverBase):
return None
# Use the first IP address if more than one are found in target network
address = addresses[net_name][0]
address = addresses[net_name][0]['addr']
try:
# FIXME(Yanyan Hu): Currently, Neutron lbaasv2 service can not
# handle concurrent lb member operations well: new member creation

View File

@ -736,14 +736,7 @@ class ServerProfile(base.Profile):
details[key] = val if val else '-'
# process network addresses
details['addresses'] = {}
for net in server_data['addresses']:
addresses = []
for addr in server_data['addresses'][net]:
# Ignore IPv6 address
if addr['version'] == 4:
addresses.append(addr['addr'])
details['addresses'][net] = addresses
details['addresses'] = copy.deepcopy(server_data['addresses'])
# process security groups
sgroups = []

View File

@ -436,8 +436,8 @@ class TestNeutronLBaaSDriver(base.SenlinTestCase):
node_detail = {
'name': 'node-01',
'addresses': {
'network1': ['ipaddr_net1'],
'network2': ['ipaddr_net2']
'network1': [{'addr': 'ipaddr_net1'}],
'network2': [{'addr': 'ipaddr_net2'}]
}
}
node.get_details.return_value = node_detail
@ -493,8 +493,8 @@ class TestNeutronLBaaSDriver(base.SenlinTestCase):
node_detail = {
'name': 'node-01',
'addresses': {
'network1': ['ipaddr_net1'],
'network2': ['ipaddr_net2']
'network1': [{'addr': 'ipaddr_net1'}],
'network2': [{'addr': 'ipaddr_net2'}]
}
}
node.get_details.return_value = node_detail
@ -524,8 +524,8 @@ class TestNeutronLBaaSDriver(base.SenlinTestCase):
node_detail = {
'name': 'node-01',
'addresses': {
'network1': ['ipaddr_net1'],
'network2': ['ipaddr_net2']
'network1': [{'addr': 'ipaddr_net1'}],
'network2': [{'addr': 'ipaddr_net2'}]
}
}
node.get_details.return_value = node_detail
@ -554,8 +554,8 @@ class TestNeutronLBaaSDriver(base.SenlinTestCase):
node_detail = {
'name': 'node-01',
'addresses': {
'network1': ['ipaddr_net1'],
'network2': ['ipaddr_net2']
'network1': [{'addr': 'ipaddr_net1'}],
'network2': [{'addr': 'ipaddr_net2'}]
}
}
node.get_details.return_value = node_detail
@ -582,8 +582,8 @@ class TestNeutronLBaaSDriver(base.SenlinTestCase):
node_detail = {
'name': 'node-01',
'addresses': {
'network1': ['ipaddr_net1'],
'network2': ['ipaddr_net2']
'network1': [{'addr': 'ipaddr_net1'}],
'network2': [{'addr': 'ipaddr_net2'}]
}
}
node.get_details.return_value = node_detail

View File

@ -1221,7 +1221,14 @@ class TestNovaServerProfile(base.SenlinTestCase):
'metadata': {},
'name': 'FAKE_NAME',
'os-extended-volumes:volumes_attached': [],
'addresses': {'private': ['10.0.0.3']},
'addresses': {
'private': [{
'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:5e:00:81',
'version': 4,
'addr': '10.0.0.3',
'OS-EXT-IPS:type': 'fixed'
}]
},
'progress': 0,
'security_groups': 'default',
'updated': 'UPDATE_TIMESTAMP',
@ -1305,8 +1312,18 @@ class TestNovaServerProfile(base.SenlinTestCase):
'id': 'FAKE_ID',
'image': 'FAKE_IMAGE',
'addresses': {
'private': ['10.0.0.3', '192.168.43.3'],
'public': ['172.16.5.3']},
'private': [{
'version': 4,
'addr': '10.0.0.3',
}, {
'version': 4,
'addr': '192.168.43.3'
}],
'public': [{
'version': 4,
'addr': '172.16.5.3',
}]
},
'security_groups': ['default', 'webserver'],
}
self.assertEqual(expected, res)