This PR implements the needed changes so that the Ceph charms
can be run without a full Openstack environment. In particular,
the RBD mirror charm needed tweaking so as to not depend on
Cinder, using pools of its own creating.
Ceph rbd mirroring fixes:
- Upstream ceph mirror tooling modernized its output, need to update
test to reflect that.
- Avoid spamming run-action in a loop
- Don't consider system pools for failover
- Remove obsolete workaround for LP: #1820976
* Move general function out of the testing class. This will make them
easy to be reused.
* Properly organize the tests, and add tons of docstrings and comments
to have them as clear as possible.
* Add `failover_cinder_volume_host` to the Zaza `utilities/openstack.py`,
since this is a general purpose function.
The updated tests add the possibility of testing deployments
with `image` RBD mirroring mode implemented as part of the
Cinder Ceph Replication charm spec.
The image used for the tests is just treated as a blob, no guests
are booted using it so to speed up the tests when using slow
storage by switching to using cirros image. The cirros image is ~20
times smaller than the bionic one.
Increase wait attempts for availability of volume created from image
in CephRBDMirrorTest. This is taking longer as of Nautilus due to
switch to using juju storage backed by undercloud cinder taking
longer than prior method of directory-backed OSD devices.