diff options
author | Peter Portante <peter.portante@redhat.com> | 2013-05-24 11:35:59 -0400 |
---|---|---|
committer | Luis Pabon <lpabon@redhat.com> | 2013-06-04 11:27:02 -0700 |
commit | 3435c59ba3a679867adffa84719b8648c9fbf601 (patch) | |
tree | b13dcacc4a2b6eb6fe013b9fe88cb30cbead21af /gluster | |
parent | 40c313378e5fffb846f1fd143573a687e2774b28 (diff) |
Forward port PDQ 3489: turn off cont & act updates
This is a simple sub-classing of the proper update methods to
just no-op their behavior.
Change-Id: Ib1ae5234d372cbce572da34cfe702235b78f2310
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/5088
Reviewed-by: Luis Pabon <lpabon@redhat.com>
Tested-by: Luis Pabon <lpabon@redhat.com>
Diffstat (limited to 'gluster')
-rw-r--r-- | gluster/swift/container/server.py | 26 | ||||
-rw-r--r-- | gluster/swift/obj/server.py | 30 |
2 files changed, 54 insertions, 2 deletions
diff --git a/gluster/swift/container/server.py b/gluster/swift/container/server.py index ee284c9..36632a6 100644 --- a/gluster/swift/container/server.py +++ b/gluster/swift/container/server.py @@ -24,6 +24,15 @@ from gluster.swift.common.DiskDir import DiskDir class ContainerController(server.ContainerController): + """ + Subclass of the container server's ContainerController which replaces the + _get_container_broker() method so that we can use Gluster's DiskDir + duck-type of the container DatabaseBroker object, and make the + account_update() method a no-op (information is simply stored on disk and + already updated by virtue of performaing the file system operations + directly). + """ + def _get_container_broker(self, drive, part, account, container): """ Overriden to provide the GlusterFS specific broker that talks to @@ -34,10 +43,25 @@ class ContainerController(server.ContainerController): :param part: partition the container is in :param account: account name :param container: container name - :returns: DiskDir object + :returns: DiskDir object, a duck-type of DatabaseBroker """ return DiskDir(self.root, drive, account, container, self.logger) + def account_update(self, req, account, container, broker): + """ + Update the account server(s) with latest container info. + + For Gluster, this is just a no-op, since an account is just the + directory holding all the container directories. + + :param req: swob.Request object + :param account: account name + :param container: container name + :param broker: container DB broker object + :returns: None. + """ + return None + def app_factory(global_conf, **local_conf): """paste.deploy app factory for creating WSGI container server apps.""" diff --git a/gluster/swift/obj/server.py b/gluster/swift/obj/server.py index 1223036..084346a 100644 --- a/gluster/swift/obj/server.py +++ b/gluster/swift/obj/server.py @@ -27,8 +27,36 @@ from gluster.swift.common.DiskFile import Gluster_DiskFile server.DiskFile = Gluster_DiskFile +class ObjectController(server.ObjectController): + """ + Subclass of the object server's ObjectController which replaces the + container_update method with one that is a no-op (information is simply + stored on disk and already updated by virtue of performing the file system + operations directly). + """ + + def container_update(self, op, account, container, obj, request, + headers_out, objdevice): + """ + Update the container when objects are updated. + + For Gluster, this is just a no-op, since a container is just the + directory holding all the objects (sub-directory hierarchy of files). + + :param op: operation performed (ex: 'PUT', or 'DELETE') + :param account: account name for the object + :param container: container name for the object + :param obj: object name + :param request: the original request object driving the update + :param headers_out: dictionary of headers to send in the container + request(s) + :param objdevice: device name that the object is in + """ + return + + def app_factory(global_conf, **local_conf): """paste.deploy app factory for creating WSGI object server apps""" conf = global_conf.copy() conf.update(local_conf) - return server.ObjectController(conf) + return ObjectController(conf) |