diff --git a/test/selfhost-digitalocean-test.js b/test/selfhost-digitalocean-test.js index b3cf548..c17b44a 100644 --- a/test/selfhost-digitalocean-test.js +++ b/test/selfhost-digitalocean-test.js @@ -8,13 +8,14 @@ var AppStore = require('../appstore.js'), assert = require('assert'), - AWS = require('aws-sdk'), + async = require('async'), child_process = require('child_process'), Cloudron = require('../cloudron.js'), common = require('../common.js'), mailer = require('../mailer.js'), semver = require('semver'), sleep = require('../shell.js').sleep, + superagent = require('superagent'), request = require('superagent-sync'), util = require('util'); @@ -22,8 +23,8 @@ require('colors'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const BOX_VERSION = process.env.BOX_VERSION; -const SELFHOST_DOMAIN = process.env.SELFHOST_DOMAIN; -const SSH_KEY = 'caas'; +const SELFHOST_DOMAIN = 'smartserver.io'; +const SSH_KEY = 'caas_staging'; const DO_TYPE = '1gb'; const DO_REGION = 'ams2'; const DO_TOKEN = process.env.DIGITAL_OCEAN_TOKEN_STAGING; @@ -54,7 +55,7 @@ describe('Selfhost EC2 Cloudron creation', function () { this.timeout(0); var appStore = new AppStore('https://api.staging.cloudron.io'); - var ec2 = new AWS.EC2({ accessKeyId: AWS_ACCESS_KEY, secretAccessKey: AWS_ACCESS_SECRET, region: EC2_REGION }); + // var ec2 = new AWS.EC2({ accessKeyId: AWS_ACCESS_KEY, secretAccessKey: AWS_ACCESS_SECRET, region: EC2_REGION }); var owner = common.getOwner(); var cloudron, appId, backupInfo, instanceId, restoreInstanceId, migrateInstanceId; @@ -78,7 +79,7 @@ describe('Selfhost EC2 Cloudron creation', function () { '--type ' + DO_TYPE, '--token ' + DO_TOKEN, '--region ' + DO_REGION, - '--awsRegion ' + EC2_REGION, + '--aws-region ' + EC2_REGION, '--ssh-key ' + SSH_KEY, '--access-key-id ' + AWS_ACCESS_KEY, '--secret-access-key ' + AWS_ACCESS_SECRET, @@ -95,7 +96,7 @@ describe('Selfhost EC2 Cloudron creation', function () { } // Wohooo strings! - instanceId = out.stdout.split('\n').filter(function (l) { return l.indexOf('ID: ') !== -1; })[0].split(':')[1].trim(); + instanceId = out.stdout.split('\n').filter(function (l) { return l.indexOf(' ID: ') !== -1; })[0].split(':')[1].trim(); console.log('New instance created with ID', instanceId); @@ -207,7 +208,7 @@ describe('Selfhost EC2 Cloudron creation', function () { '--type ' + DO_TYPE, '--token ' + DO_TOKEN, '--region ' + DO_REGION, - '--awsRegion ' + EC2_REGION, + '--aws-region ' + EC2_REGION, '--ssh-key ' + SSH_KEY, '--access-key-id ' + AWS_ACCESS_KEY, '--secret-access-key ' + AWS_ACCESS_SECRET, @@ -223,7 +224,7 @@ describe('Selfhost EC2 Cloudron creation', function () { assert(false, 'Restore failed'); } - restoreInstanceId = out.stdout.split('\n').filter(function (l) { return l.indexOf('ID: ') !== -1; })[0].split(':')[1].trim(); + restoreInstanceId = out.stdout.split('\n').filter(function (l) { return l.indexOf(' ID: ') !== -1; })[0].split(':')[1].trim(); console.log('New instance created with ID', restoreInstanceId); }); @@ -252,7 +253,7 @@ describe('Selfhost EC2 Cloudron creation', function () { assert(false, 'Migrate failed'); } - migrateInstanceId = out.stdout.split('\n').filter(function (l) { return l.indexOf('ID: ') !== -1; })[0].split(':')[1].trim(); + migrateInstanceId = out.stdout.split('\n').filter(function (l) { return l.indexOf(' ID: ') !== -1; })[0].split(':')[1].trim(); console.log('New instance created with ID', restoreInstanceId); }); @@ -265,16 +266,19 @@ describe('Selfhost EC2 Cloudron creation', function () { cloudron.uninstallApp(appId); }); - xit('can delete the cloudron', function (done) { - console.log('Cleanup EC2 instances'); + it('can delete the cloudron', function (done) { + console.log('Cleanup DO instances', instanceId, restoreInstanceId, migrateInstanceId); - var params = { - InstanceIds: [ instanceId, restoreInstanceId, migrateInstanceId ] - }; + // we ignore errors here + function deleteDroplet(id, callback) { + superagent.del('https://api.digitalocean.com/v2/droplets/' + id).set('Authorization', 'Bearer ' + DO_TOKEN).end(function (error, result) { + if (error) console.error(error.message); + if (result.statusCode !== 204) console.error('Failed to cleanup old droplet. %s %j', result.statusCode, result.body); - ec2.terminateInstances(params, function (error) { - if (error) console.log(error); - done(); - }); + callback(); + }); + } + + async.each([ instanceId, restoreInstanceId, migrateInstanceId ], deleteDroplet, done); }); }); diff --git a/test/selfhost-ec2-test.js b/test/selfhost-ec2-test.js index ecad468..063ef43 100644 --- a/test/selfhost-ec2-test.js +++ b/test/selfhost-ec2-test.js @@ -22,7 +22,7 @@ require('colors'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const BOX_VERSION = process.env.BOX_VERSION; -const SELFHOST_DOMAIN = process.env.SELFHOST_DOMAIN; +const SELFHOST_DOMAIN = 'cloudron.club'; const EC2_TYPE = 't2.small'; const EC2_SIZE = 30; const EC2_REGION = 'eu-central-1';