def migrate_CNAME(zone, root_domain, soa, views): for (name, ttl, rdata) in zone.iterate_rdatas('CNAME'): name = name.to_text().strip('.') print str(name) + " CNAME " + str(rdata) exists_domain = Domain.objects.filter(name=name) if exists_domain: label = '' domain = exists_domain[0] else: label = name.split('.')[0] domain_name = name.split('.')[1:] domain = ensure_domain('.'.join(domain_name), force=True) data = rdata.target.to_text().strip('.') if CNAME.objects.filter(label=label, domain=domain, target=data).exists(): cn = CNAME.objects.get( label=label, domain=domain, target=data ) else: cn = CNAME( label=label, domain=domain, target=data, description=rdata.comment, ttl=ttl ) cn.full_clean() cn.save() for view in views: cn.views.add(view) cn.save()
def migrate_CNAME(zone, root_domain, soa, views): for (name, ttl, rdata) in zone.iterate_rdatas('CNAME'): name = name.to_text().strip('.') print str(name) + " CNAME " + str(rdata) exists_domain = Domain.objects.filter(name=name) if exists_domain: label = '' domain = exists_domain[0] else: label = name.split('.')[0] domain_name = name.split('.')[1:] domain = ensure_domain('.'.join(domain_name), force=True) data = rdata.target.to_text().strip('.') if CNAME.objects.filter(label=label, domain=domain, target=data).exists(): cn = CNAME.objects.get(label=label, domain=domain, target=data) else: cn = CNAME(label=label, domain=domain, target=data, description=rdata.comment, ttl=ttl) cn.full_clean() cn.save() for view in views: cn.views.add(view) cn.save()
def test_remove_has_child_records(self): Domain(name='com').save() f_c = Domain(name='foo.com') f_c.save() cn = CNAME(domain=f_c, label="no", target="asdf") cn.full_clean() cn.save() self.assertRaises(ValidationError, f_c.delete)
def test_add_with_cname(self): label = "cnamederp" domain = self.o_e data = "foo.com" cn = CNAME(label=label, domain=domain, target=data) cn.full_clean() cn.save() data = {'label': '', 'domain': self.o_e, 'server': 'cnamederp.oregonstate.org', 'priority': 2, 'ttl': 2222} mx = MX(**data) self.assertRaises(ValidationError, mx.save)
def do_add(self, label, domain, data): cn = CNAME(label=label, domain=domain, target=data) cn.full_clean() cn.save() cn.save() self.assertTrue(cn.get_absolute_url()) self.assertTrue(cn.get_edit_url()) self.assertTrue(cn.get_delete_url()) self.assertTrue(cn.details()) cs = CNAME.objects.filter( label=label, domain=domain, target=data) self.assertEqual(len(cs), 1) return cn
def test_existing_cname_new_domain(self): name = "bo" b_dom, _ = Domain.objects.get_or_create(name=name, delegated=False) name = "to.bo" t_dom, _ = Domain.objects.get_or_create(name=name, delegated=False) cn = CNAME(domain=t_dom, label="no", target="asdf") cn.full_clean() cn.save() name = "no.to.bo" n_dom = Domain(name=name, delegated=False) self.assertRaises(ValidationError, n_dom.save)
def test_no_ns_in_view(self): root_domain = create_fake_zone("asdfdjhjd") ns = root_domain.nameserver_set.all()[0] cn = CNAME(label='asdf', domain=root_domain, target='test.com') cn.full_clean() cn.save() cn.views.add(self.public_view) self.assertTrue(ns.domain.soa == cn.domain.soa) # We now should have a nameserver and a cname in the public view. The # nameserver should not be allowed to disable it's public view # Try to remove the public view self.assertTrue(self.public_view in ns.views.all()) self.assertTrue(self.private_view in ns.views.all()) post_data = self.update_rdtype(self.post_data()) post_data['domain'] = ns.domain.pk post_data['views'] = [self.private_view.pk] post_data['record_pk'] = ns.pk resp = self.c.post('/en-US/mozdns/record/record_ajax/', data=post_data) self.assertEqual(resp.status_code, 200) # Make sure it's still there ns = Nameserver.objects.get(pk=ns.pk) # fetch # Make sure the view is still there # The clean method should prevent it from being deleted self.assertTrue(self.public_view in ns.views.all()) # Try to remove the private view # This should be allowed self.assertTrue(self.public_view in ns.views.all()) post_data = self.update_rdtype(self.post_data()) post_data['views'] = [self.public_view.pk] post_data['record_pk'] = ns.pk resp = self.c.post('/en-US/mozdns/record/record_ajax/', data=post_data) self.assertEqual(resp.status_code, 200) # Make sure it's still there ns = Nameserver.objects.get(pk=ns.pk) # fetch # Make sure the view is still there # The clean method should prevent it from being deleted self.assertTrue(self.private_view not in ns.views.all())