4f7b1a9b7dee4fedfe8b2421a26dce049b9b3092
Commit Graph

10939 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Zuul
4f7b1a9b7d Merge "Object-server: add labeled timing metrics for object REPLICATE request" 2025年05月19日 12:20:01 +00: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
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
Zuul
2c5bcfdf0a Merge "Implement heartbeat response for COPY request" 2025年05月09日 17:52:33 +00:00
Ivan Anfimov
33b89492eb Remove unused MANIFEST.in
The file is not used because PBR is used.
Change-Id: Iefef64f63cbd8847a6b0322edc4a8ce85a6b8580
2025年05月09日 14:54:13 +00:00
9a445503e9 Implement heartbeat response for COPY request
This will prevent client timeouts during large object copies, similar to existing support in
bulk operations and SLO manifest writes. The operator can set the frequency using the
yield_frequency inside conf file.
To use heartbeat, simply add "heartbeat=on" query parameter, which will:
- Returns a 202 Accepted response
- Sends periodic 1 byte whitespace heartbeat every yield_frequency
- Returns final status and headers
- Supports both plain text and JSON
Closes-Bug: #1738306
Change-Id: Iaf4355f2e0edbd6dde226231f3d7a61a5e53ecfa
2025年05月08日 14:25:23 -04:00
Tim Burke
e708943a1d CI: update rolling-upgrade jobs
Bobcat went EOL recently; add Epoxy job.
Related-Change: https://review.opendev.org/c/openstack/releases/+/948240
Change-Id: Ibad603c4a07d49ce55dce26d1af4c506d95b193f
2025年05月07日 11:05:24 -07:00
Yan Xiao
ab6e05922f Object-server: add labeled timing metrics for object REPLICATE request
Co-Authored-By: Shreeya Deshpande <shreeyad@nvidia.com>
Change-Id: I155572bc5f4d955c918c951d6d2af9dbbae0136d
2025年05月02日 11:33:43 -04:00
Zuul
076771462c Merge "Fix the inconsistent use of printing errors" 2025年05月01日 16:39:34 +00:00
James Nguyen
b07843e92e Fix the inconsistent use of printing errors
Make all statements using all caps (WARNING) and modify with print where there is stderr.write.
Fixes bug 1511139
Change-Id: I3b24c55d6ea07d9c2254f15a490fa336ad64c6c4
2025年04月30日 22:01:00 -05:00
Zuul
cd1cc537d9 Merge "tempauth: Support fernet tokens" 2025年04月30日 23:45:49 +00:00
Zuul
f882ba76dd Merge "Remove tags from README" 2025年04月25日 23:36:05 +00:00
Tim Burke
f8efa83da3 Remove tags from README
The tags framework has been discontinued for a long time; see
https://governance.openstack.org/tc/reference/tags/ and
https://governance.openstack.org/tc/resolutions/20211224-tags-framework-removal.html
Related-Change: I78815177dba9d765587d9a0aee4e0f76e14a043e
Change-Id: Ifec53e00b760a7c3ee82b7ef3d54b8f856c55aba
2025年04月25日 15:51:59 -07:00
Tim Burke
74030236ad tempauth: Support fernet tokens
Tempauth fernet tokens use a secret shared among all proxies to encrypt
user group information. Because they are encrypted, clients can neither
view nor edit this information; it is an opaque bearer token similar to
the existing memcached-backed tokens (just much longer). Note that
tokens still expire after the configured token_life.
Add a new set of config options of the form
 fernet_key_<keyid> = <32 url-safe base64-encoded bytes>
Any of the configured keys will be used to attempt to decrypt tokens
starting with "ftk" and extract group information.
Another new config option
 active_fernet_key_id = <keyid>
dictates which key should be used when minting tokens. Such tokens
will start with "ftk" to distinguish them from memcached-backed tokens
(which continue to start with "tk"). If active_fernet_key_id is not
configured, memcached-backed tokens continue to be used.
Together, these allow seamless transitions from memcached-backed tokens
to fernet tokens, as well as transitions from one fernet key to another:
 1. Add a new fernet_key_<keyid> entry.
 2. Ensure all proxies have the new config with fernet_key_<keyid>.
 3. Set active_fernet_key_id = <keyid>.
 4. Ensure all proxies have the new config with the new
 active_fernet_key_id.
This is similar to the key-rotation process for the encryption feature,
except that old keys may be pruned following a token_life period.
Additionally, opportunistically compress groups before minting tokens.
Compressed tokens will begin with "zftk" but otherwise behave just like
"ftk" tokens.
Change-Id: I0bdc98765d05e91f872ef39d4722f91711a5641f
2025年04月25日 14:49:12 -07:00
Zuul
e922e9b29d Merge "s3api: Remove some useless decoding" 2025年04月24日 22:56:48 +00:00
Zuul
64bd1acb9e Merge "Clarify that get_ppid is Linux-only" 2025年04月23日 23:20:34 +00:00
Zuul
8af9141be2 Merge "Test under py313" 2025年04月23日 22:17:45 +00:00
Tim Burke
b80de7cc37 Test under py313
Change-Id: Ib797f73134c8fa5ef0dc66aeddf06adfa50ed7d4
2025年04月23日 10:03:36 -07:00
Tim Burke
51c8ea0185 s3api: Remove some useless decoding
Now that we no longer need to support py2, iterating over bytes always
yields ints.
Change-Id: Id5e0c4f597c77cae5742c53f31fad479fa864261
2025年04月21日 12:48:50 -07:00
Clay Gerrard
1ca073ce1d Let WSGI know the length
... so that eventlet.wsgi will include Connection: close headers on
Expect: 100-continue error responses from s3api and make aws clients
less unhappy.
eventlet.wsgi likes to check for hasattr('__len__', resp) when setting
connection close on expect-100 errors, but uses 'content-length' in
headers when deciding on chunked-transfer.
When we know the length we can support either interface. Also we can
imporove s3api to return error responses with the content-length known.
Change-Id: Ic504841714bd607cb9733b2de5126092a79c1094
2025年04月18日 11:27:35 -05:00
Zuul
fd9ceecc50 Merge "s3request: refactor to introduce SigChecker classes" 2025年04月17日 13:23:47 +00:00
Zuul
cb97944900 Merge "s3request: refactor error handling while reading input" 2025年04月17日 09:47:39 +00:00
Zuul
d535a47603 Merge "tests: rename zuul jobs that test s3api" 2025年04月17日 00:31:06 +00:00
Alistair Coles
ab5c742e2b s3api: make MPU part error response message same as S3
Change-Id: I60f0b36633c2a348933fd45d348d76b256fca57a
2025年04月16日 12:16:00 +01:00
Alistair Coles
a93e420d32 s3request: refactor to introduce SigChecker classes
Previously the SigV4Mixin would override S3Request signature checking
methods. This patch refactors the signature checking into sigv2 and
sigv4 helper classes i.e. moves towards composition rather than
inheritance.
No behavioural changes are intended with this patch.
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Co-Authored-By: Thibault Person <thibault.person@ovhcloud.com>
Change-Id: Icaf86181c3bf7804c5176db48d2de5e2fc6f24d2
2025年04月15日 18:29:25 +01:00
Alistair Coles
addcc1e32b s3request: refactor error handling while reading input
Introduce a single error handler to catch errors while reading the
input.
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: Ib0330e863ad15e362dfa587517a26109c74eefec
2025年04月15日 16:29:38 +01:00
Zuul
c7f93f0f63 Merge "Add skip reason next to test name in zuul output" 2025年04月09日 17:47:53 +00:00
Zuul
449096011f Merge "tests: Remove BaseFakeStatsdClient.get_increment_counts" 2025年04月09日 16:57:06 +00:00
Zuul
a4c151b93c Merge "tests: Display extra test summary info" 2025年04月09日 15:15:53 +00:00
Clay Gerrard
dd0ba770f7 Add skip reason next to test name in zuul output
Currently our test names are long and we pipe pytest output to a file,
so the skip reason gets truncated; setting this env var .zuul and
passing to tox.ini will allow us to see the reason why pytest is
skipping next to the test name.
Drive-by: remove passenv from s3api tests in tox.ini so they are
inherited from testenv
Related-Change-Id: I6b7cc64262d2f8ef7e3bbce30bab5550899b5211
Change-Id: I15791a9238485190acf7f87a3b562bf67e7c5c09
2025年04月09日 14:04:11 +00:00
Zuul
7bef99cfd1 Merge "tests: add LabeledStatsdClient sample_rate kwarg coverage" 2025年04月09日 11:23:21 +00:00
Alistair Coles
63224cfd0b tests: rename zuul jobs that test s3api
The swift-tox-func-s3api-tests-tempauth runs the tests in test/s3api.
The swift-tox-func-s3api-ceph-s3tests-tempauth doesn't run the tests
in test/s3api. This patch changes the names of those jobs to
disambiguate the prefix 'swift-tox-func-s3api' and avoid any
suggestion that the second job is a super-set of the first job.
Change-Id: I323cf7e32200a2f895f0b051454b00047f7de300
2025年04月09日 11:34:59 +01:00
Alistair Coles
37a25b340d tests: Remove BaseFakeStatsdClient.get_increment_counts
The method is redundant and confusingly named. Since the
Related-Change it actually returns the aggregate value of counters,
not just the count of calls made to the increment method alone.
Related-Change: I4d8a4b530465b587caced4362eb9178507701cef
Change-Id: I52585567a177f58e0f110785b44f8d238b2ac54d
2025年04月08日 22:04:12 +00:00
Clay Gerrard
563c1ca656 DRY out AbstractStatsdClient public methods
Both the StatsdClient and LabeledStatsdClient implemented all of the
public interface methods for an AbstractStatsdClient. Even though the
implementations are identical the interfaces themselves were made
different WRT the "last" positional arg if provided.
This change puts the identical implementations of the public interface
in the AbstractStatsdClient class with a generic interface. For
backwards compat with the existing public interface on the
legacy-StatsdClient we have to make the old signature explicit - but we
can transparently call into the common implementation.
For consistency with legacy-Statsdclient and better docstrings this
change also "fixes" the signature for the new LabeledStatsdClient public
interface methods so they explicitly state labels must always be passed
in as a kwarg to avoid confusion accidentally passing in
`sample_rate=<dict>` or `label=<float>` as a positional arg.
Drive-by: as a side-effect of consolidating the implementations there
was now only one place to extend a fix in the FakeStatedClient interface
so that tests who assert StatsdClient method calls don't have to read
like the UUT also called some *other* public StatsdClient method; which
also cleaned up some Fake helpers that deal specifically with counters.
Drive-by: fix stub return value TypeError in a _get_hashes mock that was
caught by better faking. N.B. it doesn't matter how statsd would have
handled 'metric:None|c' because it was only a test bug.
Change-Id: I4d8a4b530465b587caced4362eb9178507701cef
2025年04月08日 17:03:43 -05:00
Tim Burke
405440a2ee tests: Display extra test summary info
Change-Id: I6b7cc64262d2f8ef7e3bbce30bab5550899b5211
2025年04月08日 12:59:29 -07:00
Clay Gerrard
ed0ef35713 tests: add LabeledStatsdClient sample_rate kwarg coverage
Add test coverage for passing sample_rate to LabeledStatsdClient
methods.
Drive-by: clean up and tighten some existing StatsdClient unit tests to
share a CommonBaseTestsMixin, as was expedient perhaps to the chagrin of
the co-author.
Related-Change: I115ffb1dc601652a979895d7944e011b951a91c1
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Change-Id: I68a24d9467e58994abbac82a5e741f5bb578976c
2025年04月08日 14:15:42 -05:00
Alistair Coles
11257eda5a proxy_logging: remove unnecessary condition
metric_name is always truthy so the condition was unnecessary. This
has been more obvious since the Related-Change.
Change-Id: Ic0877781ff9f52de98c2e892cd4c1d6296dc8073
Related-Change: I25f91b1943b91c7429219c3b5a4280abe9bef5b3
2025年04月07日 15:37:20 +01:00
Alistair Coles
769e482ea8 tests: provide FakeLabeledStatsdClient for debug
Drive by: FakeStatsdClient.send_calls was not used and is removed.
Change-Id: Ib8bfff8d46ae81b017aff05aad80afe421e6828a
2025年04月04日 16:40:40 +01:00
Clay Gerrard
0e2791a88a Remove deprecated statsd label_mode
Hopefully if we never do a release that supports signalfx no one will
ever use it and we won't have to maintain it.
Drive-by: refactor label model dispatch to fix a weird bug where a
config name could be a class attribute and blow up weird.
Change-Id: I2c67b59820c5ca094077bf47628426f4b0445ba0
2025年04月04日 13:02:37 +01:00