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
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
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
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
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