From 7edf82503eb0515a4a056d5ff148e270ce2d6d8f Mon Sep 17 00:00:00 2001 From: Chris MacNaughton Date: Thu, 30 Jun 2022 11:14:34 -0500 Subject: [PATCH] Add a new TestClass that verifies test permissions change on charm upgrade --- zaza/openstack/charm_tests/ceph/mon/tests.py | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/zaza/openstack/charm_tests/ceph/mon/tests.py b/zaza/openstack/charm_tests/ceph/mon/tests.py index 2b5264f..d9ef4b3 100644 --- a/zaza/openstack/charm_tests/ceph/mon/tests.py +++ b/zaza/openstack/charm_tests/ceph/mon/tests.py @@ -15,6 +15,7 @@ """Ceph-mon Testing for cinder-ceph.""" import logging +import os import zaza.model @@ -125,6 +126,30 @@ class CinderCephMonTest(test_utils.BaseCharmTest): logging.info("... Done.") +class CephPermissionUpgradeTest(test_utils.OpenStackBaseTest): + """Verify that the ceph mon units update permissions on upgrade.""" + + @classmethod + def setUpClass(cls): + """Run class setup for running ceph mon tests.""" + super().setUpClass() + + def test_ceph_permission_upgrade(self): + """Check that the charm updates permissions on charm upgrade.""" + # Revoke 'osd blocklist' command + zaza.model.run_on_leader( + 'ceph-mon', + 'sudo -u ceph ceph auth caps client.cinder-ceph mon ' + '"allow r; allow command \"osd blacklist\"" osd "allow rwx"') + charm = 'ceph-mon' + charm_path = os.getcwd() + '/' + charm + '.charm' + logging.debug("Upgrading {} to {}".format(charm, charm_path)) + zaza.model.upgrade_charm(charm, path=charm_path) + auth = zaza.model.run_on_leader( + 'ceph-mon', 'ceph auth get client.cinder-ceph')['Stdout'] + self.assertIn('blocklist', auth) + + def does_relation_exist(unit_name, application_name, remote_application_name,