sftp: force rebuild when infra changes
This commit is contained in:
+7
-4
@@ -2,6 +2,7 @@
|
||||
|
||||
exports = module.exports = {
|
||||
start,
|
||||
rebuild,
|
||||
|
||||
DEFAULT_MEMORY_LIMIT: 256 * 1024 * 1024
|
||||
};
|
||||
@@ -21,13 +22,14 @@ var apps = require('./apps.js'),
|
||||
_ = require('underscore');
|
||||
|
||||
var gRebuildInProgress = false;
|
||||
function rebuild(serviceConfig, callback) {
|
||||
function rebuild(serviceConfig, options, callback) {
|
||||
assert.strictEqual(typeof serviceConfig, 'object');
|
||||
assert.strictEqual(typeof options, 'object');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
if (gRebuildInProgress) {
|
||||
debug('waiting for other rebuild to finish');
|
||||
return setTimeout(function () { rebuild(serviceConfig, callback); }, 5000);
|
||||
return setTimeout(function () { rebuild(serviceConfig, options, callback); }, 5000);
|
||||
}
|
||||
|
||||
gRebuildInProgress = true;
|
||||
@@ -39,6 +41,7 @@ function rebuild(serviceConfig, callback) {
|
||||
|
||||
debug('rebuilding container');
|
||||
|
||||
const force = !!options.force;
|
||||
const tag = infra.images.sftp.tag;
|
||||
const memoryLimit = serviceConfig.memoryLimit || exports.DEFAULT_MEMORY_LIMIT;
|
||||
const memory = system.getMemoryAllocation(memoryLimit);
|
||||
@@ -84,7 +87,7 @@ function rebuild(serviceConfig, callback) {
|
||||
currentDataDirs.sort(function (a, b) { return a.hostDir < b.hostDir ? -1 : 1; });
|
||||
dataDirs.sort(function (a, b) { return a.hostDir < b.hostDir ? -1 : 1; });
|
||||
|
||||
if (_.isEqual(currentDataDirs, dataDirs)) {
|
||||
if (!force && _.isEqual(currentDataDirs, dataDirs)) {
|
||||
debug('Skipping rebuild, no changes');
|
||||
return done();
|
||||
}
|
||||
@@ -127,5 +130,5 @@ function start(existingInfra, serviceConfig, callback) {
|
||||
assert.strictEqual(typeof serviceConfig, 'object');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
rebuild(serviceConfig, callback);
|
||||
rebuild(serviceConfig, { force: true }, callback); // force rebuild when infra changed
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user