mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Deprecate autoInstallModules for externalModules.autoInstall
This commit is contained in:
parent
9b1c114c3f
commit
3151502a3f
@ -254,7 +254,8 @@ module.exports = {
|
|||||||
* Update to internal list of available modules based on what has been actually
|
* Update to internal list of available modules based on what has been actually
|
||||||
* loaded.
|
* loaded.
|
||||||
*
|
*
|
||||||
* The `autoInstallModules` runtime option means the runtime may try to install
|
* The `externalModules.autoInstall` (previously `autoInstallModules`)
|
||||||
|
* runtime option means the runtime may try to install
|
||||||
* missing modules after the initial load is complete. If that flag is not set
|
* missing modules after the initial load is complete. If that flag is not set
|
||||||
* this function is used to remove the modules from the registry's saved list.
|
* this function is used to remove the modules from the registry's saved list.
|
||||||
* @function
|
* @function
|
||||||
|
@ -123,7 +123,15 @@ function start() {
|
|||||||
}
|
}
|
||||||
log.info(os.type()+" "+os.release()+" "+os.arch()+" "+os.endianness());
|
log.info(os.type()+" "+os.release()+" "+os.arch()+" "+os.endianness());
|
||||||
return redNodes.load().then(function() {
|
return redNodes.load().then(function() {
|
||||||
|
let autoInstallModules = false;
|
||||||
|
if (settings.hasOwnProperty('autoInstallModules')) {
|
||||||
|
log.warn(log._("runtime.deprecatedOption",{old:"autoInstallModules", new:"externalModules.autoInstall"}));
|
||||||
|
autoInstallModules = true;
|
||||||
|
}
|
||||||
|
if (settings.externalModules) {
|
||||||
|
// autoInstallModules = autoInstall enabled && (no palette setting || palette install not disabled)
|
||||||
|
autoInstallModules = settings.externalModules.autoInstall && (!settings.externalModules.palette || settings.externalModules.palette.allowInstall !== false) ;
|
||||||
|
}
|
||||||
var i;
|
var i;
|
||||||
var nodeErrors = redNodes.getNodeList(function(n) { return n.err!=null;});
|
var nodeErrors = redNodes.getNodeList(function(n) { return n.err!=null;});
|
||||||
var nodeMissing = redNodes.getNodeList(function(n) { return n.module && n.enabled && !n.loaded && !n.err;});
|
var nodeMissing = redNodes.getNodeList(function(n) { return n.module && n.enabled && !n.loaded && !n.err;});
|
||||||
@ -156,12 +164,12 @@ function start() {
|
|||||||
for (i in missingModules) {
|
for (i in missingModules) {
|
||||||
if (missingModules.hasOwnProperty(i)) {
|
if (missingModules.hasOwnProperty(i)) {
|
||||||
log.warn(" - "+i+" ("+missingModules[i].version+"): "+missingModules[i].types.join(", "));
|
log.warn(" - "+i+" ("+missingModules[i].version+"): "+missingModules[i].types.join(", "));
|
||||||
if (settings.autoInstallModules && i != "node-red") {
|
if (autoInstallModules && i != "node-red") {
|
||||||
installingModules.push({id:i,version:missingModules[i].version});
|
installingModules.push({id:i,version:missingModules[i].version});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!settings.autoInstallModules) {
|
if (!autoInstallModules) {
|
||||||
log.info(log._("server.removing-modules"));
|
log.info(log._("server.removing-modules"));
|
||||||
redNodes.cleanModuleList();
|
redNodes.cleanModuleList();
|
||||||
} else if (installingModules.length > 0) {
|
} else if (installingModules.length > 0) {
|
||||||
@ -186,11 +194,19 @@ function start() {
|
|||||||
var reinstallAttempts = 0;
|
var reinstallAttempts = 0;
|
||||||
var reinstallTimeout;
|
var reinstallTimeout;
|
||||||
function reinstallModules(moduleList) {
|
function reinstallModules(moduleList) {
|
||||||
var promises = [];
|
const promises = [];
|
||||||
var reinstallList = [];
|
const reinstallList = [];
|
||||||
|
const installRetry = 30000;
|
||||||
|
if (settings.hasOwnProperty('autoInstallModulesRetry')) {
|
||||||
|
log.warn(log._("runtime.deprecatedOption",{old:"autoInstallModulesRetry", new:"externalModules.autoInstallRetry"}));
|
||||||
|
installRetry = settings.autoInstallModulesRetry;
|
||||||
|
}
|
||||||
|
if (settings.externalModules && settings.externalModules.hasOwnProperty('autoInstallRetry')) {
|
||||||
|
installRetry = settings.externalModules.autoInstallRetry * 1000;
|
||||||
|
}
|
||||||
|
externalModules.autoInstallRetry
|
||||||
for (var i=0;i<moduleList.length;i++) {
|
for (var i=0;i<moduleList.length;i++) {
|
||||||
if (settings.autoInstallModules && moduleList[i].id != "node-red") {
|
if (moduleList[i].id != "node-red") {
|
||||||
(function(mod) {
|
(function(mod) {
|
||||||
promises.push(redNodes.installModule(mod.id,mod.version).then(m => {
|
promises.push(redNodes.installModule(mod.id,mod.version).then(m => {
|
||||||
events.emit("runtime-event",{id:"node/added",retain:false,payload:m.nodes});
|
events.emit("runtime-event",{id:"node/added",retain:false,payload:m.nodes});
|
||||||
@ -204,7 +220,7 @@ function reinstallModules(moduleList) {
|
|||||||
if (reinstallList.length > 0) {
|
if (reinstallList.length > 0) {
|
||||||
reinstallAttempts++;
|
reinstallAttempts++;
|
||||||
// First 5 at 1x timeout, next 5 at 2x, next 5 at 4x, then 8x
|
// First 5 at 1x timeout, next 5 at 2x, next 5 at 4x, then 8x
|
||||||
var timeout = (settings.autoInstallModulesRetry||30000) * Math.pow(2,Math.min(Math.floor(reinstallAttempts/5),3));
|
var timeout = installRetry * Math.pow(2,Math.min(Math.floor(reinstallAttempts/5),3));
|
||||||
reinstallTimeout = setTimeout(function() {
|
reinstallTimeout = setTimeout(function() {
|
||||||
reinstallModules(reinstallList);
|
reinstallModules(reinstallList);
|
||||||
},timeout);
|
},timeout);
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
"uninstall-failed-long": "Uninstall of module __name__ failed:",
|
"uninstall-failed-long": "Uninstall of module __name__ failed:",
|
||||||
"uninstalled": "Uninstalled module: __name__"
|
"uninstalled": "Uninstalled module: __name__"
|
||||||
},
|
},
|
||||||
|
"deprecatedOption": "use of __old__ is deprecated. Use __new__ instead",
|
||||||
"unable-to-listen": "Unable to listen on __listenpath__",
|
"unable-to-listen": "Unable to listen on __listenpath__",
|
||||||
"port-in-use": "Error: port in use",
|
"port-in-use": "Error: port in use",
|
||||||
"uncaught-exception": "Uncaught Exception:",
|
"uncaught-exception": "Uncaught Exception:",
|
||||||
|
Loading…
Reference in New Issue
Block a user