コード例 #1
0
 def network(self):
     """
     Allow easy lookup of an SREG's network object if it exists
     """
     if self.decommissioned:
         return None
     parents, _ = calc_networks_str("{0}/32".format(self.ip_str),
                                    self.ip_type)
     if not parents:
         return None
     else:
         return parents[-1]
コード例 #2
0
ファイル: models.py プロジェクト: Marlburo/inventory
 def network(self):
     """
     Allow easy lookup of an SREG's network object if it exists
     """
     if self.decommissioned:
         return None
     parents, _ = calc_networks_str(
         "{0}/32".format(self.ip_str), self.ip_type
     )
     if not parents:
         return None
     else:
         return parents[-1]
コード例 #3
0
ファイル: invfilter.py プロジェクト: jlin/inventory
    NetworkCls = ipaddr.IPv4Network if ip_type == "4" else ipaddr.IPv6Network
    try:
        ip = NetworkCls(ip_str).network
        network_str = str(NetworkCls(ip_str))
    except ipaddr.AddressValueError:
        raise BadDirective("{0} isn't a valid " "IP address.".format(ip_str))
    except ipaddr.NetmaskValueError, e:
        raise BadDirective("The netmask '{0}' doesn't make any sense.".format(e))

    try:
        network = Network.objects.get(network_str=network_str)
        network_q = objects_to_Q([network])
        site = network.site
        vlan = network.vlan
    except Network.DoesNotExist:
        parents, children = calc_networks_str(str(NetworkCls(ip_str)), ip_type)
        network_q = objects_to_Q(parents) | objects_to_Q(children)

        # Find the site. This will be the site of the smallest network that is
        # in parents or if there are no parents, the largest child.
        site = None
        vlan = None
        for parent in reversed(parents):
            if parent.site:
                site = parent.site
                vlan = parent.vlan
                break

        if not site:
            for child in children:
                if child.site:
コード例 #4
0
        network_str = str(NetworkCls(ip_str))
    except ipaddr.AddressValueError:
        raise BadDirective("{0} isn't a valid "
                           "IP address.".format(ip_str))
    except ipaddr.NetmaskValueError, e:
        raise BadDirective(
            "The netmask '{0}' doesn't make any sense.".format(e)
        )

    try:
        network = Network.objects.get(network_str=network_str)
        network_q = objects_to_Q([network])
        site = network.site
        vlan = network.vlan
    except Network.DoesNotExist:
        parents, children = calc_networks_str(str(NetworkCls(ip_str)), ip_type)
        network_q = objects_to_Q(parents) | objects_to_Q(children)

        # Find the site. This will be the site of the smallest network that is
        # in parents or if there are no parents, the largest child.
        site = None
        vlan = None
        for parent in reversed(parents):
            if parent.site:
                site = parent.site
                vlan = parent.vlan
                break

        if not site:
            for child in children:
                if child.site: