swift/test/unit/common
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
..
middleware Merge "Add option for label to static web listings" 2016-02-24 03:30:07 +00:00
ring Always fix devices with multiple part-replica assignments 2016-02-01 16:19:08 -08:00
__init__.py Initial commit of Swift code 2010-07-12 17:03:45 -05:00
corrupted_example.db Real files for bad databases. 2011-08-02 18:21:25 +00:00
malformed_example.db Real files for bad databases. 2011-08-02 18:21:25 +00:00
test_base_storage_server.py pep8 fix: assertEquals -> assertEqual 2015-10-11 12:57:25 +02:00
test_bufferedhttp.py remove remaining simplejson uses, prefer standard library import 2015-11-16 12:34:24 -08:00
test_constraints.py pep8 fix: assertEquals -> assertEqual 2015-10-11 12:57:25 +02:00
test_container_sync_realms.py Fix unit tests failing in some cases 2014-10-09 22:04:53 +05:30
test_daemon.py pep8 fix: assertEquals -> assertEqual 2015-10-11 12:57:25 +02:00
test_db_replicator.py Log error if a local device not identified in replicator 2015-11-21 14:04:32 +01:00
test_db.py remove remaining simplejson uses, prefer standard library import 2015-11-16 12:34:24 -08:00
test_direct_client.py Mock sleep in direct_client retry tests 2016-02-16 10:52:01 -08:00
test_exceptions.py Remove swiftclient dep on direct_client 2013-12-24 03:11:43 -08:00
test_internal_client.py Replace assertEqual(None, *) with assertIsNone in tests 2016-02-16 23:49:06 +08:00
test_manager.py Replace assertEqual(None, *) with assertIsNone in tests 2016-02-16 23:49:06 +08:00
test_memcached.py Make _get_addr() method a function in utils. 2016-01-12 21:09:48 -08:00
test_request_helpers.py Fix proxy-server's support for chunked transferring in GET object 2016-03-02 22:56:13 +09:00
test_splice.py pep8 fix: assertEquals -> assertEqual 2015-10-11 12:57:25 +02:00
test_storage_policy.py Add support for storage policies to have more than one name 2015-12-10 14:47:23 +13:00
test_swob.py Fix proxy-server's support for chunked transferring in GET object 2016-03-02 22:56:13 +09:00
test_utils.py Update container on fast-POST 2016-03-03 14:25:10 +00:00
test_wsgi.py Replace assertEqual(None, *) with assertIsNone in tests 2016-02-16 23:49:06 +08:00