swift/test/probe
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
..
__init__.py Add option to make probetests more brittle 2013-07-19 01:39:42 -07:00
brain.py py3: Replace urllib imports with six.moves.urllib 2015-10-08 15:24:13 +02:00
common.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_account_failures.py pep8 fix: assertEquals -> assertEqual 2015-10-11 12:57:25 +02:00
test_account_get_fake_responses_match.py py3: Replace urllib imports with six.moves.urllib 2015-10-08 15:24:13 +02:00
test_account_reaper.py pep8 fix: assertEquals -> assertEqual 2015-08-06 09:28:51 -05:00
test_container_failures.py pep8 fix: assertEquals -> assertEqual 2015-08-06 09:28:51 -05:00
test_container_merge_policy_index.py pep8 fix: assertEquals -> assertEqual 2015-08-06 09:28:51 -05:00
test_container_sync.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_empty_device_handoff.py pep8 fix: assertEquals -> assertEqual 2015-08-06 09:28:51 -05:00
test_object_async_update.py Replace assertTrue(not <condition>) with assertFalse(<condition>) 2015-08-07 16:25:13 +01:00
test_object_expirer.py test/(functional, probe): Replace "self.assert_" by "self.assertTrue" 2015-07-28 12:00:00 +01:00
test_object_failures.py pep8 fix: assertEquals -> assertEqual 2015-08-06 09:28:51 -05:00
test_object_handoff.py EC GET path: require fragments to be of same set 2015-08-27 21:09:41 -07:00
test_object_metadata_replication.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_reconstructor_durable.py Fix some minor typos 2015-08-14 16:49:41 -07:00
test_reconstructor_rebuild.py Replace it.next() with next(it) for py3 compat 2015-06-15 22:10:45 +05:30
test_reconstructor_revert.py Fix purge for tombstone only REVERT job 2015-09-10 11:07:04 +01:00
test_replication_servers_working.py Erasure Code Reconstructor 2015-04-14 00:52:17 -07:00
test_wsgi_servers.py Add a probetest for HUP/reload 2015-07-30 15:49:23 -07:00