swift/test/unit/common
Prashanth Pai 46d61a4dcd Refactor server side copy as middleware
Rewrite server side copy and 'object post as copy' feature as middleware to
simplify the PUT method in the object controller code. COPY is no longer
a verb implemented as public method in Proxy application.

The server side copy middleware is inserted to the left of dlo, slo and
versioned_writes middlewares in the proxy server pipeline. As a result,
dlo and slo copy_hooks are no longer required. SLO manifests are now
validated when copied so when copying a manifest to another account the
referenced segments must be readable in that account for the manifest
copy to succeed (previously this validation was not made, meaning the
manifest was copied but could be unusable if the segments were not
readable).

With this change, there should be no change in functionality or existing
behavior. This is asserted with (almost) no changes required to existing
functional tests.

Some notes (for operators):
* Middleware required to be auto-inserted before slo and dlo and
  versioned_writes
* Turning off server side copy is not configurable.
* object_post_as_copy is no longer a configurable option of proxy server
  but of this middleware. However, for smooth upgrade, config option set
  in proxy server app is also read.

DocImpact: Introducing server side copy as middleware

Co-Authored-By: Alistair Coles <alistair.coles@hpe.com>
Co-Authored-By: Thiago da Silva <thiago@redhat.com>

Change-Id: Ic96a92e938589a2f6add35a40741fd062f1c29eb
Signed-off-by: Prashanth Pai <ppai@redhat.com>
Signed-off-by: Thiago da Silva <thiago@redhat.com>
2016-05-11 14:55:51 -04:00
..
middleware Refactor server side copy as middleware 2016-05-11 14:55:51 -04:00
ring Removing some redundant words 2016-03-25 17:20:24 +07: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 Refactor server side copy as middleware 2016-05-11 14:55:51 -04: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 Require account/container metadata be UTF-8 2016-02-29 10:27:29 +00:00
test_direct_client.py Make DirectClientException report correct ip and port 2016-04-06 11:57:41 +01:00
test_exceptions.py Remove swiftclient dep on direct_client 2013-12-24 03:11:43 -08:00
test_header_key_dict.py Move HeaderKeyDict to avoid an inline import 2016-03-07 12:26:48 -08:00
test_internal_client.py Check marker params in SimpleClient full listing requests 2016-03-23 23:14:06 +00: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 Simplify policy-name validation slightly 2016-03-29 19:41:23 -07:00
test_swob.py Refactor server side copy as middleware 2016-05-11 14:55:51 -04:00
test_utils.py Fix infinite recursion during logging when syslog is down 2016-04-06 15:45:20 -07:00
test_wsgi.py Refactor server side copy as middleware 2016-05-11 14:55:51 -04:00