This commit is contained in:
William Mantly 2016-05-28 01:40:01 -04:00
parent 191851e2bb
commit ccd128100a

View File

@ -7,6 +7,10 @@ var request = require('request');
var lxc = require('../lxc'); var lxc = require('../lxc');
var doapi = require('../doapi')(); var doapi = require('../doapi')();
var workerTag = clworker;
var workerShapID = '17575764'
var label2runner = {}; var label2runner = {};
var workers = []; var workers = [];
var isCheckingWorkers = false; var isCheckingWorkers = false;
@ -37,12 +41,12 @@ var checkDroplet = function(id, time){
var workerCreate = function(){ var workerCreate = function(){
doapi.dropletCreate({ doapi.dropletCreate({
name: 'clworker'+(Math.random()*100).toString().replace('.',''), name: 'clw'+workerShapID+'-'+(Math.random()*100).toString().replace('.',''),
image: '17575764' image: '17575764'
}, function(data){ }, function(data){
data = JSON.parse(data); data = JSON.parse(data);
dopletNewID = data.droplet.id; dopletNewID = data.droplet.id;
doapi.dropletSetTag('clworker', data.droplet.id, function(data){ doapi.dropletSetTag('clw'+'17575764', data.droplet.id, function(data){
setTimeout(function(){checkDroplet(dopletNewID)}, 60000); setTimeout(function(){checkDroplet(dopletNewID)}, 60000);
}); });
}); });
@ -56,8 +60,8 @@ var workerDestroy = function(worker){
var checkWorkersBalance = function(){ var checkWorkersBalance = function(){
if(isCheckingWorkers) return false; if(isCheckingWorkers) return false;
var changed = false;
isCheckingWorkers = true; isCheckingWorkers = true;
var changed = false;
if(workers.length < 2){ if(workers.length < 2){
console.log('less then 2 workers, starting a droplet'); console.log('less then 2 workers, starting a droplet');
return workerCreate(); return workerCreate();
@ -133,7 +137,7 @@ var run = function(req, res, runner){
return request.post(httpOptions, function(error, response, body){ return request.post(httpOptions, function(error, response, body){
// console.log('runner response:', arguments) // console.log('runner response:', arguments)
console.log() if(error) return false;
body = JSON.parse(body); body = JSON.parse(body);
body['ip'] = getAvailrunner(runner).label; body['ip'] = getAvailrunner(runner).label;
@ -164,11 +168,11 @@ var makeWorkerObj = function(worker){
}; };
var initWorkers = function(){ var initWorkers = function(){
doapi.dropletsByTag('clworker', function(data){ doapi.dropletsByTag('clw'+workerShapID, function(data){
data = JSON.parse(data); data = JSON.parse(data);
if(data.droplets.length === 0) return checkWorkersBalance(); if(data.droplets.length === 0) return checkWorkersBalance();
data['droplets'].forEach(function(value){ data['droplets'].forEach(function(worker){
startRunners(workers[workers.push(makeWorkerObj(value))-1]); doapi.dropletDestroy(worker.id, function(){});
}); });
}); });
}; };