diff --git a/src/apps.js b/src/apps.js index 82f720c39..2eb9d1751 100644 --- a/src/apps.js +++ b/src/apps.js @@ -854,6 +854,15 @@ function canAutoupdateAppSync(app, updateInfo) { return { code: true, reason: '' }; } +function attachUpdateInfoProperties(app, updateInfo) { + assert.strictEqual(typeof app, 'object'); + assert.strictEqual(typeof updateInfo, 'object'); + + const { code, reason } = canAutoupdateAppSync(app, updateInfo); + updateInfo.isAutoUpdatable = code; + updateInfo.manualUpdateReason = reason; +} + function attachProperties(app, domainObjectMap) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof domainObjectMap, 'object'); @@ -864,11 +873,7 @@ function attachProperties(app, domainObjectMap) { app.redirectDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); }); app.aliasDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); }); - if (app.updateInfo) { - const { code, reason } = canAutoupdateAppSync(app, app.updateInfo); // isAutoUpdatable is not cached since it depends on enableAutomaticUpdate and runState - app.updateInfo.isAutoUpdatable = code; - app.updateInfo.manualUpdateReason = reason; - } + if (app.updateInfo) attachUpdateInfoProperties(app, app.updateInfo); } async function setHealth(appId, health, healthTime) { @@ -3091,7 +3096,7 @@ export default { canBackupApp, - canAutoupdateAppSync, + attachUpdateInfoProperties, PORT_TYPE_TCP, PORT_TYPE_UDP, diff --git a/src/updater.js b/src/updater.js index 74a7c2846..cb286a4be 100644 --- a/src/updater.js +++ b/src/updater.js @@ -307,10 +307,8 @@ async function checkAppUpdate(app, options) { } if (updateInfo) { - const { code, reason } = apps.canAutoupdateAppSync(app, updateInfo); - updateInfo.isAutoUpdatable = code; - updateInfo.manualUpdateReason = reason; await apps.update(app.id, { updateInfo }); + apps.attachUpdateInfoProperties(app, updateInfo); // these are dynamic properties, not to be saved in db } return updateInfo;