Sandro Bonazzola has uploaded a new change for review.

Change subject: packaging: setup: bridge: support tagged VLANs and bond
......................................................................

packaging: setup: bridge: support tagged VLANs and bond

Added support for tagged VLANs
Added support for bond interfaces

Change-Id: I0abd18b3ae36265406afb80a1ee082d2d14d4a92
Bug-Url: https://bugzilla.redhat.com/1117634
Bug-Url: https://bugzilla.redhat.com/1111162
Signed-off-by: Sandro Bonazzola <sbona...@redhat.com>
(cherry picked from commit 14baf0901c4503f9473606716386dfa480405f81)
---
M src/plugins/ovirt-hosted-engine-setup/network/bridge.py
1 file changed, 46 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-hosted-engine-setup 
refs/changes/30/29730/1

diff --git a/src/plugins/ovirt-hosted-engine-setup/network/bridge.py 
b/src/plugins/ovirt-hosted-engine-setup/network/bridge.py
index 01b20f8..388d24c 100644
--- a/src/plugins/ovirt-hosted-engine-setup/network/bridge.py
+++ b/src/plugins/ovirt-hosted-engine-setup/network/bridge.py
@@ -194,21 +194,34 @@
     )
     def _misc(self):
         self.logger.info(_('Configuring the management bridge'))
-        nics = self.environment[ohostedcons.NetworkEnv.BRIDGE_IF]
-        iface = nics
-        caps = self.environment[
+        selected = self.environment[ohostedcons.NetworkEnv.BRIDGE_IF]
+        vds_caps = self.environment[
             ohostedcons.VDSMEnv.VDS_CLI
-        ].s.getVdsCapabilities()['info']['nics'][nics]
+        ].s.getVdsCapabilities()['info']
         self.logger.debug(
-            'getVdsCaps for {iface}: {caps}'.format(
-                iface=iface,
-                caps=caps,
+            'getVdsCapabilities for {selected}: {caps}'.format(
+                selected=selected,
+                caps=vds_caps,
             )
         )
+        nics_caps = vds_caps['nics']
+        vlan_caps = vds_caps['vlans']
+        bond_caps = vds_caps['bondings']
+        iface = selected
         bond = ''
-        if netinfo.isbonding(nics):
-            bond = nics
-            nics = ','.join(netinfo.slaves(bond))
+        vlan = ''
+        caps = None
+        if selected in vlan_caps:
+            iface = vlan_caps[selected]['iface']
+            vlan = vlan_caps[selected]['vlanid']
+            caps = vlan_caps[selected]
+        elif netinfo.isbonding(iface):
+            bond = iface
+            iface = ','.join(netinfo.slaves(bond))
+            caps = bond_caps[selected]
+        else:
+            caps = nics_caps[selected]
+
         bridge = self.environment[ohostedcons.NetworkEnv.BRIDGE_NAME]
         cmd = [self.command.get('vdsClient')]
         if self.environment[ohostedcons.VDSMEnv.USE_SSL]:
@@ -217,15 +230,18 @@
             'localhost',
             'addNetwork',
             'bridge=%s' % bridge,
-            'vlan=',
+            'vlan=%s' % vlan,
             'bond=%s' % bond,
-            'nics=%s' % nics,
+            'nics=%s' % iface,
             'force=False',
             'bridged=True',
             'ONBOOT=yes',
         ]
-        boot_proto = caps['cfg']['BOOTPROTO']
-        cmd += ['bootproto=%s' % boot_proto]
+        boot_proto = None
+        if 'BOOTPROTO' in caps['cfg']:
+            boot_proto = caps['cfg']['BOOTPROTO']
+            cmd += ['bootproto=%s' % boot_proto]
+
         if boot_proto in ('dhcp', 'bootp'):
             cmd += [
                 'blockingdhcp=true',
@@ -235,12 +251,27 @@
             cmd += [
                 'ipaddr=%s' % caps['addr'],
                 'netmask=%s' % caps['netmask'],
-                'gateway=%s' % caps['cfg']['GATEWAY'],
             ]
+            if 'GATEWAY' in caps['cfg']:
+                cmd += [
+                    'gateway=%s' % caps['cfg']['GATEWAY'],
+                ]
         self.execute(
             cmd,
             raiseOnError=True
         )
+
+        # TODO: refactor above with vdsmcli API and check if it still works
+        # since previously it got stuck on EL6
+        # from vdsm import vdscli
+        # s = vdscli.connect()
+        # s.setupNetwork(
+        #     {'netname': {'vlan': vlan, 'nic': iface, 'bootproto': boot_proto,
+        #     'blockingdhcp': True},
+        #     {},
+        #     {'connectivityCheck': False}
+        # )
+
         status = self.environment[
             ohostedcons.VDSMEnv.VDS_CLI
         ].s.setSafeNetworkConfig()


-- 
To view, visit http://gerrit.ovirt.org/29730
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0abd18b3ae36265406afb80a1ee082d2d14d4a92
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-hosted-engine-setup
Gerrit-Branch: ovirt-hosted-engine-setup-1.1
Gerrit-Owner: Sandro Bonazzola <sbona...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to