From 86efb1dac224c94ff9888cd7c15e3c3d96519df8 Mon Sep 17 00:00:00 2001 From: zhiyuan_cai Date: Fri, 23 Jan 2015 18:21:17 +0800 Subject: [PATCH] Transform IPAddress to string when creating port If ip address is provided when running nova boot, nova compute will invoke neutron client to create a port. However, the ip address parameter is an IPAddress object so neutron client will fail to send the request to neutron server. Transform IPAddress object to string to address this issue. Conflicts: nova/tests/unit/network/test_neutronv2.py Change-Id: I858cca475748795aa2532f32bfe0f1443b30966f Closes-Bug: #1408529 (cherry picked from commit aae858a246e20b1bf55004517b5d9ab28968190a) --- nova/network/neutronv2/api.py | 3 ++- nova/tests/network/test_neutronv2.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/nova/network/neutronv2/api.py b/nova/network/neutronv2/api.py index 536babfecf93..8d4d517e0dab 100644 --- a/nova/network/neutronv2/api.py +++ b/nova/network/neutronv2/api.py @@ -197,7 +197,8 @@ class API(base_api.NetworkAPI): """ try: if fixed_ip: - port_req_body['port']['fixed_ips'] = [{'ip_address': fixed_ip}] + port_req_body['port']['fixed_ips'] = [ + {'ip_address': str(fixed_ip)}] port_req_body['port']['network_id'] = network_id port_req_body['port']['admin_state_up'] = True port_req_body['port']['tenant_id'] = instance['project_id'] diff --git a/nova/tests/network/test_neutronv2.py b/nova/tests/network/test_neutronv2.py index b09f59a93048..59d5e1ba6a4b 100644 --- a/nova/tests/network/test_neutronv2.py +++ b/nova/tests/network/test_neutronv2.py @@ -498,8 +498,8 @@ class TestNeutronv2Base(test.TestCase): else: request.address = fixed_ips.get(request.network_id) if request.address: - port_req_body['port']['fixed_ips'] = [{'ip_address': - request.address}] + port_req_body['port']['fixed_ips'] = [ + {'ip_address': str(request.address)}] port_req_body['port']['network_id'] = request.network_id port_req_body['port']['admin_state_up'] = True port_req_body['port']['tenant_id'] = \