Ejemplo n.º 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()
Ejemplo n.º 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
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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)))
Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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()))
Ejemplo n.º 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
Ejemplo n.º 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()))
Ejemplo n.º 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()))
Ejemplo n.º 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
Ejemplo n.º 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()))
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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)
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 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)
Ejemplo n.º 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)))
Ejemplo n.º 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)))
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 33
0
 def _add_rm_ports(self, prefix):
     for slaveid in get_slaves(self._netdev):
         self._add_rm_port(prefix, slaveid)
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 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"], {})
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 42
0
 def _add_rm_ports(self, prefix):
     for slave_id in get_slaves(self._dev_config):
         self._add_rm_port(prefix, slave_id)
Ejemplo n.º 43
0
 def _add_rm_ports(self, prefix):
     for slave_id in get_slaves(self._dev_config):
         self._add_rm_port(prefix, slave_id)
Ejemplo n.º 44
0
 def _add_rm_ports(self, prefix):
     for slaveid in get_slaves(self._netdev):
         self._add_rm_port(prefix, slaveid)
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 47
0
 def _rm_slaves(self):
     for slaveid in get_slaves(self._netdev):
         self._rm_slave(slaveid)
Ejemplo n.º 48
0
 def deconfigure(self):
     for slave_id in get_slaves(self._dev_config):
         self._slave_del(slave_id)
Ejemplo n.º 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"], {})
Ejemplo n.º 50
0
 def _rm_slaves(self):
     for slave_id in get_slaves(self._dev_config):
         self._rm_slave(slave_id)
Ejemplo n.º 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()
Ejemplo n.º 52
0
 def _add_rm_ports(self, action):
     for slave_id in get_slaves(self._dev_config):
         self._add_rm_port(action, slave_id)
Ejemplo n.º 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()
Ejemplo n.º 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()
Ejemplo n.º 55
0
 def _rm_slaves(self):
     for slave_id in get_slaves(self._dev_config):
         self._rm_slave(slave_id)
Ejemplo n.º 56
0
 def deconfigure(self):
     for slave_id in get_slaves(self._dev_config):
         self._slave_del(slave_id)
Ejemplo n.º 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()