def test_zone_create_propagates_to_nameservers(self):
        LOG.info('Create a zone')
        _, zone = self.client.create_zone()
        self.addCleanup(self.client.delete_zone, zone['id'])

        waiters.wait_for_zone_status(self.client, zone['id'], "ACTIVE")
        waiters.wait_for_query(self.query_client, zone['name'], "SOA")
    def test_zone_create_propagates_to_nameservers(self):
        LOG.info('Create a zone')
        _, zone = self.client.create_zone()
        self.addCleanup(self.client.delete_zone, zone['id'])

        waiters.wait_for_zone_status(self.client, zone['id'], "ACTIVE")
        waiters.wait_for_query(self.query_client, zone['name'], "SOA")
Esempio n. 3
0
    def test_zone_create_propagates_to_nameservers(self):
        LOG.info('Create a zone')
        zone_name = dns_data_utils.rand_zone_name(
            name="zone_create_propagates", suffix=self.tld_name)
        zone = self.client.create_zone(name=zone_name)[1]
        self.addCleanup(self.wait_zone_delete, self.client, zone['id'])

        waiters.wait_for_zone_status(self.client, zone['id'], const.ACTIVE)
        waiters.wait_for_query(self.query_client, zone['name'], const.SOA)
    def test_zone_delete_propagates_to_nameservers(self):
        LOG.info('Create a zone')
        _, zone = self.client.create_zone()
        self.addCleanup(self.client.delete_zone, zone['id'],
                        ignore_errors=lib_exc.NotFound)

        waiters.wait_for_zone_status(self.client, zone['id'], "ACTIVE")
        waiters.wait_for_query(self.query_client, zone['name'], "SOA")

        LOG.info('Delete the zone')
        self.client.delete_zone(zone['id'])

        waiters.wait_for_zone_404(self.client, zone['id'])
        waiters.wait_for_query(self.query_client, zone['name'], "SOA",
                               found=False)
Esempio n. 5
0
    def test_zone_delete_propagates_to_nameservers(self):
        LOG.info('Create a zone')
        _, zone = self.client.create_zone()
        self.addCleanup(self.client.delete_zone, zone['id'],
                        ignore_errors=lib_exc.NotFound)

        waiters.wait_for_zone_status(self.client, zone['id'], "ACTIVE")
        waiters.wait_for_query(self.query_client, zone['name'], "SOA")

        LOG.info('Delete the zone')
        self.client.delete_zone(zone['id'])

        waiters.wait_for_zone_404(self.client, zone['id'])
        waiters.wait_for_query(self.query_client, zone['name'], "SOA",
                               found=False)
Esempio n. 6
0
    def test_zone_abandon(self):
        LOG.info('Create a PRIMARY zone')
        zone_name = dns_data_utils.rand_zone_name(name="zone_abandon",
                                                  suffix=self.tld_name)
        pr_zone = self.client.create_zone(name=zone_name)[1]
        self.addCleanup(self.wait_zone_delete, self.client, pr_zone['id'])
        waiters.wait_for_zone_status(self.client, pr_zone['id'], 'ACTIVE')

        LOG.info('Ensure we respond with CREATE+PENDING')
        self.assertEqual('CREATE', pr_zone['action'])
        self.assertEqual('PENDING', pr_zone['status'])

        LOG.info('Fetch the zone')
        self.client.show_zone(pr_zone['id'])

        LOG.info('Check that the zone was created on Nameserver/BIND')
        waiters.wait_for_query(self.query_client, pr_zone['name'], "SOA")

        # Test RBAC
        expected_allowed = ['os_admin']
        if CONF.dns_feature_enabled.enforce_new_defaults:
            expected_allowed.append('os_system_admin')

        self.check_CUD_RBAC_enforcement(
            'ZonesClient',
            'abandon_zone',
            expected_allowed,
            False,
            pr_zone['id'],
            headers={'x-auth-sudo-project-id': pr_zone['project_id']})

        # Test abandoning the zone
        LOG.info('Abandon a zone')
        self.admin_client.abandon_zone(
            pr_zone['id'],
            headers={'x-auth-sudo-project-id': pr_zone['project_id']})

        LOG.info('Wait for the zone to become 404/NotFound in Designate')
        waiters.wait_for_zone_404(self.client, pr_zone['id'])

        LOG.info('Check that the zone is still exists in Nameserver/BIND')
        waiters.wait_for_query(self.query_client, pr_zone['name'], "SOA")
Esempio n. 7
0
    def test_zone_delete_propagates_to_nameservers(self):
        LOG.info('Create a zone')
        zone_name = dns_data_utils.rand_zone_name(
            name="zone_delete_propagates", suffix=self.tld_name)
        zone = self.client.create_zone(name=zone_name)[1]
        self.addCleanup(self.wait_zone_delete,
                        self.client,
                        zone['id'],
                        ignore_errors=lib_exc.NotFound)

        waiters.wait_for_zone_status(self.client, zone['id'], const.ACTIVE)
        waiters.wait_for_query(self.query_client, zone['name'], const.SOA)

        LOG.info('Delete the zone')
        self.client.delete_zone(zone['id'])

        waiters.wait_for_zone_404(self.client, zone['id'])
        waiters.wait_for_query(self.query_client,
                               zone['name'],
                               const.SOA,
                               found=False)
Esempio n. 8
0
    def test_zone_abandon_forbidden(self):

        LOG.info('Create a PRIMARY zone and add to the cleanup')
        zone_name = dns_data_utils.rand_zone_name(
            name="zone_abandon_forbidden", suffix=self.tld_name)
        pr_zone = self.client.create_zone(name=zone_name)[1]
        self.addCleanup(self.wait_zone_delete, self.client, pr_zone['id'])
        waiters.wait_for_zone_status(self.client, pr_zone['id'], 'ACTIVE')

        LOG.info('Ensure we respond with CREATE+PENDING')
        self.assertEqual('CREATE', pr_zone['action'])
        self.assertEqual('PENDING', pr_zone['status'])

        LOG.info('Fetch the zone')
        self.client.show_zone(pr_zone['id'])

        LOG.info('Check that the zone was created on Nameserver/BIND')
        waiters.wait_for_query(self.query_client, pr_zone['name'], "SOA")

        LOG.info('Abandon a zone as primary client, Expected: should '
                 'fail with: 403 forbidden')
        self.assertRaises(lib_exc.Forbidden,
                          self.client.abandon_zone,
                          zone_id=pr_zone['id'])