Reviewed: https://review.openstack.org/427223 Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b61b630f0b8e620b218a29d72a250382e07055c1 Submitter: Jenkins Branch: master
commit b61b630f0b8e620b218a29d72a250382e07055c1 Author: John Davidge <[email protected]> Date: Tue Jan 31 13:49:21 2017 +0000 Fix port update for service subnets Updating a port's fixed_ips will currently fail for a subnet that has a service type, regardless of whether the port has a matching device_owner. This is because _update_ips_for_port in ipam_pluggable_backend.py does not take the device_owner into account when calling _ipam_get_subnets. This patch fixes the bug by passing the port's device_owner to _ipam_get_subnets in _update_ips_for_port, and includes a new unit test to prevent future regressions. Change-Id: I09ac773ae27eebe104d5c39e1e8863c02880f85d Closes-Bug: #1660607 ** Changed in: neutron Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1660607 Title: Newton: Changing fixed ip doesn't work when a subnet is using service type Status in neutron: Fix Released Bug description: Running newton on openstack ansible 14.0.7. I have a single flat network that has couples of subnets. One of the subnets is marked with service type compute:nova. # openstack subnet set 02796f77-3aac-4700-acec-0d4d38d90124 --service- type compute:nova # openstack subnet show 02796f77-3aac-4700-acec-0d4d38d90124 +-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | allocation_pools | 192.168.40.2-192.168.40.100 | | cidr | 192.168.40.0/24 | | created_at | 2017-01-31T09:28:40Z | | description | | | dns_nameservers | 8.8.4.4, 8.8.8.8 | | enable_dhcp | True | | gateway_ip | 192.168.40.1 | | host_routes | | | id | 02796f77-3aac-4700-acec-0d4d38d90124 | | ip_version | 4 | | ipv6_address_mode | None | | ipv6_ra_mode | None | | name | subnet3 | | network_id | 8809d741-93aa-4536-8237-b82e42c36e45 | | project_id | 52ba70f81dc14f60b744074333dbb31e | | revision_number | 4 | | segment_id | None | | service_types | compute:nova | | subnetpool_id | None | | updated_at | 2017-01-31T10:36:28Z | +-------------------+--------------------------------------+ I have a port that I want to assign an address from this specific subnet. # openstack port show ef1c8ffd-574b-4a11-a738-e594fb5e3057 +-----------------------+-----------------------------------------------------------------------------+ | Field | Value | +-----------------------+-----------------------------------------------------------------------------+ | admin_state_up | UP | | allowed_address_pairs | | | binding_host_id | ubuntu | | binding_profile | | | binding_vif_details | port_filter='True' | | binding_vif_type | bridge | | binding_vnic_type | normal | | created_at | 2017-01-31T10:44:19Z | | description | | | device_id | bf8d134b-255e-44a8-9619-ab0ad9a5695f | | device_owner | compute:nova | | dns_assignment | None | | dns_name | None | | extra_dhcp_opts | | | fixed_ips | ip_address='192.168.30.8', subnet_id='afd2cea7-bacf-484e-9b45-7f112987f456' | | id | ef1c8ffd-574b-4a11-a738-e594fb5e3057 | | ip_address | None | | mac_address | fa:16:3e:f8:82:0e | | name | | | network_id | 8809d741-93aa-4536-8237-b82e42c36e45 | | option_name | None | | option_value | None | | port_security_enabled | True | | project_id | a65a060ae1b145ee935763628c033bb5 | | qos_policy_id | None | | revision_number | 9 | | security_groups | ca119a04-3380-443b-a64a-ec79236e5c2c | | status | ACTIVE | | subnet_id | None | | updated_at | 2017-01-31T10:44:35Z | +-----------------------+-----------------------------------------------------------------------------+ # openstack port set ef1c8ffd-574b-4a11-a738-e594fb5e3057 --no-fixed- ip --fixed-ip subnet=02796f77-3aac-4700-acec-0d4d38d90124,ip- address=192.168.40.4 HttpException: Bad Request, Invalid input for operation: Failed to create port on network 8809d741-93aa-4536-8237-b82e42c36e45, because fixed_ips included invalid subnet 02796f77-3aac-4700-acec- 0d4d38d90124. Neutron server returns the error: update failed (client error): The server could not comply with the request since it is either malformed or otherwise incorrect. Works fine if I delete the service type flag. # openstack subnet unset 02796f77-3aac-4700-acec-0d4d38d90124 --service-type compute:nova # openstack port set ef1c8ffd-574b-4a11-a738-e594fb5e3057 --no-fixed-ip --fixed-ip subnet=02796f77-3aac-4700-acec-0d4d38d90124,ip-address=192.168.40.4 # openstack --version openstack 3.8.0 # (neutron-14.0.7) root@ctrl1-neutron-server-container-f7bca181:~# pip list| grep neutron neutron (9.1.2.dev96) neutron-lib (0.4.0) python-neutronclient (6.0.0) To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1660607/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

