Example #1
0
 def reassign(objs):
     for obj in objs:
         if ip_type == '6':
             nibz = nibbilize(obj.ip_str)
             revname = ip_to_domain_name(nibz, ip_type='6')
         else:
             revname = ip_to_domain_name(obj.ip_str, ip_type='4')
         correct_reverse_domain = name_to_domain(revname)
         if correct_reverse_domain != obj.reverse_domain:
             # TODO, is this needed? The save() function (actually the
             # clean_ip function) will assign the correct reverse domain.
             obj.reverse_domain = correct_reverse_domain
             obj.save()
 def reassign(objs):
     for obj in objs:
         if ip_type == '6':
             nibz = nibbilize(obj.ip_str)
             revname = ip_to_domain_name(nibz, ip_type='6')
         else:
             revname = ip_to_domain_name(obj.ip_str, ip_type='4')
         correct_reverse_domain = name_to_domain(revname)
         if correct_reverse_domain != obj.reverse_domain:
             # TODO, is this needed? The save() function (actually the
             # clean_ip function) will assign the correct reverse domain.
             obj.reverse_domain = correct_reverse_domain
             obj.save()
 def update_reverse_domain(self):
     # We are assuming that self.clean_ip has been called already
     rvname = nibbilize(self.ip_str) if self.ip_type == "6" else self.ip_str
     rvname = ip_to_domain_name(rvname, ip_type=self.ip_type)
     self.reverse_domain = name_to_domain(rvname)
     if self.reverse_domain is None or self.reverse_domain.name in ("arpa", "in-addr.arpa", "ip6.arpa"):
         raise ValidationError("No reverse Domain found for {0} ".format(self.ip_str))
Example #4
0
 def update_reverse_domain(self):
     # We are assuming that self.clean_ip has been called already
     rvname = nibbilize(self.ip_str) if self.ip_type == '6' else self.ip_str
     rvname = ip_to_domain_name(rvname, ip_type=self.ip_type)
     self.reverse_domain = name_to_domain(rvname)
     if (self.reverse_domain is None or self.reverse_domain.name
             in ('arpa', 'in-addr.arpa', 'ip6.arpa')):
         raise ValidationError("No reverse Domain found for {0} ".format(
             self.ip_str))
Example #5
0
 def create_domain(self, name, ip_type=None, delegated=False):
     if ip_type is None:
         ip_type = '4'
     if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'):
         pass
     else:
         name = ip_to_domain_name(name, ip_type=ip_type)
     d, _ = Domain.objects.get_or_create(name=name, delegated=delegated)
     self.assertTrue(d.is_reverse)
     return d
Example #6
0
 def create_domain(self, name, ip_type=None, delegated=False):
     if ip_type is None:
         ip_type = '4'
     if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'):
         pass
     else:
         name = ip_to_domain_name(name, ip_type=ip_type)
     d, _ = Domain.objects.get_or_create(name=name, delegated=delegated)
     self.assertTrue(d.is_reverse)
     return d
 def create_domain(self, name, ip_type=None, delegated=False):
     if ip_type is None:
         ip_type = "4"
     if name in ("arpa", "in-addr.arpa", "ip6.arpa"):
         pass
     else:
         name = ip_to_domain_name(name, ip_type=ip_type)
     d = Domain(name=name, delegated=delegated)
     d.clean()
     self.assertTrue(d.is_reverse)
     return d
def reassign_reverse_ptrs(reverse_domain_1, reverse_domain_2, ip_type):
    """There are some formalities that need to happen when a reverse
    domain is added and deleted. For example, when adding say we had the
    ip address 128.193.4.0 and it had the reverse_domain 128.193. If we
    add the reverse_domain 128.193.4, our 128.193.4.0 no longer belongs
    to the 128.193 domain. We need to re-asign the ip to it's correct
    reverse domain.

    :param reverse_domain_1: The domain which could possibly have
        addresses added to it.

    :type reverse_domain_1: :class:`Domain`

    :param reverse_domain_2: The domain that has ip's which might not
        belong to it anymore.

    :type reverse_domain_2: :class:`Domain`
    """

    if reverse_domain_2 is None or ip_type is None:
        return
    ptrs = reverse_domain_2.ptr_set.iterator()
    # intrs = reverse_domain_2.staticinterface_set.iterator()
    # TODO do the intr case
    for ptr in ptrs:
        if ip_type == '6':
            nibz = nibbilize(ptr.ip_str)
            revname = ip_to_domain_name(nibz, ip_type='6')
        else:
            revname = ip_to_domain_name(ptr.ip_str, ip_type='4')
        correct_reverse_domain = name_to_domain(revname)
        if correct_reverse_domain != ptr.reverse_domain:
            # TODO, is this needed? The save() function (actually the
            # clean_ip function) will assign the correct reverse domain.
            ptr.reverse_domain = correct_reverse_domain
            ptr.save()
def boot_strap_ipv6_reverse_domain(ip, soa=None):
    """
    This function is here to help create IPv6 reverse domains.

    .. note::
        Every nibble in the reverse domain should not exists for this
        function to exit successfully.


    :param ip: The ip address in nibble format
    :type ip: str
    :raises: ReverseDomainNotFoundError
    """
    validate_reverse_name(ip, '6')

    for i in xrange(1, len(ip) + 1, 2):
        cur_reverse_domain = ip[:i]
        domain_name = ip_to_domain_name(cur_reverse_domain, ip_type='6')
        reverse_domain = Domain(name=domain_name)
        reverse_domain.soa = soa
        reverse_domain.save()
    return reverse_domain
def boot_strap_ipv6_reverse_domain(ip, soa=None):
    """
    This function is here to help create IPv6 reverse domains.

    .. note::
        Every nibble in the reverse domain should not exists for this
        function to exit successfully.


    :param ip: The ip address in nibble format
    :type ip: str
    :raises: ReverseDomainNotFoundError
    """
    validate_reverse_name(ip, '6')

    for i in xrange(1, len(ip) + 1, 2):
        cur_reverse_domain = ip[:i]
        domain_name = ip_to_domain_name(cur_reverse_domain, ip_type='6')
        reverse_domain = Domain(name=domain_name)
        reverse_domain.soa = soa
        reverse_domain.save()
    return reverse_domain
    def test_master_reverse_ipv6_domains(self):
        rds = []
        rd = self.create_domain(name="1", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0.0.0.0", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0.0.0.0.3", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0.0.0.0.3.2", ip_type="6")
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name="1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0" ".0.0.0.0.0.0.0.0.0.3.2.1", ip_type="6")
        rd.save()
        rds.append(rd)

        for rd in list(enumerate(rds)):
            if rd[0] == 0:
                self.assertEqual(rd[1].master_domain, self.i6_arpa)
            else:
                self.assertEqual(rd[1].master_domain, rds[rd[0] - 1])
            self.assertTrue(rd[1].get_absolute_url())
            self.assertTrue(rd[1].get_edit_url())
            self.assertTrue(rd[1].get_delete_url())

        try:
            Domain.objects.filter(name=ip_to_domain_name("1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0", ip_type="6"))[
                0
            ].delete()
        except ValidationError, e:
            pass
Example #12
0
    def test_master_reverse_ipv6_domains(self):
        rds = []
        rd = self.create_domain(name='1', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(
            name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(
            name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0.0.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(
            name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0.0.0.0', ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0.0.0.0',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0.0.0.0.3',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0.0.0.0.3.2',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        rd = self.create_domain(name='1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0.0'
                                '.0.0.0.0.0.0.0.0.0.3.2.1',
                                ip_type='6')
        rd.save()
        rds.append(rd)

        for rd in list(enumerate(rds)):
            if rd[0] == 0:
                self.assertEqual(rd[1].master_domain, self.i6_arpa)
            else:
                self.assertEqual(rd[1].master_domain, rds[rd[0] - 1])
            self.assertTrue(rd[1].get_absolute_url())
            self.assertTrue(rd[1].get_edit_url())
            self.assertTrue(rd[1].get_delete_url())

        try:
            Domain.objects.filter(
                name=ip_to_domain_name('1.2.8.3.0.0.0.0.4.3.4.5.6.6.5.6.7.0.0',
                                       ip_type='6'))[0].delete()
        except ValidationError, e:
            pass