11125 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Zuul
5698934098 Merge "Fix swift-dsvm-functional for devstack" 2025年06月24日 21:10:23 +00:00
Zuul
69bff25516 Merge "Use built-in implementation to get utc timezone" 2025年06月24日 19:07:11 +00:00
Tim Burke
e9da48daaa Fix swift-dsvm-functional for devstack
Change-Id: I74381567978025e7f528e169692bbaf9bac45de2
2025年06月24日 11:17:22 -07:00
Takashi Kajinami
9754eff025 Use built-in implementation to get utc timezone
datetime.timezone.utc[1] has been available in Python 3 and can be used
instead of datetime.UTC which is available only in Python >=3.11 .
[1] https://docs.python.org/3.13/library/datetime.html#datetime.timezone.utc
Change-Id: I92bc82a1b7e2bcb947376bc4d96fc603ad7d5b6c
2025年06月23日 23:45:29 +09:00
Tim Burke
c177e7dcff Clarify why there's a ShardRange.__hash__
Change-Id: I4eff901aaa334c8a73cebfc578cea14d23e6c365
2025年06月16日 13:28:56 -07:00
Takashi Kajinami
005d69d1a9 Drop remaining skip check for Python < 3
... because Python 2.x is no longer supported.
Change-Id: I3167a539b3e26ceb35976fbd7a2356ba59d4a5e4
2025年06月11日 12:02:40 +09:00
Zuul
d2272833fe Merge "tests: Fix some connection-closed testing on OS X" 2025年06月09日 18:19:19 +00:00
Tim Burke
2e14051cb6 tests: Fix some connection-closed testing on OS X
Change-Id: I32fec7540bee70e77140964c5983d133a572fa7b
2025年06月08日 21:54:26 +00:00
Zuul
9106b27fe3 Merge "CI: Skip grenade-skip-level-always similar to tempest" 2025年06月07日 03:24:07 +00:00
Tim Burke
28db9bbcdd tests: Fix test_LoggerFileObject_recursion
It used to be that when a logger encountered an error trying to handle
/ emit a message, it would attempt to log about the error via the same
logger. Long ago, this could lead to infinite recursion in Swift's
LoggerFileObject, so we fixed it and added a test that included
showing the bad stdlib behavior.
Recently, stdlib did a similar fix so the recursion doesn't happen. See
 - https://github.com/python/cpython/issues/91555 and
 - https://github.com/python/cpython/pull/131812
Of course, now our test breaks (at least, on 3.13.4). Relax the
assertion a little.
Related-Change: Ia9ecffc88ce43616977e141498e5ee404f2c29c4
Change-Id: Id2f490d4204b8eaf07857cb84ed783bec19b8511
2025年06月05日 16:33:08 -07:00
Zuul
ad41dbeffe Merge "s3 compat tests: sanitize object listings" 2025年06月02日 20:11:52 +00:00
Tim Burke
49ae2aa943 CI: Skip grenade-skip-level-always similar to tempest
Change-Id: Iea1adfb93891e4bde62a11bfcef478d9b9696fd4
2025年06月02日 10:31:05 -07:00
Zuul
184641a754 Merge "tests: Keep port number in valid range" 2025年05月31日 00:46:06 +00:00
Alistair Coles
962084ded0 s3 compat tests: sanitize object listings
Swift does not return all the parameters of objects in a listing
(e.g. ChecksumType and ChecksumAlgorithm) so pop these from listings
before making assertions.
Change-Id: Ieb7a9783731c11f1c08db398eae07ffafa127460
2025年05月30日 13:44:23 -07:00
Zuul
afacfb6cea Merge "Object-server: change labeled timing metrics sample rate for debugging requests" 2025年05月29日 11:59:50 +00:00
Yan Xiao
313959ae92 Object-server: change labeled timing metrics sample rate for debugging requests
The labeled timing metrics previously have sample_rate similar to
those added for non-labeled metrics. However the down sampling has
not been helpful when using labeled metrics to investigate customer
issues, for example those related to object server REPLICATE requests.
This patch changes labeled timing metrics to not have sample_rate. The
non-labeled metrics are unrelated to this effort thus not changed.
Related-Change: I05336b700120ab5fcf922590d6a12f73112edb50
Change-Id: Ia6e856ffaf8fd1b4a905e6976ebdc62ed5ddf32f
2025年05月28日 15:36:51 -04:00
Zuul
d0e97650f3 Merge "CI: run S3 cross-compat tests as part of DSVM jobs" 2025年05月28日 18:05:47 +00:00
Zuul
1c244b3cd5 Merge "Add config option for whether to skip s3_acl-requiring tests" 2025年05月28日 18:05:43 +00:00
Tim Burke
38ad3a4867 CI: run S3 cross-compat tests as part of DSVM jobs
We're increasingly trying to move toward having S3 tests that pass
against both AWS and Swift. Especially as we move to replace our old
boto(2) tests, it would be nice to have the replacements be cross-
compatible from the get-go.
However, there was previously a risk in leaning too-heavily on that
test suite: only the functional test suite would be exercised in the
gate with Keystone. Now, run both test suites to ensure we don't
leave implementation gaps in s3token.
Change-Id: I873c32107b4174bd2968097b5fe96d97f260a256
2025年05月22日 14:25:42 -07:00
Tim Burke
3ff6b34a3b tests: Keep port number in valid range
Previously (at least on OSX) this could lead to errors like
 socket.gaierror: [Errno 8] nodename nor servname provided, or not known
when we actually went and tried to connect to send the update (!!)
Change-Id: I86f6e731d1ee273c6772974ce597ac91be3937be
2025年05月22日 11:31:01 -07:00
Zuul
f64269b981 Merge "Object-server: add labeled timing metrics for other object server requests" 2025年05月22日 16:10:28 +00:00
Zuul
579bf0cf8a Merge "tests: Speed up statsd test_methods_are_no_ops_when_not_enabled" 2025年05月22日 11:05:03 +00:00
Zuul
74e09cdbbd Merge "tests: Reduce test time on OSX" 2025年05月22日 11:04:59 +00:00
Tim Burke
aa5bc01982 tests: Speed up statsd test_methods_are_no_ops_when_not_enabled
Change-Id: I0a27efe897b4e8ce2c21da1a3603a2a77c02eb69
2025年05月22日 04:05:08 +00:00
Tim Burke
877c936e2f tests: Reduce test time on OSX
Locally, this reduced the test time from 240s to 0.16s.
Change-Id: I5a4786b6782c06f8e6bd9fab5d4dae683a970242
2025年05月21日 18:58:34 -07:00
Yan Xiao
c66c0bfd25 Object-server: add labeled timing metrics for other object server requests
Change-Id: I05336b700120ab5fcf922590d6a12f73112edb50
2025年05月21日 17:29:35 -04:00
Zuul
1cd20f87de Merge "Add labeled metrics to proxy-logging" 2025年05月21日 17:14:51 +00:00
Zuul
7d37076f9d Merge "s3api: more test cases for conditional writes." 2025年05月21日 14:46:53 +00:00
Jianjian Huo
33b17742a7 s3api: more test cases for conditional writes.
Change-Id: Id5583e3a1e4515ec3c8a972f647aaaabfba673bc
Related-Change: I2e57dacb342b5758f16b502bb91372a2443d0182
2025年05月21日 10:28:37 +01:00
Yan Xiao
82b1964479 Add labeled metrics to proxy-logging
Modified code to use native labeled metrics API introduced by the
Related-Change.
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Co-Authored-By: Shreeya Deshpande <shreeyad@nvidia.com>
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Related-Change: I115ffb1dc601652a979895d7944e011b951a91c1
Change-Id: I5a96626862644fe23a0d4bc53e85989770c8ceec
2025年05月20日 17:04:36 -04:00
Alistair Coles
b735b3d034 object-server: return 503 not 404 if meta or data file unlinked
When a DiskFile is opened, its on-disk files are first listed and then
xattr metadata is read. If a listed file no longer exists when its
metadata is read then a DiskFileNotExist exception was raised which
would previously cause the object server to return a 404.
It isn't appropriate to return 404 when the list of on-disk files
suggested that the object existed (i.e. included a .data file) and
there is no evidence that the object no longer exists: the missing file
may well have been *replaced* by a concurrent request.
For example, if a POST request races with another concurrent POST
request, the object's .meta file may be replaced by a new .meta file,
and reading the original .meta file will fail. Similarly, if a POST
races with a concurrent PUT request, the PUT request may replace the
.data file causing the POST request handler to fail to read the
original .data file. In neither case has the object ever been
non-existent.
This issue was observed during a period of many concurrent POST
requests to an object in a production system. A significant number of
the POSTs returned 404 despite the object never being deleted.
This patch modifies DiskFile to raise a new DiskFileStateChanged
exception when metadata cannot be read from a data, meta, or ts file
that was listed in the object's datadir. The object server may translate
this exception to a 503 response rather than a 404, depending on the
request method:
 * POSTs, GETs and HEADs that encounter this transient loss of a
 file will now return 503 rather than 404. The DiskFile may
 still exist.
 * DELETEs that encounter this transient loss of a file would
 previously have proceeded but will now return 503: a replacement
 file may contain an X-Delete-At that would have prevented the
 DELETE proceeding.
 * PUTs that encounter this transient loss of a file will continue to
 proceed as before: a replacement meta file may contain an
 X-Delete-At that requires updates to the expirer queue but those
 updates would presumably be handled by the concurrent POST that
 has replaced the meta file; a replacement .data file will remain
 on disk until the DiskFile is next opened and one of the .data
 files will be cleaned up.
Closes-Bug: #2054791
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: I2f698c25ed65b236e851e5a307d48a12cef62b33
2025年05月19日 23:26:06 +00:00
Zuul
84a70769b1 Merge "s3api: Allow PUT with if-none-match: *" 2025年05月19日 18:32:06 +00:00
Zuul
f516065abd Merge "common: add http exception handling for base storage server timing stats" 2025年05月19日 13:34:08 +00:00
Zuul
4f7b1a9b7d Merge "Object-server: add labeled timing metrics for object REPLICATE request" 2025年05月19日 12:20:01 +00:00
Tim Burke
edd5eb29d7 s3api: Allow PUT with if-none-match: *
Swift already supports that much, at least. AWS used to not support any
conditional PUTs, but that's changed somewhat recently; see
- https://aws.amazon.com/about-aws/whats-new/2024/08/amazon-s3-conditional-writes/
- https://aws.amazon.com/about-aws/whats-new/2024/11/amazon-s3-functionality-conditional-writes/
Drive-By: Fix retry of a CompleteMultipartUpload with changed parts; it
should 404 rather than succeed in writing the new manifest.
Change-Id: I2e57dacb342b5758f16b502bb91372a2443d0182
2025年05月16日 15:32:51 -07:00
Yan Xiao
ec6e8bd203 common: add http exception handling for base storage server timing stats
The timing stats decorators are moved from utils to base_storage_server.py
to avoid a circular import of HTTPException.
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Change-Id: Idc4b52de0a04ebfc0e353162bd791d4e0e20eac3
2025年05月16日 17:22:58 -04:00
Zuul
575a18daf4 Merge "Remove installation guide for openSUSE/SLES" 2025年05月16日 19:09:24 +00:00
Ivan Anfimov
296e894f79 Remove installation guide for openSUSE/SLES
openSUSE stopped providing OpenStack packages some time ago.
Co-authored-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
Change-Id: I60fcbac1cb6ec370de565903375be411e8fc3415
2025年05月16日 11:14:00 +00:00
Sean Mooney
43aa7ec261 add pyproject.toml to support pip 23.1
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.
This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone
See https://pip.pypa.io/en/stable/news/#v23-1
and https://github.com/pypa/pip/issues/8368 for more
details on the removal of the fallback support.
setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
https://github.com/pypa/setuptools/pull/3488
Change-Id: I82e0c130c4022164bc8e4d1120aae9bdb9a43b5d
2025年05月15日 17:57:38 -07:00
Tim Burke
a2725ea99f CI: Move lower-constraints job to py37
This got missed when we dropped support for py36.
Related-Change: I6f0cbde23f0a0db75bdb3e598ee862af0bad0dba
Change-Id: I3dcca36744bbdbce7e5e22e50b3a3fa263071717
2025年05月15日 17:22:53 -07:00
Zuul
4e2d08041a Merge "tests: Use subTest" 2025年05月15日 07:40:39 +00:00
Zuul
c7c470301b Merge "CI: run func tests during rolling upgrade job" 2025年05月15日 05:52:25 +00:00
Tim Burke
33f409ceba CI: run func tests during rolling upgrade job
We recently removed the "func-py3" tox env in favor of just "func" -- as a
result, this went back to running unit tests!
Keep "func-py3" for older releases where that tox env *is* still defined,
though, as they won't have py27 around to run "func".
Related-Change: I53153c4fde043e964e1daa7bbf2089e0471dede2
Change-Id: Ibbb8c305a8b8bac7ca1a8853208cd031957adac1
2025年05月14日 10:57:30 -07:00
Alistair Coles
020b5a78a5 trivial: statsd tests: remove references to delegate methods
Some tests previously made assertions on statsd client methods that
were implemented by a delegated interface patched onto a logger
instance. Those tests have run against a StatsdClient since the
Related Change, so the use of the term 'delegate' in tests no longer
makes sense.
Change-Id: Ie47fa50a226da6ff7b067d6a367758ac9f12ef4c
Related-Change: I3a677bb67c5700da48f89c847f652b4610ba47c2
2025年05月14日 11:03:44 +01:00
Alistair Coles
7a3b7373bc Add config option for whether to skip s3_acl-requiring tests
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: I811642fccd916bd9ef71846a8108d50a462740f0
2025年05月14日 10:53:18 +01:00
Zuul
c12aa812c9 Merge "Drop support for py36" 2025年05月14日 05:37:14 +00:00
Tim Burke
0714557aa8 Drop support for py36
Change-Id: I6f0cbde23f0a0db75bdb3e598ee862af0bad0dba
2025年05月13日 14:52:44 -07:00
Tim Burke
b65855d715 utils: Add CRCHasher and crc32c implementation
A new CRCHasher class wraps crc functions to mimic the hashlib
hasher interface.
For crc32, use the zlib implementation.
For crc32c, use ISA-L if we can find it; on py38+ this includes the
ISA-L bundled in pyeclib's binary wheels.
If ISA-L is not available, check for kernel crypto API support for crc32c;
use it if available. Otherwise, raise a NotImplementedError.
No callers yet, but these will be used by s3api in a later patch.
Change-Id: Ic0c55e307ce10b56b569c9fee728c445a2300cbd
2025年05月13日 12:37:35 -07:00
Thibault Person
f9ac22971f Add support of Sigv4-streaming
This update implements Sigv4-streaming (chunked upload) as described in
the Amazon S3 documentation:
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html
Closes-Bug: #1810026
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Co-Authored-By: ashnair <ashnair@nvidia.com>
Change-Id: I7be1ce9eb5dba7b17bdf3e53b0d05d25ac0a05b0
2025年05月13日 12:37:35 -07:00
Zuul
6212869399 Merge "proxy_logging: remove unnecessary condition" 2025年05月13日 19:12:00 +00:00