From 2017ec184123357e6f93269e6be771ab07d3126c Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Tue, 7 Jun 2016 16:09:46 -0700 Subject: [PATCH] check version of app --- cloudron.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cloudron.js b/cloudron.js index a619f47..4a09bee 100644 --- a/cloudron.js +++ b/cloudron.js @@ -116,7 +116,7 @@ Cloudron.prototype.activate = function (user) { assert.strictEqual(res.body.version, this._box.version); }; -Cloudron.prototype.waitForApp = function (appId) { +Cloudron.prototype.waitForApp = function (appId, version) { // wait for app to come up process.stdout.write('Waiting for app to come up.'); @@ -134,7 +134,8 @@ Cloudron.prototype.waitForApp = function (appId) { } assert.strictEqual(res.body.installationState, 'installed'); assert.strictEqual(res.body.runState, 'running'); - assert.strictEqual(res.body.health, 'healthy'); + assert.strictEqual(res.body.runState, 'running'); + if (version) assert.strictEqual(res.body.manifest.version, version); return res.body; }; @@ -166,6 +167,8 @@ Cloudron.prototype.setCredentials = function (password, accessToken) { Cloudron.prototype.installApp = function (location, manifestOrAppstoreId, portBindings) { portBindings = portBindings || null; // null binds nothing + var version = typeof manifestOrAppstoreId === 'object' ? manifestOrAppstoreId.version : manifestOrAppstoreId.split('@')[1]; + var data = { manifest: typeof manifestOrAppstoreId === 'object' ? manifestOrAppstoreId : null, appStoreId: typeof manifestOrAppstoreId === 'string' ? manifestOrAppstoreId : null, @@ -183,7 +186,7 @@ Cloudron.prototype.installApp = function (location, manifestOrAppstoreId, portBi debug('App installed at %s'.green, location); var appId = res.body.id; - var app = this.waitForApp(appId); + var app = this.waitForApp(appId, version); debug('App is running'.green); res = request.get('https://' + app.fqdn).end(); @@ -233,6 +236,8 @@ Cloudron.prototype.uninstallApp = function (appId) { Cloudron.prototype.updateApp = function (appId, manifestOrAppstoreId) { process.stdout.write('Trying to update'); + var version = typeof manifestOrAppstoreId === 'object' ? manifestOrAppstoreId.version : manifestOrAppstoreId.split('@')[1]; + var data = { password: this._credentials.password, manifest: typeof manifestOrAppstoreId === 'object' ? manifestOrAppstoreId : null, @@ -247,12 +252,12 @@ Cloudron.prototype.updateApp = function (appId, manifestOrAppstoreId) { console.log('Update started'.green); - var app = this.waitForApp(appId); + var app = this.waitForApp(appId, version); debug('App is running'.green); res = request.get('https://' + app.fqdn).end(); common.verifyResponse2xx(res, 'App is unreachable'); - console.log('App updated'.green); + console.log('App updated to '.green); }; Cloudron.prototype.update = function (toVersion) {