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