5c1a7871d9173db9fbd855b72a98ecd8ff163800
Commit Graph

2797 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Darrell Bishop
4f2f2435ac Fix two documentation warnings.
The crossdomain doc was named *.xml instead of *.rst causing it to not
get built or included in the toctree where it was supposed to.
The apache deployment guide wasn't linked to from anywhere, so I added
it under the normal deployment guide.
Change-Id: I817a1f2ca1ed7913e8ea5155cc1fac07caf0b637
2013年05月11日 14:31:42 -07:00
Darrell Bishop
5f295d0329 Don't delete containers when they weren't created.
When swift-bench is run in direct mode, don't try to delete the
containers which weren't created.
Fixes bug 1177960.
Change-Id: Ice07e8729bb776e2b215894cf95fb80b64167a8d
2013年05月11日 13:37:16 -07:00
David Goetz
af2607c457 Refactor Bulk middleware to handle long running requests
Change-Id: I8ea0ff86518d453597faae44ec3918298e2d5147
2013年05月08日 10:00:21 -07:00
Samuel Merritt
21343ab038 Allow 2 TempURL keys per account.
This allows users to rotate their TempURL keys without invalidating
all existing signed URLs. This is handy if you have multiple systems
generating signed URLs, but you want to change your keys for some
reason (e.g. keys compromised, company policy, general paranoia).
Both the first and second keys are optional, so existing accounts'
signed URLs will continue to work as before.
This commit does change the memcache key used to store the fetched
TempURL keys. This is because we were storing the old key as a string
in memcached, but the new one is a list of keys. Since the key cache
lifetime here is only 60 seconds, it doesn't seem like too big a deal
to completely flush the TempURL cache.
Also, this commit adds caching of a negative TempURL result. If the
account HEAD reveals no TempURL keys at all, that result is now stored
for 60 seconds the same way that a positive result would be.
Change-Id: I40a02bd607283fbce11aa52a9bb8a5846ab17f5e
2013年05月07日 22:25:43 +00:00
Jenkins
c3e6f3a1d6 Merge "have tempurl allow OPTIONS requests" 2013年05月07日 22:19:18 +00:00
David Goetz
d3bc10d0d7 have tempurl allow OPTIONS requests
Change-Id: I431cac1e9818a335ff8d20288ab6acf39d6b6d5e
2013年05月07日 14:08:27 -07:00
Edward Hope-Morley
f9c5348f49 Fixed issue with use of delimiter in container queries.
Currently if you have a container with objects named
x/y and x0 and you use delimiter=/ in your query, x0
will be excluded from the results. This patch resolves
this problem.
To replicate the original issue, create a container
called 'test' with the following objects:
x/y
x0
x1
Then do a GET with 'accnt/test?delimiter=/' and the
following is returned:
x/
x1
i.e. x0 is missing from output.
Change-Id: If196e3075612b121ef8da4a9128167d00a248c27
2013年05月07日 19:33:37 +01:00
David Hadas
39fc4c37bf Doc changes for new pip-requirements
dnspython was added recently to the list of requirments.
This patch completes the change:
1. The new requirement is documented
2. The need for tox --recreate is documented
(assuming there is no way to automate 2 above)
Change-Id: I49f0cb4b01b79dd7cf4329984a2f8416378ebe19
Fixes: Bug #1176627 
2013年05月06日 19:21:53 +03:00
Jenkins
506a2b1fd0 Merge "Adds chunk_size to CompressingFileReader." 2013年05月04日 17:08:33 +00:00
Jenkins
4074ba93f5 Merge "Fix rebalance for zero weighted devices." 2013年05月04日 17:03:31 +00:00
Samuel Merritt
e3da6b07a0 Skip IPv6 addresses in cname_lookup middleware.
It already skips IPv4 addresses, and since IPv6 is the future of the
Internet*, we should probably do the right thing with those too.
* IPv6: Just two years away for over fifteen years!
Change-Id: I54f1db4e936fd38d05ac8b5c709efba76525b9d2
2013年05月03日 14:08:08 -07:00
Matthieu Huin
b61b177a3f Skip cname_lookup when host is an IP address
cname_lookup cannot resolve IP addresses as CNAME records, and therefore
should not attempt to resolve the host in that case. The middleware is
skipped when the host is an IP address.
Change-Id: I6961ec205e771116ace1ebcb8c088f3116eb38f0
Fixes: bug #1172289 
2013年05月03日 17:48:31 +02:00
Jenkins
b9a6bcb431 Merge "Add an explicit unit test for handling content-length: 0" 2013年05月03日 11:47:19 +00:00
Jenkins
f7b4a6d0ce Merge "conf.d support" 2013年05月03日 02:27:00 +00:00
Peter Portante
99891e0d2e Rename "file" to "disk_file"
Broke this out into a separate commit since adding five characters
caused a few lines to get re-wrapped, adding more diffs.
See John's comment from Patch Set #3 for the motivation for this
change in review https://review.openstack.org/27149.
Change-Id: I1edf2cb468dcda0b781569161ada6e4016c1141c
Signed-off-by: Peter Portante <peter.portante@redhat.com>
2013年05月01日 22:25:08 -04:00
Jenkins
8ecf77efa2 Merge "Update to flake8 instead of pep8." 2013年05月02日 01:17:14 +00:00
Greg Lange
5fda0c9a77 Adds chunk_size to CompressingFileReader.
Before when iterating using this object, the call to the underlying file object
was made without a chunk_size. This is bad because this would cause the entire
contents of the file to be read.
Change-Id: I9956e5d2d693a6260252fff331d4f78f70179a6c
2013年05月01日 21:16:18 +00:00
Monty Taylor
de2e5aa462 Update to flake8 instead of pep8.
Change-Id: I3d4a31111c3044da06611405ce80f208ef8a0ce3
2013年05月01日 14:19:38 -04:00
Brian Cline
d69fa437cd Uses None instead of mutable dicts for default function arguments
Forgot to update dicts with changeset I4a89afad, which updated lists.
Change-Id: Ieca71b9c90ee5dae83a43f6851b6b8b2924bcb8e
Fixes: bug 1174809
2013年04月30日 15:36:48 -05:00
Brian Cline
7bf0db6b75 Uses None instead of mutable lists for function param defaults
Addressing bug 1174809, changes use of mutable lists as as default
arguments and defaults them within the function. Otherwise, those
defaults can be unexpectedly persisted with the function between
invocations and erupt into mass hysteria on the streets.
To my knowledge there aren't known cases of the current use causing
specific issues, but even stylistically needs addressing to avoid
problems in the future. I couldn't find any comments or related
historical commit messages indicating the current use is meant to take
advantage of this behavior in Python.
Change-Id: I4a89afada08b2ce220724f585631a9e2072bf1bd
Fixes: bug 1174809
2013年04月30日 11:24:40 -05:00
Jenkins
b1f28c741d Merge "Container info memcache change broke ratelimiting." 2013年04月30日 07:22:14 +00:00
Clay Gerrard
34f5085c3e conf.d support
Allow Swift daemons and servers to optionally accept a directory as the
configuration parameter. Directory based configuration leverages
ConfigParser's native multi-file support. Files ending in '.conf' in the
given directory are parsed in lexicographical order. Filenames starting with
'.' are ignored. A mixture of file and directory configuration paths is not
supported - if the configuration path is a file behavior is unchanged.
 * update swift-init to search for conf.d paths when building servers
 (e.g. /etc/swift/proxy-server.conf.d/)
 * new script swift-config can be used to inspect the cumulative configuration
 * pull a little bit of code out of run_wsgi and test separately
 * fix example config bug for the proxy servers client_disconnect option
 * added section on directory based configuration to deployment guide
DocImpact
Implements: blueprint confd
Change-Id: I89b0f48e538117f28590cf6698401f74ef58003b
2013年04月30日 00:17:46 -07:00
Jenkins
52a6595033 Merge "Add the max_clients parameter to bound clients" 2013年04月30日 05:57:10 +00:00
Jenkins
407e08fa30 Merge "Included time inside trans_id" 2013年04月29日 18:21:44 +00:00
Jenkins
e7242fc523 Merge "Improved autocreate testing" 2013年04月29日 16:21:15 +00:00
Jenkins
01f436aa41 Merge "Make it easier to debug badly broken tests." 2013年04月29日 15:49:01 +00:00
gholt
00ab3d4f36 Included time inside trans_id
Including the time inside the trans_id can be very useful for knowing
which logs to scan. I made this so the trans_id will still be the
same length (the randomness of the remaining uuid4 should be enough
for this use). I also added a convenience function for retreiving the
time information from a trans_id.
If you're wondering why I just didn't use uuid1 that embeds the time,
it's because it also embeds uuid.getnode() which "The first time this
runs, it may launch a separate program, which could be quite slow."
We could supply our own getnode value, but then we have to guarantee
its uniqueness, yada yada yada.
Change-Id: Ie33caf1e839fd1a21b01a928a8b301126bef7396
2013年04月29日 13:56:44 +00:00
Jenkins
58259df8df Merge "Push fallocate() down into mkstemp(); use known size" 2013年04月29日 04:44:26 +00:00
Jenkins
d5e96e7747 Merge "Add crossdomain.xml middleware" 2013年04月27日 08:56:19 +00:00
Jenkins
1b9b989dbc Merge "copy X-Delete-At unless X-Fresh-Metadata: true is supplied on an object copy" 2013年04月26日 21:51:59 +00:00
Peter Portante
2d42b37303 Add the max_clients parameter to bound clients
The new max_clients parameter allows one full control over the maximum
number of client requests that will be handled by a given worker for
any of the proxy, account, container or object servers.
Lowering the number of clients handled per worker, and raising the
number of workers can lessen the impact that a CPU intensive, or
blocking, request can have on other requests served by the same
worker.
If the maximum number of clients is set to one, then a given worker
will not perform another accept(2) call while processing, allowing
other workers a chance to process it.
DocImpact
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Change-Id: Ic01430f7a6c5ff48d7aa349dc86a5f8ac463a420
2013年04月26日 10:29:57 -04:00
Eohyung Lee
98acf42f92 Fix rebalance for zero weighted devices.
If we set device's weight to zero, currently balance will be set
special value(999.99) until zero weighted device return all
its partitions. So we cannot check balance has changed.
Thus we need to check balance or last_balance is special value.
Change-Id: I5b7db8b8e48db0c4771c51a764bda689869817d5
Fixes: bug #1171731 
2013年04月26日 16:36:08 +09:00
Jenkins
55c817ce9d Merge "Fixing /etc/swift.conf-sample to include swift_hash_path_prefix" 2013年04月26日 02:40:31 +00:00
Jenkins
2b7b69321d Merge "Add auth_version to dispersion.conf.5" 2013年04月26日 02:40:29 +00:00
David Hadas
0a75a9d509 Improved autocreate testing
Increase testing coverage and make some of the test more accurate
(Some of the tests included too many responses from the account
servers that were not used by the test)
Change-Id: Ide2e0fcb89d5905e70d3111f7ac57b1cff23a99c
Fixes: Bug #1172152 
2013年04月25日 00:41:34 +03:00
Samuel Merritt
813f7c9de6 Make it easier to debug badly broken tests.
If you manage to break a proxy server so badly that it can't even
return headers, then in test/unit/proxy/test_server.py,
readuntil2crlfs() will spin forever, killing your laptop battery and
providing zero help figuring out what's wrong.
This test-only change makes it so that, should readuntil2crlfs() run
out of data before getting its two CRLFs, it raises an exception that
tells you what it did manage to get, and does so in a finite amount of
time.
Change-Id: Ieacd18ce7f4d35a4960100d5fc3a0f910cb406ac
2013年04月24日 14:01:56 -07:00
David Goetz
449363653e Container info memcache change broke ratelimiting.
Change-Id: I6379db52a75ed40080dd220f7fa72bcaffd0953c
2013年04月24日 13:41:14 -07:00
Kun Huang
fef0f491ff copy X-Delete-At unless X-Fresh-Metadata: true is supplied on an object copy
Current codes will copy metadata headers when x-fresh-metadata:false, we
still need copy "x-delete-at" header and ensure expiring work at the same
time.
Change-Id: Ie31326b5f7b565e51e5aa249279bc1786f7bc847
Fixes: bug #1067528 
2013年04月24日 10:40:41 -04:00
Peter Portante
d62a2a832e Push fallocate() down into mkstemp(); use known size
Towards defining the DiskFile class, or something like it, as an API
for the low level disk acesses, we push the fallocate() system call
down into the DiskFile.mkstemp() method. This allows another
implementation of DiskFile to decide to use or not use fallocate().
Change-Id: Ib4d2ee1f971e4e20e53ca4b41892c5e44ecc88d5
Signed-off-by: Peter Portante <peter.portante@redhat.com>
2013年04月23日 16:09:13 -04:00
Jenkins
5d52d2d1cc Merge "Made colons quote-safe in logs; mainly for ipv6" 2013年04月23日 19:38:00 +00:00
Donagh McCabe
eb4b29d243 Add crossdomain.xml middleware
Allows client-side technologies such as Flash, Java and Silverlight running
on web pages served elsewhere to interact with the Swift API.
Bug #1159960
Change-Id: I7d0533a0aaf189ac452abbd983469acb064fdca4
2013年04月23日 13:52:34 +01:00
Pete Zaitcev
93a737b406 Add auth_version to dispersion.conf.5
The lack of any documentation for the auth_version was observed
by Red Hat QA, see rhbz#955247.
Change-Id: I0afc04d848082a80480724bdbf99031e4b99e38e
2013年04月22日 11:31:21 -06:00
David Hadas
04a3ba43ae Fixing /etc/swift.conf-sample to include
swift_hash_path_prefix
Change-Id: I60f5f3d4083937a03ecb7ed531185c617ea08016
2013年04月22日 19:32:45 +03:00
Peter Portante
960f01b4ba Add an explicit unit test for handling content-length: 0
Change-Id: I3568d4dc1900e6ddb4860589ca6a7b7039cc8c2d
Signed-off-by: Peter Portante <peter.portante@redhat.com>
2013年04月22日 12:23:23 -04:00
Sergey Kraynev
ea7858176b Implementation of replication servers
Support separate replication ip address:
- Added new function in utils. This function provides ability
 to select separate IP address for replication service.
- Db_replicator and object replicators were changed.
 Replication process uses new function now.
Replication network parameters:
- Replication network fields (replication_ip, replication_port)
 support was added to device dictionary in swift-ring-builder script.
- Changes were made to support new fields in search, show and set_info
 functions.
Implementation of replication servers:
- Separate replication servers use the same code as normal replication
 servers, but with replication_server parameter = True. When using a
 separate replication network, the non-replication servers set
 replication_server = False. When there is no separate replication
 network (the default case), replication_server is not included in the config.
DocImpact
Change-Id: Ie9af5bdcdf9241c355e36053ca4adfe49dc35bd0
Implements: blueprint dedicated-replication-network
2013年04月21日 18:14:42 -04:00
Victor Rodionov
7f534fac38 fix dict duplicated key
remove duplicated key from swift-bench bin; and also add .idea to gitignore
Change-Id: I31360489716d03324b8d2bb1c51e282393069c13
2013年04月22日 01:31:53 +04:00
gholt
cd8af3f8f1 Made colons quote-safe in logs; mainly for ipv6
Previous logging made a mess of ipv6 addresses. This just makes the
colon quote-safe so it passes through unscathed. The logs will still
be backward compatible because unquote don't care:
 $ python
 >>> from urllib import quote, unquote
 >>> quote('2001:db8:85a3:8d3:1319:8a2e:370:7348')
 '2001%3Adb8%3A85a3%3A8d3%3A1319%3A8a2e%3A370%3A7348'
 >>> unquote(quote('2001:db8:85a3:8d3:1319:8a2e:370:7348'))
 '2001:db8:85a3:8d3:1319:8a2e:370:7348'
 >>> quote('2001:db8:85a3:8d3:1319:8a2e:370:7348', '/:')
 '2001:db8:85a3:8d3:1319:8a2e:370:7348'
 >>> unquote(quote('2001:db8:85a3:8d3:1319:8a2e:370:7348', '/:'))
 '2001:db8:85a3:8d3:1319:8a2e:370:7348'
Change-Id: Ia13a9bc8a320cde5c56034a7f0b645913428bf21
2013年04月20日 04:26:21 +00:00
gholt
f63dc07b9d Extra safety on account-level DELETE
I just noticed tonight when adding a bunch of stuff to Swiftly that
the Bulk Delete middleware uses an account-level DELETE request,
albeit with a query parameter of bulk-delete. But, one typo and,
assuming the cluster supports it and you have access, whoops, you
just marked the account for deletion!
I put a bit of extra safety on the account deletion by requiring it
to have an empty query string.
Change-Id: Ib5df11193b04eff69d14185bd9d0607169131e7f
2013年04月19日 09:43:31 +00:00
Peter Portante
dec517e349 Drop cache after fsync
Drop the cache (fadvise) after calling fsync to avoid redundant work
in the kernel visiting pages that are dirty. By dropping cache after
fsync(), the pages will be clean so can be easily removed from the
cache.
Change-Id: I3013d2ac1e27bbe43e58a81638d04805f5e2ae6e
Signed-off-by: Peter Portante <peter.portante@redhat.com>
2013年04月18日 14:36:52 -04:00
Jenkins
a186c53b24 Merge "fix slo docs" 2013年04月17日 19:39:43 +00:00