Update Stale Purge Lock function set
- when "No space left on device" is detected a check to see if you are over your account storage max will be done, if so then it will force an unlock and create a purge request.merge-requests/63/head
parent
88149c7dd5
commit
9aabfea193
|
|
@ -40,6 +40,11 @@ module.exports = function(s,config){
|
|||
s.onTwoFactorAuthCodeNotificationExtensions.push(callback)
|
||||
}
|
||||
//
|
||||
s.onStalePurgeLockExtensions = []
|
||||
s.onStalePurgeLock = function(callback){
|
||||
s.onStalePurgeLockExtensions.push(callback)
|
||||
}
|
||||
//
|
||||
s.cloudDiskUseStartupExtensions = {}
|
||||
|
||||
////// EVENTS //////
|
||||
|
|
|
|||
|
|
@ -1035,9 +1035,10 @@ module.exports = function(s,config,lang){
|
|||
s.group[e.ke].mon[e.id].spawn.stderr.on('data',function(d){
|
||||
d=d.toString();
|
||||
switch(true){
|
||||
// case checkLog(d,'No space left on device'):
|
||||
//
|
||||
// break;
|
||||
case checkLog(d,'No space left on device'):
|
||||
s.checkUserPurgeLock(e.ke)
|
||||
s.purgeDiskForGroup(e)
|
||||
break;
|
||||
case checkLog(d,'error while decoding'):
|
||||
s.userLog(e,{type:lang['Error While Decoding'],msg:lang.ErrorWhileDecodingText});
|
||||
break;
|
||||
|
|
|
|||
22
libs/user.js
22
libs/user.js
|
|
@ -322,20 +322,22 @@ module.exports = function(s,config){
|
|||
callback(notFound,preset)
|
||||
})
|
||||
}
|
||||
s.checkUserPurgeLock = function(groupKey){
|
||||
var userGroup = s.group[groupKey]
|
||||
if(s.group[groupKey].usedSpace > s.group[groupKey].sizeLimit){
|
||||
s.group[groupKey].sizePurgeQueue = []
|
||||
s.group[groupKey].sizePurging = false
|
||||
s.systemLog(lang.sizePurgeLockedText + ' : ' + groupKey)
|
||||
s.onStalePurgeLockExtensions.forEach(function(extender){
|
||||
extender(groupKey,s.group[groupKey].usedSpace,s.group[groupKey].sizeLimit)
|
||||
})
|
||||
}
|
||||
}
|
||||
if(config.cron.deleteOverMax === true){
|
||||
s.checkForStalePurgeLocks = function(){
|
||||
var doCheck = function(){
|
||||
Object.keys(s.group).forEach(function(groupKey){
|
||||
var userGroup = s.group[groupKey]
|
||||
var monitorCount = 10
|
||||
if(userGroup.mon)monitorCount = Object.keys(userGroup.mon).length
|
||||
var purgeRequestCount = userGroup.sizePurgeQueue.length
|
||||
var isLocked = (userGroup.sizePurging === true)
|
||||
if(isLocked && purgeRequestCount > monitorCount + 10){
|
||||
s.group[groupKey].sizePurgeQueue = []
|
||||
s.group[groupKey].sizePurging = false
|
||||
s.systemLog(lang.sizePurgeLockedText + ' : ' + groupKey)
|
||||
}
|
||||
s.checkUserPurgeLock(groupKey)
|
||||
})
|
||||
}
|
||||
clearTimeout(s.checkForStalePurgeLocksInterval)
|
||||
|
|
|
|||
Loading…
Reference in New Issue