def unregister(self, ip, tags): """Unregister an ip tag for a Dynamic Address Group This method can be batched with batch_start() and batch_end(). Args: ip (:obj:`list` or :obj:`str`): IP address(es) with the tag to remove tags (:obj:`list` or :obj:`str`): The tag(s) to remove from the IP address """ root, payload = self._create_uidmessage() unregister = payload.find("unregister") if unregister is None: unregister = ET.SubElement(payload, "unregister") ip = list(set(string_or_list(ip))) tags = list(set(string_or_list(tags))) if not tags: return tags = [self.prefix + t for t in tags] for c_ip in ip: tagelement = unregister.find("./entry[@ip='%s']/tag" % c_ip) if tagelement is None: entry = ET.SubElement(unregister, "entry", {"ip": c_ip}) tagelement = ET.SubElement(entry, "tag") for tag in tags: member = ET.SubElement(tagelement, "member") member.text = tag self.send(root)
def __init__(self, name, interface=(), virtual_interface=None ): super(Vlan, self).__init__(name) self.interface = pandevice.string_or_list(interface) self.virtual_interface = virtual_interface
def __init__(self, name, mode="layer3", interface=(), ): super(Zone, self).__init__(name=name) self.mode = mode self.interface = pandevice.string_or_list(interface)
def __init__(self, *args, **kwargs): ip = kwargs.pop("ip", None) ipv6_enabled = kwargs.pop("ipv6_enabled", None) management_profile = kwargs.pop("management_profile", None) mtu = kwargs.pop("mtu", None) adjust_tcp_mss = kwargs.pop("adjust_tcp_mss", None) netflow_profile = kwargs.pop("netflow_profile", None) super(Layer3Parameters, self).__init__(*args, **kwargs) self.ip = pandevice.string_or_list(ip) self.ipv6_enabled = ipv6_enabled self.management_profile = management_profile self.mtu = mtu self.adjust_tcp_mss = adjust_tcp_mss self.netflow_profile = netflow_profile
def unregister(self, ip, tags): """Unregister an ip tag for a Dynamic Address Group This method can be batched with batch_start() and batch_end(). Args: ip (str): IP address with the tag to remove tags (str): The tag to remove from the IP address """ root, payload = self._create_uidmessage() unregister = payload.find("unregister") if unregister is None: unregister = et.SubElement(payload, "unregister") tagelement = unregister.find("./entry[@ip='%s']/tag" % ip) if tagelement is None: entry = et.SubElement(unregister, "entry", {"ip": ip}) tagelement = et.SubElement(entry, "tag") tags = string_or_list(tags) tags = list(set(tags)) for tag in tags: member = et.SubElement(tagelement, "member") member.text = tag self.send(root)
def unregister(self, ip, tags): """Unregister an ip tag for a Dynamic Address Group This method can be batched with batch_start() and batch_end(). Args: ip (str): IP address with the tag to remove tags (str): The tag to remove from the IP address """ root, payload = self._create_uidmessage() unregister = payload.find("unregister") if unregister is None: unregister = et.SubElement(payload, "unregister") tagelement = unregister.find("./entry[@ip='%s']/tag" % ip) if tagelement is None: entry = et.SubElement(unregister, "entry", {"ip": ip}) tagelement = et.SubElement(entry, "tag") tags = string_or_list(tags) tags = list(set(tags)) for tag in tags: member = et.SubElement(tagelement, "member") member.text = tag self.send(root)
def __init__(self, name="default", interface=()): super(VirtualRouter, self).__init__(name=name) # Save interface as a list, even if a string was given self.interface = pandevice.string_or_list(interface)
def __init__(self, name, tag=()): super(DeviceGroup, self).__init__(name) self.tag = pandevice.string_or_list(tag)