diff options
Diffstat (limited to 'gluster/swift/container')
-rw-r--r-- | gluster/swift/container/server.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gluster/swift/container/server.py b/gluster/swift/container/server.py index e832248..173976a 100644 --- a/gluster/swift/container/server.py +++ b/gluster/swift/container/server.py @@ -21,6 +21,9 @@ import gluster.swift.common.constraints # noqa from swift.container import server from gluster.swift.common.DiskDir import DiskDir +from swift.common.utils import public, timing_stats +from swift.common.exceptions import DiskFileNoSpace +from swift.common.swob import HTTPInsufficientStorage class ContainerController(server.ContainerController): @@ -63,6 +66,17 @@ class ContainerController(server.ContainerController): """ return None + @public + @timing_stats() + def PUT(self, req): + try: + return server.ContainerController.PUT(self, req) + except DiskFileNoSpace: + # As container=directory in gluster-swift, we might run out of + # space or exceed quota when creating containers. + drive = req.split_path(1, 1, True) + return HTTPInsufficientStorage(drive=drive, request=req) + def app_factory(global_conf, **local_conf): """paste.deploy app factory for creating WSGI container server apps.""" |