def setUp(self):
        Task.objects.all().delete()
        for soa in SOA.objects.all():
            delete_zone_helper(soa.root_domain.name)
        Domain.objects.get_or_create(name="arpa")
        Domain.objects.get_or_create(name="in-addr.arpa")
        self.r1, _ = Domain.objects.get_or_create(name="10.in-addr.arpa")
        Domain.objects.get_or_create(name="com")
        Domain.objects.get_or_create(name="mozilla.com")
        self.cleint = Client()

        # Build file system assets
        self.stage_dir = '{0}/stage/inv_zones/'.format(TEST_PREFIX)
        self.svn_dir = '{0}/dnsconfig/'.format(TEST_PREFIX)
        self.prod_dir = '{0}/dnsconfig/inv_zones/'.format(TEST_PREFIX)
        self.prod_dir2 = '{0}/dnsconfig/inv_zones2/'.format(TEST_PREFIX)
        self.svn_repo = '{0}/svn_repo'.format(TEST_PREFIX)
        self.lock_file = '{0}/lock.fake'.format(TEST_PREFIX)
        self.stop_update = '{0}/stop.update'.format(TEST_PREFIX)
        self.re_test_file = '{0}/re_test'.format(TEST_PREFIX)

        #os.chdir(os.path.join(TEST_PREFIX, ".."))
        if os.path.isdir(TEST_PREFIX):
            shutil.rmtree(TEST_PREFIX)
        os.makedirs(TEST_PREFIX)
        #os.makedirs(self.svn_repo)

        command_str = "svnadmin create {0}".format(self.svn_repo)
        rets = subprocess.Popen(shlex.split(command_str),
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        stdout, stderr = rets.communicate()
        self.assertEqual(0, rets.returncode, stderr)

        command_str = "svn co file://{0} {1}".format(self.svn_repo,
                                                     self.prod_dir)
        rets = subprocess.Popen(shlex.split(command_str),
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        stdout, stderr = rets.communicate()
        self.assertEqual(0, rets.returncode, stderr)

        command_str = "svn co file://{0} {1}".format(self.svn_repo,
                                                     self.prod_dir2)
        rets = subprocess.Popen(shlex.split(command_str),
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        stdout, stderr = rets.communicate()
        self.assertEqual(0, rets.returncode, stderr)
예제 #2
0
    def setUp(self):
        Task.objects.all().delete()
        for soa in SOA.objects.all():
            delete_zone_helper(soa.root_domain.name)
        Domain.objects.get_or_create(name="arpa")
        Domain.objects.get_or_create(name="in-addr.arpa")
        self.r1, _ = Domain.objects.get_or_create(name="10.in-addr.arpa")
        Domain.objects.get_or_create(name="com")
        Domain.objects.get_or_create(name="mozilla.com")
        self.cleint = Client()

        # Build file system assets
        self.stage_dir = '{0}/stage/inv_zones/'.format(TEST_PREFIX)
        self.svn_dir = '{0}/dnsconfig/'.format(TEST_PREFIX)
        self.prod_dir = '{0}/dnsconfig/inv_zones/'.format(TEST_PREFIX)
        self.prod_dir2 = '{0}/dnsconfig/inv_zones2/'.format(TEST_PREFIX)
        self.svn_repo = '{0}/svn_repo'.format(TEST_PREFIX)
        self.lock_file = '{0}/lock.fake'.format(TEST_PREFIX)
        self.stop_update = '{0}/stop.update'.format(TEST_PREFIX)
        self.re_test_file = '{0}/re_test'.format(TEST_PREFIX)

        #os.chdir(os.path.join(TEST_PREFIX, ".."))
        if os.path.isdir(TEST_PREFIX):
            shutil.rmtree(TEST_PREFIX)
        os.makedirs(TEST_PREFIX)
        #os.makedirs(self.svn_repo)

        command_str = "svnadmin create {0}".format(self.svn_repo)
        rets = subprocess.Popen(shlex.split(command_str),
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        stdout, stderr = rets.communicate()
        self.assertEqual(0, rets.returncode, stderr)

        command_str = "svn co file://{0} {1}".format(self.svn_repo,
                                                     self.prod_dir)
        rets = subprocess.Popen(shlex.split(command_str),
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        stdout, stderr = rets.communicate()
        self.assertEqual(0, rets.returncode, stderr)

        command_str = "svn co file://{0} {1}".format(self.svn_repo,
                                                     self.prod_dir2)
        rets = subprocess.Popen(shlex.split(command_str),
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        stdout, stderr = rets.communicate()
        self.assertEqual(0, rets.returncode, stderr)
예제 #3
0
    def test_delete_hanging_domain_1(self):
        # What happens when there is a domain hanging off the root_domain that
        # isn't in the zone
        root_domain = create_fake_zone('foo1.mozilla.com', suffix="")
        domain_name = root_domain.name
        hang_domain = Domain.objects.create(name='bar.foo1.mozilla.com')
        self.assertFalse(hang_domain.soa)
        in_domain = Domain.objects.create(
            name='baz.foo1.mozilla.com', soa=root_domain.soa
        )
        in_domain_name = in_domain.name

        self.assertTrue(root_domain.has_record_set())
        delete_zone_helper(domain_name)
        self.assertFalse(root_domain.has_record_set())

        self.assertFalse(Domain.objects.filter(name__contains=in_domain_name))
        self.assertTrue(Domain.objects.filter(name__contains=root_domain.name))
        self.assertTrue(Domain.objects.filter(name__contains=hang_domain.name))
예제 #4
0
    def test_delete_hanging_domain_2(self):
        # What happens when there is a domain hanging off the root_domain that
        # isn't in the zone
        root_domain = create_fake_zone('foo2.mozilla.com', suffix="")
        d1 = Domain.objects.create(
            name='bar.foo2.mozilla.com', soa=root_domain.soa
        )
        soa2 = SOA.objects.create(
            primary='foo.com', contact='foo', description='foo'
        )
        d2 = Domain.objects.create(name='baz.bar.foo2.mozilla.com', soa=soa2)

        root_domain_name = root_domain.name
        d1_domain_name = d1.name
        d2_domain_name = d2.name
        self.assertTrue(root_domain.has_record_set())
        delete_zone_helper(root_domain_name)
        self.assertFalse(root_domain.has_record_set())

        self.assertTrue(Domain.objects.get(name=root_domain_name))
        self.assertTrue(Domain.objects.get(name=d1_domain_name))
        d2 = Domain.objects.get(name=d2_domain_name)
        self.assertEquals(d2.soa, soa2)
 def delete_zone():
     try:
         return delete_zone_helper(domain_name)
     except ValidationError, e:
         transaction.rollback()
         return {'success': False, 'message': e.messages}
예제 #6
0
 def test_delete(self):
     root_domain = create_fake_zone('foo.mozilla.com', suffix="")
     domain_name = root_domain.name
     delete_zone_helper(domain_name)
     self.assertFalse(Domain.objects.filter(name__contains=domain_name))