summaryrefslogtreecommitdiffstats
path: root/gluster/swift/obj/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'gluster/swift/obj/server.py')
-rw-r--r--gluster/swift/obj/server.py34
1 files changed, 16 insertions, 18 deletions
diff --git a/gluster/swift/obj/server.py b/gluster/swift/obj/server.py
index b3747ab..bdd7687 100644
--- a/gluster/swift/obj/server.py
+++ b/gluster/swift/obj/server.py
@@ -13,20 +13,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Object Server for Gluster Swift UFO """
+""" Object Server for Gluster for Swift """
# Simply importing this monkey patches the constraint handling to fit our
# needs
-from swift.obj import server
-import gluster.swift.common.utils # noqa
import gluster.swift.common.constraints # noqa
-from swift.common.utils import public, timing_stats
-from gluster.swift.common.DiskFile import Gluster_DiskFile
-from gluster.swift.common.exceptions import DiskFileNoSpace
-from swift.common.swob import HTTPInsufficientStorage
-# Monkey patch the object server module to use Gluster's DiskFile definition
-server.DiskFile = Gluster_DiskFile
+from swift.obj import server
+
+from gluster.swift.obj.diskfile import DiskFile
class ObjectController(server.ObjectController):
@@ -37,6 +32,18 @@ class ObjectController(server.ObjectController):
operations directly).
"""
+ def _diskfile(self, device, partition, account, container, obj, **kwargs):
+ """Utility method for instantiating a DiskFile."""
+ kwargs.setdefault('mount_check', self.mount_check)
+ kwargs.setdefault('bytes_per_sync', self.bytes_per_sync)
+ kwargs.setdefault('disk_chunk_size', self.disk_chunk_size)
+ kwargs.setdefault('threadpool', self.threadpools[device])
+ kwargs.setdefault('obj_dir', server.DATADIR)
+ kwargs.setdefault('disallowed_metadata_keys',
+ server.DISALLOWED_HEADERS)
+ return DiskFile(self.devices, device, partition, account,
+ container, obj, self.logger, **kwargs)
+
def container_update(self, op, account, container, obj, request,
headers_out, objdevice):
"""
@@ -56,15 +63,6 @@ class ObjectController(server.ObjectController):
"""
return
- @public
- @timing_stats()
- def PUT(self, request):
- try:
- return server.ObjectController.PUT(self, request)
- except DiskFileNoSpace as err:
- drive = err.drive
- return HTTPInsufficientStorage(drive=drive, request=request)
-
def app_factory(global_conf, **local_conf):
"""paste.deploy app factory for creating WSGI object server apps"""