def up(self): slaves = get_slaves(self._dev_config) if len(slaves) == 1: parent_id = get_slaves(self._dev_config)[0] parent_dev = self._if_manager.get_mapped_device(parent_id) parent_dev.link_up() super(NetConfigDeviceVxlan, self).up()
def _get_masters(self, slave_dev_id): masters = [] for dev_id in self._config: netdev = self._config[dev_id] if slave_dev_id in get_slaves(netdev): masters.append(dev_id) return masters
def create(self): config = self._dev_config slaves = get_slaves(config) if len(slaves) == 1: realdev_id = slaves[0] name = self._if_manager.get_mapped_device(realdev_id).get_name() dev_param = "dev %s" % name else: dev_param = "" dev_name = config["name"] vxlan_id = int(get_option(config, "id")) group_ip = get_option(config, "group_ip") remote_ip = get_option(config, "remote_ip") if group_ip: group_or_remote = "group %s" % group_ip elif remote_ip: group_or_remote = "remote %s" % remote_ip else: raise Exception("group or remote must be specified for vxlan") dstport = get_option(config, "dstport") if not dstport: dstport = 0 else: dstport = int(dstport) exec_cmd("ip link add %s type vxlan id %d %s %s dstport %d" % (dev_name, vxlan_id, dev_param, group_or_remote, dstport))
def create(self): config = self._dev_config slaves = get_slaves(config) if len(slaves) == 1: realdev_id = slaves[0] name = self._if_manager.get_mapped_device(realdev_id).get_name() dev_param = "dev %s" % name else: dev_param = "" dev_name = config["name"] vxlan_id = int(get_option(config, "id")) group_ip = get_option(config, "group_ip") remote_ip = get_option(config, "remote_ip") if group_ip: group_or_remote = "group %s" % group_ip elif remote_ip: group_or_remote = "remote %s" % remote_ip else: raise Exception("group or remote must be specified for vxlan") dstport = get_option(config, "dstport") if not dstport: dstport = 0 else: dstport = int(dstport) exec_cmd("ip link add %s type vxlan id %d %s %s dstport %d" % (dev_name, vxlan_id, dev_param, group_or_remote, dstport))
def _get_vlan_info(self): netdev = self._netdev realdev_index = get_slaves(netdev)[0] realdev = self._config[realdev_index]["name"] dev_name = netdev["name"] vlan_tci = int(get_option(netdev, "vlan_tci")) return dev_name, realdev, vlan_tci
def _get_leafs(self): leafs = [] for dev_id in self._config: netdev = self._config[dev_id] if len(get_slaves(netdev)) == 0: leafs.append(dev_id) return leafs
def create(self): config = self._dev_config dev_name = config["name"] params = [] slaves = get_slaves(config) if len(slaves) == 1: ul_id = slaves[0] ul_name = self._if_manager.get_mapped_device(ul_id).get_name() params.append(" dev %s" % ul_name) for k in ("ttl", "tos", "key", "ikey", "okey", "local_ip", "remote_ip"): v = get_option(config, k) if v is not None: flag = {"local_ip": "local", "remote_ip": "remote"}.get(k, k) params.append(" %s %s" % (flag, v)) for k in ("seq", "iseq", "oseq", "csum", "icsum", "ocsum"): v = get_option(config, k) if v is not None and bool_it(v): params.append(" " + k) exec_cmd("ip tunnel add name %s mode gre%s" % (dev_name, "".join(params)))
def deconfigure(self): for slave_id in get_slaves(self._dev_config): self.slave_del(slave_id) dev_name = self._dev_config["name"] exec_cmd("teamd -k -t %s" % dev_name)
def _get_vlan_info(self): config = self._dev_config; realdev_id = get_slaves(config)[0] realdev_name = self._if_manager.get_mapped_device(realdev_id).get_name() dev_name = config["name"] vlan_tci = int(get_option(config, "vlan_tci")) return dev_name, realdev_name, vlan_tci
def _add_slaves(self): for slave in get_slaves(self._netdev): netdev = self._config[slave] slave_name = netdev["name"] hw_addr = self._convert_hwaddr(netdev) s_eth = dbus.Dictionary({ 'duplex': dbus.Array('full', 's'), 'mac-address': hw_addr }) s_slave_con = dbus.Dictionary({ 'type': '802-3-ethernet', 'autoconnect': dbus.Boolean(False), 'uuid': str(uuid.uuid4()), 'id': 'slave_con', 'master': self._netdev["master_uuid"], 'slave-type': 'bond' }) slave_con = dbus.Dictionary({ '802-3-ethernet': s_eth, 'connection': s_slave_con }) netdev["con_obj_path"] = self._nm_add_connection(slave_con)
def _get_vlan_info(self): config = self._dev_config realdev = self._if_manager.get_mapped_device(get_slaves(config)[0]) realdev_name = realdev.get_name() dev_name = config["name"] vlan_tci = int(get_option(config, "vlan_tci")) return dev_name, realdev_name, vlan_tci
def deconfigure(self): for slave_id in get_slaves(self._netdev): self.slave_del(slave_id) dev_name = self._netdev["name"] exec_cmd("teamd -k -t %s" % dev_name)
def _get_vlan_info(self): netdev = self._netdev; realdev_index = get_slaves(netdev)[0] realdev = self._config[realdev_index]["name"] dev_name = netdev["name"] vlan_tci = int(get_option(netdev, "vlan_tci")) return dev_name, realdev, vlan_tci
def is_nm_managed(cls, dev_config, if_manager): if _dev_exists(dev_config["hwaddr"]): managed = super(NmConfigDeviceVlan, cls).is_nm_managed(dev_config, if_manager) else: slave_dev = if_manager.get_mapped_device(get_slaves(dev_config)[0]) slave_config = slave_dev.get_conf_dict() managed = is_nm_managed(slave_config, if_manager) for slave_id in get_slaves(dev_config): slave_dev = if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_conf_dict() if is_nm_managed(slave_config, if_manager) != managed: msg = "Mixing NM managed and not managed devices in a " "master-slave relationship is not allowed!" raise Exception(msg) return managed
def _add_rm_slaves(self, mark): for slave in get_slaves(self._netdev): slavenetdev = self._config[slave] slave_name = slavenetdev["name"] if (mark == "+"): NetConfigDevice(slavenetdev, self._config).down() exec_cmd('echo "%s%s" > %s/slaves' % (mark, slave_name, self._get_bond_dir()))
def is_nm_managed(cls, netdev, config): if _dev_exists(netdev["hwaddr"]): managed = super(NmConfigDeviceBond, cls).is_nm_managed(netdev, config) else: slave_id = get_slaves(netdev)[1] netdev = config[slave_id] managed = is_nm_managed(netdev, config) for slave in get_slaves(netdev): slave_netdev = config[slave] if is_nm_managed(slave_netdev, config) != managed: msg = "Mixing NM managed and not managed devices in a "\ "master-slave relationship is not allowed!" raise Exception(msg) return managed
def _add_rm_slaves(self, mark): for slave in get_slaves(self._netdev): slavenetdev = self._config[slave] slave_name = slavenetdev["name"] if (mark == "+"): NetConfigDevice(slavenetdev, self._config).down() exec_cmd('echo "%s%s" > %s/slaves' % (mark, slave_name, self._get_bond_dir()))
def _add_rm_slaves(self, mark): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_conf = slave_dev.get_conf_dict() slave_name = slave_dev.get_name() if (mark == "+"): slave_dev.down() exec_cmd('echo "%s%s" > %s/slaves' % (mark, slave_name, self._get_bond_dir()))
def is_nm_managed(cls, dev_config, if_manager): if _dev_exists(dev_config["hwaddr"]): managed = super(NmConfigDeviceVlan, cls).is_nm_managed(dev_config, if_manager) else: slave_dev = if_manager.get_mapped_device(get_slaves(dev_config)[0]) slave_config = slave_dev.get_conf_dict() managed = is_nm_managed(slave_config, if_manager) for slave_id in get_slaves(dev_config): slave_dev = if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_conf_dict() if is_nm_managed(slave_config, if_manager) != managed: msg = "Mixing NM managed and not managed devices in a "\ "master-slave relationship is not allowed!" raise Exception(msg) return managed
def _add_rm_slaves(self, mark): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_conf = slave_dev.get_conf_dict() slave_name = slave_dev.get_name() if mark == "+": slave_dev.down() exec_cmd('echo "%s%s" > %s/slaves' % (mark, slave_name, self._get_bond_dir()))
def is_nm_managed(cls, dev_config, if_manager): managed = False for slave_id in get_slaves(dev_config): slave_dev = if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_conf_dict() if is_nm_managed(slave_config, if_manager) != managed: msg = "Mixing NM managed and not managed devices in a " "master-slave relationship is not allowed!" raise Exception(msg) return managed
def is_nm_managed(cls, netdev, config): managed = False for slave in get_slaves(netdev): slave_netdev = config[slave] if is_nm_managed(slave_netdev, config) != managed: msg = "Mixing NM managed and not managed devices in a "\ "master-slave relationship is not allowed!" raise Exception(msg) return managed
def is_nm_managed(cls, dev_config, if_manager): managed = False for slave_id in get_slaves(dev_config): slave_dev = if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_conf_dict() if is_nm_managed(slave_config, if_manager) != managed: msg = "Mixing NM managed and not managed devices in a "\ "master-slave relationship is not allowed!" raise Exception(msg) return managed
def _add_slaves(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_configuration() teamd_port_config = get_slave_option(self._dev_config, slave_id, "teamd_port_config") slave_con = dbus.Dictionary() if teamd_port_config != None: s_port_cfg = dbus.Dictionary({"config": teamd_port_config}) slave_con["team-port"] = s_port_cfg slave_config.nm_enslave("team", self._dev_config["master_uuid"], slave_con)
def configure(self): self._ports_down() teamd_config = get_option(self._dev_config, "teamd_config") teamd_config = prepare_json_str(teamd_config) dev_name = self._dev_config["name"] dbus_option = " -D" if self._should_enable_dbus() else "" exec_cmd("teamd -r -d -c \"%s\" -t %s %s" % (teamd_config, dev_name, dbus_option)) for slave_id in get_slaves(self._dev_config): self.slave_add(slave_id) self._ports_up()
def configure(self): self._ports_down() teamd_config = get_option(self._netdev, "teamd_config") teamd_config = prepare_json_str(teamd_config) dev_name = self._netdev["name"] dbus_option = " -D" if self._should_enable_dbus() else "" exec_cmd("teamd -r -d -c \"%s\" -t %s %s" % (teamd_config, dev_name, dbus_option)) for slave_id in get_slaves(self._netdev): self.slave_add(slave_id) self._ports_up()
def _add_slaves(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_configuration() teamd_port_config = get_slave_option(self._dev_config, slave_id, "teamd_port_config") slave_con = dbus.Dictionary() if teamd_port_config != None: s_port_cfg = dbus.Dictionary({'config': teamd_port_config}) slave_con['team-port'] = s_port_cfg slave_config.nm_enslave("team", self._dev_config["master_uuid"], slave_con)
def create(self): config = self._dev_config dev_name = config["name"] params = [] slaves = get_slaves(config) if len(slaves) == 1: ul_id = slaves[0] ul_name = self._if_manager.get_mapped_device(ul_id).get_name() params.append(" dev %s" % ul_name) v = get_option(config, "local_ip") if v is not None: params.append(" local %s" % v) v = get_option(config, "remote_ip") if v is not None: params.append(" remote %s" % v) exec_cmd("ip tunnel add name %s mode ipip%s" % (dev_name, "".join(params)))
def create(self): config = self._dev_config dev_name = config["name"] params = [] slaves = get_slaves(config) if len(slaves) == 1: ul_id = slaves[0] ul_name = self._if_manager.get_mapped_device(ul_id).get_name() params.append(" dev %s" % ul_name) v = get_option(config, "local_ip") if v is not None: params.append(" local %s" % v) v = get_option(config, "remote_ip") if v is not None: params.append(" remote %s" % v) exec_cmd("ip tunnel add name %s mode ipip%s" % (dev_name, "".join(params)))
def down(self): for slave in get_slaves(self._netdev): netdev = self._config[slave] self._nm_deactivate_connection(netdev) super(NmConfigDeviceBridge, self).down()
def up(self): realdev_id = get_slaves(self._dev_config)[0] realdev = self._if_manager.get_mapped_device(realdev_id) realdev.up() super(NmConfigDeviceVlan, self).up()
def _rm_slaves(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_configuration() slave_config.nm_free()
def _add_rm_ports(self, prefix): for slaveid in get_slaves(self._netdev): self._add_rm_port(prefix, slaveid)
def up(self): parent_id = get_slaves(self._dev_config)[0] parent_dev = self._if_manager.get_mapped_device(parent_id) parent_dev.link_up() super(NetConfigDeviceVlan, self).up()
def configure(self): self._ports_down() for slave_id in get_slaves(self._dev_config): self._slave_add(slave_id) self._ports_up()
def _add_slaves(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_configuration() slave_config.nm_enslave("bond", self._dev_config["master_uuid"], {})
def _ports_up(self): for slave_id in get_slaves(self._netdev): port_netdev = self._config[slave_id] NetConfigDevice(port_netdev, self._config).up()
def _ports_up(self): for slave_id in get_slaves(self._netdev): port_netdev = self._config[slave_id] NetConfigDevice(port_netdev, self._config).up()
def down(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_dev.down() super(NmConfigDeviceTeam, self).down()
def up(self): parent_id = get_slaves(self._dev_config)[0] parent_dev = self._if_manager.get_mapped_device(parent_id) exec_cmd("ip link set %s up" % parent_dev.get_name()) super(NetConfigDeviceVlan, self).up()
def _rm_slaves(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_configuration() slave_config.nm_free()
def _add_rm_ports(self, prefix): for slave_id in get_slaves(self._dev_config): self._add_rm_port(prefix, slave_id)
def _add_rm_ports(self, prefix): for slave_id in get_slaves(self._dev_config): self._add_rm_port(prefix, slave_id)
def _add_rm_ports(self, prefix): for slaveid in get_slaves(self._netdev): self._add_rm_port(prefix, slaveid)
def configure(self): self._ports_down() for slave_id in get_slaves(self._dev_config): self._slave_add(slave_id) self._ports_up()
def _ports_up(self): for slave_id in get_slaves(self._dev_config): port_dev = self._if_manager.get_mapped_device(slave_id) port_dev.up()
def _rm_slaves(self): for slaveid in get_slaves(self._netdev): self._rm_slave(slaveid)
def deconfigure(self): for slave_id in get_slaves(self._dev_config): self._slave_del(slave_id)
def _add_slaves(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_config = slave_dev.get_configuration() slave_config.nm_enslave("bond", self._dev_config["master_uuid"], {})
def _rm_slaves(self): for slave_id in get_slaves(self._dev_config): self._rm_slave(slave_id)
def up(self): realdev_id = get_slaves(self._dev_config)[0] realdev = self._if_manager.get_mapped_device(realdev_id) realdev.up() super(NmConfigDeviceVlan, self).up()
def _add_rm_ports(self, action): for slave_id in get_slaves(self._dev_config): self._add_rm_port(action, slave_id)
def down(self): for slave_id in get_slaves(self._dev_config): slave_dev = self._if_manager.get_mapped_device(slave_id) slave_dev.down() super(NmConfigDeviceTeam, self).down()
def _ports_up(self): for slave_id in get_slaves(self._dev_config): port_dev = self._if_manager.get_mapped_device(slave_id) port_dev.up()
def _rm_slaves(self): for slave_id in get_slaves(self._dev_config): self._rm_slave(slave_id)
def deconfigure(self): for slave_id in get_slaves(self._dev_config): self._slave_del(slave_id)
def up(self): parent_id = get_slaves(self._dev_config)[0] parent_dev = self._if_manager.get_mapped_device(parent_id) exec_cmd("ip link set %s up" % parent_dev.get_name()) super(NetConfigDeviceVlan, self).up()