yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #61186
[Bug 1660607] Re: Newton: Changing fixed ip doesn't work when a subnet is using service type
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 <john.davidge@xxxxxxxxxxxxx>
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
References