032cf3b3b4599bd720131c8f02cc6ed8a155683d
Commit Graph

8228 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Zuul
084f35be1e Merge "Add non-voting py37 unit test job" 2019年03月19日 11:02:35 +00:00
Zuul
7f5330f88c Merge "manage-shard-ranges: nicer message if we can't get_info()" 2019年03月19日 11:02:33 +00:00
John Dickinson
adc568c97f Fix bulk responses when using xml and Expect 100-continue
When we fixed bulk response heartbeating in https://review.openstack.org/#/c/510715/,
code review raised the issue of moving the xml header down to after the
early-exit clauses. At the time, it didn't seem to break anything, so
it was left in place. However, that insight was correct.
The purpose of the earlier patch was to force eventlet to use chunked
transfer encoding on the response in order to prevent eventlet from
buffering the whole response, thus defeating the purpose of the
heartbeat responses.
Moving the first line of the body lower (ie after the early exit
checks), allows other headers in a chunked transfer encoding response
to be appropriately processed before sending the headers. Sending the
xml declaration early causes it to get intermingled in the 100-continue
protocol, thus breaking the chunked transfer encoding semantics.
Closes-Bug: #1819252
Change-Id: I072f4dab21cd7cdb81b9e41072eb504131411dc8
2019年03月18日 20:41:29 +00:00
Clay Gerrard
585bf40cc0 Simplify empty suffix handling
We really only need to have one way to cleanup empty suffix dirs, and
that's normally during suffix hashing which only happens when invalid
suffixes get rehashed.
When we iterate a suffix tree using yield hashes, we may discover an
expired or otherwise reapable hashdir - when this happens we will now
simply invalidate the suffix so that the next rehash can clean it up.
This simplification removes an mis-behavior in the handling between the
normal suffix rehashing cleanup and what was implemented in ssync.
Change-Id: I5629de9f2e9b2331ed3f455d253efc69d030df72
Related-Change-Id: I2849a757519a30684646f3a6f4467c21e9281707
Closes-Bug: 1816501
2019年03月18日 15:09:54 -05:00
Tim Burke
e5eb673ccb Stop monkey-patching mimetools
You could *try* doing something similar to what we were doing
there over in email.message for py3, but you would end up
breaking pkg_resources (and therefor entrypoints) in the
process.
Drive-by: have mem_diskfile implement more of the diskfile API.
Change-Id: I1ece4b4500ce37408799ee634ed6d7832fb7b721
2019年03月13日 21:51:36 -07:00
Zuul
52211e3d73 Merge "Fix py35 unit test job" 2019年03月14日 01:16:20 +00:00
Tim Burke
d6af42b6b6 Clean up how we walk through ranges in ECAppIter
Besides being easier to reason about, this also lets us
run more unit tests under py37 which complains about a
a generator raising StopIteration
Change-Id: Ia6b945afef51bcc8ed20a7069fc60d5b8f9c9c0b
2019年03月13日 16:52:46 -07:00
Tim Burke
c9773bfd26 Add non-voting py37 unit test job
Change-Id: I83f8f59023eabc97386481c18ed8bbf8fab64fa8
2019年03月13日 16:45:26 -07:00
Tim Burke
95da1d97b1 Fix py35 unit test job
Looks like some base templates got moved from xenial to bionic, which
doesn't have py35. Explicitly say that this job needs xenial.
Change-Id: I44df8736d0c33fc2c58c9be6b5b8023932f14a83
2019年03月13日 16:29:09 -07:00
John Dickinson
53b56b6551 crediting contributors to the un-landed hummingbird branch
Change-Id: I51708cb2f0deca61b147589e062b520ac7a1807e
2019年03月13日 11:41:00 -07:00
Zuul
cc6f69a2dc Merge "Fix a typo" 2019年03月12日 23:45:36 +00:00
Tim Burke
fa678949ae Fix quoting for large objects
Change-Id: I46bdb6da8f778a6c86e0f8e883b52fc31e9fd44e
Partial-Bug: 1774238
Closes-Bug: 1678022
Closes-Bug: 1598093
Closes-Bug: 1762997
2019年03月12日 16:08:24 -07:00
Kota Tsuyuzaki
a30a477755 Stop overwriting reserved term
`dir` is a reserved instruction term in python, so this patch
avoiding to assing a value to it.
Change-Id: If780c4ffb72808b834e25a396665f17bd8383870
2019年03月12日 08:53:18 +00:00
Michele Valsecchi
74664af7ed Fix a typo
Replace 'o' with 'to'.
Change-Id: I0a9b1547016b2662002c050e8388591d7d91ef97
2019年03月12日 13:56:27 +09:00
zhufl
13e7f3641e Do not use self in classmethod
cls should be used in classmethd, instead of self.
Change-Id: I149b18935ce909ef978f2b7147b109e11c22f923
2019年03月11日 14:28:20 +08:00
Zuul
4b180dec81 Merge "py3: fix copying unicode names" 2019年03月08日 00:24:39 +00:00
Clay Gerrard
e1a12dc3dd Refactor write_affinity DELETE handling
There's some code duplication we can drop, and some tests scenarios we
can expand on. I don't believe there's any behavior change here.
Change-Id: I2271d1cb757c989c4b0bfe228cd26c8620a151db
2019年03月07日 14:01:26 -08:00
Zuul
f9329ca5ff Merge "docs: clean up SAIO formatting" 2019年03月05日 23:57:37 +00:00
Tim Burke
d748851766 s3token: Add note about config change when upgrading from swift3
Change-Id: I2610cbdc9b7bc2b4d614eaedb4f3369d7a424ab3
2019年03月05日 14:50:22 -08:00
Zuul
703249d6cb Merge "Clean up func tests ahead of py3" 2019年03月05日 02:27:17 +00:00
Tim Burke
d185b607bb docs: clean up SAIO formatting
Drive-by: use six.moves in s3api; fix "unexpected indent" warning when building
docs on py3
Change-Id: I2a354e2624c763a68fcea7a6404e9c2fde30d631
2019年03月04日 17:37:12 -08:00
Zuul
d2d6d59d5c Merge "py3: port proxy account controller" 2019年03月05日 01:01:14 +00:00
Zuul
65f2fd8c95 Merge "py3: port proxy container controller" 2019年03月05日 01:01:04 +00:00
Pete Zaitcev
860ae1e001 py3: port proxy account controller
Change-Id: I5a0d2108d01395aedb4ac18464ed2e38ad13ce84
2019年03月04日 15:16:27 -06:00
Tim Burke
8b519d1abc Clean up func tests ahead of py3
- ConfigParser.set() requires that the value be a string
- The stdlib HTTP client responses don't have a body property
- We might raise a ResponseError with response=None
- Bodies should be bytes
- Headers should be strings
- Make containers()/files() return native strings
- file() isn't a thing on py3
- format should be a parm, not a header
- Switch sorted() to use key instead of cmp
- Use integer division explicitly
Change-Id: I99d3eebc9d7ec4e8b295352294b831492135c568
2019年03月01日 16:10:53 -08:00
Tim Burke
45994e4d31 py3: port object updater
Change-Id: Ib1cd0659d5085ff9f8555bc08bd17a8f02f2efc0
2019年03月01日 15:40:15 -08:00
Tim Burke
4ac81ebbd7 py3: fix copying unicode names
Turns out, unquote()ing WSGI strings is a great way to mangle them.
Change-Id: I42a08d84aa22a1a7ee7ccab97aaec55d845264f9
2019年03月01日 13:21:16 -08:00
Tim Burke
5d4303edbf manage-shard-ranges: nicer message if we can't get_info()
Tracebacks are ugly.
Change-Id: I09b907608127e4c633b554be2926245b35402dbf
2019年02月28日 23:29:53 +00:00
Tim Burke
349c549984 py3: port object auditor
Change-Id: Ic00273e5d3120f7daba1d3cbf084159f1e7d8bbb
2019年02月27日 14:07:33 -06:00
Zuul
3d4ed23c08 Merge "Address some review comments" 2019年02月27日 10:34:48 +00:00
Zuul
736e76d764 Merge "probe tests: wait to start replicators until after verifying initial state" 2019年02月27日 06:35:54 +00:00
Pete Zaitcev
61e6ac0ebd py3: port formpost middleware
Change-Id: I8f3d4d5f6976ef5b63facd9b5723aac894066b74
2019年02月26日 23:06:52 -06:00
Zuul
96013436a1 Merge "added changelog entries from stable releases" 2019年02月26日 06:01:13 +00:00
John Dickinson
04a0ff2e96 added changelog entries from stable releases
Change-Id: Ia2ba8f7a998bc55ba3fba3ce37f1d2974646494f
2019年02月25日 16:43:46 -08:00
Zuul
491189c424 Merge "Make test_multiphase_put_drains_extra_commit_junk_disconnect less flakey" 2019年02月25日 21:13:13 +00:00
Zuul
7641fd380d Merge "s3api: Delete multipart uploads via multi-delete" 2019年02月23日 02:08:40 +00:00
Zuul
0c8be37828 Merge "py3: display help if no subcommand provided to manage-shard-ranges" 2019年02月23日 02:08:38 +00:00
Zuul
330768d449 Merge "py3: port versioned_writes" 2019年02月22日 23:21:31 +00:00
Zuul
67010f0171 Merge "py3: port the container" 2019年02月22日 23:07:39 +00:00
Tim Burke
5409c4f347 Make test_multiphase_put_drains_extra_commit_junk_disconnect less flakey
Change-Id: I82503b13e4541196ad056e861221e9429c7f2c1c
2019年02月22日 14:23:33 -08:00
Tim Burke
be3e215829 py3: display help if no subcommand provided to manage-shard-ranges
That way we don't traceback when you just provide a DB file.
At some point, py3 switched to having optional subparsers. In py37,
they added a kwarg to say whether a subparser is optional or required,
but for the sake of earlier versions, we have to check whether it was
set manually and cannot rely on argparse doing it for us. See also:
- https://bugs.python.org/issue9253
- https://github.com/python/cpython/commit/aaf6fc0
- https://bugs.python.org/issue33109
- https://github.com/python/cpython/commit/8ebf5ce
Change-Id: Iac8048ad0e23ffb28b914fe880c4b6538bc41c86
2019年02月21日 14:24:05 -08:00
Tim Burke
baf18edc00 Clean up account-reaper a bit
- Drop the (partial) logging translation
- Save our log concatenations until the end
- Stop encoding object names; direct_client is happy to take Unicode
- Remove a couple loop breaks that were only used by tests
Change-Id: I4a4f301a7a6cb0f217ca0bf8712ee0291bbc14a3
Partial-Bug: #1674543 
2019年02月21日 13:36:14 -08:00
Tim Burke
b4e4700765 py3: port some more middleware tests
* name_check
 * quotas
 * ratelimit
 * read_only
 * recon
Note that the middlewares themselves seem to be fine.
Fix proxy-logging for PEP-0479.
Change-Id: If47d09e8e8c09b9f50451f93d5b0803aa58743a7
2019年02月21日 09:44:02 -08:00
Pete Zaitcev
3be384c810 py3: port proxy container controller
Change-Id: Id74a93f10bc5c641d62141af33bef68e503f7e04
2019年02月20日 22:05:08 -06:00
Pete Zaitcev
575538b55b py3: port the container
This started with ShardRanges and its CLI. The sharder is at the
bottom of the dependency chain. Even container backend needs it.
Once we started tinkering with the sharder, it all snowballed to
include the rest of the container services.
Beware, this does affect some of Python 2 code. Mostly it's trivial
and obviously correct, but needs checking by reviewers.
About killing the stray "from __future__ import unicode_literals":
we do not do it in general. The specific problem it caused was
a failure of functional tests because unicode leaked into a field
that was supposed to be encoded. It is just too hard to track the
types when rules change from file to file, so off with its head.
Change-Id: Iba4e65d0e46d8c1f5a91feb96c2c07f99ca7c666
2019年02月20日 21:30:46 -06:00
Zuul
3c224af80c Merge "py3: port copy middleware" 2019年02月20日 02:25:51 +00:00
Tim Burke
8e045d0de2 versioned_writes: stop trying to catch HTTPPreconditionFailed
* We just caught it to raise another one
* On newer versions of python, we wouldn't actually catch
 anything, because HTTPPreconditionFailed is not an instance
 of BaseException -- it's a partial function application
 which when called will return an exception.
Change-Id: Ia44e832e4198e75f3337884c4612f4e9fe3b9e0b
2019年02月19日 13:28:41 -08:00
Tim Burke
ce261b12e6 py3: port versioned_writes
Change-Id: I1095262563eff92d6d0a399eb0d5f9d3045becf3
2019年02月19日 13:06:09 -08:00
Tim Burke
f4689dd22f probe tests: wait to start replicators until after verifying initial state
Change-Id: Ida7c776201a068d44572d1e94472c975c4bc8e36
2019年02月19日 12:11:47 -08:00
Pete Zaitcev
db9c905849 py3: port copy middleware
Change-Id: I2701358f9f01f368c892a010a543ecc1f17684a3
2019年02月18日 21:32:12 -06:00