Пример #1
0
 def get_vault_usage(self, format="json", **kwargs):
     user, sMessages, fMessages, vaultUsedMB, vaultCapacityMB = (cherrypy.session.get("user"), [], [], 0, 0)
     try:
         vaultSpaceFreeMB, vaultCapacityMB = FileService.get_vault_usage()
         vaultUsedMB = vaultCapacityMB - vaultSpaceFreeMB
     except Exception, e:
         cherrypy.log.error("[%s] [get_vault_usage] [Error while getting quota: %s]" % (user.id,str(e)))
         fMessages.append("Could not get vault usage: %s" % str(e))
 def get_vault_usage(self, format="json", **kwargs):
     user, sMessages, fMessages, vaultUsedMB, vaultCapacityMB = (cherrypy.session.get("user"), [], [], 0, 0)
     try:
         vaultSpaceFreeMB, vaultCapacityMB = FileService.get_vault_usage()
         vaultUsedMB = vaultCapacityMB - vaultSpaceFreeMB
     except Exception, e:
         cherrypy.log.error("[%s] [get_vault_usage] [Error while getting quota: %s]" % (user.id,str(e)))
         fMessages.append("Could not get vault usage: %s" % str(e))
Пример #3
0
            uploadKey = user.id
            if cherrypy.session.get("current_role") is not None:
                role = cherrypy.session.get("current_role")

        #Check upload size
        lcHDRS = {}
        for key, val in cherrypy.request.headers.iteritems():
            lcHDRS[key.lower()] = val
        try:
            fileSizeBytes = int(lcHDRS['content-length'])
        except KeyError, ke:
            fMessages.append("Request must have a valid content length")
            raise cherrypy.HTTPError(
                411, "Request must have a valid content length")
        fileSizeMB = ((fileSizeBytes / 1024) / 1024)
        vaultSpaceFreeMB, vaultCapacityMB = FileService.get_vault_usage()

        if (fileSizeMB * 2) >= vaultSpaceFreeMB:
            cherrypy.log.error(
                "[system] [upload] [File vault is running out of space and cannot fit this file. Remaining Space is %s MB, fileSizeBytes is %s]"
                % (vaultSpaceFreeMB, fileSizeBytes))
            fMessages.append(
                "The server doesn't have enough space left on its drive to fit this file. The administrator has been notified."
            )
            raise cherrypy.HTTPError(
                413,
                "The server doesn't have enough space left on its drive to fit this file. The administrator has been notified."
            )
        quotaSpaceRemainingBytes = 0
        if role is not None:
            quotaSpaceRemainingBytes = (
Пример #4
0
            user, sMessages, fMessages = cherrypy.session.get("user"), cherrypy.session.get("sMessages"), cherrypy.session.get("fMessages")
            uploadKey = user.id
            if cherrypy.session.get("current_role") is not None:
                role = cherrypy.session.get("current_role")

        #Check upload size
        lcHDRS = {}
        for key, val in cherrypy.request.headers.iteritems():
            lcHDRS[key.lower()] = val
        try:
            fileSizeBytes = int(lcHDRS['content-length'])
        except KeyError, ke:
            fMessages.append("Request must have a valid content length")
            raise cherrypy.HTTPError(411, "Request must have a valid content length")
        fileSizeMB = ((fileSizeBytes/1024)/1024)
        vaultSpaceFreeMB, vaultCapacityMB = FileService.get_vault_usage()
        
        if (fileSizeMB*2) >= vaultSpaceFreeMB:
            cherrypy.log.error("[system] [upload] [File vault is running out of space and cannot fit this file. Remaining Space is %s MB, fileSizeBytes is %s]" % (vaultSpaceFreeMB, fileSizeBytes))
            fMessages.append("The server doesn't have enough space left on its drive to fit this file. The administrator has been notified.")
            raise cherrypy.HTTPError(413, "The server doesn't have enough space left on its drive to fit this file. The administrator has been notified.")
        quotaSpaceRemainingBytes = 0
        if role is not None:
            quotaSpaceRemainingBytes = (role.quota*1024*1024) - FileService.get_role_quota_usage_bytes(role.id)
        else:
            quotaSpaceRemainingBytes = (user.quota*1024*1024) - FileService.get_user_quota_usage_bytes(user.id)
        if fileSizeBytes > quotaSpaceRemainingBytes:
            fMessages.append("File size is larger than your quota will accommodate")
            raise cherrypy.HTTPError(413, "File size is larger than your quota will accommodate")

        #The server won't respond to additional user requests (polling) until we release the lock