adding newStartRunners command
This commit is contained in:
parent
ce31c7f1d5
commit
337423d294
@ -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;
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user