Merge pull request #20 from wmantly/dnsAPI

Dns api
This commit is contained in:
William Mantly 2016-07-15 17:14:34 -04:00 committed by GitHub
commit 8e82a7f47a
2 changed files with 46 additions and 19 deletions

View File

@ -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;
}

View File

@ -48,13 +48,15 @@ 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',
size: '2gb'
}, 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(){});
});
@ -110,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)
});
});
};
@ -124,7 +129,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",
data: worker.publicIP
}, function(){});
}
worker.availrunners.push({
ip: data.ip,
@ -142,7 +155,7 @@ var workers = (function(){
workers.checkBalance = function(){
var minWorkers = 3;
var minWorkers = 1;
console.log('checking balance');
if(workers.length < minWorkers){
@ -150,22 +163,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');
};