From 4f5b55315384768111439bf60c8112cdc31d5c59 Mon Sep 17 00:00:00 2001 From: David Ames Date: Tue, 8 May 2018 11:53:22 -0700 Subject: [PATCH] Enable Bionic as a gate test Change bionic test from dev to gate for 18.05. Change-Id: I314848bea90a372ef673732d6bce1e34d3083d2a --- src/tests/basic_deployment.py | 62 +++++++++++++------ ...bionic-queens => gate-basic-bionic-queens} | 0 src/tests/gate-basic-xenial-queens | 27 ++++++++ src/tox.ini | 2 +- 4 files changed, 71 insertions(+), 20 deletions(-) rename src/tests/{dev-basic-bionic-queens => gate-basic-bionic-queens} (100%) create mode 100755 src/tests/gate-basic-xenial-queens diff --git a/src/tests/basic_deployment.py b/src/tests/basic_deployment.py index cbe9516..1544283 100644 --- a/src/tests/basic_deployment.py +++ b/src/tests/basic_deployment.py @@ -147,11 +147,10 @@ class DesignateBindDeployment(amulet_deployment.OpenStackAmuletDeployment): 'designate-zone-manager', ] - # Authenticate admin with keystone endpoint - self.keystone = u.authenticate_keystone_admin(self.keystone_sentry, - user='admin', - password='openstack', - tenant='admin') + # Authenticate admin with keystone + self.keystone_session, self.keystone = u.get_default_keystone_session( + self.keystone_sentry, + openstack_release=self._get_openstack_release()) # Authenticate admin with designate endpoint designate_ep = self.keystone.service_catalog.url_for( @@ -160,13 +159,22 @@ class DesignateBindDeployment(amulet_deployment.OpenStackAmuletDeployment): keystone_ep = self.keystone.service_catalog.url_for( service_type='identity', interface='publicURL') - self.designate = designate_client.Client( - version='1', - auth_url=keystone_ep, - username="admin", - password="openstack", - tenant_name="admin", - endpoint=designate_ep) + if self._get_openstack_release() >= self.xenial_queens: + self.designate = designate_client.Client( + version='2', + session=self.keystone_session) + self.zones_list = self.designate.zones.list + self.zones_delete = self.designate.zones.delete + else: + self.designate = designate_client.Client( + version='1', + auth_url=keystone_ep, + username="admin", + password="openstack", + tenant_name="admin", + endpoint=designate_ep) + self.zones_list = self.designate.domains.list + self.zones_delete = self.designate.domains.delete def check_and_wait(self, check_command, interval=2, max_wait=200, desc=None): @@ -228,9 +236,15 @@ class DesignateBindDeployment(amulet_deployment.OpenStackAmuletDeployment): def get_domain_id(self, domain_name): domain_id = None - for dom in self.designate.domains.list(): - if dom.name == domain_name: - domain_id = dom.id + for dom in self.zones_list(): + if isinstance(dom, dict): + if dom['name'] == domain_name: + domain_id = dom['name'] + break + else: + if dom.name == domain_name: + domain_id = dom.id + break return domain_id def get_test_domain_id(self): @@ -252,7 +266,7 @@ class DesignateBindDeployment(amulet_deployment.OpenStackAmuletDeployment): 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.zones_delete(old_dom_id) self.check_and_wait( self.check_test_domain_gone, desc='Waiting for domain to disappear') @@ -260,7 +274,11 @@ class DesignateBindDeployment(amulet_deployment.OpenStackAmuletDeployment): domain = domains.Domain( name=self.TEST_DOMAIN, email="fred@amuletexample.com") - new_domain = self.designate.domains.create(domain) + 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') @@ -269,10 +287,16 @@ class DesignateBindDeployment(amulet_deployment.OpenStackAmuletDeployment): type="A", data=self.TEST_RECORD[self.TEST_WWW_RECORD]) - self.designate.records.create(new_domain.id, _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.designate.domains.delete(new_domain.id) + self.zones_delete(_domain_id) u.log.debug('OK') diff --git a/src/tests/dev-basic-bionic-queens b/src/tests/gate-basic-bionic-queens similarity index 100% rename from src/tests/dev-basic-bionic-queens rename to src/tests/gate-basic-bionic-queens diff --git a/src/tests/gate-basic-xenial-queens b/src/tests/gate-basic-xenial-queens new file mode 100755 index 0000000..25c403f --- /dev/null +++ b/src/tests/gate-basic-xenial-queens @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +# Copyright 2016 Canonical Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +"""Amulet tests on a basic designate-bind deployment on xenial-queens.""" + +from basic_deployment import DesignateBindDeployment + +if __name__ == '__main__': + deployment = DesignateBindDeployment( + series='xenial', + openstack='cloud:xenial-queens', + source='cloud:xenial-updates/queens') + deployment.run_tests() diff --git a/src/tox.ini b/src/tox.ini index 6ca8ba2..628b390 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -35,7 +35,7 @@ commands = # Run a specific test as an Amulet smoke test (expected to always pass) basepython = python2.7 commands = - bundletester -vl DEBUG -r json -o func-results.json gate-basic-xenial-pike --no-destroy + bundletester -vl DEBUG -r json -o func-results.json gate-basic-bionic-queens --no-destroy [testenv:func27-dfs] # Run all deploy-from-source tests which are +x (may not always pass!)