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