← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1374663] Re: agent/linux/ip_lib.py does not correctly handle output from 'iproute2' command

 

** Changed in: neutron
       Status: Fix Committed => Fix Released

** Changed in: neutron
    Milestone: None => kilo-3

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1374663

Title:
  agent/linux/ip_lib.py does not correctly handle output from 'iproute2'
  command

Status in OpenStack Neutron (virtual network service):
  Fix Released

Bug description:
  The get_devices() method in neutron/agent/linux/ip_lib.py chokes if
  'iproute2' presents interface names containing '@', such as ipip
  tunnels:

      513: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
          link/ipip 0.0.0.0 brd 0.0.0.0

  And macvlan devices:

      4: clone@eth0: <BROADCAST,MULTICAST> mtu 1454 qdisc noop state DOWN mode DEFAULT group default 
          link/ether c6:dd:66:a5:f6:5c brd ff:ff:ff:ff:ff:ff

  Consider the follow sample code:

      from neutron.agent.linux.ip_lib import IPWrapper

      ip = IPWrapper()
      for iface in ip.get_devices():
          print iface.name, iface.addr.list()

  The mere presence of one of the above interface names will cause the
  code to fail with:

      RuntimeError: 
      Command: ['ip', 'addr', 'show', 'tunl0@NONE']
      Exit code: 1
      Stdout: ''
      Stderr: 'Device "tunl0@NONE" does not exist.\n'

  This can cause failures in, e.g.,
  neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py, which
  performs almost exactly the same iteration in the
  get_interface_by_ip() method.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1374663/+subscriptions


References