sftp: force rebuild when infra changes

This commit is contained in:
Girish Ramakrishnan
2021-02-09 22:57:21 -08:00
parent fd2087d7e4
commit dac677df06
2 changed files with 8 additions and 5 deletions
+7 -4
View File
@@ -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
}