14ce84b64cf2455b330733dd4e615145cb95e585
1407 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Takashi Natsume
|
29b0e478a7 |
Replace deprecated datetime.utcfromtimestamp()
The datetime.utcfromtimestamp() is deprecated in Python 3.12. Replace datetime.utcfromtimestamp() with datetime.fromtimestamp(). Change-Id: I01d6b94de394413aa13a045ab2c36504e65a6f5a Signed-off-by: Takashi Natsume <takanattie@gmail.com> |
||
|
Zuul
|
6a0153f545 | Merge "docs: Simplify reload-process-tree SVGs" | ||
|
Tim Burke
|
2e11ac32da |
docs: Simplify reload-process-tree SVGs
Those were so unwieldy as to be uneditable before. Change-Id: Ic9f4a0ea6b8e18e1624c516890ab69884a299773 |
||
|
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 |
||
|
Zuul
|
82debd2cda | Merge "docs: Add tempurl/formpost metrics" | ||
|
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 |
||
|
indianwhocodes
|
11eb17d3b2 |
support x-open-expired header for expired objects
If the global configuration option 'enable_open_expired' is set to true in the config, then the client will be able to make a request with the header 'x-open-expired' set to true in order to access an object that has expired, provided it is in its grace period. If this config flag is set to false, the client will not be able to access any expired objects, even with the header, which is the default behavior unless the flag is set. When a client sets a 'x-open-expired' header to a true value for a GET/HEAD/POST request the proxy will forward x-backend-open-expired to storage server. The storage server will allow clients that set x-backend-open-expired to open and read an object that has not yet been reaped by the object-expirer, even after the x-delete-at time has passed. The header is always ignored when used with temporary URLs. Co-Authored-By: Anish Kachinthaya <akachinthaya@nvidia.com> Related-Change: I106103438c4162a561486ac73a09436e998ae1f0 Change-Id: Ibe7dde0e3bf587d77e14808b169c02f8fb3dddb3 |
||
|
Mandell Degerness
|
5961ba0ca7 |
expirer: account and container level delay_reaping
The object expirer can be configured to delay the reaping of objects from disk after their expiration time using account and container level delay_reaping values. The delay_reaping value of accounts and containers in seconds is configured in the object server config. The object expirer references these configured values to only reap objects from specified accounts and containers after their corresponding delays. The goal of the delay_reaping feature is to prevent accidental or premature data loss if an object marked for deletion with the 'x-delete-at' feature should not be reaped immediately, for whatever reason. Configuring the delay_reaping value at a granular account and container level is beneficial for being able to keep storage capacity consumption in control while maintaining a desired data recovery window. This patch also adds a sample configuration, documentation, and tests for bad configurations and grace period functionality. Co-Authored-By: Anish Kachinthaya <akachinthaya@nvidia.com> Change-Id: I106103438c4162a561486ac73a09436e998ae1f0 |
||
|
Alistair Coles
|
cc27780042 |
docs: add discussion of content-type metadata
Change-Id: I2aa13e2b23bda86c51ef6aaa69ea3fd0075bb9ad |
||
|
Clay Gerrard
|
5af7719ef3 |
Support swift.proxy_logging_status in request env
When logging a request, if the request environ has a swift.proxy_logging_status item then use its value for the log message status int. The swift.proxy_logging_status hint may be used by other middlewares when the desired logged status is different from the wire_status_int. If the proxy_logging middleware detects a client disconnect then any swift.proxy_logging_status item is ignored and a 499 status int is logged, as per current behaviour. i.e.: * client disconnect overrides swift.proxy_logging_status and the response status * swift.proxy_logging_status overrides the response status If the proxy_logging middleware catches an exception then the logged status int will be 500 regardless of any swift.proxy_logging_status item. Co-Authored-By: Alistair Coles <alistairncoles@gmail.com> Change-Id: I9b5cc6d5fb69a2957b8c4846ce1feed8c115e6b6 |
||
|
Zuul
|
966340aeed | Merge "Remove per-service auto_create_account_prefix" | ||
|
Takashi Kajinami
|
49b19613d2 |
Remove per-service auto_create_account_prefix
The per-service option was deprecated almost 4 years ago[1].
[1]
|
||
|
Tim Burke
|
c94e1c1513 |
docs: Document WSGI server process management
Talk about graceful shutdowns, seamless reloads, and the swift-reload helper. Change-Id: I9c86d1ce9853840d73e2107a6d79b2454c21438a |
||
|
Tim Burke
|
fcf1110ab2 |
CI: Fix some known-failure formatting
Related-Change: Icff8cf57474dfad975a4f45bf2d500c2682c1129 Change-Id: Ic2283fab0d18ea03c6beb353c6b934344606c15e |
||
|
Matthew Oliver
|
0996433fe5 |
s3api: Add basic GET object-lock support
Some tooling out there, like Ansible, will always call to see if object-lock is enabled on a bucket/container. This fails as Swift doesn't understand the object-lock or the get object lock api[0]. When you use the get-object-lock-configuration to a bucket in s3 that doesn't have it applied it returns a specific 404: GET /?object-lock HTTP/1.1" 404 None ... <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>ObjectLockConfigurationNotFoundError</Code> <Message>Object Lock configuration does not exist for this bucket</Message> <BucketName>bucket_name</BucketName> <RequestId>83VQBYP0SENV3VP4</RequestId> </Error>' This patch doesn't add support for get_object lock, instead it always returns a similar 404 as supplied by s3, so clients know it's not enabled. Also add a object-lock PUT 501 response. [0] https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html Change-Id: Icff8cf57474dfad975a4f45bf2d500c2682c1129 |
||
|
Jake Yip
|
8a2c8b128b |
Update doc for include_service_catalog with app cred
If swift is used with an Application Credential with access_rules [1], the catalog needs to be sent with the token for it to be evaluated by keystonemiddleware. [1]: https://docs.openstack.org/keystone/2023.1/user/application_credentials.html#access-rules Change-Id: I0b02821722ffc819bc8a97281a33391072242ffc |
||
|
Tim Burke
|
0c9b545ea7 |
docs: Clean up proxy logging docs
Change-Id: I6ef909e826d3901f24d3c42a78d2ab1e4e47bb64 |
||
|
Zuul
|
1f9937b245 | Merge "docs/SAIO: Make reconciler use the SAIO convention for logs" | ||
|
Pete Zaitcev
|
27120b0523 |
docs/SAIO: Make reconciler use the SAIO convention for logs
Personally I'm not a big fan of how we arrange logs for SAIO, but it is a historic standard. The reconciler has to conform. Change-Id: I45a25ff406b31b6b1b403e213554aaabfebc6eb5 |
||
|
Pete Zaitcev
|
dd664c47db |
doc/SAIO: Update the Fedora section
The never ending changes in package names march on. This is for Fedora 38. Change-Id: Idffd1df7e2f23681eb7d7bf1717471b594612dbc |
||
|
Alistair Coles
|
8e051c5b8e |
docs: Fix link to sphinx project page
Change-Id: I5e75a359660315a34ec36f5cb748808257f4185a |
||
|
Jianjian Huo
|
cb1e584e64 |
Object-server: keep SLO manifest files in page cache.
Currently, SLO manifest files will be evicted from page cache after reading it, which cause hard drives very busy when user requests a lot of parallel byte range GETs for a particular SLO object. This patch will add a new config 'keep_cache_slo_manifest', and try keeping the manifest files in page cache by not evicting them after reading if config settings allow so. Co-Authored-By: Tim Burke <tim.burke@gmail.com> Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com> Co-Authored-By: Alistair Coles <alistairncoles@gmail.com> Change-Id: I557bd01643375d7ad68c3031430899b85908a54f |
||
|
Tim Burke
|
9b8e5a5c95 |
docs: Add tempurl/formpost metrics
Change-Id: I04478c44957032e911069bcd4859caf3baaddb63 |
||
|
Tim Burke
|
1f298714af |
docs: Format metrics in fixed-width font, not italics
Change-Id: I6fc9eaf0903bdbe4ccb82c4e7647478a1eef9785 |
||
|
Tim Burke
|
307315bde2 |
docs: Move metric name/description tables out to separate page(s)
Offer it both by service and as a single, more easily searchable, page. That admin guide is *still* too long, but this should help a bit. Change-Id: I946c72f40dce2f33ef845a0ca816038727848b3a |
||
|
Zuul
|
a0c5ac29a1 | Merge "docs: Remove references to out-dated install guides" | ||
|
Tim Burke
|
cff092b682 |
docs: Update versions in Getting Started doc
Change-Id: Ibed9dc0afbdb922d06f7798bdac01db7c55b19f1 |
||
|
Tim Burke
|
ca0dd8d703 |
docs: Remove references to out-dated install guides
Change-Id: Idbff951506ee2f3b288eda00217c902314393877 |
||
|
Tim Burke
|
716ae48eb8 |
docs: Fix broken paste/pastedeploy links
Closes-Bug: #2016463 Change-Id: Id500a2429b7412823970a06e3e82b1d1646c70b8 |
||
|
Tim Burke
|
ed1f5193e5 |
docs: Clean up cross-domain doc formatting; call out CWE-942
Change-Id: I7ab605d48972e8dc06e630d160c745baeea91355 |
||
|
Wei LingFei
|
5032b42b10 |
Update url
The OpenStack project is currently maintained on opendev.org, with github.com serving as a mirror repository. Replace the source code repository address for the python-swiftclient project from github.com to opendev.org. Change-Id: I650a80cb45febc457c42360061faf3a9799e6131 |
||
|
Tim Burke
|
cbba65ac91 |
quotas: Add account-level per-policy quotas
Reseller admins can set new headers on accounts like X-Account-Quota-Bytes-Policy-<policy-name>: <quota> This may be done to limit consumption of a faster, all-flash policy, for example. This is independent of the existing X-Account-Meta-Quota-Bytes header, which continues to limit the total storage for an account across all policies. Change-Id: Ib25c2f667e5b81301f8c67375644981a13487cfe |
||
|
Zuul
|
2a90eadc0d | Merge "docs: Add memcache.conf config doc" | ||
|
Alexander Fadeev
|
49ba1bc33a |
Present pytest steps in development guidelines
Explain how to prepare venv with `tox devenv` Closes-Bug: #2003984 Change-Id: Idc536034a36646de9c1880c8d0bc0a387b130ac2 |
||
|
Matthew Oliver
|
2edd3e65da |
docs: Add memcache.conf config doc
Change-Id: I29d00e939a3842bd064382575955fa3e255242eb |
||
|
Tim Burke
|
ef155bd74a |
Switch to pytest
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 |
||
|
Zuul
|
0470994a03 | Merge "slo: Default allow_async_delete to true" | ||
|
Tim Burke
|
5c6407bf59 |
proxy: Add a chance to skip memcache for get_*_info calls
If you've got thousands of requests per second for objects in a single container, you basically NEVER want that container's info to ever fall out of memcache. If it *does*, all those clients are almost certainly going to overload the container. Avoid this by allowing some small fraction of requests to bypass and refresh the cache, pushing out the TTL as long as there continue to be requests to the container. The likelihood of skipping the cache is configurable, similar to what we did for shard range sets. Change-Id: If9249a42b30e2a2e7c4b0b91f947f24bf891b86f Closes-Bug: #1883324 |
||
|
Zuul
|
24acc6e56b | Merge "Add backend rate limiting middleware" | ||
|
Zuul
|
d8af3d7a0d | Merge "Various doc formatting cleanups" | ||
|
Zuul
|
fc6555d9f3 | Merge "Update "Getting Started" requirements" | ||
|
jiaqi07
|
3a71df1335 |
Stop using unicode literals in docs conf.py
Change-Id: I8ce6749c3d634c68e5d4a15d812a046514cc35f5 |
||
|
Tim Burke
|
52a4fe37aa |
Various doc formatting cleanups
* Get rid of a bunch of accidental blockquote formatting * Always declare a lexer to use for ``.. code::`` blocks Change-Id: I8940e75b094843e542e815dde6b6be4740751813 |
||
|
Tim Burke
|
7e5c78423f |
Update "Getting Started" requirements
* Call out liberasurecode as a requirement * Include more py3 versions * Use anonymous links Change-Id: Ib1f8ef5e36825b9c241d2a4d838ea01b3df70da0 |
||
|
Zuul
|
9b0e5ea975 | Merge "formpost: deprecate sha1 signatures" | ||
|
Matthew Oliver
|
2d063cd61f |
formpost: deprecate sha1 signatures
We've known this would eventually be necessary for a while [1], and way back in 2017 we started seeing SHA-1 collisions [2]. This patch follows the approach of soft deprecation of SHA1 in tempurl. It's still a default digest, but we'll start with warning as the middleware is loaded and exposing any deprecated digests (if they're still allowed) in /info. Further, because there is much shared code between formpost and tempurl, this patch also goes and refactors shared code out into swift.common.digest. Now that we have a digest, we also move digest related code: - get_hmac - extract_digest_and_algorithm [1] https://www.schneier.com/blog/archives/2012/10/when_will_we_se.html [2] https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html Change-Id: I581cadd6bc79e623f1dae071025e4d375254c1d9 |
||
|
Zuul
|
5ff37a0d5e | Merge "DB Replicator: Add handoff_delete option" | ||
|
Matthew Oliver
|
bf4edefce4 |
DB Replicator: Add handoff_delete option
Currently the object-replicator has an option called `handoff_delete` which allows us to define the the number of replicas which are ensured in swift. Once a handoff node ensures that many successful responses it can go ahead and delete the handoff partition. By default it's 'auto' or rather the number of primary nodes. But this can be reduced. It's useful in draining full disks, but has to be used carefully. This patch adds the same option to the DB replicator and works the same way. But instead of deleting a partition it's done at the per DB level. Because it's done in the DB Replicator level it means the option is now available to both the Account and Container replicators. Change-Id: Ide739a6d805bda20071c7977f5083574a5345a33 |
||
|
Aymeric Ducroquetz
|
1831658b33 |
proxy-logging: Allow to add domain in log messages
Change-Id: Id441688aac1088041e243b8ee70710d9c5d7911b |
||
|
Zuul
|
2ed6e08f98 | Merge "s3api tests: allow AWS credential file loading" |