summaryrefslogtreecommitdiff
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* CI: Fix our usage of toxTim Burke2022-12-291-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For tox 3.x and earlier, passenv was a space-separated list; as of tox 4.0.0, it's comma-separated. For a while, our spaces would be silently included in the now-one-and-only passenv value parsed (which wasn't great, but mostly just caused confusion) -- as of tox 4.0.6, however, it became a hard error, and all tests would fail like pass_env values cannot contain whitespace, use comma to have multiple values in a single line, invalid values found 'SWIFT_* *_proxy' Unfortunately, we don't really know what versions of tox all our various stakeholders might want/need to use (though we previously set a minversion of 2.3.2). We might be able to spread values over multiple lines to make it compatible with both tox 3 *and* tox 4, but I'm fairly certain *_proxy was only included for some variables that are recent versions of tox include by default anyway, so just increase our minversion (which was too low, anyway -- allowlist_externals which we already configure was added in 3.18.0) and get rid of *_proxy. FWIW, python-swiftclient was already specifying 3.18.0 as a minversion, so I expect the new minversion to not be a problem. Also, add ./.functests to a bunch of allowlist_externals, as newer tox is more strict about that sort of thing. Drop skipsdist in a bunch of places so we can import swift from func tests and docs. (Still not sure why I don't see us hitting a similar problem for unit tests...) Change-Id: I4be1e86e3291ad1619c695fb93d7cadf053b556d
* Switch to pytestTim Burke2022-12-092-5/+8
| | | | | | | | | | nose has not seen active development for many years now. With py310, we can no longer use it due to import errors. Also update lower contraints Closes-Bug: #1993531 Change-Id: I215ba0d4654c9c637c3b97953d8659ac80892db8
* py2constraints: pin PasteDeploy versionMatthew Vernon2022-10-171-0/+9
| | | | | | | | | | | | | | | PasteDeploy version 3.0 (2022-10-16) dropped support for python2 (as well as <3.7), which causes our py2 tests to fail. So cap the version here at 2.1.1, the last which is compatible with our tests. Even doing this doesn't stop pip install swift pulling in a newer PasteDeploy in the tools/playbooks/saio_single_node_setup/make_rings.yaml playbook (causing the probes test on CentOS-7 to fail); so handle CentOS 7 explicitly. Change-Id: If69ae0f8eac8fe8ff7d5e4f4f1bff6d0ea9e7a8b Signed-off-by: Matthew Vernon <mvernon@wikimedia.org>
* playbooks: replace ansible_ssh_user with ansible_userAlistair Coles2022-10-115-15/+15
| | | | | | | | ansible_ssh_user has been deprecated since Ansible 2.0 [1] [1] https://github.com/ansible/ansible/blob/stable-2.0/CHANGELOG.md Change-Id: If1ef202b41af124637091a3527320b80734948fe
* Migrate CentOS Stream 8 FIPS job to CentOS Stream 9afariasa2022-08-251-0/+12
| | | | Change-Id: I8b0bd7ee1c649294ac3795cba801c9e07bc3d51b
* CI: Run s3api test suiteTim Burke2022-05-273-9/+47
| | | | Change-Id: I70dec389c1ac608a9d2767d162bd5edc315e564b
* CI: constrain py36 depsTim Burke2022-05-241-0/+1
| | | | | | | | Now that OpenStack writ large has dropped support for py36, we're going to have to manage our constraints ourselves more, just like we did for py27. Change-Id: I0973be6692e3a9b871eb61cbf759e13644a25107
* ceph tests: Register output/ceph-s3-summary.log as a job outputTim Burke2022-04-191-0/+11
| | | | Change-Id: I7eed34ab19a97b2c561e4aac8c95a8a5e1689266
* CI: Run ceph and rolling upgrade tests under py3Tim Burke2022-04-044-5/+9
| | | | | | | | | | | | | As part of that, the ceph test runner needed up-rev'ing to run under py3. As a result, the known-failures shifted. Trim the on-demand rolling upgrade jobs list -- now that it's running py3, we only expect it to pass for train and beyond. Also, pin smmap version on py2 -- otherwise, the remaining experimental jobs running on centos-7 fail. Change-Id: Ibe46aecf0f4461be59eb206bfe9063cc1bfff706
* CI: Run CORS tests under py3Tim Burke2022-03-221-1/+1
| | | | Change-Id: I49d8480fd0c775249d8b586f9dea026448b8910d
* CI: Use xena on CentOS 8 StreamTim Burke2022-02-031-1/+1
| | | | Change-Id: I57430790c9c22bc7902bd9c8f8cbfadb47115bd0
* Clean up extra spacesjinyuanliu2021-09-141-1/+1
| | | | | | Although these errors are not important, they affect the code specification. Change-Id: Ibc0fe151ccd5a33c552bb72a3cd200642a0d8131
* Update some constraints for py2Tim Burke2021-04-061-1/+3
| | | | | | | We've recently started seeing some failures in the gate related to these projects, and they have final py2-supporting versions. Change-Id: If81fc352c8b2b1f03f3fa7b79c56dfcf981ced70
* Use headless option for cors functional test runnerAlistair Coles2021-03-171-1/+1
| | | | | | | | | | | Some selenium webdrivers (e.g. Chrome, Firefox) support a headless option so we can expose that as an option for the test runner too. Use this in an attempt to fix "Error: cannot open display: :99" errors seen in the gate. Related-Bug: #1918864 Change-Id: I2a549ce829eb0bc38406575582202e1d8dd1a0e2
* Merge "s3api: Pass through CORS headers"Zuul2021-03-121-0/+8
|\
| * s3api: Pass through CORS headersTim Burke2021-03-011-0/+8
| | | | | | | | | | | | | | | | | | | | This adds support for presigned GET URLs, at least. Note that there is no support yet for preflight requests, so a whole bunch of other CORS stuff *doesn't* work (yet). This was just an easy first step. Change-Id: I43150a630a2a7620099e6bfecaed3bbe958ba423
* | cors-tests: Increase timeouts for setup operationsTim Burke2021-03-111-0/+13
|/ | | | | | | | Drive-bys: * Only copy outputs when there are outputs to copy * Print tracebacks when there's an issue running a selenium driver Change-Id: I0807af4525a13a30baf27ada40eeabe311b44296
* Add some functional CORS testsTim Burke2021-03-013-0/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If you've got selenium installed (and working), the whole thing can be automated pretty well; run main.py, wait while some windows pop up (or use xvfb-run to run things on a virtual display), then check out what tests were run on which browsers and whether any of them failed. Exit code is the number of failed tests. Includes tests against: - Account - Containers, with various ACLs/CORS settings - Objects - /info - SLOs - DLOs - Symlinks Include a gate job that runs the tests in firefox. Areas for future work: - Install chromium and chromedriver in the gate; tests should automatically pick up on the fact that it's available - Capture the web browser's console logs, too, so we can get more info when things go wrong Change-Id: Ic1d3a062419f1133c6e2f00a598867d567358c9f
* Report final in_progress when sharding is completeMatthew Oliver2021-02-261-0/+1
| | | | | | | | | | | | | | | On every sharder cycle up update in progress recon stats for each sharding container. However, we tend to not run it one final time once sharding is complete because the DB state is changed to SHARDED and therefore the in_progress stats never get their final update. For those collecting this data to monitor, this makes sharding/cleaving shards never complete. This patch, adds a new option `recon_shared_timeout` which will now allow sharded containers to be processed by `_record_sharding_progress()` after they've finished sharding for an amount of time. Change-Id: I5fa39d41f9cd3b211e45d2012fd709f4135f595e
* Prevent upgrading to pip 21+Tim Burke2021-01-251-2/+4
| | | | Change-Id: I952690558486a1d981985eae0fe9d7e07ff30e17
* s3-tests: Use my s3compat fork insteadTim Burke2020-12-241-1/+1
| | | | | | Long term, though, we should look at moving this in-tree if we really care about it. Change-Id: I0a25a6e395e5cf2bb39fa5b349418384eb513963
* Merge "s3-tests: Only try to copy outputs when there *are* outputs"Zuul2020-12-181-0/+5
|\
| * s3-tests: Only try to copy outputs when there *are* outputsTim Burke2020-12-171-0/+5
| | | | | | | | | | | | That way we avoid POST_FAILUREs when the real problem was in run. Change-Id: I9eb84d1c794d58f0af3b7d78d3bc4660c1823dc8
* | Add py3 probe tests on CentOS 8Tim Burke2020-12-173-9/+26
|/ | | | Change-Id: Iae86d8838854023010686d3d4bed3befe6160ca5
* Give probe tests a second chance to passTim Burke2020-12-081-1/+1
| | | | | | | ...and bump up their timeout, since that seems more likely to happen if we have to retry. Change-Id: Ie05521f6cd146234dc5615c96ad19681b43e9110
* tests: Increase container-update timeouts for rolling upgrade jobsTim Burke2020-11-061-0/+2
| | | | | | This should help make tests that rely on up-to-date listings more reliable. Change-Id: Ib888c84fa629cc78f48a8251eda98c0fa51242c0
* gate: Make rolling upgrade job work with either 60xx or 62xx portsTim Burke2020-09-092-20/+30
| | | | | Change-Id: If14f53993e6a0554345b327415812423b6b57434 Related-Change: If5dd79f926fa51a58b3a732b212b484a7e9f00db
* Merge "Update SAIO & docker image to use 62xx ports"Zuul2020-08-011-20/+20
|\
| * Update SAIO & docker image to use 62xx portsTim Burke2020-07-201-20/+20
| | | | | | | | | | | | | | Note that existing SAIOs with 60xx ports should still work fine. Change-Id: If5dd79f926fa51a58b3a732b212b484a7e9f00db Related-Change: Ie1c778b159792c8e259e2a54cb86051686ac9d18
* | Use latest pip in gate jobsTim Burke2020-07-201-0/+5
|/ | | | | | | | | We've seen failures with probe tests lately where dnspython 2.0.0 is getting installed even though it doesn't support py2 anymore. I think using latest pip should be better about noticing that and installing the last 1.x release intead? Change-Id: I6eda54ccd2792effadb334ce9324887132b62b6f
* Use ensure-pip roleTim Burke2020-06-161-1/+2
| | | | | | | Hopefully this will fix the currently-broken probe test gate? Depends-On: https://review.opendev.org/#/c/736070/ Change-Id: Ib652534b35236fdb6bcab131c7dc08a079bf72f6
* Use ini_file to update timeout instead of crudiniTim Burke2020-06-091-4/+6
| | | | | | | crudini seems to have trouble on py3 -- still not sure *why* it's using py3 for the losf job, though... Change-Id: Id98055994c8d59e561372417c9eb4aec969afc6a
* Merge "dsvm: Run service-user tests under tempauth"Zuul2020-05-281-1/+2
|\
| * dsvm: Run service-user tests under tempauthTim Burke2020-05-261-1/+2
| | | | | | | | Change-Id: I0bdd3a1d044f8f99873f6270ca821862bb994d72
* | Merge "swift-dsvm: Enable s3api"Zuul2020-05-281-0/+1
|\ \ | |/
| * swift-dsvm: Enable s3apiTim Burke2020-05-221-0/+1
| | | | | | | | | | Depends-On: https://review.opendev.org/#/c/571021/ Change-Id: I3ac3288cd61b745ce7dbf2bded8eade026d0418f
* | Merge "swift-dsvm: Enable more middlewares"Zuul2020-05-061-0/+1
|\ \ | |/
| * swift-dsvm: Enable more middlewaresTim Burke2020-04-231-0/+1
| | | | | | | | Change-Id: I3cbbcd2ea9ced0923bee4a6b0783e4cf5e82e95b
* | docs: Clean up mount optionsTim Burke2020-05-032-2/+2
|/ | | | | | | | | | | | * Stop specifying logbufs=8; that's the default * Stop including nodiratime with noatime; the latter implies the former Nothing wrong with being explicit, I suppose, but may as well keep the mount options to what we can easily explain: we want noatime because Swift does not use atime, so we don't want to lose any performance to tracking atime. Change-Id: I1e52b4368ad7eb375964eee5132bc50297536355
* Update known-failures and config for up-rev'ed ceph/s3testsTim Burke2019-11-161-0/+11
| | | | Change-Id: I3833843cd8d23c498a2afe6c68a3f0afe26343c0
* Add experimental job to test upgrades from steinTim Burke2019-09-281-1/+7
| | | | | | | Also, correct the version that we check out when upgrading from stable branches. Change-Id: Ie733bc50466c66d6e6eb5c6bd42e42a05ef88798
* Make ceph tests more portableClay Gerrard2019-09-132-12/+35
| | | | Change-Id: If93325f2651a02f98f9d480c10bf7b849cc9617e
* Remove nobarrier optionThiago da Silva2019-06-182-2/+2
| | | | | | | | | | | XFS no longer supports nobarrier mount option. It has been deprecated for a long time[1] and removed in recent kernel versions resulting in an error when trying to mount: "kernel: XFS (loop0): unknown mount option [nobarrier]." [1] - https://patchwork.kernel.org/patch/9486549/ Change-Id: Iaa9208fb20545ae9ac990f0e180899108d983123
* Merge "Increase node_timeout in gate"Zuul2019-04-302-0/+7
|\
| * Increase node_timeout in gateClay Gerrard2019-02-122-0/+7
| | | | | | | | | | | | | | | | | | Give storage nodes more time to complete requests for multi-node upgrade and probetests. Also slightly decouple probetests from default configs. Change-Id: I334ef517d833916a3b7be3151a812d4f9c66a6e1
* | Update openstack repo for libec installThiago da Silva2019-04-081-1/+1
|/ | | | | | Update to rocky release Change-Id: Id35a41d689a24bf68d17647879780f5daaecdf37
* Fix rolling upgrade jobTim Burke2018-12-141-1/+7
| | | | | | | | Previously, we'd install development versions of Swift as root, causing later tox runs as zuul to fail on a permissions error because the generated egg-info (at least) was locked down. Change-Id: Ia688790f8b23ed1cf76947b5809c208df5dee8bb
* Add coverage reports to py27/35/36 unit test jobsTim Burke2018-10-101-0/+3
| | | | | | ...and drop openstack-cover-jobs since it is no longer necessary. Change-Id: Iad12e64f41bbdd8b8e005b0fb14a7e2108fa3bcf
* Use latest eventlet in probe testsTim Burke2018-09-191-1/+2
| | | | | | | | Note that eventlet 0.22.0+ closes connections between requests when it stops accepting connections. Partial-Bug: #1792615 Change-Id: Ia8d9ab95e2aad40e8d797acc3423a917e809ffdb
* add multinode functional test to swiftThiago da Silva2018-09-1710-2/+498
| | | | | | | | | | | | | | | | | | | This new test job adds multinode testing to swift. It currently configures 5 nodes: test-runner, proxy, account, container and object. It starts by checkout out the latest release and then 'upgrades' the storage nodes to the current patch under test. That means that it will the test-runner and the proxy are still running the latest release. Future work would include a new set of tests where it will add objects to the cluster prior to upgrading and then try to read those objects after the upgrade. It should also be noted that the 'upgrade' currently only means a new 'git checkout' the configuration files are not being updated. A future patch should fix that too. Change-Id: If8e09a082fc024257a98cf332de9a36a18d2adc5