The test class BlueStoreCompressionCharmOperation gates tests on
whether the ceph release is mimic or newer but it uses the
keystone application to calculate the currently deployed version.
This PR switches the test class to ceck the version of ceph-mon
instead which makes more sense and the keystone application may
not always present in a ceph deployment.
Before this fix, the test tried to determine the OpenStack
release based on the ceph-mon charm. Unfortunately Ceph has
the same version on Ussuri and Victoria. As a consequence
the test would wrongly conclude that it's testing against
"groovy_ussuri", which isn't a valid Ubuntu/OpenStack pair.
With this fix, the test now determines the OpenStack
release based on the keystone charm, with which we are able
to tell Ussuri and Victoria apart. This test class is being
run against the following charm functional tests at the
moment, which all have a keystone charm in their test
bundles: nova-compute, cinder-ceph, glance, ceph-fs,
ceph-radosgw and gnocchi.
Currently test_check_pool_types will fail when it tries to check
the corresponding pool type for an application that is not present
in the deployment, this patch changes the behaviour to skip missing
applications.
Update the cinder-ceph permissions check to look for permissions
specific to the cinder-ceph usage of ceph; this ensures that if
we add glance and nova to the bundle (which creates additional
permissions) the existing test will continue to pass.
The test won't pass on serverstack due to the snapd taking a copy of the
/mnt/vdb info at boot time and thus not being able to umount it is root
without also running through all of the procs and checking if they also
have it mounted. Thus, this just disables the test on focal and newer.
When testing with TLS there is a chance the deployment will appear
done and idle prior to ceph-radosgw and Keystone have updated the
service catalog. Retry the test in this circumstance.