swift/test/unit/obj
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 Initial commit of Swift code 2010-07-12 17:03:45 -05:00
common.py Re-organise ssync tests 2015-11-05 14:50:28 +00:00
test_auditor.py Merge "Allow to change auditor sleep interval in config" 2016-01-18 12:19:08 +00:00
test_diskfile.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_expirer.py py3: Replace urllib imports with six.moves.urllib 2015-10-08 15:24:13 +02:00
test_reconstructor.py Fixed few misspellings in comments 2016-01-05 20:20:15 +01:00
test_replicator.py Fix typos in comments 2016-02-11 10:59:43 -08:00
test_server.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_ssync_receiver.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_ssync_sender.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_ssync.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_updater.py Replace assertEqual(None, *) with assertIsNone in tests 2016-02-16 23:49:06 +08:00