diff --git a/migrations/20190426172858-migrate-caas-backupConfig.js b/migrations/20190426172858-migrate-caas-backupConfig.js new file mode 100644 index 000000000..0e3670117 --- /dev/null +++ b/migrations/20190426172858-migrate-caas-backupConfig.js @@ -0,0 +1,19 @@ +'use strict'; + +exports.up = function(db, callback) { + db.all('SELECT value FROM settings WHERE name="backup_config"', function (error, results) { + if (error || results.length === 0) return callback(error); + + var backupConfig = JSON.parse(results[0].value); + if (backupConfig.provider !== 'caas') return callback(); + + backupConfig.boxId = backupConfig.prefix; // hack to set the boxId that happens to match the prefix + delete backupConfig.fqdn; + + db.runSql('UPDATE settings SET value=? WHERE name="backup_config"', [ JSON.stringify(backupConfig) ], callback); + }); +}; + +exports.down = function(db, callback) { + callback(); +}; diff --git a/src/caas.js b/src/caas.js index b4aa87f6b..3dc1f8224 100644 --- a/src/caas.js +++ b/src/caas.js @@ -105,7 +105,7 @@ function backupDone(apiConfig, backupId, appBackupIds, callback) { debug('[%s] backupDone: %s apps %j', backupId, backupId, appBackupIds); - var url = config.apiServerOrigin() + '/api/v1/caas/boxes/' + apiConfig.fqdn + '/backupDone'; + var url = config.apiServerOrigin() + '/api/v1/caas/boxes/' + apiConfig.boxId + '/backupDone'; var data = { boxVersion: config.version(), backupId: backupId, diff --git a/src/routes/test/sysadmin-test.js b/src/routes/test/sysadmin-test.js index b9a885bff..6aa7805b2 100644 --- a/src/routes/test/sysadmin-test.js +++ b/src/routes/test/sysadmin-test.js @@ -52,7 +52,7 @@ function setup(done) { }, function createSettings(callback) { - settingsdb.set(settings.BACKUP_CONFIG_KEY, JSON.stringify({ provider: 'caas', token: 'BACKUP_TOKEN', fqdn: DOMAIN_0.domain, key: 'key', prefix: 'boxid', format: 'tgz'}), callback); + settingsdb.set(settings.BACKUP_CONFIG_KEY, JSON.stringify({ provider: 'caas', token: 'BACKUP_TOKEN', boxId: 'boxid', key: 'key', prefix: 'boxid', format: 'tgz'}), callback); } ], done); } diff --git a/src/storage/s3.js b/src/storage/s3.js index 923749938..3d6932ab9 100644 --- a/src/storage/s3.js +++ b/src/storage/s3.js @@ -62,7 +62,7 @@ function getCaasConfig(apiConfig, callback) { debug('getCaasCredentials: getting new credentials'); - var url = config.apiServerOrigin() + '/api/v1/caas/boxes/' + apiConfig.fqdn + '/awscredentials'; + var url = config.apiServerOrigin() + '/api/v1/caas/boxes/' + apiConfig.boxId + '/awscredentials'; superagent.post(url).query({ token: apiConfig.token }).timeout(30 * 1000).end(function (error, result) { if (error && !error.response) return callback(error); if (result.statusCode !== 201) return callback(new Error(result.text)); diff --git a/src/test/settings-test.js b/src/test/settings-test.js index 82171719e..b5a6d49bb 100644 --- a/src/test/settings-test.js +++ b/src/test/settings-test.js @@ -100,10 +100,10 @@ describe('Settings', function () { it('can set backup config', function (done) { nock(config.apiServerOrigin()) - .post(`/api/v1/caas/boxes/${DOMAIN_0}/awscredentials?token=TOKEN`) + .post(`/api/v1/caas/boxes/boxid/awscredentials?token=TOKEN`) .reply(201, { credentials: { AccessKeyId: 'accessKeyId', SecretAccessKey: 'secretAccessKey', SessionToken: 'sessionToken' } }); - settings.setBackupConfig({ provider: 'caas', fqdn: DOMAIN_0, token: 'TOKEN', format: 'tgz', prefix: 'boxid', bucket: 'bucket' }, function (error) { + settings.setBackupConfig({ provider: 'caas', boxId: 'boxid', token: 'TOKEN', format: 'tgz', prefix: 'boxid', bucket: 'bucket' }, function (error) { expect(error).to.be(null); done(); });