Moving the attributes from HaclusterScaleBackAndForthTest to
HaclusterBaseTest allows HaclusterTest to access them and identify the
hacluster application correctly.
In the rotate password test, the results from the action return a list
of strings that are deliminted by single quotes. This isn't compatible
with json.loads(), but yaml.safe_load() is able to load the string as an
array of strings.
This new test verifies that keystone can have its password rotated and
then still operate afterwards. It verifies that the on-disk password is
changed in the keystone application and that the user list can be
performed.
Fix a bug where the wrong paramter from the /etc/cinder/cinder.conf
file is being used ('transport' -> 'transport_url').
Fix issue around using json instead of yaml for loading the usernames
from the action data from the list_service_usernames action, which uses
single quotes to quote the data, which isn't compatible with json.
Make the testing for the password change in the cinder.conf more robust
by retrying, as juju is essentially async and it's difficult to
determine exactly when the hook will get fired on cinder.
This new test verifies that cinder can have its password rotated and
then still operate afterwards. It verifies that the on-disk password is
changed in the cinder application and that the user list can be
performed.
Issue seen at the gate:
glanceclient.exc.CommunicationError: [...] ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
The skipVersion decorator was proving to be tricky to use because
it took an application name which we didn't want to hard-code,
since it is in hacluster/tests.py. One alternative was to pass a
charm name instead of application name, but if there were mutiple
hacluster applications in the model (e.g. keystone-hacluster and
nova-hacluster) we would have to pick just one to test the package
version on. After further discussion we decided to change the
decorator to a function so that we could use existing class
variables to generate the desired hacluster application name.
Similar to when an IP has been added to the service_ips earlier
in test_configure_ips(), this adds tenacity Retrying after an
IP has been removed from the service_ips.
When a charm has a non-pristine status, it should leave the
previously-set blocked state (LP #1988088) if there are no
non-pristine disks
Also: seeing some spurious test failures due to timeouts
waiting on disk removal -- wait a bit longer
The keystone-kerberos test setup is failing often due to accessing
the keystone endpoint before it is available. Adding tenacity
retries here to deal with this.
The keystone-ldap tests are failing often due to accessing
the keystone endpoint before it is available. Adding tenacity
retries here to deal with this.
While the disk replacement rests are good for the OSD charm,
and it's useful to have more disks by default in that case,
requiring extra disk for all applications that tun the Ceph tests
is an unreasonable burden, requiring additional changed just
to accommodate the OSD charm tests.
This change updates to check if we have enough disks available
before running the disk replacement tests.