10583 Commits

Author SHA1 Message Date
Tim Burke
68adc5bff3 CI: up-rev a few py2 constraints
Noticed a few more projects had final py2 releases.

Change-Id: I144efd5ee670a5a6b444fbc31e9434fac31bf2ec
2024-06-18 16:28:16 -07:00
Zuul
b33f8ff2c5 Merge "CI: make sure old swift is truly gone for rolling-upgrade jobs" 2024-06-18 21:47:01 +00:00
Zuul
352255cf19 Merge "CI: update known failures for the ceph tests" 2024-06-18 17:10:53 +00:00
Zuul
839537f40e Merge "Skip boto 2.x tests if boto is not installed" 2024-06-18 17:10:44 +00:00
Tim Burke
5be20f46df CI: update known failures for the ceph tests
For some reason, when we switched from py36 on centos8 to py39 on
centos9, these two tests started failing. Looks like a disagreement
about whether the canonical path for a bucket request should have
a trailing slash or not.

Mark them as known-failures for now so we can stay aware of any
other new breakage brought on by swift code changes.

Related-Change: I4f6b9c07af7bc768654f1a5d0c66b048e0f2c9c1
Change-Id: If990752c7ef7667182dbe18e49679e48c0e3d42d
2024-06-17 21:04:04 -07:00
Tim Burke
a290f445ef CI: make sure old swift is truly gone for rolling-upgrade jobs
While switching how some executable scripts were configured, I saw
some strange rolling-upgrade failures that seemed to indicate that
the new invocation method was trying to be used with old code. It
seems like it maybe has something to do with whether swift was
installed to /usr/local/lib/python3.9/site-packages/ or
/usr/local/lib64/python3.9/site-packages/ but I'm not entirely
sure.

At any rate, a proper package manager ought to uninstall the old
version then install the new one, so it seems reasonable to do that
with pip, too.

Change-Id: I12e84745e7601d162755bc9d0f1cda7b63e92197
2024-06-17 15:01:35 -07:00
Zuul
46e183df15 Merge "add bytes of expiring objects to queue entry" 2024-06-14 20:29:12 +00:00
Thomas Goirand
90da23c7d2 kms_keymaster: allow specifying barbican_endpoint
Under a multi-region deployment with a single Keystone server,
specifying the Keystone auth credentials isn't enough. Indeed,
Castellan succeeds when logging-in, but may use the wrong
Barbican endpoint (if there are 2 Barbican deployed). This is
what happened to us, when deploying our 2nd region.

They way to fix it would be to tell Castellan what region to use,
unfortunately, there's no such option in Castellan. Though we may
specify the barbican_endpoint, which is what this patch allows.

Change-Id: Ib7f4219ef5fdef65e9cfd5701e28b5288741783e
2024-06-14 12:17:07 +02:00
Anish Kachinthaya
3637b1abd9 add bytes of expiring objects to queue entry
The size in bytes from object metadata of expiring objects are stored in
expirey queue entries under the content_type field.

The x-content-type-timestamp take from object metadata is provided along
with the x-content-type update so the container replicator resolves the
latest content-type and ensures eventual consistency.

UpgradeImpact: During rolling upgrades you should expect expirer queue
entries to continue lacking swift_expirer_bytes= annotations until ALL
object servers replicas have been upgraded to new code.

Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>

Change-Id: Ie4b25f1bd16def4069878983049b83de06f68e54
2024-06-13 15:47:51 -05:00
Zuul
1d5b1d746e Merge "Lazy import is not needed" 2024-06-04 20:45:11 +00:00
Tim Burke
eee7741251 CI: Move off CentOS 8
Remove swift-tox-py36-centos-8-stream job entirely.

Move the following jobs to CentOS 9:

  - swift-tox-func-s3api-ceph-s3tests-tempauth
  - swift-tox-func-s3api-tests-tempauth
  - swift-multinode-rolling-upgrade, as well as the other rolling
    upgrade jobs

Remove the swift-multinode-rolling-upgrade-victoria job, as py39
support (required for CentOS 9) was not added until wallaby.

Change-Id: I4f6b9c07af7bc768654f1a5d0c66b048e0f2c9c1
2024-06-04 10:45:58 -07:00
Clay Gerrard
a666010aae Lazy import is not needed
There was an abandoned change that made reference to a RecussionError
when running a probe test that imported boto3 that had something to do
with eventlet, ssl and a transitive dependency on requests-mock, but the
fix that actually got merged seemed to depend on another change to
tox.ini that disables request-mock when we run pytest.

Either way, we already import from boto3 at the top of probe tests and
it's in test-requirements; so we require it to be installed even if you
don't have s3api in your pipeline.

Related-Change: I789b257635c031ac0cb6e4b5980f741e0cb5244d
Related-Change: I2793e335a08ad373c49cbbe6759d4e97cc420867
Related-Change: If14e4d2c1af2efcbc99e9b6fe10973a7eb94d589

Change-Id: Id2662bfc5ef2f21f901f1c98e6389c4cb01818a2
2024-06-04 12:42:20 -05:00
Clay Gerrard
99c629edb8 tests: realistic task_container names
Change-Id: Ie5d8b555489d28c3b901e5bbebdcecbde7bb3367
2024-05-31 14:09:32 -05:00
Zuul
82debd2cda Merge "docs: Add tempurl/formpost metrics" 2024-05-28 02:36:47 +00:00
Clay Gerrard
f3adce1375 expirer: bad config should not loop forever
Change-Id: I9413c72f41465fb8026848f71ec3b39fa990c3b7
2024-05-23 12:50:37 -05:00
Clay Gerrard
a2df74ffe2 tests: new test_config module for utils.config
Drive-by: fix ValueError message for non_negative_int

Change-Id: I06508279d59fa57296dd85548f271a7812aeb45f
2024-05-23 12:50:31 -05:00
Zuul
c620a192d0 Merge "docs: Update further-reading URL for cross-domain policies" 2024-05-22 21:36:02 +00:00
Zuul
337079f21f Merge "replicator: Ensure handoffs can clear with large handoff_delete" 2024-05-20 21:41:28 +00:00
Zuul
d5c26bb690 Merge "test: more test for s3api v4 checksum" 2024-05-18 00:34:18 +00:00
Tim Burke
b447234b2f Allow StatsdClients to no-op if no host provided
We've been working toward separating our logger from our statsd client.
This is generally a good idea; it's always been a little weird to have
our special-case loggers that would allow you to *also* increment some
counters.

The end goal is to take a bunch of places that look like

    logger = utils.get_logger(conf)
    ...
    logger.info(...)
    logger.increment(...)

and turn them into something more like

    logger = logs.get_adapted_logger(conf)
    stats = statsd_client.get_statsd_client(conf, logger=logger)
    ...
    logger.info(...)
    stats.increment(...)

Take a lesson from logging: callers don't need to know whether the
log_level is high enough that their message will be logged, or even
whether logging is enabled at all. Code wanting to emit stats shouldn't
need to know whether statsd collection has been configured, either.

Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Change-Id: I6eb5b27a387cc2b7310ee11cc49d38fd2b6cbab8
2024-05-17 13:49:03 -05:00
Zuul
a1916855c2 Merge "bump lxml to 4.2.3" 2024-05-16 20:24:59 +00:00
Zuul
d47811fc3e Merge "make statsd_client more explicit" 2024-05-16 19:39:51 +00:00
Zuul
3ac4030424 Merge "s3api: Improve checksum-mismatch detection" 2024-05-16 17:49:43 +00:00
Clay Gerrard
b40ae84f85 make statsd_client more explicit
Even if stdlib socket is probably patched by the time StatsdClient
creates a socket, we want to import the green socket module explicitly
for better testing.

Move test_statsd.py to test_statsd_client.py so it matches the naming
convention of the rest of our test files.

Fix some patching of utils in test_statsd_client to patch
statsd_client.

Rename some vars in test_statsd_client that shadowed the statsd_client
module name.

Move some utils tests out of test_statsd_client and back into
test_utils.

Related-Change: I4b5b12a3b0288b696a39903264741bc862a94ad7
Change-Id: I3de22b7f15dd386fa9c873587782f0dfc4c42a27
2024-05-16 16:49:54 +00:00
Clay Gerrard
893deca274 test: more test for s3api v4 checksum
Related-Change: I9924ff3b8d7d246631fe61b916823e028e2c01f2
Change-Id: I2a4581e408e3012a44bfb0cd58563b82040e23fc
2024-05-16 10:44:55 -05:00
Tim Burke
a3ee04152d docs: Update further-reading URL for cross-domain policies
The old one now just redirects to https://developer.adobe.com/

Change-Id: Iba281bb8dceedef9bbb702abf0b93473bf91d9f7
2024-05-15 08:28:03 -07:00
Zuul
35a00caf3a Merge "Move old rolling-upgrade jobs to point to EOM tags" 2024-05-14 20:40:54 +00:00
indianwhocodes
54e13ee9b5 bump lxml to 4.2.3
Change-Id: Ia83ab181277e04e473e33680b3f2d686f534a084
2024-05-14 11:03:51 -07:00
Zuul
d1aa735a37 Merge "backend ratelimit: support per-method rate limits" 2024-05-13 16:11:19 +00:00
Zuul
bf206ed2fe Merge "backend ratelimit: support reloadable config file" 2024-05-11 20:26:40 +00:00
Zuul
13f82f532c Merge "Mark rolling-upgrade job voting again" 2024-05-11 00:55:58 +00:00
Tim Burke
178265d209 Mark rolling-upgrade job voting again
We got fixes everwhere we needed; this actually could have been voting
a while back.

Related-Change: https://review.opendev.org/c/openstack/swift/+/863929
Change-Id: I86012f7f4703becfbc6bb59b865a123cc9823f77
2024-05-10 13:04:06 -07:00
Tim Burke
0444a056e7 Move old rolling-upgrade jobs to point to EOM tags
Change-Id: Iba4a9271910b032b8726c0dc605d95cf8da05e44
2024-05-10 12:42:00 -07:00
Zuul
c4ebcaa438 Merge "import exceptions "correctly"" 2024-05-10 18:29:45 +00:00
Zuul
47cde0b28b Merge "Test under py312" 2024-05-09 20:17:49 +00:00
Zuul
927e75aa4c Merge "Use ClosingMapper to ensure prompt client disconnect logging" 2024-05-09 20:17:42 +00:00
Clay Gerrard
acbcdc9b8c import exceptions "correctly"
Change-Id: Ie7da4369152aa5d571a8c834da7390c518143c84
2024-05-09 14:09:40 -05:00
OpenStack Proposal Bot
2712a5598f Imported Translations from Zanata
For more information about this automatic import see:
https://docs.openstack.org/i18n/latest/reviewing-translation-import.html

Change-Id: I9d529828b25276dccd2e631b6fe50882fb373889
2024-05-09 04:47:12 +00:00
Tim Burke
829df42490 Test under py312
Change-Id: I52153d27f53b81de63b6b3590e1ab22f563f178f
2024-05-07 09:19:41 -07:00
Tim Burke
9ec83c44fd Use ClosingMapper to ensure prompt client disconnect logging
Adds ClosingMapper class which is like map() but closes the
iterable.

Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Change-Id: Idd0ac21b365a138b065f01d05a257af62ea88177
2024-05-07 09:19:33 -07:00
Shreeya Deshpande
9da22bb5fe Move statsd testing to its own module
Change-Id: I4b5b12a3b0288b696a39903264741bc862a94ad7
2024-05-03 15:08:23 -07:00
Tim Burke
dd8b7656da Skip boto 2.x tests if boto is not installed
The boto library was last updated two years ago and has
rusted to the point that it's unusable on py312 -- see
https://github.com/boto/boto/issues/3951

We should transition all of these tests to boto3 equivalents,
but this should help out in the meantime.

Related-Bug: #1557260
Related-Bug: #2063367
Change-Id: If95f45371f352c6a2d16be1a3e1b64e265bccfb4
2024-05-03 13:35:37 -07:00
Zuul
ec3224cc18 Merge "Clean up watchdog threads" 2024-05-02 18:17:12 +00:00
Zuul
c12e4ac9db Merge "CI: Add rolling-upgrade job for Caracal" 2024-05-02 16:31:55 +00:00
Tim Burke
38d0b3fabc Clean up watchdog threads
This shouldn't impact real servers, as those processes were about to
wrap up anyway. It *can* cause some confusing behaviors in tests,
though.

Change-Id: Ifd8a64efcd3fc983596ba7cd9fe28eb9663c93d6
2024-05-02 08:30:54 -07:00
Tim Burke
e3eab3facb CI: Add rolling-upgrade job for Caracal
Change-Id: Ief0771dcb17c4ed3d239d60872454e2d35936e39
2024-05-01 22:10:38 -07:00
Tim Burke
761d919677 tests: Use mock.patch more
Change-Id: I68974338f8e0284ed77960048a83f72855b93348
2024-05-01 17:33:11 -07:00
Tim Burke
b4dddb7406 tests: Use @with_tempdir more
Change-Id: I33e71f6c201bb4f2cf3481afd40cf489eb1fcd1f
2024-05-01 17:30:52 -07:00
Zuul
0a3c46e6c4 Merge "Refactor utils" 2024-05-02 00:27:02 +00:00
Shreeya Deshpande
bc3a59bdd3 Refactor utils
- Move statsd client into it's own module
- Move all logging functions into their own module
- Move all config functions into their own module
- Move all helper functions into their own module

Partial-Bug: #2015274
Change-Id: Ic4b5005e3efffa8dba17d91a41e46d5c68533f9a
2024-04-30 20:27:47 +00:00