You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.7 KiB
JavaScript
103 lines
2.7 KiB
JavaScript
var Eviction = require("../lib/eviction");
|
|
var nThen = require("nthen");
|
|
var Store = require("../lib/storage/file");
|
|
var BlobStore = require("../lib/storage/blob");
|
|
|
|
var Quota = require("../lib/commands/quota");
|
|
var Environment = require("../lib/env");
|
|
var Decrees = require("../lib/decrees");
|
|
|
|
var config = require("../lib/load-config");
|
|
|
|
var Env = Environment.create(config);
|
|
|
|
var loadPremiumAccounts = function (Env, cb) {
|
|
nThen(function (w) {
|
|
// load premium accounts
|
|
Quota.updateCachedLimits(Env, w(function (err) {
|
|
if (err) {
|
|
Env.Log.error('EVICT_LOAD_PREMIUM_ACCOUNTS', {
|
|
error: err,
|
|
});
|
|
}
|
|
}));
|
|
}).nThen(function (w) {
|
|
// load and apply decrees
|
|
Decrees.load(Env, w(function (err) {
|
|
if (err) {
|
|
Env.Log.error('EVICT_LOAD_DECREES', {
|
|
error: err.code || err,
|
|
message: err.message,
|
|
});
|
|
}
|
|
}));
|
|
}).nThen(function () {
|
|
//console.log(Env.limits);
|
|
cb();
|
|
});
|
|
};
|
|
|
|
var prepareEnv = function (Env, cb) {
|
|
//Quota.applyCustomLimits(Env);
|
|
|
|
nThen(function (w) {
|
|
/* Database adaptors
|
|
*/
|
|
|
|
// load the store which will be used for iterating over channels
|
|
// and performing operations like archival and deletion
|
|
Store.create(config, w(function (err, _) {
|
|
if (err) {
|
|
w.abort();
|
|
throw err;
|
|
}
|
|
Env.store = _;
|
|
}));
|
|
|
|
Store.create({
|
|
filePath: config.pinPath,
|
|
}, w(function (err, _) {
|
|
if (err) {
|
|
w.abort();
|
|
throw err;
|
|
}
|
|
Env.pinStore = _;
|
|
}));
|
|
|
|
// load the logging module so that you have a record of which
|
|
// files were archived or deleted at what time
|
|
var Logger = require("../lib/log");
|
|
Logger.create(config, w(function (_) {
|
|
Env.Log = _;
|
|
}));
|
|
|
|
config.getSession = function () {};
|
|
BlobStore.create(config, w(function (err, _) {
|
|
if (err) {
|
|
w.abort();
|
|
return console.error(err);
|
|
}
|
|
Env.blobStore = _;
|
|
}));
|
|
}).nThen(function (w) {
|
|
loadPremiumAccounts(Env, w(function (/* err */) {
|
|
//if (err) { }
|
|
}));
|
|
}).nThen(function () {
|
|
cb();
|
|
});
|
|
};
|
|
|
|
//console.log("starting");
|
|
nThen(function (w) {
|
|
// load database adaptors and configuration values into the environment
|
|
prepareEnv(Env, w(function () {
|
|
//console.log("env prepared");
|
|
|
|
}));
|
|
}).nThen(function (w) {
|
|
Eviction.archived(Env, w(function () {
|
|
|
|
}));
|
|
});
|