lxc_manager_node/allocate_runners.sh
Thomas Harvey db8914ed7f Updating Worker.sync and WorkerCollection.checkBalance
- adding maxAttempts and errorCallback to Worker.sync
- split checkBalance into two functions
- made checkZombies async so it can utilize Worker.sync
2017-10-24 14:45:03 -04:00

33 lines
1000 B
Bash

# maxMemoryUsage must be defined
function usedMemoryPercent () {
memoryAvailable=$(head /proc/meminfo|grep MemAvail|grep -Po '\d+');
totalMemory=$(head /proc/meminfo|grep MemTotal|grep -Po '\d+');
difference=$(expr $totalMemory - $memoryAvailable);
difference=$(expr $difference \* 100);
memory=$(expr $difference / $totalMemory);
}
function buildRunners () {
baseName="crunner0";
namePrefix="crunner-batch-${RANDOM}";
runners="";
usedMemoryPercent;
# maxMemoryUsage must be defined
until [[ $memory -gt $maxMemoryUsage ]]; do
runnerName="${namePrefix}-id-${RANDOM}";
lxc-start-ephemeral -o $baseName -n $runnerName --union-type overlayfs -d;
if [[ $? -eq 0 ]]; then
runners="${runners};${runnerName}";
fi
usedMemoryPercent;
done
}
buildRunners;
# Add curl to manager here. Sending status report to manager
# curl -X POST "${PHONE_HOME}" -d'{"memory":${memory}, "runnersShort": "${runners}", "runnersLong": "'"$(lxc-ls --fancy)"'", "id": "${WORKER_UUID}"}'
exit 0;