Example #1
0
def netinfo(vdsmnets=None, compatibility=None):
    # TODO: Version requests by engine to ease handling of compatibility.
    _netinfo = netinfo_get(vdsmnets, compatibility)

    if _is_ovs_service_running():
        try:
            ovs_netinfo = ovs_info.get_netinfo()
        except ne.OvsDBConnectionError:
            _is_ovs_service_running.invalidate()
            raise

        running_networks = RunningConfig().networks
        bridgeless_ovs_nets = [
            net
            for net, attrs in six.iteritems(running_networks)
            if attrs['switch'] == 'ovs' and not attrs['bridged']
        ]
        ovs_info.fake_bridgeless(ovs_netinfo, _netinfo, bridgeless_ovs_nets)

        for type, entries in six.iteritems(ovs_netinfo):
            _netinfo[type].update(entries)

        _set_bond_type_by_usage(_netinfo)

    return _netinfo
Example #2
0
    def test_fake_bridgeless(self):
        fake_running_bridgeless_ovs_networks = {
            TEST_NETWORK, TEST_VLANED_NETWORK}
        test_ovs_netinfo = deepcopy(self.TEST_OVS_NETINFO)
        test_nic_netinfo = {}  # under bonding, should not be touched

        info.fake_bridgeless(test_ovs_netinfo, test_nic_netinfo,
                             fake_running_bridgeless_ovs_networks)

        self.assertEqual(test_ovs_netinfo, self.TEST_BRIDGELESS_NETINFO)
        self.assertEqual(test_nic_netinfo, {})
Example #3
0
    def test_fake_bridgeless(self):
        fake_running_bridgeless_ovs_networks = {
            TEST_NETWORK, TEST_VLANED_NETWORK}
        test_ovs_netinfo = deepcopy(self.TEST_OVS_NETINFO)
        test_kernel_netinfo = deepcopy(self.TEST_KERNEL_NETINFO)

        info.fake_bridgeless(test_ovs_netinfo, test_kernel_netinfo,
                             fake_running_bridgeless_ovs_networks)

        self.assertEqual(test_ovs_netinfo, self.TEST_BRIDGELESS_OVS_NETINFO)
        self.assertEqual(test_kernel_netinfo,
                         self.TEST_BRIDGELESS_KERNEL_NETINFO)
Example #4
0
def netinfo(vdsmnets=None, compatibility=None):
    # TODO: Version requests by engine to ease handling of compatibility.
    _netinfo = netinfo_get(vdsmnets, compatibility)

    if _is_ovs_service_running():
        try:
            ovs_netinfo = ovs_info.get_netinfo()
        except ne.OvsDBConnectionError:
            _is_ovs_service_running.invalidate()
            raise

        running_networks = RunningConfig().networks
        bridgeless_ovs_nets = [
            net for net, attrs in six.iteritems(running_networks)
            if attrs['switch'] == 'ovs' and not attrs['bridged']]
        ovs_info.fake_bridgeless(
            ovs_netinfo, _netinfo, bridgeless_ovs_nets)

        for type, entries in six.iteritems(ovs_netinfo):
            _netinfo[type].update(entries)

        _set_bond_type_by_usage(_netinfo)

    return _netinfo