As per 2023.1 testing runtime[1], we need to test on Ubuntu
Jammy (which will be taken care by tempest and devstack patches
to move base jobs to Jammy) and at least single job to run on
Ubutnu Focal (for smooth upgrade). Also, python 3.10 testing is
voting now.
This commit makes python 3.10 functional job as voting and python 3.10
unit test job are voting via generic template. Python 3.8/3.9 jobs are
running on Focal and python 3.10 on Jammy.
[1] https://governance.openstack.org/tc/reference/runtimes/2023.1.html
Change-Id: I97b82399af9a640353ba979965c202afcb224163
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope. Also,
updating the template name to generic one.
See also the PTI in governance [1].
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: Ieb6339cd677c76f0158cc19c9a0bf32b2237594d
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for zed.
See also the PTI in governance [1].
I needed to squash in another change that is dropping the py36 and py37
support. We cannot do that separately as those jobs are already failing.
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: I378d5c3c1f3e96696670a4865caf5901269a5ee4
... to ensure that osc-placement is co-installable with
python-openstackclient and the other plugins.
Change-Id: I9e1bc722e77d181ad2ad8b515538ad01edf85d53
This patch also adds a non voting job calling the new target
Depends-On: https://review.opendev.org/760932
Change-Id: I37a2cded4f1685cfe433efe53154da12fedadce6
The gate had py36 and py37 functional tests, but it didn't have py38
functional test. This patch adds functional-py38 tests to the gate.
Change-Id: I4c7f484eedfebe5472c6f360b62459ae17989d7d
Change the functional tests to use the PlacementFixture instead
of devstack as the source of a placement API. This speeds up
the tests considerably and lowers the number of dependencies.
There are four primary changes:
* For each test a PlacementFixture is instantiated, using the
usual in-RAM db and in-process placement.
* Because of some exceedingly confusing optimizations in
osc_lib and python-openstackclient, done to improve start
up time, a session to placement was caching the service
url. This meant that after a first test succeeded, every
subsequent one would not because it was trying to talk
to a fake hostname that was no longer being intercepted.
The workaround for this was to monkeypatch the method
in the ClientCache class which provides access to a client (per
service-type). The replacement method makes a new client
every time.
* The previous tests would subprocess out to a real call of
the openstack command and then interpret the results.
Now, a run() method on OpenStackShell is called instead.
This accepts arguments in the same way, but we need to
a) capture stderr and stdout, b) make a try/except for
SystemExit to get some error responses (mostly from
the argparse lib which has a tendency to exit for you
instead of politely telling you it wants to), c) deal
with errors from commands ourself rather than using
exceptions from the subprocess module.
Switching to this form means that logging becomes in-process
and more visible. To accomodate this the Capture fixture
from placement is used. This was chosen because we are already
pulling in the PlacementFixture. If this seems icky, I can fix
it with a local one. This was the shorter path.
* The legacy dsvm jobs have been removed in favor of "standard"
functional jobs for 2.7 and 3.6 that require openstack/placement.
The playbooks associated with the legacy jobs are removed.
tox.ini is adjusted to reflect this new setup. Because tox-siblings
functional is being used, we don't want to share tox envs with the unit
tests. The 3.5 functional job is removed because we no longer target
that.
After running these for a while it became clear that there were
intermittent failures being caused by subunit attachments being too
large. This was eventually traced back to logging from all packages
being set to DEBUG even when something else was requested. That was
traced back to a poor interaction between the way that osc does
logging and the way oslo_logging does logging (used by placement and
thus the placement fixture). The workaround, embodied in the
RESET_LOGGING list in osc_placement/tests/functional/base.py, is to
get and reset the log level for a subset of the packages that are
used.
Change-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc
Story: 2005411
Task: 30428
This is a mechanically generated patch to switch the documentation
jobs to use the new PTI versions of the jobs as part of the
python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: I5a5955166f7531e95efcd159ecb6ae0b1525f300
Story: #2002586
Task: #24315
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: If6658def44e09bc1c7a84eac9c2bb030308f2859
Story: #2002586
Task: #24315
This adds a py3 variant of the functional dsvm job.
This still uses devstack-gate (not native zuulv3) because
I'm not yet cool enough to know how to do native zuulv3 things.
Swift has to be disabled since it doesn't support py3 (this is
something all other py3 jobs are doing right now too).
Change-Id: I9a0074d9658eab76b7c73b820f498d61b89545e7
This migrates the legacy-osc-placement-dsvm-functional job
from openstack-zuul-jobs and renames it to drop the legacy part
and branch override stuff.
Change-Id: I6dfcd4e327ea535fdee3ce740c9b817ed790de7e