e7cd8df5e93a89fba6a62d2f2f4270a1ce789e93
8572 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Clay Gerrard
|
e7cd8df5e9 |
Add option for debug query logging
Change-Id: Ic16b505a37748f50dc155212671efb45e2c5051f |
||
|
OpenStack Proposal Bot
|
739c370410 |
Imported Translations from Zanata
For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I7a72be3568c2e8afd7211978cd917810c9af22ad |
||
|
Zuul
|
d6967a1fb6 | Merge "docs: Fix then/than grammar" | ||
|
Tim Burke
|
2ac50079c1 |
docs: Fix then/than grammar
Change-Id: I948d65d0d3b58fcb13f8141fe095ccad4b8f1425 Closes-Bug: #1848485 |
||
|
Zuul
|
f007db3c61 | Merge "tests: Stop invoking python just to get the real source directory" | ||
|
Zuul
|
f4fc811862 | Merge "swift-account-audit: clean up some error formatting" | ||
|
Zuul
|
cf53fcbd94 | Merge "py38: Provide readinto() interface for RingReader" | ||
|
Zuul
|
0e5a32000a |
Merge "Use == to compare against the empty string, not is"
|
||
|
Tim Burke
|
86952dd3ed |
tests: Stop invoking python just to get the real source directory
While we're at it, stop checking for a seven-year-old version of nose -- we already list a newer version in test-requirements.txt anyway. Change-Id: I97beace3094f11286730b99653dc1e8f699c5aec |
||
|
Zuul
|
294472464a | Merge "py3: fix swift-account-audit" | ||
|
Zuul
|
4768f22507 | Merge "Consistently use io.BytesIO" | ||
|
Zuul
|
5d1437e969 | Merge "Fix kms_keymaster under Python 3" | ||
|
Zuul
|
1e77d6834f | Merge "py3: fix swift-dispersion-populate" | ||
|
Tim Burke
|
d270596b67 |
Consistently use io.BytesIO
Change-Id: Ic41b37ac75b5596a8307c4962be86f2a4b0d9731 |
||
|
Zuul
|
4e8572866a | Merge "py3: Fix swift-recon" | ||
|
Tim Burke
|
8efaa3556f |
py38: Provide readinto() interface for RingReader
Otherwise pickle complains TypeError: file must have 'read', 'readinto' and 'readline' attributes Change-Id: I7ae0d7e47ae44286564f8ab7126e8ff131bc0de6 |
||
|
Tim Burke
|
3bd5653873 |
Use == to compare against the empty string, not is
py38 will start complaining like SyntaxWarning: "is" with a literal. Did you mean "=="? Change-Id: I799e288f66230a7847a13b7f303e4cd8e63eea59 |
||
|
Tim Burke
|
2edcd0b7b9 |
py3: Fix swift-recon
Avoid things like TypeError: '<' not supported between instances of 'NoneType' and 'int' Change-Id: I82edbf1ddcc28f86e97405d21db0b96249412eac |
||
|
Tim Burke
|
4c66596e63 |
py3: fix swift-dispersion-populate
Change-Id: I1f140ae00cbd25b23c9a40ee91dccee8c7c15d81 |
||
|
Tim Burke
|
3e90ddb37d |
swift-account-audit: clean up some error formatting
"127.0.0.1s:sdas" is confusing at best. Change-Id: I37f78d5993082ac29b001e9563aa4b24fd009a27 |
||
|
Tim Burke
|
2f4fe56ca4 |
py3: fix swift-account-audit
Previously, we'd get a KeyError trying to read headers. Change-Id: I5d9f86784a3e39577ab010d29d8d03b26ffda357 |
||
|
Thomas Goirand
|
85d3658d62 |
Fix kms_keymaster under Python 3
Depending on how the key was stored in Barbican, it may come out of Castellan as a native string, which would not be suitable on Python 3. Now, check that the secret is a byte string, and if it isn't, encode as UTF-8 (to match Barbican's internal encoding). Change-Id: I6da047716c05e4f2a9e1e74ca19afb62e812d172 Closes-Bug: #1847755 |
||
|
Tim Burke
|
405a2b2a55 |
py3: Fix swift-drive-audit
Walking through the kernel logs backwards requires that we open them in binary mode. Add a new option to allow users to specify which encoding should be used to interpret those logs; default to the same encoding that open() uses for its default. Change-Id: Iae332bb58388b5521445e75beba6ee2e9f06bfa6 Closes-Bug: #1847955 |
||
|
Zuul
|
29d46ca9f6 | Merge "Fix misleading error msg if swift.conf unreadable" | ||
|
Christian Schwede
|
78a4070c90 |
Fix misleading error msg if swift.conf unreadable
Several tools are returning a misleading error message if swift.conf is missing or not readable by the user, stating that the hash pre-/suffixes are missing. Let's fix this by catching the real issue down below. Change-Id: I7a47e6260ed51a3b7d9665b3a4510520429ae158 |
||
|
Thiago da Silva
|
d667affb6f |
Create segment container w/ same policy as primary
When users upload an MPU object, s3api will automatically create a segment container if one doesn't already exist. Currently, s3api will create the segment bucket using the cluster's default storage policy. This patch changes that behavior to use the same storage policy as the primary bucket. Change-Id: Ib64a06868bd3670a1d4a1860ac29122e1ede7c39 Closes-Bug: 1832390 |
||
|
Zuul
|
1c0661e920 | Merge "Start building py3 docker images" | ||
|
Zuul
|
c5fa19709b | Merge "Add commands to ring-builder to change region / zone" | ||
|
Christian Schwede
|
98f9781096 |
Add commands to ring-builder to change region / zone
Currently one has to remove and re-add devices when the region or zone needs to be changed. Adding the subcommands set_region and set_zone simplifies this, now it is possible to change the region and/or zone easily. Note that there is no change to the required rebalancing; it is likely that data still needs to be moved within the cluster. This is mostly copy-n-paste of the existing set_weight subcommand and adopting tests accordingly. Some duplicated code in the tests has been aggregated as well. Change-Id: I37dd8e8ac24e2b0bb196758449a1d91a769b2e96 |
||
|
Pete Zaitcev
|
bb5fa0ea2e |
tests: bust md5 of object not footers
The test test_PUT_ec_fragment_quorum_archive_etag_mismatch busts the md5 in server.py, so it ends damaging the md5 of footers instead of the fragment archive. It appears that the intention of the test was to check the integrity verification for fragment archive, so change the test to bust diskfile.py instead. Change-Id: I54a203bb637d5f5814e8df2b4297758b0b72adac |
||
|
Zuul
|
ff91df2302 | Merge "ring: Track more properties of the ring" | ||
|
Zuul
|
70aeea86ee | Merge "s3api: paginate listings when aborting MPUs" | ||
|
Zuul
|
b79b8f4358 | Merge "Imported Translations from Zanata" | ||
|
Thiago da Silva
|
3f7ffbc2cc |
Start building py3 docker images
Change-Id: Id6f1075b2774536bb095de0904a1cdcf2b34b0fd |
||
|
OpenStack Proposal Bot
|
cb76e00e90 |
Imported Translations from Zanata
For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I40ce1d36f1c207a0d3e99a3a84a162b21b3c57cf |
||
|
Zuul
|
52484bc7f9 | Merge "PDF Documentation Build tox target" | ||
| 527a57ffcd |
Update master for stable/train
Add file to the reno documentation build to show release notes for stable/train. Use pbr instruction to increment the minor version number automatically so that master versions are higher than the versions on stable/train. Change-Id: Ia93e0b690f47c6231423a25dfd6a108a60378a21 Sem-Ver: feature |
|||
|
Tim Burke
|
8a4becb12f |
Authors/changelog for 2.23.0
Also, make some CHANGELOG formatting more consistent. Change-Id: I380ee50e075a8676590e755f24a3fd7a7a3310292.23.0 |
||
|
Zuul
|
6114965ab9 | Merge "Fix some request-smuggling vectors on py3" | ||
|
Tim Burke
|
bf9346d88d |
Fix some request-smuggling vectors on py3
A Python 3 bug causes us to abort header parsing in some cases. We mostly worked around that in the related change, but that was *after* eventlet used the parsed headers to determine things like message framing. As a result, a client sending a malformed request (for example, sending both Content-Length *and* Transfer-Encoding: chunked headers) might have that request parsed properly and authorized by a proxy-server running Python 2, but the proxy-to-backend request could get misparsed if the backend is running Python 3. As a result, the single client request could be interpretted as multiple requests by an object server, only the first of which was properly authorized at the proxy. Now, after we find and parse additional headers that weren't parsed by Python, fix up eventlet's wsgi.input to reflect the message framing we expect given the complete set of headers. As an added precaution, if the client included Transfer-Encoding: chunked *and* a Content-Length, ensure that the Content-Length is not forwarded to the backend. Change-Id: I70c125df70b2a703de44662adc66f740cc79c7a9 Related-Change: I0f03c211f35a9a49e047a5718a9907b515ca88d7 Closes-Bug: 1840507 |
||
|
Matthew Oliver
|
0217b12b6d |
PDF Documentation Build tox target
This patch adds a `pdf-docs` tox target that will build PDF versions of our docs. As per the Train community goal: https://governance.openstack.org/tc/goals/selected/train/pdf-doc-generation.html Add sphinxcontrib-svg2pdfconverter to doc/requirements.txt to convert our SVGs. Story: 2006122 Task: 35515 Change-Id: I26cefda80d3234df68d7152b404e0a71da74ab90 |
||
|
Zuul
|
2f7b4440d4 | Merge "py3: Allow percentages in configs" | ||
|
Zuul
|
4e3304073c | Merge "Add experimental job to test upgrades from stein" | ||
|
Zuul
|
c01e9bd964 | Merge "py3: decode stdout from backgrounded servers" | ||
|
Tim Burke
|
be41721888 |
Add experimental job to test upgrades from stein
Also, correct the version that we check out when upgrading from stable branches. Change-Id: Ie733bc50466c66d6e6eb5c6bd42e42a05ef88798 |
||
|
Zuul
|
01596bd7bc | Merge "proxy: Don't trust Content-Length for chunked transfers" | ||
|
Zuul
|
ac21dd3d40 | Merge "Make sharding methods with only one job" | ||
|
Tim Burke
|
9a33365f06 |
py3: Allow percentages in configs
Previously, configs like
fallocate_reserve = 1%
would cause a py3 backend server to fail to start, complaining like
configparser.InterpolationSyntaxError: Error in file
/etc/swift/object-server/1.conf.d: '%' must be followed
by '%' or '(', found: '%'
This could also come up in proxy-server configs, with things like
percent signs in tempauth password.
In general, we haven't really thought much about interpolation in
configs. Python's default ConfigParser has always supported it, though,
so we got it "for free". On py2, we didn't really have to think about
it, since values like "1%" would pass through just fine. (It would blow
up a SafeConfigParser, but a normal ConfigParser only does replacements
when there's something like a "%(opt)s" in the value.)
On py3, SafeConfigParser became ConfigParser, and the old interpolation
mode (AFAICT) doesn't exist.
Unfortunatley, since we "supported" interpolation, we have to assume
there are deployments in the wild that use it, and try not to break
them. So, do what we can to mimic the py2 behavior.
Change-Id: I0f9cecd11f00b522a8486972551cb30af151ce32
Closes-Bug: #1844368
|
||
|
Tim Burke
|
ad7f7da32d |
py3: decode stdout from backgrounded servers
Otherwise, when we go to print() it, we get a bunch of b"" strings. Change-Id: If62da0b4b34b9d1396b5838bf79ff494679f1ae3 |
||
|
Zuul
|
2d87ad6333 | Merge "sharder: Keep cleaving on empty shard ranges" |