summaryrefslogtreecommitdiffstats
path: root/gluster/swift
diff options
context:
space:
mode:
authorPeter Portante <peter.portante@redhat.com>2013-05-24 11:35:59 -0400
committerLuis Pabon <lpabon@redhat.com>2013-06-04 11:27:02 -0700
commit3435c59ba3a679867adffa84719b8648c9fbf601 (patch)
treeb13dcacc4a2b6eb6fe013b9fe88cb30cbead21af /gluster/swift
parent40c313378e5fffb846f1fd143573a687e2774b28 (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/swift')
-rw-r--r--gluster/swift/container/server.py26
-rw-r--r--gluster/swift/obj/server.py30
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)