adding newStartRunners command

This commit is contained in:
Thomas Harvey 2017-10-16 17:33:10 -04:00
parent ce31c7f1d5
commit 337423d294
2 changed files with 43 additions and 25 deletions

View File

@ -1,4 +1,3 @@
maxMemoryUsage=80;
baseName="crunner0"; baseName="crunner0";
namePrefix="cubs"; namePrefix="cubs";
runners=""; runners="";
@ -16,9 +15,9 @@ usedMemoryPercent;
until [[ $memory -gt $maxMemoryUsage ]]; do until [[ $memory -gt $maxMemoryUsage ]]; do
runnerName="${namePrefix}${RANDOM}"; runnerName="${namePrefix}${RANDOM}";
lxc-start-ephemeral -o $baseName -n $runnerName --union-type overlayfs -d lxc-start-ephemeral -o $baseName -n $runnerName --union-type overlayfs -d;
if[[ $? -eq 0 ]]
then if[[ "$?" -eq 0 ]]; then
runners="${runners};${runnerName}"; runners="${runners};${runnerName}";
fi fi
usedMemoryPercent; usedMemoryPercent;

View File

@ -167,6 +167,7 @@ var Worker = (function(){
var worker = this; var worker = this;
args.stopPercent = args.stopPercent || 80; args.stopPercent = args.stopPercent || 80;
args.callback = args.callback || __empty; args.callback = args.callback || __empty;
args.errorCallback = args.errorCallback || __empty;
// dont make runners on out dated workers // dont make runners on out dated workers
if(!worker || worker.settings.image > worker.image.id || worker.isBuildingRunners){ if(!worker || worker.settings.image > worker.image.id || worker.isBuildingRunners){
@ -180,23 +181,32 @@ var Worker = (function(){
} }
worker.isBuildingRunners = true; worker.isBuildingRunners = true;
fs.read(__dirname + "../allocate_runners.sh", function(error, data){ fs.readFile(__dirname + "/../allocate_runners.sh", function(error, file){
console.log(data); var command = `maxMemoryUsage=${args.stopPercent};\n${file.toString()}`;
// lxc.exec(data, function(output){ lxc.exec(command, worker.ip, function(data, error, stderr){
// // output chould be list of runner names // output chould be list of runner names
// console.log(output); if(error){
// // for name in output: // ugly
// // var runner = Runner.create({ console.log("Error", worker.ip, error);
// // "name": name, worker.isBuildingRunners = false;
// // "worker": worker, args.errorCallback(error, worker, args);
// // "label": worker.name + ':' + name } else {
// // }); console.log("exec:");
console.log(arguments);
var runners = data.split(";");
for (let idx = 0, stop = runners.length; idx < stop; idx++){
// // worker.availrunners.push(runner); var runner = Runner.create({
// // end for "name": runners[idx],
// worker.isBuildingRunners = false; "worker": worker,
// args.callback(worker); "label": worker.name + ':' + runners[idx]
// }); });
worker.availrunners.push(runner);
}
worker.isBuildingRunners = false;
args.callback(worker);
}
});
}); });
}; };
@ -329,12 +339,21 @@ var WorkerCollection = (function(){
if(workers.length + workers.currentCreating >= workers.settings.max ) return false; if(workers.length + workers.currentCreating >= workers.settings.max ) return false;
workers.currentCreating++; workers.currentCreating++;
var count = 0;
config = config || workers.settings; config = config || workers.settings;
Worker.initialize(function(worker){ Worker.initialize({
console.log("Seeded runners on", worker.name); "callback": function(worker){
workers.push(worker); console.log("Seeded runners on", worker.name);
worker.register(); workers.push(worker);
workers.currentCreating--; worker.register();
workers.currentCreating--;
},
"errorCallback": function(error, worker, args){
if (count++ > 3){
args.errorCallback = function(){};
}
worker.newStartRunners(args);
}
}, config); }, config);
}; };