def _del_broken_network(network, netAttr, configurator): """ Adapts the network information of broken networks so that they can be deleted via _del_network. """ iface = get_net_iface_from_config(network, netAttr) _netinfo = CachingNetInfo() _netinfo.networks[network] = {} _netinfo.networks[network]['iface'] = iface _netinfo.networks[network]['bridged'] = netAttr['bridged'] _netinfo.networks[network]['dhcpv4'] = False if _netinfo.networks[network]['bridged']: try: nets = configurator.runningConfig.networks except AttributeError: nets = {} # ifcfg does not need net definitions _netinfo.networks[network]['ports'] = _persistence.configuredPorts( nets, network) elif not os.path.exists('/sys/class/net/' + iface): # Bridgeless broken network without underlying device configurator.runningConfig.removeNetwork(network) return canonicalize_networks({network: _netinfo.networks[network]}) _del_network(network, configurator, _netinfo, None, bypass_validation=True)
def _del_broken_network(network, netAttr, configurator): """ Adapts the network information of broken networks so that they can be deleted via _del_network. """ iface = get_net_iface_from_config(network, netAttr) _netinfo = CachingNetInfo() _netinfo.networks[network] = {} _netinfo.networks[network]['iface'] = iface _netinfo.networks[network]['bridged'] = netAttr['bridged'] _netinfo.networks[network]['dhcpv4'] = False if _netinfo.networks[network]['bridged']: try: nets = configurator.runningConfig.networks except AttributeError: nets = {} # ifcfg does not need net definitions _netinfo.networks[network]['ports'] = _persistence.configuredPorts( nets, network ) elif not os.path.exists('/sys/class/net/' + iface): # Bridgeless broken network without underlying device configurator.runningConfig.removeNetwork(network) return canonicalize_networks({network: _netinfo.networks[network]}) _del_network(network, configurator, _netinfo, None, bypass_validation=True)
def net2northbound(network_name): nb_device = network_name # Using RunningConfig avoids the need to require root access. net_attr = RunningConfig().networks.get(network_name) is_legacy = net_attr['switch'] == legacy_switch.SWITCH_TYPE if not net_attr['bridged'] and is_legacy: nb_device = get_net_iface_from_config(network_name, net_attr) return nb_device