Petr Horáček has uploaded a new change for review.

Change subject: ovs: hook: fake bridgeless networks
......................................................................

ovs: hook: fake bridgeless networks

Engine expects Display networks to be bridgeless. We can't create
bridgeless networks in OVS, but we can create them bridged and then lie
about them to engine.

Change-Id: Ia8d076a1181adc6910be13a1f7560018d3eeaa07
Signed-off-by: Petr Horáček <phora...@redhat.com>
---
M vdsm_hooks/ovs/ovs_after_get_caps.py
M vdsm_hooks/ovs/ovs_before_network_setup_ovs.py
2 files changed, 15 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/66/55066/1

diff --git a/vdsm_hooks/ovs/ovs_after_get_caps.py 
b/vdsm_hooks/ovs/ovs_after_get_caps.py
index b7172f3..b5c38db 100755
--- a/vdsm_hooks/ovs/ovs_after_get_caps.py
+++ b/vdsm_hooks/ovs/ovs_after_get_caps.py
@@ -96,7 +96,9 @@
         interface = network if 'vlan' in attrs else BRIDGE_NAME
         net_info = _get_net_info(interface, routes)
         net_info['iface'] = network
-        net_info['bridged'] = True
+        # if Engine expects network to be bridgeless (for Display network
+        # purposes), report it as bridgeless
+        net_info['bridged'] = attrs.get('bridged')
         net_info['ports'] = _get_ports(network, attrs)
         net_info['stp'] = _get_stp(interface)
         ovs_networks_caps[network] = net_info
@@ -107,14 +109,18 @@
     ovs_bridges_caps = {}
     routes = netinfo_routes.get_routes()
     for network, attrs in iter_ovs_nets(running_config.networks):
-        interface = network if 'vlan' in attrs else BRIDGE_NAME
-        net_info = _get_net_info(interface, routes)
-        net_info['bridged'] = True
-        net_info['ports'] = _get_ports(network, attrs)
-        # TODO netinfo._bridge_options does not work here
-        net_info['opts'] = {}
-        net_info['stp'] = _get_stp(interface)
-        ovs_bridges_caps[network] = net_info
+        bridged = attrs.get('bridged')
+        # if Engine expects network to be bridgeless (for Display network
+        # purposes), do not report its bridge
+        if bridged:
+            interface = network if 'vlan' in attrs else BRIDGE_NAME
+            net_info = _get_net_info(interface, routes)
+            net_info['bridged'] = bridged
+            net_info['ports'] = _get_ports(network, attrs)
+            # TODO netinfo._bridge_options does not work here
+            net_info['opts'] = {}
+            net_info['stp'] = _get_stp(interface)
+            ovs_bridges_caps[network] = net_info
     return ovs_bridges_caps
 
 
diff --git a/vdsm_hooks/ovs/ovs_before_network_setup_ovs.py 
b/vdsm_hooks/ovs/ovs_before_network_setup_ovs.py
index 8b995f3..e5458af 100644
--- a/vdsm_hooks/ovs/ovs_before_network_setup_ovs.py
+++ b/vdsm_hooks/ovs/ovs_before_network_setup_ovs.py
@@ -186,11 +186,8 @@
     nic = attrs.get('nic')
     bonding = attrs.get('bonding')
     vlan = attrs.get('vlan')
-    bridged = attrs.get('bridged', True)
     stp = attrs.get('stp', False)
 
-    if not bridged:
-        raise Exception('OVS does not support bridgeless networks')
     if bonding in running_config.bonds:
         if not is_ovs_bond(running_config.bonds[bonding]):
             raise Exception('%s is not OVS bonding' % bonding)


-- 
To view, visit https://gerrit.ovirt.org/55066
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia8d076a1181adc6910be13a1f7560018d3eeaa07
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Petr Horáček <phora...@redhat.com>
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to