Example #1
0
    def _create(self, subject):
        if subject.iface is None:
            subject.iface = model.NetworkIface(self.get_gw_iface())

        name = subject.iface.get_ipdb_key()
        with self.get_ipdb().interfaces[name] as iface:
            iface.add_ip(subject.address, mask=subject.prefix)
        return subject
Example #2
0
 def _collect_existing_addresses(ipdb, iface_ref):
     master_iface = model.NetworkIface(iface_ref)
     results = []
     with ipdb.interfaces[iface_ref].ro as iface:
         for addr, prefix in iface.ipaddr:
             try:
                 results.append(
                     model.IpAddress(addr,
                                     prefix=prefix,
                                     iface=master_iface))
             except ipaddress.AddressValueError:
                 pass  # ignore not ipv4 addresses
     return results
Example #3
0
    def _create(self, subject):
        tag = self.key(subject)
        ifname = self.make_iface_name(tag)
        ip = self.get_ipdb()
        with ip.create(
                kind='vlan', ifname=ifname, vlan_id=tag,
                link=self.get_gw_iface()) as iface:
            iface.up()

        iface = ip.interfaces[ifname].ro
        subject.set_iface(model.NetworkIface(
                ifname, index=iface.index, vlan_tag=tag))

        return subject
Example #4
0
    def _create(self, subject):
        tag_chain = self.key(subject)
        ifname = self.make_iface_name(tag_chain)
        tag = tag_chain[-1]
        if subject.parent:
            link = self.make_iface_name(subject.parent.tag)
        else:
            link = self.get_gw_iface()

        iface = self.make_vlan_iface(ifname, link, tag)
        subject.set_iface(
            model.NetworkIface(ifname,
                               index=iface.index,
                               vlan=subject,
                               vlan_tag=tag))

        return subject
Example #5
0
    def _create(self, subject):
        tag_chain = self.key(subject)
        ifname = self.make_iface_name(tag_chain)
        tag = tag_chain[-1]
        if subject.parent:
            link = self.make_iface_name(subject.parent.tag)
        else:
            link = self.get_gw_iface()

        ip = self.get_ipdb()
        with ip.create(kind='vlan', ifname=ifname, vlan_id=tag,
                       link=link) as iface:
            iface.up()

        iface = ip.interfaces[ifname].ro
        subject.set_iface(
            model.NetworkIface(ifname,
                               index=iface.index,
                               vlan=subject,
                               vlan_tag=tag))

        return subject