From 432b05660954a554025304fdacb4d21765d81afb Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 16:26:37 -0400 Subject: [PATCH 1/7] added dns api --- doapi.js | 14 ++++++++++++++ routes/api.js | 13 +++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/doapi.js b/doapi.js index 8847282..cf14911 100644 --- a/doapi.js +++ b/doapi.js @@ -113,6 +113,20 @@ api = function(key){ }); }; + this.domianAddRecord = function(args, callback){ + + var options = { + url: this.BASEURL+'domains/'+ args.domain +'/records', + headers: this.headers, + body: JSON.stringify(args) + }; + this.calls++; + + return request.post(options, function(error, response, body){ + return callback(body, response, error); + }); + } + return this; } diff --git a/routes/api.js b/routes/api.js index 54cc5a1..3fb538c 100644 --- a/routes/api.js +++ b/routes/api.js @@ -48,13 +48,14 @@ var workers = (function(){ if(workers.currentCreating > workers.currentCreatingMax ) return false; return doapi.dropletCreate({ name: 'clw'+workerSnapID+'-'+(Math.random()*100).toString().slice(-4), - image: '17641214' + image: '18473675' }, function(data){ data = JSON.parse(data); workers.currentCreating++; setTimeout(function(dopletNewID){ return workers.checkDroplet(dopletNewID); }, 70000, data.droplet.id); + return doapi.dropletSetTag('clworker', data.droplet.id, function(){}); }); @@ -124,7 +125,15 @@ var workers = (function(){ return lxc.startEphemeral(name, 'crunner0', worker.ip, function(data){ if(!data.ip) return setTimeout(workers.startRunners(worker, newWorker),0); // console.log('started runner on', worker.name) - if(newWorker) worker = workers[workers.push(worker)-1] + if(newWorker){ + worker = workers[workers.push(worker)-1]; + doapi.domianAddRecord({ + domain: "codeland.us", + type: "A", + name: "*."+worker.name+".workers.codeland.us", + data: worker.ip + }, function(){}); + } worker.availrunners.push({ ip: data.ip, From 08f3b1fce68ef98a0d8273d7cefdc50817d8f532 Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 16:28:55 -0400 Subject: [PATCH 2/7] added dns api --- routes/api.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/routes/api.js b/routes/api.js index 3fb538c..f0cadc7 100644 --- a/routes/api.js +++ b/routes/api.js @@ -48,7 +48,8 @@ var workers = (function(){ if(workers.currentCreating > workers.currentCreatingMax ) return false; return doapi.dropletCreate({ name: 'clw'+workerSnapID+'-'+(Math.random()*100).toString().slice(-4), - image: '18473675' + image: '18473675', + size: '2gb' }, function(data){ data = JSON.parse(data); workers.currentCreating++; From bbc1025c7d2979023fd07fdd8f35f8688930a57f Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 16:31:51 -0400 Subject: [PATCH 3/7] added dns api --- routes/api.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/routes/api.js b/routes/api.js index f0cadc7..4748a7c 100644 --- a/routes/api.js +++ b/routes/api.js @@ -160,22 +160,22 @@ var workers = (function(){ for(var i=minWorkers-workers.length; i--;) workers.create(); return ; } - if(workers[workers.length-3].usedrunner !== 0 && workers[workers.length-2].usedrunner !== 0 && workers[workers.length-1].usedrunner !== 0){ - console.log('last 3 workers have no free runners, starting droplet'); - return workers.create(); - } - if(workers.length > minWorkers && workers[workers.length-3].usedrunner === 0 && workers[workers.length-2].usedrunner === 0 && workers[workers.length-1].usedrunner === 0){ - console.log('Last 2 runners not used, killing last runner', workers.length); - return workers.destroy(); - } + // if(workers[workers.length-3].usedrunner !== 0 && workers[workers.length-2].usedrunner !== 0 && workers[workers.length-1].usedrunner !== 0){ + // console.log('last 3 workers have no free runners, starting droplet'); + // return workers.create(); + // } + // if(workers.length > minWorkers && workers[workers.length-3].usedrunner === 0 && workers[workers.length-2].usedrunner === 0 && workers[workers.length-1].usedrunner === 0){ + // console.log('Last 2 runners not used, killing last runner', workers.length); + // return workers.destroy(); + // } - for(let worker of workers){ - if(worker.length <= 3) break; - if(worker.availrunners.length === 0 && worker.usedrunner === 0){ - console.log('found zombie worker, destroying') - workers.destroy(worker); - } - } + // for(let worker of workers){ + // if(worker.length <= 3) break; + // if(worker.availrunners.length === 0 && worker.usedrunner === 0){ + // console.log('found zombie worker, destroying') + // workers.destroy(worker); + // } + // } console.log('stopping workers balancing check'); }; From 68e7c48bc748026baa529d716d92dc2bdbf9f744 Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 16:38:07 -0400 Subject: [PATCH 4/7] added dns api --- routes/api.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/routes/api.js b/routes/api.js index 4748a7c..220518d 100644 --- a/routes/api.js +++ b/routes/api.js @@ -112,7 +112,10 @@ var workers = (function(){ if(~currentIDs.indexOf(worker.id)) return false; console.log('found old droplet, killing it'); - doapi.dropletDestroy(worker.id, function(body){console.log('delete body', body)}); + setTimeout(function(id) { + // body... + doapi.dropletDestroy(.id, function(body){console.log('delete body', body)}); + }, Math.floor(Math.random() * 9) + 1, worker.id) }); }); }; @@ -152,7 +155,7 @@ var workers = (function(){ workers.checkBalance = function(){ - var minWorkers = 3; + var minWorkers = 1; console.log('checking balance'); if(workers.length < minWorkers){ From e412dd3f1f01fd9cc7985fa001e139fd22103d9a Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 16:53:25 -0400 Subject: [PATCH 5/7] added dns api --- routes/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/api.js b/routes/api.js index 220518d..d01db44 100644 --- a/routes/api.js +++ b/routes/api.js @@ -114,7 +114,7 @@ var workers = (function(){ console.log('found old droplet, killing it'); setTimeout(function(id) { // body... - doapi.dropletDestroy(.id, function(body){console.log('delete body', body)}); + doapi.dropletDestroy(id, function(body){console.log('delete body', body)}); }, Math.floor(Math.random() * 9) + 1, worker.id) }); }); From 3a5c110aec91b67c818d99163c00ec704dba03b9 Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 16:58:24 -0400 Subject: [PATCH 6/7] fu --- routes/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/api.js b/routes/api.js index d01db44..30dca5e 100644 --- a/routes/api.js +++ b/routes/api.js @@ -135,7 +135,7 @@ var workers = (function(){ domain: "codeland.us", type: "A", name: "*."+worker.name+".workers.codeland.us", - data: worker.ip + data: worker.publicIP }, function(){}); } From 40b6b6ffdc9258675cc496fffe345444cdfb7259 Mon Sep 17 00:00:00 2001 From: william mantly Date: Fri, 15 Jul 2016 17:13:46 -0400 Subject: [PATCH 7/7] fu --- routes/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/api.js b/routes/api.js index 30dca5e..826a58d 100644 --- a/routes/api.js +++ b/routes/api.js @@ -134,7 +134,7 @@ var workers = (function(){ doapi.domianAddRecord({ domain: "codeland.us", type: "A", - name: "*."+worker.name+".workers.codeland.us", + name: "*."+worker.name+".workers", data: worker.publicIP }, function(){}); }