Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1037533

Summary: vds_boostrap from rhev-3.0 would fail to add a fresh host when VLAN is defined on top of its NIC
Product: Red Hat Enterprise Virtualization Manager Reporter: Dan Kenigsberg <danken>
Component: vdsmAssignee: Dan Kenigsberg <danken>
Status: CLOSED ERRATA QA Contact: Martin Pavlik <mpavlik>
Severity: high Docs Contact:
Priority: high    
Version: 3.3.0CC: abaron, acathrow, bazulay, bs, gklein, iheim, lpeer, mgoldboi, myakove, sherold, yeylon
Target Milestone: ---   
Target Release: 3.3.0   
Hardware: x86_64   
OS: Linux   
Whiteboard: network
Fixed In Version: is28 Doc Type: Bug Fix
Doc Text:
vds_bootstrap, that is still deployed on version 3.0 setups, expects netinfo.getVlanID to return strings, when it now returns integers. This update uses vdsm_compat/netinfo to convert the integers to strings, so vds_bootstrap can successfully add hosts when a VLAN is defined on top of its NIC.
Story Points: ---
Clone Of: 1037277 Environment:
Last Closed: 2014-01-21 16:25:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1037277    
Bug Blocks: 1049022    

Description Dan Kenigsberg 2013-12-03 10:36:57 UTC
+++ This bug was initially created as a clone of Bug #1037277 +++

Description of problem:
The Node isn't registred in "oVirt Engine" when the network interface card is created with VLAN

Version-Release number of selected component (if applicable):
oVirt Node Hypervisor 3.0.3-1.0.0.fc19

How reproducible:


Steps to Reproduce:
1. Create NIC with VLAN ID.
2. Try Registry Node on oVirt Engine
3.

Actual results:

MainThread::DEBUG::2013-11-28 02:48:30,711::deployUtil::483::root::Bridge ovirtmgmt not found, need to create it.
MainThread::DEBUG::2013-11-28 02:48:30,711::vdsm-reg-setup::80::root::renameBridge begin.
MainThread::DEBUG::2013-11-28 02:48:30,711::deployUtil::1011::root::makeBridge begin.
MainThread::DEBUG::2013-11-28 02:48:30,713::deployUtil::434::root::_getMGTIface: read host name: 172.16.36.240
MainThread::DEBUG::2013-11-28 02:48:30,714::deployUtil::442::root::_getMGTIface: using host name 172.16.36.240 strIP= 172.16.36.240
MainThread::DEBUG::2013-11-28 02:48:30,714::deployUtil::449::root::_getMGTIface IP=172.16.36.240 strIface=eno1.994
MainThread::DEBUG::2013-11-28 02:48:30,715::deployUtil::1055::root::makeBridge found the following bridge paramaters: ['GATEWAY=172.16.36.225', 'IPADDR=172.16.36.226', 'NETMASK=255.255.255.224', 'ONBOOT=yes', 'PEERDNS=no', 'PEERNTP=yes', 'VLAN=yes']
MainThread::DEBUG::2013-11-28 02:48:30,716::utils::489::root::'/sbin/ip -d link show dev eno1.994' (cwd None)
MainThread::DEBUG::2013-11-28 02:48:30,720::utils::509::root::SUCCESS: <err> = ''; <rc> = 0
MainThread::DEBUG::2013-11-28 02:48:30,721::utils::489::root::'/sbin/ip -d link show dev eno1.994' (cwd None)
MainThread::DEBUG::2013-11-28 02:48:30,725::utils::509::root::SUCCESS: <err> = ''; <rc> = 0
MainThread::DEBUG::2013-11-28 02:48:30,725::deployUtil::136::root::['/usr/share/vdsm/addNetwork', 'ovirtmgmt', 994, '', 'eno1', 'GATEWAY=172.16.36.225', 'IPADDR=172.16.36.226', 'NETMASK=255.255.255.224', 'ONBOOT=yes', 'PEERDNS=no', 'PEERNTP=yes', 'VLAN=yes', 'blockingdhcp=true']
MainThread::ERROR::2013-11-28 02:48:30,730::deployUtil::148::root::Traceback (most recent call last):
  File "/usr/share/vdsm-reg/deployUtil.py", line 142, in _logExec
    stderr=subprocess.PIPE)
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
  File "/usr/lib64/python2.7/subprocess.py", line 1308, in _execute_child
TypeError: execv() arg 2 must contain only strings

MainThread::DEBUG::2013-11-28 02:48:30,731::deployUtil::1123::root::makeBridge return.

Expected results:


Additional info:
Patch for vdsm/vdsm_reg/deployUtil.py.in

--- deployUtil.py.in.orig	2013-12-03 06:42:34.708153698 +0400
+++ deployUtil.py.in	2013-12-03 06:48:59.605720754 +0400
@@ -1061,6 +1061,7 @@
         else:
             vlan, bonding, nic = _getRHELBridgeParams(mgtIface,
                                                       bridgeName=bridgeName)
+        vlan = str(vlan)
         fReturn = (nic is not None)
 
     #Delete existing bridge in oVirt

--- Additional comment from Vladimir Tananko on 2013-12-03 06:09:53 IST ---

Version-Release number:
ovirt-node-plugin-vdsm-0.1.1-7.fc19.noarch

--- Additional comment from Dan Kenigsberg on 2013-12-03 12:19:02 IST ---

Thanks for this report and the accompanying patch.

We have a more problematic case if someone attempts to use the pre-otopi bootstrap code, which may already be installed on his old ovirt-engine. That code expoect netinfo to return vlan ids as strings.

The latter point may be an issue for existing rhev-3.0 setups, with ancient vds_bootstrap code, needing to add a new host that carries new netinfo.

Comment 2 errata-xmlrpc 2014-01-21 16:25:25 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.

http://rhn.redhat.com/errata/RHBA-2014-0040.html