From 84bc5577c819b70202a4eaea6e2a7f694c194753 Mon Sep 17 00:00:00 2001 From: Aurelien Lourot Date: Fri, 28 Aug 2020 13:23:25 +0200 Subject: [PATCH] Fix shared-db-relation-departed error when departing a cluster func-test-pr: https://github.com/openstack-charmers/zaza-openstack-tests/pull/399 Change-Id: Ie86fca7289a0b04686841e78019b76a270a5b411 Closes-Bug: #1881596 Co-Authored-By: Dmitrii Shcherbakov --- requirements.txt | 1 + src/lib/charm/openstack/mysql_router.py | 9 +++++++-- src/test-requirements.txt | 1 + .../bundles/overlays/focal-full-ha.yaml.j2 | 17 +---------------- src/tests/bundles/overlays/full-ha.yaml.j2 | 16 ++++++++++++++++ .../bundles/overlays/groovy-full-ha.yaml.j2 | 17 +---------------- src/tests/tests.yaml | 12 ++++++++---- test-requirements.txt | 3 ++- 8 files changed, 37 insertions(+), 39 deletions(-) mode change 100644 => 120000 src/tests/bundles/overlays/focal-full-ha.yaml.j2 create mode 100644 src/tests/bundles/overlays/full-ha.yaml.j2 mode change 100644 => 120000 src/tests/bundles/overlays/groovy-full-ha.yaml.j2 diff --git a/requirements.txt b/requirements.txt index 5f2fff3..aaaa3e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ # choices of *requirements.txt files for OpenStack Charms: # https://github.com/openstack-charmers/release-tools # +setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 # Build requirements charm-tools>=2.4.4 # importlib-resources 1.1.0 removed Python 3.5 support diff --git a/src/lib/charm/openstack/mysql_router.py b/src/lib/charm/openstack/mysql_router.py index b3c46f2..7d96b6b 100644 --- a/src/lib/charm/openstack/mysql_router.py +++ b/src/lib/charm/openstack/mysql_router.py @@ -477,8 +477,13 @@ class MySQLRouterCharm(charms_openstack.charm.OpenStackCharm): :returns: This function is called for its side effect :rtype: None """ - # This is a suborndinate relationship there is only ever one - unit = sending_interface.all_joined_units[0] + try: + # This is a subordinate relationship there is only ever one + unit = sending_interface.all_joined_units[0] + except IndexError: + # NOTE(lourot): this happens when the unit is departing, see + # lp:1881596. Let's just silently give up: + return for prefix in receiving_interface.get_prefixes(): diff --git a/src/test-requirements.txt b/src/test-requirements.txt index d3c9be8..e7c540d 100644 --- a/src/test-requirements.txt +++ b/src/test-requirements.txt @@ -4,5 +4,6 @@ # https://github.com/openstack-charmers/release-tools # # Functional Test Requirements (let Zaza's dependencies solve all dependencies here!) +setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 git+https://github.com/openstack-charmers/zaza.git#egg=zaza git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack diff --git a/src/tests/bundles/overlays/focal-full-ha.yaml.j2 b/src/tests/bundles/overlays/focal-full-ha.yaml.j2 deleted file mode 100644 index 2d8fd26..0000000 --- a/src/tests/bundles/overlays/focal-full-ha.yaml.j2 +++ /dev/null @@ -1,16 +0,0 @@ -applications: - keystone: - num_units: 3 - options: - vip: {{TEST_VIP00}} - nova-cloud-controller: - num_units: 3 - options: - vip: {{TEST_VIP01}} - keystone-hacluster: - charm: cs:~openstack-charmers-next/hacluster - nova-hacluster: - charm: cs:~openstack-charmers-next/hacluster -relations: -- ["keystone:ha", "keystone-hacluster:ha"] -- ["nova-cloud-controller:ha", "nova-hacluster:ha"] diff --git a/src/tests/bundles/overlays/focal-full-ha.yaml.j2 b/src/tests/bundles/overlays/focal-full-ha.yaml.j2 new file mode 120000 index 0000000..6926983 --- /dev/null +++ b/src/tests/bundles/overlays/focal-full-ha.yaml.j2 @@ -0,0 +1 @@ +full-ha.yaml.j2 \ No newline at end of file diff --git a/src/tests/bundles/overlays/full-ha.yaml.j2 b/src/tests/bundles/overlays/full-ha.yaml.j2 new file mode 100644 index 0000000..2d8fd26 --- /dev/null +++ b/src/tests/bundles/overlays/full-ha.yaml.j2 @@ -0,0 +1,16 @@ +applications: + keystone: + num_units: 3 + options: + vip: {{TEST_VIP00}} + nova-cloud-controller: + num_units: 3 + options: + vip: {{TEST_VIP01}} + keystone-hacluster: + charm: cs:~openstack-charmers-next/hacluster + nova-hacluster: + charm: cs:~openstack-charmers-next/hacluster +relations: +- ["keystone:ha", "keystone-hacluster:ha"] +- ["nova-cloud-controller:ha", "nova-hacluster:ha"] diff --git a/src/tests/bundles/overlays/groovy-full-ha.yaml.j2 b/src/tests/bundles/overlays/groovy-full-ha.yaml.j2 deleted file mode 100644 index 2d8fd26..0000000 --- a/src/tests/bundles/overlays/groovy-full-ha.yaml.j2 +++ /dev/null @@ -1,16 +0,0 @@ -applications: - keystone: - num_units: 3 - options: - vip: {{TEST_VIP00}} - nova-cloud-controller: - num_units: 3 - options: - vip: {{TEST_VIP01}} - keystone-hacluster: - charm: cs:~openstack-charmers-next/hacluster - nova-hacluster: - charm: cs:~openstack-charmers-next/hacluster -relations: -- ["keystone:ha", "keystone-hacluster:ha"] -- ["nova-cloud-controller:ha", "nova-hacluster:ha"] diff --git a/src/tests/bundles/overlays/groovy-full-ha.yaml.j2 b/src/tests/bundles/overlays/groovy-full-ha.yaml.j2 new file mode 120000 index 0000000..6926983 --- /dev/null +++ b/src/tests/bundles/overlays/groovy-full-ha.yaml.j2 @@ -0,0 +1 @@ +full-ha.yaml.j2 \ No newline at end of file diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index 0878664..e0c6e54 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -1,7 +1,7 @@ charm_name: mysql-router configure: - zaza.openstack.charm_tests.keystone.setup.add_demo_user -- full_model: +- full_model_ha: - zaza.openstack.charm_tests.vault.setup.auto_initialize - zaza.openstack.charm_tests.glance.setup.add_lts_image - zaza.openstack.charm_tests.neutron.setup.basic_overcloud_network @@ -10,16 +10,20 @@ configure: - zaza.openstack.charm_tests.keystone.setup.add_demo_user tests: - zaza.openstack.charm_tests.keystone.tests.AuthenticationAuthorizationTest -- full_model: +- full_model_ha: - zaza.openstack.charm_tests.keystone.tests.AuthenticationAuthorizationTest + - zaza.openstack.charm_tests.hacluster.tests.HaclusterScalebackTest dev_bundles: - groovy -- full_model: groovy-full-ha +- full_model_ha: groovy-full-ha gate_bundles: -- full_model: focal-full-ha +- full_model_ha: focal-full-ha smoke_bundles: - focal tests_options: + hacluster: + principle-app-name: keystone + hacluster-charm-name: hacluster force_deploy: - groovy - groovy-full-ha diff --git a/test-requirements.txt b/test-requirements.txt index 0ab97f6..d078e27 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,8 +3,9 @@ # choices of *requirements.txt files for OpenStack Charms: # https://github.com/openstack-charmers/release-tools # +setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 # Lint and unit test requirements -flake8>=2.2.4,<=2.4.1 +flake8>=2.2.4 stestr>=2.2.0 requests>=2.18.4 charms.reactive