0e7fca576cee81dd6ca8774760cb880c3fff9c1c
Commit Graph

5581 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
OpenStack Proposal Bot
8aca4e8eb3 Imported Translations from Zanata
For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure
Change-Id: Ic39cc9ffb582909da3a827243b628206de5301a0
2016年03月11日 06:22:54 +00:00
Jenkins
b20cf75922 Merge "Fix object server test not using correct policy" 2016年03月11日 02:36:16 +00:00
Jenkins
557192c47e Merge "Cleanup of Swift Ops Runbook" 2016年03月11日 00:57:48 +00:00
Alistair Coles
0bc5a69d41 Wait on greenthreads before unmocking http_connect
The fake_spawn() context manager wraps spawn and waits
for greenthreads to complete (such as the async_update threads).
The wait needs to be done before http_connect is un-mocked, so
the fake_spawn context manager should exit *before* any context
manager that mocks the http_connect method.
Also add fake_spawn to _test_PUT_then_POST_async_pendings()
Related-Bug: #1536376
Related-Bug: #1514111
Closes-Bug: #1555739
Change-Id: I15f36e191cfe3ee6c82b4be56e8618ec0230e328
2016年03月10日 18:48:57 +00:00
Donagh McCabe
e38b53393f Cleanup of Swift Ops Runbook
This patch cleans up some rough edges that were left (due to
time constraints) in the original commit.
Change-Id: Id4480be8dc1b5c920c19988cb89ca8b60ace91b4
Co-Authored-By: Gerry Drudy gerry.drudy@hpe.com 
2016年03月10日 17:39:54 +00:00
Jenkins
902cb8f8d7 Merge "keep etag of target source instead of possible_source" 2016年03月10日 14:16:58 +00:00
Jenkins
8bd6760c0c Merge "Move HeaderKeyDict to avoid an inline import" 2016年03月10日 10:41:12 +00:00
Jenkins
7d8621e373 Merge "By default, disallow inbound X-Timestamp headers" 2016年03月10日 01:07:33 +00:00
Alistair Coles
994fa7b115 Fix object server test not using correct policy
Without the correct request header, the test that should be
using an EC policy was in fact using a replication policy.
Change-Id: Id44d0d615a4fd09aadfb286425939aea6abdf7b0
2016年03月09日 16:49:20 +00:00
Jenkins
c172c5f024 Merge "remove hash_cleanup_listdir legacy translation method" 2016年03月09日 12:12:13 +00:00
Jenkins
68bae91a7f Merge "Imported Translations from Zanata" 2016年03月09日 09:37:06 +00:00
Tim Burke
f581fccf71 By default, disallow inbound X-Timestamp headers
With the X-Timestamp validation added in commit e619411, end users
could upload objects with
 X-Timestamp: 9999999999.99999_ffffffffffffffff
(the maximum value) and Swift would be unable to delete them.
Now, inbound X-Timestamp headers will be moved to
X-Backend-Inbound-X-Timestamp, effectively rendering them harmless.
The primary reason to allow X-Timestamp before was to prevent
Last-Modified changes for objects coming from either:
 * container_sync or
 * a migration from another storage system.
To enable the former use-case, the container_sync middleware will now
translate X-Backend-Inbound-X-Timestamp headers back to X-Timestamp
after verifying the request.
Additionally, a new option is added to the gatekeeper filter config:
 # shunt_inbound_x_timestamp = true
To enable the latter use-case (or any other use-case not mentioned), set
this to false.
Upgrade Consideration
=====================
If your cluster workload requires that clients be allowed to specify
objects' X-Timestamp values, disable the shunt_inbound_x_timestamp
option before upgrading.
UpgradeImpact
Change-Id: I8799d5eb2ae9d795ba358bb422f69c70ee8ebd2c
2016年03月09日 09:14:46 +00:00
Jenkins
6a1904a11f Merge "Spot check more hashes for increase_part_power" 2016年03月09日 08:41:29 +00:00
OpenStack Proposal Bot
dd2fbcd4c7 Imported Translations from Zanata
For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure
Change-Id: I9196deac606a3d073fb1c400cbee778cbbbd1c1e
2016年03月09日 06:35:57 +00:00
Jenkins
8bafd6537e Merge "Fix misleading comment" 2016年03月09日 04:27:45 +00:00
Jenkins
11962b8c93 Merge "Object POST update gets distinct async pending file" 2016年03月08日 23:39:55 +00:00
Samuel Merritt
3eeff7c0fc Fix misleading comment
Change-Id: I2e0e671a08fb855bf53c57987c08a7eefca7078a
2016年03月08日 15:23:40 -08:00
Jenkins
ddbfc93f51 Merge "Add internal method to increase ring partition power" 2016年03月08日 22:07:31 +00:00
Clay Gerrard
dc6db66d5e Spot check more hashes for increase_part_power
Just a touch of cleanup to the unittest to demonstrate the stability of the
guarantee that objects will hash to the same nodes but have different parts.
Change-Id: I4a24187755455366a6435816a138f6175ae713a4
2016年03月08日 12:34:17 -08:00
Jenkins
9167acfd5c Merge "Removed redundant file for flake8 check" 2016年03月08日 19:20:38 +00:00
Alistair Coles
9db7391e55 Object POST update gets distinct async pending file
Each object update to a container server is saved in a
pending file if the initial update attempt fails. Pending
file names were derived from the update request's x-timestamp,
which is equal to the object's data file timestamp. This meant
that updates due to an object POST used the same async pending
file as updates due to the object's PUT.
This is not so bad because the object POST update has a superset
of the metadata included in the PUT update. But there is a risk
of a race condition causing an update to be lost: the updater may
open an update file due to a PUT whuile the object server is
writing an update due to a POST to the same file name. The
updater could then unlink the file before the more recent update
for the POST is sent.
This patch changes the POST update pending file name to be derived
from the object's metadata timestamp, thus making it distinct from
the PUT update pending file name. There is no upgrade impact since
existing pending files will continue to be processed.
Change-Id: I1b093c837efe8c2a64e92075ebd5e1b93e30efb9
2016年03月08日 17:40:49 +00:00
Olga Saprycheva
d6b4587a55 Removed redundant file for flake8 check
Change-Id: I4322978aa20ee731391f7709bbd79dee140fc703
2016年03月08日 10:57:56 -06:00
Jenkins
9f396e2d2e Merge "Fixed pep8 and flake8 errors in doc/source/conf.py and updated flake8 commands in tox.ini to test it." 2016年03月08日 16:28:27 +00:00
Mahati Chamarthy
82c8023b89 remove hash_cleanup_listdir legacy translation method
Change-Id: I0b96dfde32b4c666eebda6e88228516dd693ef92
closes-bug:#1550569
2016年03月08日 19:01:53 +05:30
OpenStack Proposal Bot
643dbce134 Imported Translations from Zanata
For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure
Change-Id: I96b8ff1287bf219c5f8d56a3a4868c1063a953f9
2016年03月08日 06:35:49 +00:00
Daisuke Morita
83713d37f0 Missing comments for storage policy parameter
There are missing comments about storege_policy_index so appropriate
comments are added.
Change-Id: I3de3f0e6864e65918ca1a13cce70f19c23d295f5
2016年03月07日 18:30:47 -08:00
Jenkins
ebdff38553 Merge "Adds storage policy option to recon" 2016年03月07日 20:31:11 +00:00
Samuel Merritt
9430f4c9f5 Move HeaderKeyDict to avoid an inline import
There was a function in swift.common.utils that was importing
swob.HeaderKeyDict at call time. It couldn't import it at compilation
time since utils can't import from swob or else it blows up with a
circular import error.
This commit just moves HeaderKeyDict into swift.common.header_key_dict
so that we can remove the inline import.
Change-Id: I656fde8cc2e125327c26c589cf1045cb81ffc7e5
2016年03月07日 12:26:48 -08:00
Jenkins
6cfb8557a8 Merge "Silence SkipTest noise in in-process test teardown" 2016年03月07日 19:36:41 +00:00
Jenkins
0cdd5e87f5 Merge "Fix a crash in exception printout" 2016年03月07日 19:33:34 +00:00
Olga Saprycheva
2cff2dec3d Fixed pep8 and flake8 errors in doc/source/conf.py and updated flake8 commands in tox.ini to test it.
Change-Id: I2add370e4cfb55d1388e3a8b41f688a7f3f2c621
2016年03月07日 10:39:37 -06:00
Jenkins
35d62d0257 Merge "Follow up mem_server diskfile fixes" 2016年03月07日 15:31:20 +00:00
Clay Gerrard
fa0c5f244f Additionally break container servers during fast-post probes
The existing probetests were already doing brainsplitting on the object
servers in order to introduce composite metdata timestamp reconciliation.
But they were not introducing failures at the container server level, and
therefore not covering functional testing of those servers replication
consistency repair.
This change adds a brain splitter for the container servers to additionally
exercise the consistency engine at that layer under the existing probetest so
that you can observe their correct behavior while exercising the probetests
[1].
1. I used a script like this to watch the object servers and container db's
repair themselves -> https://gist.github.com/clayg/a8077d9d29ff68bb0edd
Change-Id: Ic5bb03dffef7e30c58338cef969a105577b84620
2016年03月07日 13:29:10 +00:00
Jenkins
1a69b14e7a Merge "Remove Erasure Coding beta status from docs" 2016年03月05日 15:42:17 +00:00
Jenkins
9891039b8d Merge "Remove unused pngmath Sphinx extension" 2016年03月04日 19:32:15 +00:00
janonymous
be54d0c928 clear pycache and remove all pyc/pyo before starting unit test
Delete python bytecode before every test run.
Because python creates pyc files during tox runs, certain
changes in the tree, like deletes of files, or switching
branches, can create spurious errors.
Closes-Bug: #1368661
Change-Id: Iedcb400fa3b0417f5bb8e943b17758fcfb4070c6
2016年03月04日 17:32:12 +00:00
Alistair Coles
d456d9e934 Don't ssync data when only a durable is missing
If an EC diskfile is missing its .durable file (for example
due to a partial PUT failure) then the ssync missing check
will fail to open the file and will consider it
missing. This can result in possible reconstruction of the
fragment archive (for a sync job) and definite transmission
of the fragment archive (for sync and revert jobs), which is
wasteful.
This patch makes the ssync receiver inspect the diskfile
state after attempting to open it, and if fragments exist at
the timestamp of the sender's diskfile, but a .durable file
is missing, then the receiver will commit the diskfile at
the sender's timestamp. As a result, there is no longer any
need to send a fragment archive.
Change-Id: I4766864fcc0a3553976e8fd85bbb2fc782f04abd
2016年03月04日 15:39:52 +00:00
Jenkins
f57b4c94bf Merge "Update parameters about authtoken middleware in proxy-server.conf.sample" 2016年03月04日 14:45:23 +00:00
Christian Schwede
043fbca6d0 Remove Erasure Coding beta status from docs
This removes notes stating support for Erasure coding as beta. Questions
regarding the stability of EC are coming up regularly, and are often referring
to the docs that state EC as still in beta.
Besides this, a note marking statsd support as beta has been removed as well.
Change-Id: If4fb6a5c4cb741d42953db3cee8cb17a1d774e15
2016年03月04日 14:27:23 +00:00
Jenkins
778c426ebf Merge "Operational procedures guide" 2016年03月04日 10:17:43 +00:00
Christian Schwede
3ff94cb785 Add internal method to increase ring partition power
This method increases the partition power of an existing ring by one. It does
not move any data nor does it exposes a CLI command yet; it is only intended to
be used in a future version to do the actual ring modification itself.
An existing object that is currently located on partition X will be placed
either on partition 2*X or 2*X+1 after the partition power got increased. The
reason for this is the Ring.get_part() method, that does a bitwise shift to the
right.
To avoid actual data movement to different disks or even nodes, the allocation
of partitions to nodes needs to be changed. The allocation is pairwise due to
the above mentioned new partition scheme. Therefore devices are allocated like
this, with the partition being the index and the value being the device id:
OLD: 0, 3, 7, 5, 2, 1, ...
NEW: 0, 0, 3, 3, 7, 7, 5, 5, 2, 2, 1, 1, ...
If an operator stops the cluster, increases the partition power and renames &
hardlinks the existing data it is possible to do a power shift without actually
moving data. Please see the partition power spec for further details on this.
Change-Id: I063fd8077497ee8c14d9065f07b4ec0fb5cbe180
Partially-Implements: spec increasing_partition_power
2016年03月04日 08:01:47 +00:00
Jenkins
5930d74d81 Merge "Update container on fast-POST" 2016年03月03日 19:09:12 +00:00
Pete Zaitcev
09c73b86e9 Fix a crash in exception printout
Says the number of arguments does not match the number of '%'.
Change-Id: I8b5e395a07328fb9d4ac7a19f8ed2ae1637bee3b
2016年03月03日 10:25:11 -07:00
Tim Burke
fad5fabe0a During functional tests, 404 response to a DELETE is successful
Previously, we would only consider 204 responses successful, which would
cause some spurious gate failures, such as
http://logs.openstack.org/66/287666/3/check/gate-swift-dsvm-functional/c6d2673/console.html#_2016年03月03日_13_41_07_846
Change-Id: Ic8c300647924352a297a2781b50064f7657038b4
2016年03月03日 15:07:08 +00:00
Alistair Coles
e91de49d68 Update container on fast-POST
This patch makes a number of changes to enable content-type
metadata to be updated when using the fast-POST mode of
operation, as proposed in the associated spec [1].
* the object server and diskfile are modified to allow
 content-type to be updated by a POST and the updated value
 to be stored in .meta files.
* the object server accepts PUTs and DELETEs with older
 timestamps than existing .meta files. This is to be
 consistent with replication that will leave a later .meta
 file in place when replicating a .data file.
* the diskfile interface is modified to provide accessor
 methods for the content-type and its timestamp.
* the naming of .meta files is modified to encode two
 timestamps when the .meta file contains a content-type value
 that was set prior to the latest metadata update; this
 enables consistency to be achieved when rsync is used for
 replication.
* ssync is modified to sync meta files when content-type
 differs between local and remote copies of objects.
* the object server issues container updates when handling
 POST requests, notifying the container server of the current
 immutable metadata (etag, size, hash, swift_bytes),
 content-type with their respective timestamps, and the
 mutable metadata timestamp.
* the container server maintains the most recently reported
 values for immutable metadata, content-type and mutable
 metadata, each with their respective timestamps, in a single
 db row.
* new probe tests verify that replication achieves eventual
 consistency of containers and objects after discrete updates
 to content-type and mutable metadata, and that container-sync
 sync's objects after fast-post updates.
[1] spec change-id: I60688efc3df692d3a39557114dca8c5490f7837e
Change-Id: Ia597cd460bb5fd40aa92e886e3e18a7542603d01
2016年03月03日 14:25:10 +00:00
asettle
3c61ab4678 Operational procedures guide
This is the operational procedures guide that HPE used
to operate and monitor their public Swift systems.
It has been made publicly available.
Change-Id: Iefb484893056d28beb69265d99ba30c3c84add2b
2016年03月03日 11:49:26 +00:00
Jenkins
30624a866a Merge "Fix proxy-server's support for chunked transferring in GET object" 2016年03月03日 01:06:16 +00:00
Jenkins
d90dc2eb13 Merge "Add container quota functional test" 2016年03月02日 23:11:50 +00:00
Jenkins
5fc3ad7b53 Merge "Fix time-shifting of objects PUT with container-sync" 2016年03月02日 20:59:26 +00:00
Jenkins
48b5e8a13f Merge "Fix bug in mem_diskfile write_metadata method" 2016年03月02日 20:41:20 +00:00