← Back to team overview

yahoo-eng-team team mailing list archive

[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