0918ff2136aba11713ab584e1564f9d221508433
Commit Graph

7814 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Zuul
0918ff2136 Merge "update 1space url in associated projects" 2018年09月27日 02:00:03 +00:00
Zuul
5cc4a72c76 Merge "Configure diskfile per storage policy" 2018年09月27日 00:19:32 +00:00
Thiago da Silva
36a3fee805 update 1space url in associated projects
Change-Id: Idcb1e9cacba5b959387a2bfd7a4ef5e9d502996a
2018年09月26日 11:55:38 -04:00
Zuul
b33ecf73f5 Merge "Allow kmip_keymaster to be configured in proxy-server.conf" 2018年09月26日 14:39:16 +00:00
Zuul
c26141c209 Merge "Clean up comment about 404s leaking out during COPYs" 2018年09月26日 14:39:10 +00:00
Zuul
ec66c6cbbe Merge "py3: Port listing_formats middleware" 2018年09月25日 20:13:28 +00:00
Zuul
e6177a39a0 Merge "py3: get proxy-server willing and able to respond to some API requests" 2018年09月25日 20:13:26 +00:00
Zuul
fc9ab28927 Merge "py3: port request_helpers" 2018年09月25日 20:01:10 +00:00
Tim Burke
b7fda3b4a2 Allow kmip_keymaster to be configured in proxy-server.conf
... and in particular, in the filter:kmip_keymaster section. We thought
we'd done that before, but we didn't: __name__ is *just* the filter
name, and doesn't include the "filter:" prefix for the section.
Change-Id: Iede1d7450e94ba05d2610030e975f566275da88b
2018年09月24日 16:54:29 -07:00
John Dickinson
70d31e0f25 set up a lower constraints job that uses an XFS tmpdir
Change-Id: Ib9d1da8abed6be0156829e6d54ad2eb43af2516e
2018年09月19日 11:54:57 -07:00
Andreas Jaeger
62f8e64718 Use templates for cover and lower-constraints
Use openstack-tox-cover template, this runs the cover job
in the check queue only.
Use openstack-lower-constraints-jobs template
Remove jobs that are part of the templates.
Change-Id: I76d801da15904142bda0503c5bfa9f11b4ea84f1
2018年09月19日 11:50:32 -07:00
Zuul
17b9acc0a3 Merge "add multinode functional test to swift" 2018年09月18日 22:50:01 +00:00
Tim Burke
1b0172f5d3 py3: Port listing_formats middleware
Change-Id: I4e2712a4a38b5cab3e31cc75bb162e73b4f5dafb
2018年09月17日 13:08:12 -07:00
Tim Burke
78344bfe25 py3: get proxy-server willing and able to respond to some API requests
I saw GET account/container/replicated object all work,
which is not too shabby.
Change-Id: I63408274fb76a4e9920c00a2ce2829ca6d9982ca
2018年09月17日 13:03:25 -07:00
Alistair Coles
904e7c97f1 Add more doc and test for cors_expose_headers option
In follow-up to the related change, mention the new
cors_expose_headers option (and other proxy-server.conf
options) in the CORS doc.
Add a test for the cors options being loaded into the
proxy server.
Improve CORS comments in docs.
Change-Id: I647d8f9e9cbd98de05443638628414b1e87d1a76
Related-Change: I5ca90a052f27c98a514a96ee2299bfa1b6d46334
2018年09月17日 12:35:25 -07:00
Thiago da Silva
5d70396247 add multinode functional test to swift
This new test job adds multinode testing to swift.
It currently configures 5 nodes: test-runner, proxy,
account, container and object. It starts by checkout out
the latest release and then 'upgrades' the storage nodes
to the current patch under test. That means that it will
the test-runner and the proxy are still running the latest
release.
Future work would include a new set of tests where it will
add objects to the cluster prior to upgrading and then try
to read those objects after the upgrade. It should also be
noted that the 'upgrade' currently only means a new
'git checkout' the configuration files are not being updated.
A future patch should fix that too.
Change-Id: If8e09a082fc024257a98cf332de9a36a18d2adc5
2018年09月17日 12:51:34 -04:00
Zuul
956172623c Merge "fixed a manpage and added the manpage syntax checker to pep8 jobs" 2018年09月15日 17:48:49 +00:00
John Dickinson
0c97888bcb fixed a manpage and added the manpage syntax checker to pep8 jobs
also a drive-by fix to the bindep job--it doesn't need to install
Change-Id: Ic9b68bc60bfbf21b45a1b7f9d7ff9998e01ddd26
2018年09月15日 10:31:49 -06:00
Zuul
ecd44d719d Merge "Replace Chinese quotes with English quotes" 2018年09月15日 13:17:52 +00:00
Zuul
bfa4c6295d Merge "py3: include test_base_storage_server" 2018年09月15日 08:04:42 +00:00
Tim Burke
2ef21ac05d py3: port request_helpers
Change-Id: I6be1a1c618e4b4fa03b34dad96f378aca01e8e08
2018年09月15日 01:33:34 -06:00
zhangdebo
a7dd5f655d Replace Chinese quotes with English quotes
Change-Id: Ic7025ba79eadb39f75dd03135fae3326138b3ded
2018年09月15日 03:20:24 -04:00
Tim Burke
b4567e66ec py3: include test_base_storage_server
Apparently this was already passing? Not a whole lot there...
Change-Id: I029fe2e7f4162765eee0a390793402523d0975fa
2018年09月15日 00:47:35 -06:00
Zuul
5d46c0d8b3 Merge "Adding keep_idle config value to socket" 2018年09月15日 00:43:52 +00:00
Zuul
a10a8611e6 Merge "Add punch_hole utility function" 2018年09月15日 00:15:38 +00:00
FatemaKhalid
cfeb32c66b Adding keep_idle config value to socket
User can cofigure KEEPIDLE time for sockets in TCP connection.
The default value is the old value which is 600.
Change-Id: Ib7fb166deb8a87ae4e97ba0671048b1ec079a2ef
Closes-Bug:1759606
2018年09月15日 01:30:53 +02:00
Alexandre Lécuyer
dbacdcf01c Add punch_hole utility function
This is useful for deallocating disk blocks as part of an alternate disk
file implementation.
Additionally, add an offset argument to the existing fallocate utility
function; this allows you to grow an existing file.
Sam always had the best descriptions:
 utils.fallocate(fd, size) allocates <size> bytes for the file referred
 to by <fd>. It allows for keeping a reserve of an additional N bytes
 or X% of the filesystem free. If neither fallocate() or
 posix_fallocate() C functions are avaialble, utils.fallocate() will
 log a warning (once only) and not actually allocate space.
 utils.punch_hole(fd, offset, length) deallocates <length> bytes
 starting at <offset> from the file referred to by <fd>. It uses the C
 function fallocate(). If fallocate() is not available, calls to
 utils.punch_hole() will raise an exception.
Since these both use the fallocate syscall, refactor that a bit and get
rid of FallocateWrapper. We add a new _LibcWrapper to do some
lazy-loading of a C function and expose whether the function is actually
available in Python, though. This allows utils.fallocate and
utils.punch_hole to keep their fancy logic pretty well-contained.
Modernized the tests for utils.fallocate() and utils.punch_hole().
Co-Authored-By: Samuel Merritt <sam@swiftstack.com>
Change-Id: Ieac30a477d784905c94742ee3d0898d7e0194b39
2018年09月14日 13:55:42 -06:00
Samuel Merritt
114220279b py3: port list_endpoints
Change-Id: Ic6d0532f9f42b4d57a12aafeec5d34baffab6e23
2018年09月14日 13:53:06 -06:00
Zuul
3698e85dcb Merge "Add another user for s3api func tests" 2018年09月14日 16:41:56 +00:00
Zuul
d847eebd5b Merge "Add ceph-s3 test non-voting job" 2018年09月14日 16:02:58 +00:00
Tim Burke
5a8cfd6e06 Add another user for s3api func tests
Previously we'd use two users, one admin and one unprivileged.
Ceph's s3-tests, however, assume that both users should have access to
create buckets. Further, there are different errors that may be returned
depending on whether you are the *bucket* owner or not when using
s3_acl. So now we've got:
 test:tester1 (admin)
 test:tester2 (also admin)
 test:tester3 (unprivileged)
Change-Id: I0b67c53de3bcadc2c656d86131fca5f2c3114f14
2018年09月14日 13:33:51 +00:00
Kota Tsuyuzaki
80001aa096 Add ceph-s3 test non-voting job
This patch added new non-voting gate job to check the s3api compatibility
via swiftstack/s3compat tool that shows the ratio of compatible S3 APIs
in the gate result for each patch. This is very useful to check the possibility
if the new incoming patch breaks S3 API compatibility unexpectedly.
Originally swift3 has this kind of the gate job but we missed the staff
while migrating from swift3 into swift upstream repo so this is the porting of that.
Note that currently the job is against to only tempauth because we don't have
custom gate jobs using keystone environment other than dsvm.
Change-Id: I6f30f74678ad35479da237361bee48c46c0ecc49
2018年09月14日 22:32:34 +09:00
Clay Gerrard
52ecbf9539 Add a chunks_finished to BaseDiskFileWriter
BaseDiskFileWriter will track md5 and expose upload_size, etag via the
chunks_finished method.
The BaseDiskFileReader already tracks the md5/etag via _iter_etag, for
parity we add a _chunks_etag to the BaseDiskFileReader.
Instead of returning the upload_size and hexdigest every call to write,
we return the tuple from chunks_finished.
Change-Id: I26c58719cff5fde941d0248c250a0204e0379ae5
2018年09月13日 12:28:57 -05:00
Zuul
29f71c9119 Merge "s3api: Include '-' in multipart ETags" 2018年09月13日 11:30:32 +00:00
Tim Burke
84b85f03b4 s3api: Include '-' in multipart ETags
Multipart uploads in AWS (seem to) have ETags like:
 '"' + MD5_hex(MD5(part1) + ... + MD5(partN)) + '-' + N + '"'
On the other hand, Swift SLOs have Etags like:
 MD5_hex(MD5_hex(part1) + ... + MD5_hex(partN))
(In both examples, MD5 gets the raw 16-byte digest while MD5_hex
gets the 32-byte hex-encoded digest.)
Some clients (such as aws-sdk-java) use the presence of a dash
to decide whether to perform client-side validation of downloads.
Other clients (like s3cmd) use the presence of a dash *in bucket
listings* to decide whether or not to perform additional HEAD requests
to look for MD5 metadata that can be used to compare against the MD5s
of local files.
Now we include a dash as well, to prevent spurious errors like
> Unable to verify integrity of data download. Client calculated
> content hash didn't match hash calculated by Amazon S3. The data
> may be corrupt.
or unnecessary uploads/downloads because the client assumes data has
changed that hasn't.
For new multipart-uploads via the S3 API, the ETag that is stored will
be calculated in the same way that AWS uses. This ETag will be used in
GET/HEAD responses, bucket listings, and conditional requests via the S3
API. Accessing the same object via the Swift API will use the SLO Etag;
however, in JSON container listings the multipart upload etag will be
exposed in a new "s3_etag" key.
New SLOs and pre-existing multipart-uploads will continue to behave as
before; there is no data migration or mitigation as part of this patch.
Change-Id: Ibe68c44bef6c17605863e9084503e8f5dc577fab
Closes-Bug: 1522578
2018年09月13日 19:28:59 +09:00
Zuul
139274a8c1 Merge "added some bootstrapping info to the top of the SAIO doc" 2018年09月13日 00:35:23 +00:00
John Dickinson
ebcc95a96b added some bootstrapping info to the top of the SAIO doc
Change-Id: Ib82f2494f2cc65a3f15925efe0dfeb52eb7aa22b
2018年09月12日 17:12:36 -06:00
Zuul
aeeec5c1ae Merge "DiskFile(Writer) refactor cleanups" 2018年09月12日 21:56:28 +00:00
Zuul
9578ac863d Merge "DiskFile(Writer) refactor cleanup for unused use_linkat" 2018年09月12日 21:10:04 +00:00
Zuul
b74a07b02b Merge "Add writer method to DiskFile" 2018年09月12日 21:09:59 +00:00
Tim Burke
ce257b3d15 DiskFile(Writer) refactor cleanups
Change-Id: I5b0bcc6028dbe6248e0e09baf2cbb72deb011c80
2018年09月12日 19:09:12 +00:00
Pete Zaitcev
a42c1dae11 DiskFile(Writer) refactor cleanup for unused use_linkat
Change-Id: Ibb30b23a53260a154d009b52388859c5220aca32
2018年09月12日 13:12:17 -05:00
Clay Gerrard
33c7650753 Add writer method to DiskFile
DiskFile already exposes a reader method that creates the DiskFileReader
instance. Add a writer method for parity.
DiskFile currently only provides a context manager create - that will
open and close the DiskFileWriter. Add explicit open and close methods
to support more flexibility in how callers manage life-cycle on their
DiskFileWriter instances.
Diskfile confusingly manages some state for DiskFileWriter (e.g. fd,
tmppath, use_linkat). Encapsulate the DiskFileWriter state to improve
readability and reduce coupling (e.g. put_succeeced).
Change-Id: If18e0041680470a9c57a08e9ea9327acba8593df
2018年09月12日 10:37:48 -05:00
Zuul
504dc4756a Merge "Import quote directly from swift.common.utils" 2018年09月12日 05:10:44 +00:00
Tim Burke
8bc1434367 Import quote directly from swift.common.utils
... instead of via direct_client.
When I go grepping for direct_client in my code base, I want to find the
actual users of direct_client!
Change-Id: Id55c9c8ea3ab7bb86da1c5e8f6e979c26974a260
2018年09月11日 20:25:07 -06:00
Zuul
f2e7d0a2ba Merge "Let error messages to be normal strings again" 2018年09月12日 00:53:23 +00:00
Zuul
3641b21acb Merge "Add py36 test job" 2018年09月11日 23:40:36 +00:00
Pete Zaitcev
791482675d Let error messages to be normal strings again
This changes how we decided to handle HTTPBadRequest and friends.
Previously, we came to forcing everything to be bytes, because
obviously WSGI bodies can only be bytes. But it turned out to
be too much hassle, so let's revisit that decision.
We aren't going to back-convert all the bytes bodies. That is
already too much hassle too. But this patch throws in a few
examples, just to showcase what this patch does.
Change-Id: I206a9611e7f348f49e5c2d0e677fed3b0739c167
2018年09月11日 18:00:04 -05:00
Zuul
167720b1df Merge "Drop neutron jobs from our gate" 2018年09月11日 22:34:39 +00:00
Tim Burke
560db71f12 Drop neutron jobs from our gate
Why did we have those??? When have we *ever* broken neutron?
All those jobs ever tell me are to leave a comment saying
"recheck".
Change-Id: If32b164827d07c4b3efc88fa2794e38ca67c3b53
2018年09月11日 14:55:13 -06:00