def create_designate_dns_domain(designate_client,
                                domain_name,
                                email,
                                recreate=True):
    """Create the given domain in designate

    @param designate_client: designateclient.v1.Client Client to query
                                                       designate
    @param domain_name: str Name of domain to lookup
    @param email: str Email address to associate with domain
    @param recreate: boolean Whether to delete any matching domains first.
    """
    if recreate:
        delete_designate_dns_domain(designate_client, domain_name)
        for i in range(1, 10):
            try:
                dom_obj = create_designate_zone(designate_client, domain_name,
                                                email)
            except des_exceptions.Conflict:
                print("Waiting for delete {}/10".format(i))
                time.sleep(10)
            else:
                break
        else:
            raise des_exceptions.Conflict
    else:
        domain = des_domains.Domain(name=domain_name, email=email)
        dom_obj = designate_client.domains.create(domain)
    return dom_obj
Example #2
0
    def v2_410_domain_creation(self):
        """Simple api calls to create domain"""
        u.log.debug('Checking if domain exists before trying to create it')
        old_dom_id = self.get_test_domain_id()
        if old_dom_id:
            u.log.debug('Deleting old domain')
            self.designate.domains.delete(old_dom_id)
        self.check_and_wait(self.check_test_domain_gone,
                            desc='Waiting for domain to disappear')
        u.log.debug('Creating new domain')
        domain = domains.Domain(name=self.TEST_DOMAIN,
                                email="*****@*****.**")
        new_domain = self.designate.domains.create(domain)
        assert (new_domain is not None)

        u.log.debug('Creating new test record')
        _record = records.Record(name=self.TEST_WWW_RECORD,
                                 type="A",
                                 data=self.TEST_RECORD[self.TEST_WWW_RECORD])

        self.designate.records.create(new_domain.id, _record)
        self.check_and_wait(self.check_slave_resolve_test_record,
                            desc='Waiting for dns record to propagate')
        u.log.debug('Tidy up delete test record')
        self.designate.domains.delete(new_domain.id)
        u.log.debug('OK')
Example #3
0
    def test_resource_show_resource(self):
        args = dict(name='test',
                    description='updated description',
                    ttl=4200,
                    email='*****@*****.**')

        rsc = domains.Domain(args)
        mock_notification_get = self.test_client.domains.get
        mock_notification_get.return_value = rsc

        self.assertEqual(args, self.test_resource._show_resource(),
                         'Failed to show resource')
Example #4
0
    def test_400_domain_creation(self):
        """Simple api calls to create domain."""
        logging.debug('Checking if domain exists before trying to create it')
        old_dom_id = self._get_domain_id(domain_name=self.TEST_DOMAIN)
        if old_dom_id:
            logging.debug('Deleting old domain')
            self._wait_on_domain_gone(old_dom_id)

        logging.debug('Creating new domain')
        domain = domains.Domain(name=self.TEST_DOMAIN,
                                email="*****@*****.**")

        if self.post_xenial_queens:
            new_domain = self.domain_create(name=domain.name,
                                            email=domain.email)
        else:
            new_domain = self.domain_create(domain)
        self.assertIsNotNone(new_domain)

        logging.debug('Creating new test record')
        _record = records.Record(name=self.TEST_WWW_RECORD,
                                 type="A",
                                 data=self.TEST_RECORD[self.TEST_WWW_RECORD])

        if self.post_xenial_queens:
            domain_id = new_domain['id']
            self.designate.recordsets.create(domain_id, _record.name,
                                             _record.type, [_record.data])
        else:
            domain_id = new_domain.id
            self.designate.records.create(domain_id, _record)

        self._wait_to_resolve_test_record()

        logging.debug('Tidy up delete test record')
        self._wait_on_domain_gone(domain_id)
        logging.debug('OK')
Example #5
0
    def test_300_default_soa_config_options(self):
        """Configure default SOA options."""
        test_domain = "test_300_example.com."
        DEFAULT_TTL = 60
        alternate_config = {
            'default-soa-minimum': 600,
            'default-ttl': DEFAULT_TTL,
            'default-soa-refresh-min': 300,
            'default-soa-refresh-max': 400,
            'default-soa-retry': 30
        }
        with self.config_change({},
                                alternate_config,
                                "designate",
                                reset_to_charm_default=True):
            for key, value in alternate_config.items():
                expected = "\n%s = %s\n" % (key.replace('-', '_'), value)
                zaza.model.block_until_file_has_contents(
                    self.application_name, self.DESIGNATE_CONF, expected)
            logging.debug('Creating domain %s' % test_domain)
            domain = domains.Domain(name=test_domain,
                                    email="*****@*****.**")

            if self.post_xenial_queens:
                new_domain = self.domain_create(name=domain.name,
                                                email=domain.email)
                domain_id = new_domain['id']
            else:
                new_domain = self.domain_create(domain)
                domain_id = new_domain.id

            self.assertIsNotNone(new_domain)
            self.assertEqual(new_domain['ttl'], DEFAULT_TTL)

            logging.debug('Tidy up delete test record %s' % domain_id)
            self._wait_on_domain_gone(domain_id)
            logging.debug('Done with deletion of domain %s' % domain_id)
    def test_400_domain_creation(self):
        """Simple api calls to create domain"""
        u.log.debug('Checking if domain exists before trying to create it')
        old_dom_id = self.get_test_domain_id()
        if old_dom_id:
            u.log.debug('Deleting old domain')
            self.zones_delete(old_dom_id)
        self.check_and_wait(self.check_test_domain_gone,
                            desc='Waiting for domain to disappear')
        u.log.debug('Creating new domain')
        domain = domains.Domain(name=self.TEST_DOMAIN,
                                email="*****@*****.**")
        if self._get_openstack_release() >= self.xenial_queens:
            new_domain = self.designate.zones.create(name=domain.name,
                                                     email=domain.email)
        else:
            new_domain = self.designate.domains.create(domain)
        assert (new_domain is not None)

        u.log.debug('Creating new test record')
        _record = records.Record(name=self.TEST_WWW_RECORD,
                                 type="A",
                                 data=self.TEST_RECORD[self.TEST_WWW_RECORD])

        if self._get_openstack_release() >= self.xenial_queens:
            _domain_id = new_domain['id']
            self.designate.recordsets.create(_domain_id, _record.name,
                                             _record.type, [_record.data])
        else:
            _domain_id = new_domain.id
            self.designate.records.create(_domain_id, _record)
        self.check_and_wait(self.check_slave_resolve_test_record,
                            desc='Waiting for dns record to propagate')
        u.log.debug('Tidy up delete test record')
        self.zones_delete(_domain_id)
        u.log.debug('OK')
Example #7
0
 def domain_create(self, **kwargs):
     domain = domains.Domain(**kwargs)
     return self.client().domains.create(domain)