This commit is contained in:
William Mantly 2016-04-30 23:15:30 -04:00
parent 70bd796bc6
commit a65c87017a

View File

@ -7,8 +7,6 @@ var redis = require("redis");
var client = redis.createClient();
var request = require('request');
var lxc = require('../lxc');
var os = require('os');
var spawn = require('child_process').spawn;
var totalMem = os.totalmem();
@ -17,12 +15,25 @@ var ip2name = {};
var availContainers = [];
var usedContainers = [];
var exec = require('child_process').exec;
function sysExec(command, callback){
command = 'ssh virt@104.236.77.157 ' + command;
// command = 'unset XDG_SESSION_ID XDG_RUNTIME_DIR; cgm movepid all virt $$; ' + command;
return exec(command, (function(callback){
return function(err,data,stderr){
if(callback){
return callback(data, err, stderr);
}
}
})(callback));
};
var getFreeMem = function(callback){
var prc = spawn('free', ['-b']);
prc.stdout.setEncoding('utf8');
prc.stdout.on('data', function (data) {
var parseFree = function (data) {
var str = data.toString()
var lines = str.split(/\n/g);
for(var i = 0; i < lines.length; i++) {
@ -30,9 +41,9 @@ var getFreeMem = function(callback){
}
var freeMem = Number(lines[2][3]);
return callback(freeMem);
});
prc.on('close', function (code) {
}
return sysExec('free -b ', function(data) {
return parseFree(data, callback);
});
};
@ -71,15 +82,15 @@ var runner = function(req, res, ip){
var addToRedis = function(){
lxc.info(req.params.name, null, function(data){
var domain = req.query.domain || 'vm42.us';
domain = req.params.name+'.'+domain;
client.SADD("hosts", domain, function(){});
var domain = req.query.domain || 'vm42.us';
domain = req.params.name+'.'+domain;
client.SADD("hosts", domain, function(){});
var ip = data.ip + ':5000';
client.HSET(domain, "ip", ip, redis.print);
client.HSET(domain, "updated", (new Date).getTime(), redis.print);
client.hset(domain, "include", "proxy.include");
return res.json({status: 200, info: data});
var ip = data.ip + ':5000';
client.HSET(domain, "ip", ip, redis.print);
client.HSET(domain, "updated", (new Date).getTime(), redis.print);
client.hset(domain, "include", "proxy.include");
return res.json({status: 200, info: data});
});
};