Skip to content

Commit

Permalink
Do not allow updating ip address on a port
Browse files Browse the repository at this point in the history
Change-Id: I6fa23f8d1338dae105e5cf0d6ac7eec227f12b27
Closes-Bug: 1526260
  • Loading branch information
Sachin Bansal committed Mar 30, 2016
1 parent e3fad01 commit f7a5b57
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions src/config/vnc_openstack/vnc_openstack/neutron_plugin_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -1856,17 +1856,21 @@ def _port_neutron_to_vnc(self, port_q, net_obj, oper):
instance_ip_id=ip_back_ref['uuid'])
except NoIdError:
continue
port_obj_ips.append(ip_obj.get_instance_ip_address())
port_obj_ips.append(ip_obj.get_instance_ip_address())
ip_addr = fixed_ip['ip_address']
if ip_addr in port_obj_ips:
continue
if oper == UPDATE:
self._raise_contrail_exception(
'BadRequest', resource='port',
msg='Fixed ip cannot be updated on a port')
if self._ip_addr_in_net_id(ip_addr, net_id):
self._raise_contrail_exception(
'IpAddressInUse', net_id=net_id,
ip_address=ip_addr)

return port_obj
#end _port_neutron_to_vnc
# end _port_neutron_to_vnc

def _gw_port_vnc_to_neutron(self, port_obj, port_req_memo):
vm_refs = port_obj.get_virtual_machine_refs()
Expand Down Expand Up @@ -3621,7 +3625,7 @@ def port_create(self, context, port_q):
net_obj, port_obj)

return ret_port_q
#end port_create
# end port_create

# TODO add obj param and let caller use below only as a converter
@wait_for_api_server_connection
Expand All @@ -3634,7 +3638,7 @@ def port_read(self, port_id):
ret_port_q = self._port_vnc_to_neutron(port_obj)

return ret_port_q
#end port_read
# end port_read

@wait_for_api_server_connection
def port_update(self, port_id, port_q):
Expand All @@ -3646,16 +3650,11 @@ def port_update(self, port_id, port_q):
net_id = port_obj.get_virtual_network_refs()[0]['uuid']
net_obj = self._network_read(net_id)
self._virtual_machine_interface_update(port_obj)
try:
self._port_create_instance_ip(net_obj, port_obj, port_q)
except vnc_exc.HttpError:
self._raise_contrail_exception('IpAddressGenerationFailure',
net_id=net_obj.uuid)
port_obj = self._virtual_machine_interface_read(port_id=port_id)
ret_port_q = self._port_vnc_to_neutron(port_obj)

return ret_port_q
#end port_update
# end port_update

@wait_for_api_server_connection
def port_delete(self, port_id):
Expand Down

0 comments on commit f7a5b57

Please sign in to comment.