Bug 1442783

Summary: Backport required - cloud-init fails with "Unknown network_data link type: dvs"
Product: Red Hat Enterprise Linux 7 Reporter: Andreas Karis <akaris>
Component: cloud-initAssignee: Lars Kellogg-Stedman <lars>
Status: CLOSED ERRATA QA Contact: Vratislav Hutsky <vhutsky>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: akaris, aschultz, huzhao, lars, mbracho, mburns, rhel-osp-director-maint, vhutsky, yacao
Target Milestone: pre-dev-freezeKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: cloud-init-0.7.9-6.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 23:23:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andreas Karis 2017-04-17 13:49:01 UTC
Description of problem:
Backport required - cloud-init fails with "Unknown network_data link type: dvs"

From
https://bugs.launchpad.net/cloud-init/+bug/1674946

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"
When a config drive provides network_data.json on Openstack running on
ESXi cloud-init will fail to configure networking.

Console log and /var/log/cloud-init.log will show:
 ValueError: Unknown network_data link type: hyperv

This woudl also occur when the type of the network device as declared
to cloud-init was 'hw_veb', 'hyperv', or 'vhostuser'.

[Test Case]
Launch an instance with config drive on hyperv cloud.

[Regression Potential]
Low to none. cloud-init is relaxing requirements and will accept things
now that it previously complained were invalid.

This is very similar to change in bug 1642679.
Upstream Openstack Merge proposal to stop this from continually
happening at https://review.openstack.org/#/c/400883/
=== End SRU Template ===

When booting an OpenStack instance, cloud-init fails with:

[ 33.307325] cloud-init[445]: Cloud-init v. 0.7.9 running 'init-local' at Mon, 20 Mar 2017 14:42:58 +0000. Up 31.06 seconds.
[ 33.368434] cloud-init[445]: 2017-03-20 14:43:00,779 - util.py[WARNING]: failed stage init-local
[ 33.449886] cloud-init[445]: failed run of stage init-local
[ 33.490863] cloud-init[445]: ------------------------------------------------------------
[ 33.542214] cloud-init[445]: Traceback (most recent call last):
[ 33.585204] cloud-init[445]: File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 513, in status_wrapper
[ 33.654579] cloud-init[445]: ret = functor(name, args)
[ 33.696372] cloud-init[445]: File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 269, in main_init
[ 33.755593] cloud-init[445]: init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL))
[ 33.809124] cloud-init[445]: File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 622, in apply_network_config
[ 33.847161] cloud-init[445]: netcfg, src = self._find_networking_config()
[ 33.876562] cloud-init[445]: File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 609, in _find_networking_config
[ 33.916335] cloud-init[445]: if self.datasource and hasattr(self.datasource, 'network_config'):
[ 33.956207] cloud-init[445]: File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceConfigDrive.py", line 147, in network_config
[ 34.008213] cloud-init[445]: self.network_json, known_macs=self.known_macs)
[ 34.049714] cloud-init[445]: File "/usr/lib/python3/dist-packages/cloudinit/sources/helpers/openstack.py", line 627, in convert_net_json
[ 34.104226] cloud-init[445]: 'Unknown network_data link type: %s' % link['type'])
[ 34.144219] cloud-init[445]: ValueError: Unknown network_data link type: dvs
[ 34.175934] cloud-init[445]: ------------------------------------------------------------

I am using Neutron with the Simple DVS plugin.

Related bugs:
 * bug 1674946: cloud-init fails with "Unknown network_data link type: dvs
 * bug 1642679: OpenStack network_config.json implementation fails on Hyper-V compute nodes
"

Comment 1 Andreas Karis 2017-04-17 13:58:21 UTC
https://git.launchpad.net/cloud-init/commit/?id=61eb03fef92f435434d974fb46439189ef0b5f97

diff --git a/cloudinit/sources/helpers/openstack.py b/cloudinit/sources/helpers/openstack.py
index 096062d..61cd36b 100644
--- a/cloudinit/sources/helpers/openstack.py
+++ b/cloudinit/sources/helpers/openstack.py
@@ -52,6 +52,7 @@ OS_VERSIONS = (
 PHYSICAL_TYPES = (
     None,
     'bridge',
+    'dvs',
     'ethernet',
     'hw_veb',
     'hyperv',

Comment 2 Andreas Karis 2017-04-17 14:29:17 UTC
[root@overcloud-controller-0 ~]# cp /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py.back
[root@overcloud-controller-0 ~]# vi /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py
[root@overcloud-controller-0 ~]# diff -c /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py.back /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py
*** /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py.back	2017-04-17 14:27:47.505779173 +0000
--- /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/openstack.py	2017-04-17 14:28:02.900715688 +0000
***************
*** 52,57 ****
--- 52,58 ----
  PHYSICAL_TYPES = (
      None,
      'bridge',
+     'dvs',
      'ethernet',
      'hw_veb',
      'hyperv',
~~~

Comment 5 Andreas Karis 2017-04-25 21:52:52 UTC
Hi,

Can we do something to speed up the downstream merge and possibly get the customer a hotfix RPM?

- Andreas

Comment 15 errata-xmlrpc 2017-08-01 23:23:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2017:2275