Introduce support of python 3.8 and move tox and jobs to py38.
jsonschema 3.2.0 [1] support python 3.8
[1] https://github.com/Julian/jsonschema/pull/627
Change-Id: Ibcfa044dd0f3b29fd290559795ea1d98e194e886
We're hitting memory pressure test failures on test nodes.
Hypothesis is that we've got things logging too much and buffering
to RAM. While we track that down, turn off auto-logging.
Change-Id: Ie124f8dbd18600508a4a99ef91a5e0f5df00093c
We require 3.5 now but we didn't add the metadata. Add it.
While OpenStack broadly only supports 3.6, openstacksdk
has a wider audience, including nodepool which still uses
3.5. So add the 3.5 unit tests back.
Use lower-constraints for py35 unit tests because the
upper-constraints have versions of things that have
droppped py35 support already.
Depends-On: https://review.opendev.org/#/c/715467/
Change-Id: I680e0bab5ba3af7be5e914ece64c6bd25d1f2191
During Berlin Summit 2018 it was decided to start implementation
of the project cleanup in the SDK. This is a foundation for that
with the required bits and few examples in the services to demonstrate
the interface.
In the followup changes following should be done:
- review cleanup in service proxies (the ones implemented and not)
- describe the feature in the documentation
- start consuming this service from the OSC (need help deciding where
should it be implemented - core OSC, separate project, OSC plugin in
SDK, ...)
Change-Id: Ie29d10475e8d1af1beea3cc5b45984f2be9236ef
This whole thing is a mess. examples is doing the right thing and
using get_extra_config, but its docs are wrong. functional is
reading config from a non-standard place but is the place that
the examples docs incorrect say it should be read from.
Update both places to read from the RIGHT location and update
the docs as well. Make examples support setting a key to use
and then set that key in tox so that we can just use the
functional settings for both.
Also, fix the clustering functional test so that it consumes
the IMAGE_NAME discovered in functional.base.
Change-Id: Ia9f150bbdd3825cb3e0d4282af3ca8f23dc1d888
We're peeling python2 from libraries now, so Stop running python2
versions of test jobs. Leaving removing the test jobs themselves
for the moment as they're still used in other repos.
Change-Id: Ic6d56e3636b757201d83649f075005ed3ae1e1a6
This makes the venv target use all of the requirements files
including docs/requirements so you can create a release note
using:
$ tox -e venv -- reno new <slug>
Change-Id: Ic6e53d3aa10d48d56af2886e9dee59c52a9a2994
Sphinx 1.8 introduced [1] the '--keep-going' argument which, as its name
suggests, keeps the build running when it encounters non-fatal errors.
This is exceptionally useful in avoiding a continuous edit-build loop
when undertaking large doc reworks where multiple errors may be
introduced.
[1] https://github.com/sphinx-doc/sphinx/commit/e3483e9b045
Change-Id: I1ed5fd8b965f4466a20d61d9acd84e7aa2bbcf57
The metaclass makes it pretty impossible to do type annotations on
anything. Turn the metaclass into a utility script and then generate
the list of mappings.
Change-Id: Iccd5ee34e364cd6f53c0a8934e20442c022844e8
This commit adds a new tox target to build PDF documentation.
It's a community goal[0] to have PDF docs available.
Update conf.py for latex building.
[0]
https://governance.openstack.org/tc/goals/selected/train/pdf-doc-generation.html
Co-authored-by: Bogdan Dobrelya <bdobreli@redhat.com>
Change-Id: I411bdabeaf70164ec1020abc2d22fcf1764f7c02
With a change in cloud layer to use proxy/resource layer for keypair
Ansible got borked and is not capable in resolving data we return it
back. Add test for it searching for the cause.
Investigation resulted in the fact, that when invoked by Ansible native
implementation of the Resoure.items was not suddifient under Py3, while
under Py2 it is fine. An attempt to integrate all invoked functions into SDK
from Ansible has not brought any success.
Change-Id: I60dec9ba26176efc5b8ad8378b0ef414754a857c
The redirects work, but it's nicer to just use opendev links
directly. Also, update shade, which is in openstack namespace
now.
Depends-On: https://review.opendev.org/654230
Depends-On: https://review.opendev.org/654233
Change-Id: Id559b79c2aefda50fa3ec0feedf6d8c52a687a75
We had these in tox.ini before to streamline pep8 (it didn't need
to actually install openstacksdk) But now that we're doing local
hacking checks, we have to install the code, which means this
optimization is bong. Put things back in test-requirements like
sane people. While doing that, remove readme, which isn't in
openstack/requirements and just let doc8 check it.
Change-Id: Id1860a1df33610ad7072c13ef9ee61395b785b94
setUpClass is evil. It lures you in to a sense of complacency thinking
that reality exists and makes sense. But it's all just a cruel joke
designed to increase your personal karmic debt.
In order that we might collectively one day reach nirvana, remove all
senseless and misleading instances of setUpClass. Then add local hacking
checks to prevent the introduction of such scourge ever again.
Change-Id: Ifd43958bf47981aedad639bef61769ddb37618d3
functional tests are often failing due to timeouts in `wait_for`
functions. It forces us to trigger a "recheck". Let's make it
configurable instead. A top level timeout can be set
with `OPENSTACKSDK_FUNC_TEST_TIMEOUT` env and defaults to 300.
Func tests for each service might override this var
(i.e. for heat `OPENSTACKSDK_FUNC_TEST_TIMEOUT_ORCHESTRATE`).
OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER is set to 600 (in tox)
to respect the value previously used in the code.
Change-Id: I7bdcd67e858a1f2c43cb131ebdf549da070fbb4a
py3 tests were running with py27. Add ignore_basepython_conflict to
tox.ini so that the basepython of python3 doesn't override the py27 env.
Change-Id: I3ff782fccbc7ffd50f703a006f63b321e673a879
The commands used by constraints need at least tox 2.0. Update to
reflect reality, which should help with local running of constraints
targets.
Change-Id: I9b4c39a0d33fabadb1595389281466ba5d2453b2
Using "python setup.py check -r -s" method of checking the package has
been deprecated with the new recommendation to build the sdist and
wheel, then running "twine check" against the output.
Luckily, there is already a job that covers this that only runs when the
README, setup.py, or setup.cfg files change, making running this in the
pep8 job redundant. This covered by the test-release-openstack-python3
that is defined in the publish-to-pypi-python3 template.
More details can be found in this mailing list post:
http://lists.openstack.org/pipermail/openstack-dev/2018-October/136136.html
Change-Id: I9c760887d90869a44af62f4a4c4c09d3599f6047
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The latest flake8 checks strings for escape chars, and also has a new
and better rule about line breaks before binary operators - which is
what knuth says should happen.
The escape char check was catching some asterisks in docstrings that
weren't actually providing much, since we already list type as "kwargs".
Just remove them.
Install latest flake8 so we can gate on this.
Change-Id: I89088adcc6f4ff5a894df5e677ae9b28a58edd9a
When I run "tox -e releasenotes" it fails because it doesn't install
any of the sphinx or reno tools. Add doc dependencies.
Change-Id: Ia8b864fbbe02f0963881d3a393b1a5935a3f16e9
We want to run with python3 always with python2 being the exception.
Update the functional tests to be python3 by default with a
python2 job to check compat.
Remove python3.5 jobs, since that's covered by python3.6 and the
differences between 3.5 and 3.6 are covered by also having 2.7 in the
gate.
Similarly, make the tips jobs python 3.6 only because they are jobs that
aim to ensure interactions between openstacksdk and keystoneauth and
os-client-config and shade are correct at the unit test level. The
individual unit tests should catch actual python 2.7 issues.
Remove cover jobs because we historically haven't cared about the output
and they take up test nodes. In general it's not that big of a deal, but
we tend to be patch-heavy around here, so it feels extravagant to run a
job we don't actually care about the output of.
Split advanced networking services into a job
We're hitting timeouts like crazy- maybe we're just running low on
resources. Split octavia and designate into their own job. Turn
swift off in that job.
Skip sdk layer dns functional tests when designate is not present. We
should refactor these to deal with both cases.
Change-Id: Ica5a47cc200c8abff1d20af9883c5192fcbb95e1
In a previous refactor, we lost the part where we actually multiple
TIMEOUT_SCALING_FACTOR to the timeout. Whoops.
Also, turn off keepalive in the underlying session. For devstack
functional tests, we're seeing a lot of "Resetting dropped connection"
so I'm thinking we should just disable that.
Also, increase the individual test timeout, and bump the scaling factor
on trunk tests, which always seem to be timing out.
Change-Id: Ie5b3eb319fed10cabfb2e818f3fcfd52b6fd7b14
This creates a new job with a limites set of services, including
ironic. Since many regular tests won't work with the baremetal
backend or will take too much, only baremetal tests are run in it.
Change-Id: Ia8af5ebc9aec46d405180f6894dd4228eb816b59
We want to run ansible tests against some public cloud, but
there are always some API policy limits for regular users in
public cloud, like: can not create external network. So we define
some variables that can be changed for different limit scenairoes.
1. Create port in external or internal network.
2. Specified public pool name when launching server.
3. Create simple router, then add interface and external gateway,
change test step order, so that do not create external network
when network_external=false.
4. Create subnet with enable_dhcp true or false.
5. Make ANSIBLE_VAR_* environment variables can be passed into virtual
env.
Change-Id: I69473756b23a6cb525e0f9bb40d09e6ed9880782
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I3edccb24a3f714be8fcc32851342363e44f7ea2f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
ansible now directly depends on and uses openstacksdk rather than shade.
Make sure we don't land patches that break ansible.
Remove the installation of ansible from run-ansible-tests as it's
specified in the tox.ini file already, and we'll get it installed via
tox-siblings in the gate.
Depends-On: https://review.openstack.org/570956
Change-Id: I35103b8c75100725caf7a8fd264b81d402bf1973
We're getting a fair number of timeouts sporadically. The VMs seem to
just be running a bit slower... give ourselves a bit more headroom.
Change-Id: I74ffd304d581e7449b8f850b2412ef1dce6effb1
It's good to have a license header check. Amusingly - this actually
caught a real error in one of the headers. I'll leave it as an exercise
for the reader as to which one was a real error.
Change-Id: I46bee047d798fcb384e711462bc7463ca8745ee8
It's on purpose and we do not want to 'fix' occurances. If anything, a
rule checking the opposite of W503 would be preferrable.
Change-Id: I246b23e7e1ead1682167f3bf076ce563697217e6
F405 is a bit more aggressive about not being able to tell if a
symbol is valid due to * imports. Just go ahead and fix it since *
imports are, in fact, hard to deal with.
As a result of fixing this, there are two actual bugs that were hidden
that the check found, so the fix seems worthwhile.
Change-Id: If76b0943e16e0c7264b75829838c4a715342ab9d
There are timeout issues as well as sometimes something goes wrong in
the shade floating ip tests. Update the tests to try to make them more
stable.
This also fixes a bug in find_available_ip that was causing ips with
port_ids to be returned that was accidentally working in the functional
tests as a race condition.
While working on this, pycodestyle made a release and broke us. Add pep8
changes to allow landing this patch. Fix two of them, ignore two of them.
Change-Id: I128e85048b91f0508798d6c0c2a7e3aacb1c92c1
Create a tox environment for running the unit tests against the lower
bounds of the dependencies.
Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.
Add openstack-tox-lower-constraints job to the zuul configuration.
See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.
Change-Id: I7ec32aefc9caac30f4e93704fc33b9a98cb1c622
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>