Commit Graph

62 Commits

Author SHA1 Message Date
Jonathan Rosser eb47b6d160 Cleanup setup.py config
Change-Id: I28a25b0de03b6f086ef62d01e4d459824dea25c2
2022-04-04 10:18:11 +01:00
Jonathan Rosser d04285381a Remove uw_apache functional jobs.
These jobs simply switched the webserver from nginx to apache using
a tox environment with keystone_web_server=apache. The integrated
tests now only support apache as the keystone web server so these
jobs are now redundant and are not providing any additional value.

Change-Id: I125bfc478a644ae03fc32be2609198f425132356
2021-12-07 09:21:11 +00:00
likui 7237dbc6b2 Changed minversion in tox to 3.18.0
The patch bumps min version of tox to 3.18.0 in order to
replace tox's whitelist_externals by allowlist_externals option:
https://github.com/tox-dev/tox/blob/master/docs/changelog.rst#v3180-2020-07-23

Change-Id: I791063365263c6077584db146314c10997fd61ab
2021-07-05 06:01:07 +00:00
zhoulinhui ddc4c832cc Replace deprecated UPPER_CONSTRAINTS_FILE variable
Change-Id: Ib5015cf4821d1fd2f9de88c1683ebedd2c02974d
2020-11-10 13:11:46 +08:00
Andreas Jaeger 9f264efe3b Cleanup py27 support
This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py
- Remove obsolete sections from setup.cfg
- Cleanup */source/conf.py to remove now obsolete content.

Change-Id: I601d900d4c34565e08d121f4100ebd3b1140b991
2020-04-22 13:51:52 +02:00
Ghanshyam Mann f4746a3624 [ussuri][goal] Updates for python 2.7 drop
OpenStack is dropping the py2.7 support in ussuri cycle.

Only update required is in tox to define common baspython as py3 os that
all tox env including [testenv:functional] will use py3 instead of py2.

Complete discussion & schedule can be found in
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal:
https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html

Change-Id: Ic232d0fb24df14cc4d947f6f97eba689a4e9ce89
2020-03-01 18:54:38 -06:00
melissaml fb1869c957 tox: Keeping going with docs
1. 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.

2. Remove the unnecessary blank line for tox.ini

[1] https://github.com/sphinx-doc/sphinx/commit/e3483e9b045

Change-Id: I5139d075a38173da530c20f17c12bcdcc2997e9c
2019-12-05 16:37:18 +08:00
Dmitriy Rabotyagov aac229121f PDF Documentation Build tox target
This patch adds a `pdf-docs` tox target that will build
PDF versions of our docs. As per the Train community goal:

  https://governance.openstack.org/tc/goals/selected/train/pdf-doc-generation.html

Add sphinxcontrib-svg2pdfconverter to doc/requirements.txt
to convert our SVGs.

Change-Id: Ie55900a7a2b3f3696588100137847f1950cf72e2
Story: 2006105
2019-10-18 19:55:54 +03:00
pengyuesheng dff759a3fc Update the constraints url
For more detail, see http://lists.openstack.org/pipermail/openstack-discuss/2019-May/006478.html

Change-Id: I923f39dcf96a854a0f8635a7141b43faef03db6d
2019-09-24 16:09:23 +08:00
Dmitriy Rabotjagov c17062f3b4 Replace git.openstack.org with opendev.org
This patch replaces git.openstack.org with opendev.org as redirection
from old path was enabled.

Change-Id: I6a6660bd3e15908adad9cd1fd76f582506562a97
2019-05-24 17:12:37 +00:00
huang.zhiping 47deb80ba9 fix tox python3 overrides
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: I36b010f4b0db7b2dbe934d4ab5752ea7c0be2d54
Closes-Bug:  #1801657
2019-03-05 01:57:27 +00:00
Doug Hellmann d76326fafc fix tox python3 overrides
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: I8ebfb68409bd4d36ad878cf55de86b2480a0fa47
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-26 18:43:38 -04:00
Jesse Pretorius 4238d5a4f4 Clean up role tests
Now that we're using the general templates, we can slim down
the role test definitions. We can also remove tests which are
not being watched, or which are fundamentally broken. With
this we can also remove unused scripts/plays.

We do the following:

1. We remove the 'ssl' job, given that the person working on
   that is no longer doing so, and no-one else has picked up
   the work.
2. We remove the 'upgrade' job, given that it's been broken
   all cycle due to the way the job executes and we need to
   regroup to figure out another way to do it.
3. We promote the distro_install jobs, given that they are
   all now working.
4. We promote the centos apache/uwsgi functional test, given
   that it is working consistently.

Change-Id: I67e0d8f4ab52449a80adb5c479faefbc83617025
2018-09-08 10:52:32 +00:00
Zuul f9b4dc00f0 Merge "fix tox python3 overrides" 2018-08-27 22:25:26 +00:00
Jesse Pretorius 4322a8f42e Use the TESTING_BRANCH env var for constraints
The TESTING_BRANCH environment variable is provided by the
run_tests.sh script and is derived from the .gitreview file.

This ensures that once the master branch becomes a stable
branch, the constraints from the stable branch in the
integrated repository will automatically get used once the
.gitreview file is updated.

To ensure that the required environment variables are present
we export them appropriately in run_tests.sh and modify the
tox configuration to pass them into the tox test.

Change-Id: I22858a6c834ed4bcec0195d84e804f190d574e0b
Needed-By: https://review.openstack.org/579371
2018-08-16 18:19:24 +01:00
melissaml 91b4dd207a fix tox python3 overrides
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: Iba5a6c6137e512da637444940738f5084b99764e
2018-07-23 19:18:22 +08:00
Jesse Pretorius a61f0d220a Use tests repo for common role test requirements
Using tox for requirements management requires in-repo
requirements files for all our repositories. Rather than
do that, we make use of the tests repo to capture our
common requirements and use this to install them.

This reduces our review requirement rate and simplifies
maintenance for us for the tox config. It also makes it
usable with 'Depends-On', which is marvellous!

The tox requirements definitions for docs/releasenotes
builds are left in-place as those are standard entries
across the community. If that changes at some point, we
can re-assess those entries too.

Depends-On: https://review.openstack.org/579208
Change-Id: I091d64250ac36037ed294dee015fffd5d57f266e
2018-06-29 17:39:27 +00:00
Markos Chandras c9d2629bb3 tox.ini: Use common vars file for distibution installations
Depends-On: https://review.openstack.org/573754
Change-Id: I04503d63341ca26d589ecb4cb66e5384a3068c7b
Implements: blueprint openstack-distribution-packages
2018-06-14 14:36:59 +01:00
Markos Chandras 1460a23423 Add support for using distribution packages for OpenStack services
Distributions provide packages for the OpenStack services so we add
support for using these instead of the pip ones.

Depends-On: I5a78e2120e596d36629b4ba978b2b5df76b149b0
Depends-On: Ib64dcbc960df7d369d202ce8cf7bdc29b3ee0e0a
Depends-On: Id9dd2dea146709414ab9ce8d439f1587e6776fd4
Depends-On: I2ba89e25c0010c9a5b515a3d0c9c731b30876e74
Depends-On: I0442b0aa94c3d0882d1118ad0c824d123bd21c88
Change-Id: I26848678dd07a409ef3e159cffb4ba6f0a228ab4
Implements: blueprint openstack-distribution-packages
2018-05-14 13:13:41 +01:00
Jesse Pretorius 5d603f249b Remove tests-repo-clone.sh
Now that run_tests.sh handles the tests repo clone, we can
remove the use of the older tests-repo-clone.sh script.

Change-Id: Icee36c34ecbdf5e3190c5839b00b1fa606763fa7
2018-03-28 10:14:36 +01:00
Jesse Pretorius b1dc597b71 tox.ini: Expose USER environment variable to execution environment
In order to allow the use of the environment variable which informs
Ansible which user executed the playbook, we pass the USER env var
into the environment that tox builds.

Change-Id: I4a62659c97fa79bec7c002fdcd47a953f523f5d9
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
2018-03-15 17:59:44 +00:00
ZhongShengping effbd21898 Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
https://governance.openstack.org/tc/reference/project-testing-interface.html

For more detials information, please refer to:
http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html

Change-Id: I1b5c9881bc1d82900ed5914402fa0b2ebb443757
2018-03-09 12:01:26 +08:00
Jimmy McCrory 7a466a85cb Add MySQL connection SSL support
When 'keystone_galera_use_ssl' is True, use an encrypted connection to
the database using either a self-signed or user-provided CA certificate.

A new non-voting test has been added to verify that the role remains
functional when enabling SSL features.

Partial-Bug: 1667789

Change-Id: I0f8c62412e088ebb9b0ed21f7ce707b14f69d62a
Depends-On: I95cc994df5118fce7ce588fc0bff979bc283a6f3
2017-12-13 17:15:15 -08:00
Jimmy McCrory ada86843ee Remove uw_nginx jobs
Nginx with uWSGI has been the default keystone deployment since Pike.
The uw_nginx jobs should be no different than the functional jobs at
this point, but they have been incorrectly using the uw_apache tox
environment anyway.

Change-Id: I73c01b9899819da96f51744d5fba12a05bb7ec2c
2017-11-21 17:17:51 -06:00
Jesse Pretorius 84af640aa0 Switch to using Nginx/uWSGI by default
This patch implements the use of uWSGI exclusively,
always with a web server acting as a reverse proxy.
It removes the option of using uWSGI with Apache
and mod_wsgi.

In the case of Keystone being used in a Federated
Service Provider configuration, it will use Apache
as the web server but for all other environments
it will use Nginx instead.

Change-Id: If6e95fc0d3f7d34780db1aed2b8cedca87499934
2017-06-29 16:42:36 +00:00
Jesse Pretorius 8139c9a4f5 Ensure that role tests pin pip/setuptools/wheel
Currently the role tests use whatever versions of pip,
setuptools and wheel are already installed on the host.

When a version of these tools changes it often causes
problems for our testing.

This will ensure that we use a known good set of pins
which is maintained in the general SHA bumping process.

Change-Id: Id5e66a1a2541eba0b98f9ca9d67038a22caf0c40
2017-06-04 11:21:25 +01:00
Jesse Pretorius 511d607ae0 Use zuul-cloner for tests repo in OpenStack-CI
When executing the tests repo clone in OpenStack-CI,
use zuul-cloner instead of git to enable cross-repo
testing. This ensures that if a dependent patch from
the tests repo is noted using 'Depends-On: <change-id>'
in the commit message, that patch will be included.

Change-Id: I516017d8d817d98a2b53d970ef93681ca7e969cf
Depends-On: Idce7abebf32f24c356a27e099fbca954d917402b
2017-05-04 17:40:53 +00:00
Andy McCrae f5adedd2e4 Split out Keystone upgrade into it's own script
This will separate out the runs so that varaibles and modules are not
re-used across runs - ensuring the latest modules and versions are used,
and ensuring multiple versions of the tests playbook aren't required on
non-upgrade runs.

Change-Id: Iacaf5919a468cf267418718fdac5c270674a3454
2017-02-23 17:06:56 +00:00
Jimmy McCrory 52506b8f98 Benchmark requests during upgrade testing
During upgrade testing, move Keystone containers behind an HAProxy
load balancer and run a benchmarking tool to make continuous requests
against the keystone API, providing summary output at the end of the
play. This should help ensure the upgrade process between releases
remains without downtime.

To avoid service interruptions because of files being replaced during
installations:
  - set the 'keystone_venv_tag' var so that it changes between releases
  - perform the 'Create WSGI symlinks' task only after the files being
    linked to exist

Benchmarking scripts were provided by:
https://github.com/lbragstad/keystone-performance-upgrade

Co-Authored-By: Lance Bragstad <lbragstad@gmail.com>

Change-Id: I462e6496f125c7e263bbab188e86c45e1f4f7f1e
2017-02-09 18:36:45 +00:00
Jesse Pretorius 1e0868853e Update upgrade test to use stable/ocata
Change-Id: If279c1caa4514664a69d39198717f37dd6a951f2
2017-02-08 14:25:51 +00:00
Cao Xuan Hoang bdf659d04c Use https instead of http for git.openstack.org
Trivialfix

Change-Id: I23379d2544839e5809889824521e757f49a592ec
2017-02-06 17:01:49 +07:00
Andy McCrae 0414459546 Shorten tox job names for keystone.
We're running into failures on stable/newton:

https://review.openstack.org/#/c/423201/ which seems to be related to
the tox job name. To be safe lets reduce the names of these jobs.

Change-Id: I351f3f0992c6b9b13c19ab545e4c05b35b1b4d13
Depends-On: Ia803b95903005bbb318c9c96ba4e3b2f83f41c0b
2017-01-28 10:40:50 +00:00
Andy McCrae cbeae2277b Split upgrade test into its own play
To avoid requiring all the os_previous_keystone tasks to be evaluated,
we should split the 2 tests up. This will help make the gate more
efficient and avoids unnecessary issues.

Change-Id: I391bddea8f5af67c73ed5c9fc85eb9a81643c88f
2017-01-20 16:40:04 +00:00
Andy McCrae dd2f1f9b02 Fix tox.ini to work with ansible 2.2.1.0
Ansible 2.2.1.0 requires included vars files to exist even if the
task/play that includes the file is never run (based on a conditional).

This patch fixes that by ensuring the "upgrade" previous version of
test-vars is fetched for every test.

Change-Id: I01ee3c434343868c88f610ce40e77f5621ffa071
2017-01-18 17:36:39 +00:00
gecong1973 d180506a58 Delete deprecated Hacking in tox.ini
Some hacking have been removed,so we can delete them.
More details:
     https://github.com/openstack-dev/hacking/blob/master/setup.cfg

Change-Id: Id4c17cc69b25c6c0c32a343e39c7e0659e7536ee
2016-12-04 10:14:32 +08:00
Jimmy McCrory 04737f5dbd Implement zero downtime upgrades
This patch implements upgrading keystone with zero downtime as the
default installation process. Handlers have been modified to ensure that
the first keystone node is stopped, facilitates the database migrations,
and that it is started and available before restarting any other keystone
nodes. Migrations also now only occur when there is a change within the
installed keystone venv.

This process is documented at
http://docs.openstack.org/developer/keystone/upgrading.html#upgrading-without-downtime

A new test scenario has been added for testing basic upgradability
between releases.

Implements: blueprint upgrade-testing
Change-Id: I0d3cfcb80b64d005d60f4c8445f991855f844796
2016-11-17 08:10:57 -08:00
Jesse Pretorius 18700d7ba7 Use upper constraints for all tox targets
With the implementation of https://review.openstack.org/388087 all
tox targets may now use upper constraints.

Change-Id: I9cec231921430040977730dceefae28c34da1b97
2016-10-19 07:43:15 +01:00
Jesse Pretorius 4d720c9d0e Use centralised Ansible test scripts
This patch consumes the centralised Ansible test scripts
implemented in https://review.openstack.org/381853

Change-Id: If66de2e76c530ded122fce3aaca127adc02840c1
2016-10-12 17:53:47 +00:00
Jesse Pretorius 0c4bb0fb1b Use centralised test scripts
This patch consumes the test scripts implemented by
https://review.openstack.org/375061 to ensure that
the tests and test preparation is consistent and
more maintainable.

Change-Id: I6f05ec7046d5613804fa8b4c2fb9323370239da0
2016-09-28 08:56:33 +01:00
Kevin Carter 3614448799 Update testing bits for consistency
Change-Id: I5bbfdb11cd3a07bba1c47987a87743efcc33d15a
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-09-17 11:57:30 -05:00
Kevin Carter 1bfcd10bc5
Add role linking to tox tests
Change-Id: I36df88a9e02a96e099ac63a3d23c2f79b936b258
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-09-14 10:58:29 -05:00
Travis Truman 05892b5aa9 Ansible 2.1.1 role testing
Change-Id: Icf4bce17e6aa042b60a54499749695917a96dba9
2016-09-12 16:03:28 -04:00
Jesse Pretorius 07509721e8 Compress test execution logs
The volume of logs we collect in CI jobs are extensive. This
patch ensures that the logs collected are compressed to reduce
the space taken in CI systems.

PYTHONUNBUFFERED is also set to ensure that the console log
from the CI jobs is recorded in the exact order of execution.

Change-Id: Ia37c4fe369dd8ce9d49c21a46c575707b1826d46
Related-Bug: #1620849
2016-09-09 10:38:13 +01:00
Andy McCrae d0e5097ecc Use the central test repository for Keystone
Move to use the central test repository. Including a few changes to keep
consistency when moving.

* Change network range to fit into recommended infra ranges.
* Include memcached for future keystone testing

Change-Id: I6c79f291a5893d910a6dd743b39a01c7fac11bdb
2016-09-05 10:36:33 +01:00
Jesse Pretorius b6f914a2dc Shorten tox target names
Due to the length limit for the shabeng line [1] the execution of
these tox targets in OpenStack-CI is failing (the full shebang
length is 130 chars).

This patch shortens the names appropriately.

[1] https://github.com/pypa/virtualenv/issues/596

Change-Id: I9011eac714e40d33baff7c1a1fc6eb0fdf47df55
2016-09-01 09:28:28 +01:00
Steve Lewis 52b1a71759 Configure Apache to proxy for Uwsgi
A tox target to test Apache with Uwsgi is introduced.

A release note summarizing all Uwsgi and Nginx feature work for this
blueprint is included.

Change-Id: I5c89e4d9925a3077111aabe85aaa6f6eaa944848
Related: blueprint keystone-uwsgi
2016-08-31 18:12:42 +01:00
Steve Lewis db7248bdc1 Isolate mod_wsgi from Apache install
This allows deploys to elect to have Keystone run off of Apache
without implying the use of mod_wsgi, such as with uwsgi. A
following patch will introduce the Apache configuration needed to
link Apache to uwsgi so that existing Federation support can be
used.

Release notes summarizing all changes for this blueprint will follow
in the final patch in the series.

Change-Id: Idf9e48b0c93174648982cf27cf922d3801565c74
Related: blueprint keystone-uwsgi
2016-08-31 17:09:19 +00:00
Kevin Carter 0de819e92a Implement CentOS 7 support in os_keystone
This change implements CentOS 7 support within the os_keystone role.

Depends-on: I333fb1887339e8dc9ebf10ff137dda3cff629dc0
Change-Id: Ib339cd0657f7008fa48bf74f8d6ddd4b8add2ea1
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-08-29 14:20:48 +00:00
Andy McCrae 7e5548e39d Add a test Scenario for uwsgi & nginx
New func_uwsgi-nginx test scenario that will test keystone installed
with uwsgi behind nginx.
This will start off as experimental but can be used to test the final
nginx solution as it is finalised.

Change-Id: Id5ec7b1895b51232aacf1c86e564563de6c21d3f
Related: blueprint keystone-uwsgi
2016-08-25 09:18:35 +00:00
Jesse Pretorius 39faeb0718 Make all linting tests use upper-constraints
As per [1] all linting tests can now use upper-constraints. This patch
removes all instances of the install_command override relating to lint
testing which were needed to negate the use of upper-constraints.

[1] http://lists.openstack.org/pipermail/openstack-dev/2016-August/101474.html

Change-Id: I51a1d62524c2ec88b31a8ca2ed9c9acbe5790f75
2016-08-20 16:06:02 +01:00