Due to the race condition described in LP: #2024481, before adding
networks to the speaker we need to wait until it gets scheduled,
otherwise it may not advertise some routes that are attempted to be
advertised before the speaker is scheduled to a dragent service causing
a non-fatal service error.
The configure step for the DRAgent tests configures a name for a
floating IP to be checked for at the peer side. Since the data plane
tests add one as well for an instance, make sure the control plane-only
tests rely on the FIP that has a specific name. This can be useful if
the tests are run in a different order.
For the NDR data plane testing case those checks cannot be performed
from the node that runs Zaza and instead need to be performed from a
unit that receives dynamic routes from the BGP speaker.
In order to allow for that case an additional argument is introduced.
A separate service subnet for FIPs is useful in making sure that
connectivity based on the advertised routes really works as opposed to
relying on directly connected routes to FIPs in the undercloud network
subnet used as an external network.
As a prerequisite to testing the data plane connectivity with routes
advertised by NDR, this change makes the configuration step reuse the
existing network config code that is able to do things like plugging an
extra interface to be used in bridge-interface-mappings.
The octavia tests can sometimes fail when calling
get_lb_providers if they have not been setup yet.
This adds a retry if keystoneauth1.exceptions.http.NotFound
is raised.
On failures there is no information of the state of the objects that
couldn't be removed, maybe there are on their way to be removed and this
is a failure visible on slow clouds and not an actual issue, this will
help with troubleshooting.
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
ad16b5a7fcad16b5a7fc introduced an option to
customize network and subnet names, however, not all modules were
updated to pass it into the setup_sdn method. Specificatlly, the
dragent now breaks with a KeyError during the configure step.
(Pdb) network_config["project_net_name"]
*** KeyError: 'project_net_name'
fdaf43f52c/zaza/openstack/charm_tests/dragent/configure.py (L35-L46)
A charm that uses FRR instead of Quagga is now published under:
https://charmhub.io/osci-frr
For our purposes FRR is a drop-in replacement of Quagga but the point
of a change is to remove Quagga references for clarity.
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.