def test_add_invalid(self):
     data = {'primary': "daf..fff", 'contact': "foo.com"}
     soa = SOA(**data)
     self.assertRaises(ValidationError, soa.save)
     data = {'primary': 'foo.com', 'contact': 'dkfa..'}
     soa = SOA(**data)
     self.assertRaises(ValidationError, soa.save)
     data = {'primary': 'adf', 'contact': '*@#$;'}
     soa = SOA(**data)
     self.assertRaises(ValidationError, soa.save)
 def test_chain_soa_domain_add(self):
     data = {'primary': "ns1.foo.com", 'contact': "email.foo.com"}
     soa = SOA(**data)
     soa.save()
     d0 = Domain(name='com')
     d0.save()
     d1 = Domain(name='foo.com', soa=soa)
     d1.save()
     self.assertTrue(soa == d1.soa)
     d2 = Domain(name='bar.foo.com', soa=soa)
     d2.save()
     self.assertTrue(soa == d2.soa)
     d3 = Domain(name='new.foo.com', soa=soa)
     d3.save()
     self.assertTrue(soa == d3.soa)
     d4 = Domain(name='far.bar.foo.com', soa=soa)
     d4.save()
     self.assertTrue(soa == d4.soa)
     d5 = Domain(name='tee.new.foo.com', soa=soa)
     d5.save()
     self.assertTrue(soa == d5.soa)
     d5.delete()
     d4.delete()
     self.assertTrue(soa == d1.soa)
     self.assertTrue(soa == d2.soa)
     self.assertTrue(soa == d3.soa)
Beispiel #3
0
 def setUp(self):
     self.url_slug = 'domain'
     soa = SOA(primary=random_label(),
               contact=random_label(),
               description=random_label())
     self.test_obj = Domain(name=random_label())
     self.test_obj.save()
     self.test_obj.soa = soa
     self.test_obj.save()
 def test_delete_with_domains(self):
     data = {'primary': "ns1asfdadsf.foo.com", 'contact': "email.foo.com"}
     soa = SOA(**data)
     soa.save()
     d0 = Domain(name='com')
     d0.save()
     d1 = Domain(name='foo.com', soa=soa)
     d1.soa = soa
     d1.save()
     self.assertRaises(ValidationError, soa.delete)
    def test_add_soa(self):
        primary = "ns1.oregonstate.edu"
        contact = "admin.oregonstate.edu"
        retry = 1234
        refresh = 1234123
        description = "1"
        self.do_generic_add(primary,
                            contact,
                            retry,
                            refresh,
                            description=description)
        soa = SOA.objects.filter(primary=primary,
                                 contact=contact,
                                 retry=retry,
                                 refresh=refresh)
        soa[0].save()
        self.assertTrue(soa)
        soa[0].__repr__()
        soa = soa[0]
        self.assertTrue(soa.details())
        self.assertTrue(soa.get_absolute_url())
        self.assertTrue(soa.get_edit_url())
        self.assertTrue(soa.get_delete_url())

        primary = "do.com"
        contact = "admf.asdf"
        retry = 432152
        refresh = 1235146134
        description = "2"
        self.do_generic_add(primary,
                            contact,
                            retry,
                            refresh,
                            description=description)
        soa = SOA.objects.filter(primary=primary,
                                 contact=contact,
                                 retry=retry,
                                 refresh=refresh)
        self.assertTrue(soa)
        soa = soa[0]
        self.assertTrue(soa.details())
        self.assertTrue(soa.get_absolute_url())
        self.assertTrue(soa.get_edit_url())
        self.assertTrue(soa.get_delete_url())

        primary = "ns1.derp.com"
        contact = "admf.asdf"
        soa = SOA(primary=primary, contact=contact)
        soa.save()
        self.assertTrue(soa.serial and soa.expire and soa.retry
                        and soa.refresh)
        self.assertTrue(soa.details())
        self.assertTrue(soa.get_absolute_url())
        self.assertTrue(soa.get_edit_url())
        self.assertTrue(soa.get_delete_url())
Beispiel #6
0
    def test_soa_validators(self):
        m = self.create_domain(name='8')
        m.save()

        f_m = self.create_domain(name='8.2')
        f_m.save()

        n_f_m = self.create_domain(name='8.2.3')
        n_f_m.save()

        b_m = self.create_domain(name='8.3')
        b_m.save()

        s = SOA(primary="ns1.foo.com", contact="asdf", description="test")
        s.save()

        f_m.soa = s
        f_m.save()

        b_m.soa = s
        self.assertRaises(ValidationError, b_m.save)

        n_f_m = Domain.objects.get(pk=n_f_m.pk)  # Refresh object
        n_f_m.soa = s
        n_f_m.save()

        m.soa = s
        m.save()

        b_m = Domain.objects.get(pk=b_m.pk)  # Refresh object
        b_m.soa = s
        b_m.save()

        m.soa = None
        self.assertRaises(ValidationError, m.save)

        s2 = SOA(primary="ns1.foo.com", contact="asdf", description="test2")
        s2.save()

        m.soa = s2
        self.assertRaises(ValidationError, m.save)
 def do_generic_add(self, primary, contact, retry, refresh, description):
     soa = SOA(primary=primary,
               contact=contact,
               retry=retry,
               refresh=refresh,
               description=description)
     soa.save()
     soa.save()
     rsoa = SOA.objects.filter(primary=primary,
                               contact=contact,
                               retry=retry,
                               refresh=refresh)
     self.assertTrue(len(rsoa) == 1)
     return soa
    def test_update_serial_no_dirty(self):
        # If we update the serial, the dirty bit shouldn't change.
        data = {
            'primary': "fakey.ns1.asdffoo.com",
            'contact': "adsffoopy.email.foo.com"
        }
        soa = SOA(**data)
        soa.save()  # new soa's are always dirty

        soa.dirty = False
        soa.save()

        soa.serial = soa.serial + 9
        soa.save()

        same_soa = SOA.objects.get(pk=soa.pk)
        self.assertFalse(same_soa.dirty)
Beispiel #9
0
def migrate_soa(zone, root_domain_name):
    for (name, ttl, rdata) in zone.iterate_rdatas('SOA'):
        print str(name) + " SOA " + str(rdata)
        exists = SOA.objects.filter(minimum=rdata.minimum,
                                    contact=rdata.rname.to_text().strip('.'),
                                    primary=rdata.mname.to_text().strip('.'),
                                    description="SOA for"
                                    " {0}".format(root_domain_name))
        if exists:
            soa = exists[0]
        else:
            new_serial = int(datetime.datetime.now().strftime("%Y%m%d01"))
            soa = SOA(serial=new_serial,
                      minimum=rdata.minimum,
                      contact=rdata.rname.to_text().strip('.'),
                      primary=rdata.mname.to_text().strip('.'),
                      description="SOA for"
                      " {0}".format(root_domain_name))
            soa.clean()
            soa.save()
    return soa
 def setUp(self):
     self.url_slug = 'soa'
     self.test_obj = SOA(primary=random_label(),
                         contact=random_label(),
                         description=random_label())
     self.test_obj.save()