Пример #1
0
    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()
Пример #2
0
 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
Пример #3
0
    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))
Пример #4
0
    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))
Пример #5
0
 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
Пример #6
0
 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
Пример #7
0
    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)))
Пример #8
0
    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)
Пример #9
0
 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
Пример #10
0
    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)
Пример #11
0
 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
Пример #12
0
    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)
Пример #13
0
 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
Пример #14
0
    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
Пример #15
0
 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()))
Пример #16
0
    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
Пример #17
0
 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()))
Пример #18
0
 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()))
Пример #19
0
    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
Пример #20
0
    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()))
Пример #21
0
    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
Пример #22
0
    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
Пример #23
0
    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
Пример #24
0
    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)
Пример #25
0
    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()
Пример #26
0
    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()
Пример #27
0
    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)
Пример #28
0
    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)))
Пример #29
0
    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)))
Пример #30
0
    def down(self):
        for slave in get_slaves(self._netdev):
            netdev = self._config[slave]
            self._nm_deactivate_connection(netdev)

        super(NmConfigDeviceBridge, self).down()
Пример #31
0
    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()
Пример #32
0
 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()
Пример #33
0
 def _add_rm_ports(self, prefix):
     for slaveid in get_slaves(self._netdev):
         self._add_rm_port(prefix, slaveid)
Пример #34
0
    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()
Пример #35
0
    def configure(self):
        self._ports_down()

        for slave_id in get_slaves(self._dev_config):
            self._slave_add(slave_id)
        self._ports_up()
Пример #36
0
 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"], {})
Пример #37
0
 def _ports_up(self):
     for slave_id in get_slaves(self._netdev):
         port_netdev = self._config[slave_id]
         NetConfigDevice(port_netdev, self._config).up()
Пример #38
0
 def _ports_up(self):
     for slave_id in get_slaves(self._netdev):
         port_netdev = self._config[slave_id]
         NetConfigDevice(port_netdev, self._config).up()
Пример #39
0
    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()
Пример #40
0
    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()
Пример #41
0
 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()
Пример #42
0
 def _add_rm_ports(self, prefix):
     for slave_id in get_slaves(self._dev_config):
         self._add_rm_port(prefix, slave_id)
Пример #43
0
 def _add_rm_ports(self, prefix):
     for slave_id in get_slaves(self._dev_config):
         self._add_rm_port(prefix, slave_id)
Пример #44
0
 def _add_rm_ports(self, prefix):
     for slaveid in get_slaves(self._netdev):
         self._add_rm_port(prefix, slaveid)
Пример #45
0
    def configure(self):
        self._ports_down()

        for slave_id in get_slaves(self._dev_config):
            self._slave_add(slave_id)
        self._ports_up()
Пример #46
0
 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()
Пример #47
0
 def _rm_slaves(self):
     for slaveid in get_slaves(self._netdev):
         self._rm_slave(slaveid)
Пример #48
0
 def deconfigure(self):
     for slave_id in get_slaves(self._dev_config):
         self._slave_del(slave_id)
Пример #49
0
 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"], {})
Пример #50
0
 def _rm_slaves(self):
     for slave_id in get_slaves(self._dev_config):
         self._rm_slave(slave_id)
Пример #51
0
    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()
Пример #52
0
 def _add_rm_ports(self, action):
     for slave_id in get_slaves(self._dev_config):
         self._add_rm_port(action, slave_id)
Пример #53
0
    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()
Пример #54
0
 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()
Пример #55
0
 def _rm_slaves(self):
     for slave_id in get_slaves(self._dev_config):
         self._rm_slave(slave_id)
Пример #56
0
 def deconfigure(self):
     for slave_id in get_slaves(self._dev_config):
         self._slave_del(slave_id)
Пример #57
0
    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()