00373dad617db30bda3e8b722ab8518f59e0cb10
Commit Graph

4066 Commits

Author SHA1 Message Date
Zuul
00373dad61 Merge "Add keymaster to fetch root secret from KMIP service" 2018年07月25日 03:49:50 +00:00
Zuul
89854250c3 Merge "Add fallocate_reserve to account and container servers." 2018年07月20日 08:42:51 +00:00
Samuel Merritt
8e651a2d3d Add fallocate_reserve to account and container servers.
The object server can be configured to leave a certain amount of disk
space free; default is 1%. This is useful in avoiding 100%-full
filesystems, as those can get Swift in a state where the filesystem is
too full to write tombstones, so you can't delete objects to free up
space.
When a cluster has accounts/containers and objects on the same disks,
then you can wind up with a 100%-full disk since account and container
servers don't respect fallocate_reserve. This commit makes account and
container servers respect fallocate_reserve so that disks shared
between account/container and object rings won't get 100% full.
When a disk's free space falls below the configured reserve, account
and container PUT, POST, and REPLICATE requests will fail with a 507
status code. These are the operations that can significantly increase
the disk space used by a given database.
I called the parameter "fallocate_reserve" for consistency with the
object server. No actual fallocate() call happens under Swift's
control in the account or container servers (sqlite3 might make such a
call, but it's out of our hands).
Change-Id: I083442eef14bf83c0ea717b1decb3e6b56dbf1d0
2018年07月18日 17:27:11 +10:00
Zuul
791009a6ff Merge "PUT+POST: break out putter specific test classes" 2018年07月17日 02:38:12 +00:00
Alistair Coles
0cd42a2d33 Check other params preserved when slo_etag is extracted
Change-Id: Ie34ce2a33f2a642b97986fa28cf9db9e6da964d5
Related-Change: I67478923619b00ec1a37d56b6fec6a218453dafc
Related-Change: Ibaa630b5b4251cc4f821c01d3c09a8b8a6be342c
2018年07月12日 10:01:58 -05:00
Clay Gerrard
f8b9c24a1c Add unittest for slo_etag
Related-Change-Id: I67478923619b00ec1a37d56b6fec6a218453dafc
Change-Id: Ibaa630b5b4251cc4f821c01d3c09a8b8a6be342c
2018年07月12日 10:01:54 -05:00
Tim Burke
c4c98eb64d Include SLO ETag in container updates
Container servers will store an etag like
 <MD5 of manifest on disk>; slo_etag=<MD5 on concatenated ETags>
which the SLO middleware will break out into separate
 "hash": "<MD5 of manifest on disk",
 "slo_etag": "\"<MD5 of concatenated ETags\"",
keys for JSON listings. Text and XML listings are unaffected.
If a middleware left of SLO already specified a container update
override, the slo_etag parameter will be appended. If the base header
value was blank, the MD5 of the manifest will be inserted.
SLOs that were created on previous versions of Swift will continue to
just have the MD5 of the manifest in container listings.
Closes-Bug: 1618573
Change-Id: I67478923619b00ec1a37d56b6fec6a218453dafc
2018年07月10日 15:41:29 -07:00
Zuul
1ab691f637 Merge "IP Range restrictions in temp urls" 2018年07月10日 04:28:16 +00:00
Alistair Coles
9a7b46e1e3 swift-ring-builder shows hint about composite builder file
If swift-ring-builder is erroneously given a composite builder
file, which it will fail to load, it will now print a hint
that the file is a composite builder file.
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Change-Id: If4517f3b61977a7f6ca3e08ed5deb182aa87a366
2018年07月05日 15:57:05 +01:00
Zuul
44f60d9245 Merge "Address some review comments" 2018年07月05日 09:40:47 +00:00
Zuul
cb3692f8db Merge "swob.Match: remove quotes when checking __contains__" 2018年07月04日 06:34:17 +00:00
mmcardle
26b20ee729 IP Range restrictions in temp urls
This patch adds an additional optional parameter to tempurl
which restricts the ip's from which a temp url can be used from.
Change-Id: I23fe998a980960d4a32df042b3f6a21f096c36af
2018年07月03日 12:25:28 +01:00
Alistair Coles
1951dc7e9a Add keymaster to fetch root secret from KMIP service
Add a new middleware that can be used to fetch an encryption root
secret from a KMIP service. The middleware uses a PyKMIP client
to interact with a KMIP endpoint. The middleware is configured with
a unique identifier for the key to be fetched and options required
for the PyKMIP client.
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: Ib0943fb934b347060fc66c091673a33bcfac0a6d
2018年07月03日 09:00:21 +01:00
Pete Zaitcev
91a8cd2952 PUT+POST: break out putter specific test classes
In test_obj.py there are PUT tests that are specific to the Putter
type and others that apply to any Putter type. This patch refactors
them into separate classes to provide greater clarity and to allow
common tests to be applied to each Putter type.
Taking this infrastracture out and ahead of PUT+POST itself allows
it to be reviewed much easier, especially when you look at the diff.
Related-Change-Id: I64b0d8fdb2ffce786f56665a74ed7eb2603abfda
Change-Id: Ibb09b5a28098fb51e25ab5a7134b518cc68eaf89
2018年07月02日 23:02:13 -05:00
Zuul
3378a48733 Merge "py3: port proxy/controllers/info.py" 2018年07月02日 23:11:05 +00:00
Zuul
9dffe8b88d Merge "functests: Clean up objects better" 2018年07月02日 11:04:40 +00:00
Zuul
e93c6187f6 Merge "swob: Stop auto-encoding unicode bodies" 2018年07月02日 02:41:05 +00:00
Zuul
a4b986fd78 Merge "tempauth: Send back url-encoded account names" 2018年06月30日 04:56:11 +00:00
Tim Burke
783c7f6117 py3: port proxy/controllers/info.py
Yes, this means you can now start a proxy-server process on py3! And it
will give you something useful on /info!
Apparently you can even get auth tokens from tempauth, although the
tempauth unit tests don't pass yet.
Change-Id: I86ead2989b5934a7584cdd75719ce239826e01ec
2018年06月28日 09:58:44 -07:00
Tim Burke
d03fc9bc54 swob: Stop auto-encoding unicode bodies
Instead, require that callers provide an encoding.
Related-Change: I31408f525ba9836f634a35581d4aee6fa2c9428f
Change-Id: I3e5ed9e4401eea76c375bb43ad4afc58b1d8006a
2018年06月28日 09:58:44 -07:00
Zuul
729fe6f79d Merge "swob: Fix up some WSGI string business" 2018年06月28日 12:23:58 +00:00
Zuul
eb43d30320 Merge "Enforce Content-Length in catch_errors" 2018年06月28日 12:23:45 +00:00
Tim Burke
7ae2cc4cc8 Address some review comments
There's already a nice way to reap a process if it's exited while not
waiting, and it doesn't require timeouts.
Change-Id: Ie327fecb6a3055ff146a94e1171ec0ec68d7179f
Related-Change: If6dc7b003e18ab4e8a5ed687c965025ebd417dfa
2018年06月27日 17:17:19 -07:00
Tim Burke
158d4c28b2 swob.Match: remove quotes when checking __contains__
If we're going to drop the quotes during initialization, we should
probably drop them when making comparisons, too.
Change-Id: I90c6e8a7c6faf8fafb0cd64fabbc9629d6c4c48a
2018年06月27日 16:52:38 -07:00
Tim Burke
efcf7e6a95 swob: Fix up some WSGI string business
Change-Id: Iee1bab5775b243c318aa22ee4a548d793e6684ca
2018年06月27日 15:55:30 -07:00
Samuel Merritt
306f9a150f py3: port domain_remap tests
The domain_remap middleware didn't need to change, only its tests.
Change-Id: I5edf05b609ce263708f851219c38c1bd1b645a6f
2018年06月26日 13:20:49 -07:00
Samuel Merritt
50ea4e1e08 py3: port healthcheck
Typed "b" in a half-dozen places and fixed a typo in a test name.
Change-Id: Idcb8b2eeef5b545eb0944cc22b7c7961e8c2f8f0
2018年06月26日 13:20:49 -07:00
Samuel Merritt
081ff36e6e py3: port crossdomain
Change-Id: I83a35f066d69edf39c74fd22c7fb248b5320d21f
2018年06月26日 13:20:49 -07:00
Alistair Coles
1fa4b9e3fe Remove unnecessary loop in test_keymaster.py
The ignored_secret variable wasn't being used.
Change-Id: Ia659f3672941f9bb86054ce6cafbbe6fe7ccafbc
Related-Change: I1cd9a97c4e8d87d7c065866e7ad3a9e748ff19ab
2018年06月25日 12:13:59 +01:00
Zuul
3de21d945b Merge "Remove empty part dirs during ssync replication" 2018年06月23日 02:19:18 +00:00
Zuul
fc9b9e55c5 Merge "container-updater: Always report zero objects/bytes used for shards" 2018年06月22日 21:45:56 +00:00
Zuul
84ddb8c1ec Merge "py3: port catch_errors" 2018年06月22日 21:41:21 +00:00
Zuul
9c0de5d74f Merge "py3: fix test_proxy_logging.py" 2018年06月22日 21:41:19 +00:00
Zuul
2a7190ba13 Merge "py3: Port common/swob" 2018年06月22日 11:54:36 +00:00
Zuul
1c42cb529c Merge "py3: Port common/constraints" 2018年06月22日 11:48:41 +00:00
Zuul
d280c4c356 Merge "py36: Fix test_get_logger_sysloghandler_plumbing" 2018年06月22日 11:48:38 +00:00
Tim Burke
5652dec43b container-updater: Always report zero objects/bytes used for shards
Otherwise, a sharded container AUTH_test/sharded will have its stats
included in the totals for both AUTH_test *and* .shards_AUTH_test
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Change-Id: I7fa74e13347601c5f44fd7e6cf65656cc3ebc2c5
2018年06月22日 10:35:36 +01:00
Samuel Merritt
3920b88daa py3: port catch_errors
Today's diff is brought to you by the letter "b".
Change-Id: I074c1ff3f1232a899c101f2856dff4a881a6fe77
2018年06月21日 17:23:41 -07:00
Samuel Merritt
e0b4eb225c py3: fix test_proxy_logging.py
Only the tests needed to change, and it was nearly all just prepending
"b" to a bunch of string literals.
Change-Id: Id5317e471c04a05627438c281bb0d6a97cf6a8a4
2018年06月21日 17:18:42 -07:00
Tim Burke
1318bacc17 py36: Fix test_get_logger_sysloghandler_plumbing
Change-Id: Ibdb9e2bbec1c962d930a3f69fc95a8c562ac13b7
2018年06月21日 15:43:26 -07:00
Tim Burke
f192f51d37 Have check_drive raise ValueError on errors
...which helps us differentiate between a drive that's not mounted vs.
not a dir better in log messages. We were already doing that a bit in
diskfile.py, and it seems like a useful distinction; let's do it more.
While we're at it, remove some log translations.
Related-Change: I941ffbc568ebfa5964d49964dc20c382a5e2ec2a
Related-Change: I3362a6ebff423016bb367b4b6b322bb41ae08764
Change-Id: Ife0d34f9482adb4524d1ab1fe6c335c6b287c2fd
Partial-Bug: 1674543
2018年06月20日 17:15:07 -07:00
Tim Burke
2b19c26498 py3: Port common/swob
Change-Id: I31408f525ba9836f634a35581d4aee6fa2c9428f
2018年06月20日 16:52:02 -07:00
Tim Burke
0694e51eb7 py3: Port common/constraints
Alternate approach to https://review.openstack.org/#/c/559902
Change-Id: I1e244c231753b8f4b6f1cf95cb0ae4c3c959ae0f
2018年06月20日 16:51:25 -07:00
Zuul
c568b4b100 Merge "Resolve TODO's in test/probe/test_sharder.py" 2018年06月20日 23:48:23 +00:00
Alistair Coles
a59c5e3bae Resolve TODO's in test/probe/test_sharder.py
Resolve outstanding TODO's. One TODO is removed because there isn't an
easy way to arrange for an async pending to be targeted at a shard
container.
Change-Id: I0b003904f73461ddb995b2e6a01e92f14283278d
2018年06月20日 19:42:32 +00:00
Zuul
c3ea2f0909 Merge "Use valid eventlet logger method" 2018年06月20日 18:48:18 +00:00
Zuul
c34330e420 Merge "Fix test_wsgi.py tests failing with eventlet <=0.18.4" 2018年06月20日 18:23:07 +00:00
Alistair Coles
a1cb919930 Use valid eventlet logger method
eventlet<=0.17.4 LoggerFileWrapper does not have an error() method
so don't try to call it. Instead, use info() which even in newer
eventlet versions does exactly the same as error().
This bug only manifests in unit tests once the Related-Bug has been fixed
(see Related-Change).
Closes-Bug: #1777836
Related-Bug: #1777701
Related-Change: I68fd9d0263a6720aaf0d90b8ea6da1158105ac01
Change-Id: I46190567549826c811ffa51e9a71a38a20d9ce97
2018年06月20日 10:20:58 +01:00
Alistair Coles
642d8748c0 Fix test_wsgi.py tests failing with eventlet <=0.18.4
Older versions of eventlet expect getsocketname() to return a tuple,
and newer versions are happy to receive a tuple, so fix the mock to
return a tuple.
Change-Id: I68fd9d0263a6720aaf0d90b8ea6da1158105ac01
Closes-Bug: #1777701 
2018年06月20日 09:59:55 +01:00
Zuul
1cd6416471 Merge "Fix common/test_utils.py on Python 3.5.4+" 2018年06月20日 03:15:49 +00:00