def _ifaceDownAndCleanup(self, iface, remove_even_if_used=False): """Returns True iff the iface is to be removed.""" if iface.ipv4.bootproto == 'dhcp': ifacetracking.add(iface.name) to_be_removed = remove_even_if_used or not self.net_info.ifaceUsers( iface.name) if to_be_removed: ifdown(iface.name) self._removeSourceRoute(iface) return to_be_removed
def removeVlan(self, vlan): if not self.owned_device(vlan.name): IfcfgAcquire.acquire_device(vlan.name) IfcfgAcquire.acquire_vlan_device(vlan.name) if vlan.ipv4.bootproto == 'dhcp': ifacetracking.add(vlan.name) ifdown(vlan.name) self._removeSourceRoute(vlan) self.configApplier.removeVlan(vlan.name) self.net_info.del_vlan(vlan.name) vlan.device.remove()
def removeBridge(self, bridge): if not self.owned_device(bridge.name): IfcfgAcquire.acquire_device(bridge.name) if bridge.ipv4.bootproto == 'dhcp': ifacetracking.add(bridge.name) ifdown(bridge.name) self._removeSourceRoute(bridge) cmd.exec_sync([EXT_BRCTL, 'delbr', bridge.name]) self.configApplier.removeBridge(bridge.name) self.net_info.del_bridge(bridge.name) if bridge.port: bridge.port.remove()
def removeBridge(self, bridge): if not self.owned_device(bridge.name): IfcfgAcquire.acquire_device(bridge.name) if bridge.ipv4.bootproto == 'dhcp': ifacetracking.add(bridge.name) ifdown(bridge.name) self._removeSourceRoute(bridge) cmd.exec_sync([constants.EXT_BRCTL, 'delbr', bridge.name]) self.configApplier.removeBridge(bridge.name) self.net_info.del_bridge(bridge.name) if bridge.port: bridge.port.remove()
def removeBridge(self, bridge): if not self.owned_device(bridge.name): IfcfgAcquire.acquire_device(bridge.name) if bridge.ipv4.bootproto == 'dhcp': ifacetracking.add(bridge.name) ifdown(bridge.name) self._removeSourceRoute(bridge) _remove_device(bridge.name) self.configApplier.removeBridge(bridge.name) self.net_info.del_bridge(bridge.name) if bridge.port: bridge.port.remove()
def _addSourceRoute(self, netEnt): """For ifcfg tracking can be done together with route/rule addition""" ipv4 = netEnt.ipv4 if ipv4.bootproto != 'dhcp' and netEnt.master is None: valid_args = (ipv4.address and ipv4.netmask and ipv4.gateway not in (None, '0.0.0.0')) if valid_args: sroute = StaticSourceRoute(netEnt.name, ipv4.address, ipv4.netmask, ipv4.gateway) self.configureSourceRoute(*sroute.requested_config()) else: logging.warning( 'Invalid input for source routing: ' 'name=%s, addr=%s, netmask=%s, gateway=%s', netEnt.name, ipv4.address, ipv4.netmask, ipv4.gateway) if netEnt.ipv4.bootproto == 'dhcp': ifacetracking.add(netEnt.name)
def _setup_dynamic_src_routing(networks): for net_name, net_attrs in six.viewitems(networks): is_remove = net_attrs.get('remove', False) is_dynamic = net_attrs.get('bootproto') == 'dhcp' if is_dynamic and not is_remove: ifacetracking.add(_get_network_iface(net_name, net_attrs))