When this test fails or when retries are needed, it is not clear why
it failed. The logs say "The list of agents has changed".
It should be clear how that list changed.
Change-Id: I0e6a070dcf5808b0ab4379cb41e74e5ff352856a
When the Openstack auth-url is based on https, using the openstackclient
requires to provide the path to the certificate file from the
undercloud.
This patch also fixes the octavia deploy_ipv4_lb method: it tries to
find the external IPv4 subnet using its name. With this patch, the
external network is found (only one external network is supported so
far) and then its IPv4 subnet is returned
Change-Id: I58f7aae796478eda0bff87ec60b62c940a67e677
This test may be unstable because the ports are created and immediately
they are obtained from the nova API.
When a port creation request succeeds, it doesn't mean it has already
been created, but the POST request is being processed (response 201). It
may take a while to really create the port
Change-Id: Iea69f2252dc766ffcc0513331535ceebe9f80ddc
It's needed to cap our dependencies also on the RTD when documentation
is build to not use newer versions of packages then should be used.
For example now documentation builds on the RTD was failing because of
urllib3 2.0 which isn't compatible with Tobiko (tobiko.http._session
module in particular).
Module urllib3 is capped to 1.26.8 version in our upper-constraints.txt
file but that wasn't used in RTD builds until now.
Change-Id: I279767393716371dd16afe801c66814acd364171
Heat might not be supported in OSP18.
After the Tobiko team decided to remove the dependency on Heat, this
patch removes Heat stacks and templates from Octavia.
Note: Backend servers (such as Ubuntu) and subnet still use heat
templates, and Octavia uses them, but after this patch there
won't be any Octavia API calls which will be called by Heat.
Change-Id: I5c335d68c093e8e5e1d247c300186859b889bd39
After OVN migration some OVS-specific interfaces can still present
on nodes until VMs are migrated or nodes rebooted.
Skipping this test after OVN migration will help to avoid
irrelevant failures.
Change-Id: I50f91477a063d8f3feefb26c70e4ea041a6d13f4
So far, some validations in Octavia might have run too early in the
validation flow, for example, a request is being sent to a member which
is still not ready.
This patch replaces the simple assertEqual, with an exception which will
be raised (RoundRobinException), in case that one member is not ready
yet.
The validator method caller wraps the call with a try/except clause, to
make sure Octavia has enough time to launch a ready-vm.
Change-Id: Ie3821441ff1659b7f919a34e517c32b552eaf544
So far Octavia ovn-provider did not allow the end user to curl the LB
VIP.
Now that it is allowed, this patch improves the Octavia ovn-provider
scenario test by creating the Octavia resources using ports 80/8080 and
cURLing them (instead of only SSHing them to generate traffic).
Change-Id: I32670197f4600f09d07b36810fd081f1512b77bc
Default timeouts of 900 and 1500 seconds which are suitable for
upstream CI are too long for downstream CI causing redundant
15 minutes retries while 2-3 minutes are enough to make a decision
that something went wrong. This patch allows
configuring custom values for ubuntu vm connectivity timeouts.
Change-Id: If33991b0b932d7615f7072a4c2121fde4d5bcdc8
The scenario tests were not really executed because they were marked as
flaky.
The benefit from using this images in some functional tests is irrelevant
compared with the impact in job duration and stability.
Due to these reasons, it has been decided to use only cirros and ubuntu
(for the test that required advanced images).
Change-Id: I168b1f071b3a77eb0b24586fd403d12165db1db2
When a stack is not deleted and the retry loop ends, tobiko raises an
exception with the following error message:
HeatStackDeletionFailed: stack <name> status 'DELETE_COMPLETE' not in
{'DELETE_COMPLETE'}
This is a misleading message fixed by this patch, because the real
problem is that the stack remains in DELETE_COMPLETE status and was not
properly deleted
Change-Id: I661e7e727e60dc16195e6589fac47aa7ecb16f0c
This test was sometimes failing during the verification of the number of
ports obtained after the controller reboot.
Two issues have been identified and corrected:
- The information obtained from nova/heat for some VMs showed no ports
and in some cases a port had been created for those VMs. The test is
modified to try to obtain the port from neutron in those cases.
- The final list of ports after the reboot was obtained before
the loop checking VM ports ends. It has been moved to obtain the list
after that loop, which looks more stable.
Change-Id: If57c2fc9451a89813f63d6c84e5ad86b991cfd3f
Added option to skip flaky tests during ovn-migration testenvs.
Added decorator to StatelessSecurityGroupTest in order to skip these
tests during ovn-migration too.
Change-Id: I2d30df19dc3e7102b430254db1585e6df33702df
Added NoFipPortTest class to test_port module. They are only executed
when BGP is configured and expose_tenant_networks is enabled. These
tests use a VM without FIP. The tests connect to the fixed IPs from its
tenant networks.
Change-Id: I458ab8f8ebe92a0f53bbd10675ae161450ffc0ff
This patch adds two faults tests. They restart the ovn_bgp_agent and
the frr services, respectively, on all the overcloud nodes where these
services run.
When BGP is configured with expose_tenant_networks enabled, faults tests
will create an extra VM without FIP to verify connectivity to its tenant
IP addresses.
Change-Id: I118427b41e1c97d075572a5ebee21025ac5cc967
This patch adds new tox env "ovn_migration_sanity" which runs only tests
marked as "ovn_migration" and explicitly skip all tests marked as
"skip_during_ovn_migration".
This patch additionally modifies check-resources-ovn-migration workflow
so it will now first check resources after migration (run
"ovn_migration" tox env) and next run ovn_migration sanity tests too.
Change-Id: Ib50bfb0c294ee305fa7bee53c048939479e2e436
This commit adds new pytest mark "skip_during_ovn_migration" to mark
some tests to be always skipped during migration from ML2/OVS to
ML2/OVN and marks as such tests from the
StatelessSecurityGroupInstanceTest class.
The reason why those tests shouldn't be run during the ovs to ovn
migration is that we are skipping them in ML2/OVS env so resources
required by those tests aren't created and later, when env is ML2/OVN
already we can't really verify them as we don't have required resources
created.
This patch modifies also ovn_migration tox env so it will run all
neutron scenario tests EXCEPT tests marked with this new pytest mark as
"skip_during_ovn_migration".
Change-Id: Iaa1e8b0d325ea690c6d6cb89e06006e7bbed9237
Decorator skip_unless_osp_version should not skip tests when the osp
version is not known. Those tests were wrongly being skipped in all
upstream jobs
Change-Id: I445fc3a04c70d46fc4fa32aadc88068f9de70533
With some recent ubuntu release, routes to nameservers are added to VLAN
interfaces. This breaks some tests when they are executed in downstream
jobs because the affected VM instances are unable to reach the external
gateway
Change-Id: Ica2d029792b543222193cfd4175edc15f0b981ab
This patch includes some changes wrt StatelessSecurityGroupFixture:
- a task that cleans up the security groups generated with this fixture
is added to the tobiko-cleanup role
- when TOBIKO_PREVENT_CREATE env variable is set, the security groups
are not created (they should have been created before)
- the lockutils.synchronized decorator is used to avoid that two
security groups with the same name are created concurrently
- neutron.get_security_group(self.name) did not work because that method
does not work with the security group name; it is replaced by
neutron.list_security_groups(name=self.name) instead
Change-Id: I3ab84e138049a27db017630b32d81d290aa5f6cd
This patch removes the tobiko.openstack.neutron._cidr module that was
used to generate CIDRs whenever tobiko was going to create a new subnet.
That method had problems when several tobiko workers running in parallel
tried to create subnets. Collisions happened sometimes, resulting in the
creation of two subnets with a common CIDR that could fail if they were
connected to a common router.
This patch uses the neutron subnet pool feature [1]. When Tobiko creates
a subnet, it will not calculate a free IPv4/IPv6 CIDR, but will
associate that subnet to common Subnet Pools, shared by the different
tests. When the subnet is created, it is neutron responsibiltiy to
allocate a free CIDR for that subnet, based on the created Subnet Pools.
The method that creates the Subnet Pools uses an
@oslo_concurrency.lockutils.synchronized decorator to guarantee that two
Tobiko workers do not create the same Subnet Pool at the same time.
[1] https://docs.openstack.org/neutron/latest/admin/config-subnet-pools.html
Change-Id: I3b09e468310e06f8c4b7d7dbec02e4b2e6f67530
Tobiko faults tests that depend on the Main VIP resource configured
should be skipped because this resource is not created when an External
LB is used.
Disabling the haproxy resource should be skipped because that resource
does not exist then an External LB is used.
Change-Id: Ic20fa2f321989aa4c49aeff8b4e01b2025bd4160
virtualenv is a requirement for tox, so it is installed when tobiko
roles install tox.
Besides, virtualenv is also defined in the openstack requirements
upper-constraints.txt file, specifying which one is the virtualenv
valid upper version.
Due to this, virtualenv is removed from the task that upgrades other
packages as part of the tobiko-ensure-python3 role.
Change-Id: I41b76d7041face19635c9fd35e773b9144d25c30
With this patch, the method is based on two tobiko.retry loops.
The outer loop is used to retry in case of any unexpected result when
neutron.list_agents is called: neutron exception, some dead agents or
the list of agents does not match the previously obtained list. The
retry timeout will be 180 seconds by default.
The inner loop is used to count the number of consistent results, i.e.
how many times the obtained list of neutron agents is identical. The
test passes if the result is consistent for 5 times by default.
Change-Id: I5891bdda50e604de45ce55aaa86440988c55cca0
Test test_ovsdb_transation sends several neutron port creation requests
in parallel, using background processes. This failed when using SSL, an
SSLError was raised: SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC
In order to avoid that exception, this patch makes the background
processes send their neutron requests using different keystone
sessions.
Change-Id: I91739e40fe4e27eb0280702f697bea36eb6685db
Tobiko faults tests check the list of nova services after the test
performs some disruption on the cloud. The list_services request could
fail after the disruption while the cloud is recovering and the test
should not fail due to this, but retry some times until the cloud is
healthy again.
Change-Id: I540cf2c39ef0d6cbc3cd53e917b7652ddfea5a57