← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1663045] Re: Arch distro fails to write network config with empty dns-nameservers

 

This bug is believed to be fixed in cloud-init in 17.1. If this is still
a problem for you, please make a comment and set the state back to New

Thank you.

** Changed in: cloud-init
       Status: Fix Committed => Fix Released

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

Title:
  Arch distro fails to write network config with empty dns-nameservers

Status in cloud-init:
  Fix Released

Bug description:
  In distros/arch.py, the network configuration is created using

  'DNS': str(tuple(info.get('dns-nameservers'))).replace(',', '')

  However, when dns-nameservers is None, this causes both cloud-init and
  cloud-init-local to fail with

  failed run of stage init-local
  ------------------------------------------------------------
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 513, in status_wrap
      ret = functor(name, args)
    File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 254, in main_init
      init.apply_network_config(bring_up=not args.local)
    File "/usr/lib/python2.7/site-packages/cloudinit/stages.py", line 641, in apply_network
      return self.distro.apply_network_config(netcfg, bring_up=bring_up)
    File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 154, in app
      netconfig, bring_up=bring_up)
    File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 143, in _ap
      return self.apply_network(contents, bring_up=bring_up)
    File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 125, in app
      dev_names = self._write_network(settings)
    File "/usr/lib/python2.7/site-packages/cloudinit/distros/arch.py", line 67, in _write_n
      'DNS': str(tuple(info.get('dns-nameservers'))).replace(',', '')
  TypeError: 'NoneType' object is not iterable
  ------------------------------------------------------------

  The fix proposed in
  https://bbs.archlinux.org/viewtopic.php?pid=1662566#p1662566 seems to
  work for me, namely replacing the line with

  'DNS': str(tuple(info.get('dns-nameservers'))).replace(',', '') if
  info.get('dns-nameservers') != None else None

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1663045/+subscriptions


References