Esempio n. 1
0
    def test_import2(self):
        fname = self._zonefile('zone2.txt')
        cli53_cmd('import', '--file', fname, self.zone)

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if x]
        output.sort()

        self.assertEqual(
            [
                "$ORIGIN %s." % self.zone,
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                "@ 86400 IN A 10.0.0.1",
                "@ 86400 IN MX 10 mail.example.com.",
                "@ 86400 IN MX 20 mail2.example.com.",
                "@ 86400 IN TXT \"v=spf1 a mx a:cli53.example.com mx:mail.example.com ip4:10.0.0.0/24 ~all\"",
                RegexEqual('^@ 900 IN SOA'),
                "mail 86400 IN A 10.0.0.2",
                "mail2 86400 IN A 10.0.0.3",
                'test 86400 IN TXT "multivalued" " txt \\"quoted\\" record"',
                "www 86400 IN A 10.0.0.1",
            ],
            output
        )
Esempio n. 2
0
    def disabled_aws_extensions(self):
        # disabled - they require a valid ELB to point to
        fname = self._zonefile('zoneaws.txt')
        cli53_cmd('import', '--file', fname, self.zone)

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if x]
        output.sort()

        self.assertEqual(
            [
                "$ORIGIN %s." % self.zone,
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 900 IN SOA'),
                "test 86400 AWS A 10 127.0.0.1 abc",
                "test 86400 AWS A 20 127.0.0.2 def",
                "test2 600 AWS ALIAS Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com.",
                "test3 600 AWS ALIAS region:us-west-1 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. "
                "identifier-test-id",
                "test4 600 AWS ALIAS 50 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. latency-test-id",
                "test5 60 AWS A failover:PRIMARY 127.0.0.3 Primary",
                "test5 600 AWS A failover:SECONDARY 127.0.0.4 Secondary"
            ],
            output
        )
Esempio n. 3
0
    def test_import_arpa(self):
        fname = self._zonefile('zone3.txt')
        cli53_cmd('import', '--file', fname, self.zone)

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if x]
        output.sort()

        self.assertEqual([
            "$ORIGIN %s." % self.zone,
            "98 0 IN PTR blah.foo.com.",
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 900 IN SOA'),
        ], output)
Esempio n. 4
0
    def setUp(self):
        # re-use if already created
        self.zone = '%d.example.com' % random.randint(0, sys.maxint)

        comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '')
        output = cli53_cmd('create', self.zone, '--comment', comment)
        # extract the zone id
        for line in output.split('\n'):
            m = re.search(r'/hostedzone/(.+)', line)
            if m:
                self.zoneid = m.group(1)
Esempio n. 5
0
    def test_import_arpa(self):
        fname = self._zonefile('zone3.txt')
        cli53_cmd('import', '--file', fname, self.zone)

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if x]
        output.sort()

        self.assertEqual(
            [
                "$ORIGIN %s." % self.zone,
                "98 0 IN PTR blah.foo.com.",
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 172800 IN NS'),
                RegexEqual('^@ 900 IN SOA'),
            ],
            output
        )
Esempio n. 6
0
 def test_create_delete(self):
     name = self._unique_name()
     comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '')
     cli53_cmd('create', name, '--comment', comment)
     assert name in cli53_cmd('list')
     cli53_cmd('delete', name)
     assert name not in cli53_cmd('list')
Esempio n. 7
0
 def test_rrcreate_replace_latency(self):
     cli53_cmd('rrcreate', '-i', 'asiacdn', '--region', 'ap-southeast-1',
               self.zone, 'cdn', 'CNAME', 'asiacdn.com.')
     cli53_cmd('rrcreate', '-i', 'statescdn', '--region', 'us-west-1',
               self.zone, 'cdn', 'CNAME', 'uscdn.com.')
     cli53_cmd('rrcreate', '-i', 'newuscdn', '--region', 'us-west-1',
               self.zone, 'cdn', 'CNAME', 'newuscdn.com.', '-r')
Esempio n. 8
0
 def test_create_delete(self):
     name = self._unique_name()
     comment = "unittests%s" % os.getenv("TRAVIS_JOB_ID", "")
     cli53_cmd("create", name, "--comment", comment)
     assert name in cli53_cmd("list")
     cli53_cmd("delete", name)
     assert name not in cli53_cmd("list")
Esempio n. 9
0
    def disabled_aws_extensions(self):
        # disabled - they require a valid ELB to point to
        fname = self._zonefile('zoneaws.txt')
        cli53_cmd('import', '--file', fname, self.zone)

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if x]
        output.sort()

        self.assertEqual([
            "$ORIGIN %s." % self.zone,
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 900 IN SOA'),
            "test 86400 AWS A 10 127.0.0.1 abc",
            "test 86400 AWS A 20 127.0.0.2 def",
            "test2 600 AWS ALIAS Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com.",
            "test3 600 AWS ALIAS region:us-west-1 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. identifier-test-id",
            "test4 600 AWS ALIAS 50 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. latency-test-id",
        ], output)
Esempio n. 10
0
    def test_import2(self):
        fname = self._zonefile('zone2.txt')
        cli53_cmd('import', '--file', fname, self.zone)

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if x]
        output.sort()

        self.assertEqual([
            "$ORIGIN %s." % self.zone,
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            RegexEqual('^@ 172800 IN NS'),
            "@ 86400 IN A 10.0.0.1",
            "@ 86400 IN MX 10 mail.example.com.",
            "@ 86400 IN MX 20 mail2.example.com.",
            "@ 86400 IN TXT \"v=spf1 a mx a:cli53.example.com mx:mail.example.com ip4:10.0.0.0/24 ~all\"",
            RegexEqual('^@ 900 IN SOA'),
            "mail 86400 IN A 10.0.0.2",
            "mail2 86400 IN A 10.0.0.3",
            'test 86400 IN TXT "multivalued" " txt \\"quoted\\" record"',
            "www 86400 IN A 10.0.0.1",
        ], output)
Esempio n. 11
0
    def test_rrcreate_failover_ALIAS(self):
        cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1')
        alias = "%s %s." % (self.zoneid, self.zone)
        cli53_cmd('rrcreate', self.zone, 'primary', 'ALIAS', alias, '-x 60', '-i failover-primary', '--failover', 'PRIMARY')
        cli53_cmd('rrcreate', self.zone, 'secondary', 'ALIAS', alias, '-x 60', '-i failover-secondary', '--failover', 'SECONDARY')

        output = cli53_cmd('export', self.zone)
        output = [x for x in output.split('\n') if 'failover-' in x]

        # ALIAS doesn't use TTL in this case, so the value is arbitrary
        self.assertEqual(
            [
                RegexEqual("primary \d+ AWS ALIAS failover:PRIMARY %s  failover-primary" % alias),
                RegexEqual("secondary \d+ AWS ALIAS failover:SECONDARY %s  failover-secondary" % alias),
            ],
            output
        )
Esempio n. 12
0
 def test_usage(self):
     assert 'usage' in cli53_cmd('-h')
Esempio n. 13
0
 def setUp(self):
     cli53_cmd('create', self.zone)
Esempio n. 14
0
 def test_rrdelete(self):
     cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1')
     cli53_cmd('rrdelete', self.zone, '', 'A')
Esempio n. 15
0
    def test_rrcreate(self):
        cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1')
        cli53_cmd('rrcreate', self.zone, 'www', 'CNAME', self.zone + '.',
                  '-x 3600')
        cli53_cmd('rrcreate', self.zone, 'info', 'TXT', 'this is a "test"')
        cli53_cmd('rrcreate', self.zone, 'weighttest1', 'CNAME',
                  self.zone + '.', '-x 60', '-w 0', '-i awsweightzero')
        cli53_cmd('rrcreate', self.zone, 'weighttest2', 'CNAME',
                  self.zone + '.', '-x 60', '-w 1', '-i awsweightone')
        cli53_cmd('rrcreate', self.zone, 'weighttest3', 'CNAME',
                  self.zone + '.', '-x 60', '-w 50', '-i awsweightfifty')

        output = cli53_cmd('export', self.zone)
        output = [
            x for x in output.split('\n')
            if '10.0.0.1' in x or 'CNAME' in x or 'TXT' in x
        ]

        self.assertEqual([
            "@ 86400 IN A 10.0.0.1",
            'info 86400 IN TXT "this is a \\"test\\""',
            "weighttest1 60 AWS CNAME 0 %s.  awsweightzero" % self.zone,
            "weighttest2 60 AWS CNAME 1 %s.  awsweightone" % self.zone,
            "weighttest3 60 AWS CNAME 50 %s.  awsweightfifty" % self.zone,
            "www 3600 IN CNAME %s." % self.zone,
        ], output)
Esempio n. 16
0
 def tearDown(self):
     # clear up
     cli53_cmd('rrpurge', '--confirm', self.zone)
     cli53_cmd('delete', self.zone)
Esempio n. 17
0
 def setUp(self):
     # re-use if already created
     self.zone = '%d.example.com' % random.randint(0, sys.maxint)
     cli53_cmd('create', self.zone, '--comment', 'unittests')
Esempio n. 18
0
 def tearDown(self):
     # clear up
     cli53_cmd('rrpurge', '--confirm', self.zone)
     cli53_cmd('delete', self.zone)
     os.unlink('temp.txt')
Esempio n. 19
0
 def setUp(self):
     comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '')
     cli53_cmd('create', self.zone, '--comment', comment)
Esempio n. 20
0
 def test_rrdelete(self):
     cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1')
     cli53_cmd('rrdelete', self.zone, '', 'A')
Esempio n. 21
0
 def tearDown(self):
     # clear up
     cli53_cmd('rrpurge', '--confirm', self.zone)
     cli53_cmd('delete', self.zone)
Esempio n. 22
0
 def setUp(self):
     cli53_cmd('create', self.zone)
Esempio n. 23
0
 def test_create_delete(self):
     name = self._unique_name()
     cli53_cmd('create', name)
     assert name in cli53_cmd('list')
     cli53_cmd('delete', name)
     assert name not in cli53_cmd('list')
Esempio n. 24
0
 def setUp(self):
     comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '')
     cli53_cmd('create', self.zone, '--comment', comment)
Esempio n. 25
0
 def test_usage(self):
     assert "usage" in cli53_cmd("-h")
Esempio n. 26
0
 def tearDown(self):
     # clear up
     cli53_cmd('rrpurge', '--confirm', self.zone)
     cli53_cmd('delete', self.zone)
     os.unlink('temp.txt')
Esempio n. 27
0
    def setUp(self):
        # re-use if already created
        self.zone = '%d.example.com' % random.randint(0, sys.maxint)

        comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '')
        cli53_cmd('create', self.zone, '--comment', comment)
Esempio n. 28
0
 def setUp(self):
     # re-use if already created
     self.zone = '%d.example.com' % random.randint(0, sys.maxint)
     cli53_cmd('create', self.zone, '--comment', 'unittests')
Esempio n. 29
0
 def test_usage(self):
     assert 'usage' in cli53_cmd('-h')
Esempio n. 30
0
    def test_rrcreate(self):
        cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1')
        cli53_cmd('rrcreate', self.zone, 'www', 'CNAME', self.zone+'.', '-x 3600')
        cli53_cmd('rrcreate', self.zone, 'info', 'TXT', 'this is a "test"')
        cli53_cmd('rrcreate', self.zone, 'weighttest1', 'CNAME', self.zone+'.', '-x 60', '-w 0', '-i awsweightzero')
        cli53_cmd('rrcreate', self.zone, 'weighttest2', 'CNAME', self.zone+'.', '-x 60', '-w 1', '-i awsweightone')
        cli53_cmd('rrcreate', self.zone, 'weighttest3', 'CNAME', self.zone+'.', '-x 60', '-w 50', '-i awsweightfifty')

        output = cli53_cmd('export', self.zone)
        output = [ x for x in output.split('\n') if '10.0.0.1' in x or 'CNAME' in x or 'TXT' in x ]

        self.assertEqual(
            [
                "@ 86400 IN A 10.0.0.1",
                'info 86400 IN TXT "this is a \\"test\\""',
                "weighttest1 60 AWS CNAME 0 %s.  awsweightzero" % self.zone,
                "weighttest2 60 AWS CNAME 1 %s.  awsweightone" % self.zone,
                "weighttest3 60 AWS CNAME 50 %s.  awsweightfifty" % self.zone,
                "www 3600 IN CNAME %s." % self.zone,
            ],
            output
        )
Esempio n. 31
0
 def test_create_delete(self):
     name = self._unique_name()
     cli53_cmd('create', name)
     assert name in cli53_cmd('list')
     cli53_cmd('delete', name)
     assert name not in cli53_cmd('list')
Esempio n. 32
0
 def test_rrcreate_replace_latency(self):
     cli53_cmd('rrcreate', '-i', 'asiacdn', '--region', 'ap-southeast-1', self.zone, 'cdn', 'CNAME', 'asiacdn.com.')
     cli53_cmd('rrcreate', '-i', 'statescdn', '--region', 'us-west-1', self.zone, 'cdn', 'CNAME', 'uscdn.com.')
     cli53_cmd('rrcreate', '-i', 'newuscdn', '--region', 'us-west-1', self.zone, 'cdn', 'CNAME', 'newuscdn.com.', '-r')
Esempio n. 33
0
    def setUp(self):
        # re-use if already created
        self.zone = '%d.example.com' % random.randint(0, sys.maxint)

        comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '')
        cli53_cmd('create', self.zone, '--comment', comment)