This commit is contained in:
William Mantly 2016-01-29 17:09:04 -05:00
parent bf068177fb
commit b297c1b749
2 changed files with 10 additions and 9 deletions

17
lxc.js
View File

@ -3,6 +3,7 @@ module.exports = function(config){
var cmd = require('node-cmd'); var cmd = require('node-cmd');
var sysExec = function(command, callback){ var sysExec = function(command, callback){
console.log('sysExec --', command)
cmd.get('unset XDG_SESSION_ID XDG_RUNTIME_DIR; cgm movepid all virt $$; '+command, callback) cmd.get('unset XDG_SESSION_ID XDG_RUNTIME_DIR; cgm movepid all virt $$; '+command, callback)
} }
/* var obj = {}; /* var obj = {};
@ -60,14 +61,14 @@ module.exports = function(config){
sysExec(cmd, callback); sysExec(cmd, callback);
}; };
obj.startEphemeral = function(name, base_name, cbData){ obj.startEphemeral = function(name, base_name, callback){
var output = ''; var output = '';
sysExec('lxc-start-ephemeral -o '+base_name+ ' -n '+name +' --union-type overlayfs -d', function(data){output+=data}, function(error){ sysExec('lxc-start-ephemeral -o '+base_name+ ' -n '+name +' --union-type overlayfs -d', function(data){output+=data}, function(error){
if(output.match("doesn't exist.")) return cbData({status: 500, error: "doesn't exist."}); if(output.match("doesn't exist.")) return callback({status: 500, error: "doesn't exist."});
if(output.match("already exists.")) return cbData({status: 500, error: "already exists"}); if(output.match("already exists.")) return callback({status: 500, error: "already exists"});
if(output.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)) return cbData({status: 200, state:'RUNNING', ip: output.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)[0]}); if(output.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)) return callback({status: 200, state:'RUNNING', ip: output.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)[0]});
cbData({'?': '?', data: output, name: name, base_name: base_name}); callback({'?': '?', data: output, name: name, base_name: base_name});
}); });
}; };
@ -85,18 +86,18 @@ module.exports = function(config){
sysExec('lxc-unfreeze -n '+name, cbComplete, cbData); sysExec('lxc-unfreeze -n '+name, cbComplete, cbData);
}; };
obj.info = function(name, cbData){ obj.info = function(name, callback){
var output = ''; var output = '';
sysExec('lxc-info -n'+name, function(data){output+=data}, function(error){ sysExec('lxc-info -n'+name, function(data){output+=data}, function(error){
if(output.match("doesn't exist")) return cbData({state: 'NULL'}); if(output.match("doesn't exist")) return callback({state: 'NULL'});
var info = {}; var info = {};
output = output.replace(/\suse/ig, '').replace(/\sbytes/ig, '').split("\n").slice(0,-1); output = output.replace(/\suse/ig, '').replace(/\sbytes/ig, '').split("\n").slice(0,-1);
for(var i in output){ for(var i in output){
var temp = output[i].split(/\:\s+/); var temp = output[i].split(/\:\s+/);
info[temp[0].toLowerCase().trim()] = temp[1].trim(); info[temp[0].toLowerCase().trim()] = temp[1].trim();
} }
cbData(info); callback(info);
}); });
}; };

View File

@ -26,7 +26,7 @@
if(data.state === 'RUNNING'){ if(data.state === 'RUNNING'){
var url = '//'+data.name+'.vm42.us'; var url = '//'+data.name+'.vm42.us';
data.url = '<a href="'+url+'" target="_blank">'+url+'</a>'; data.url = '<a href="'+url+'" target="_blank">'+url+'</a>';
}else if( data.state !== "RUNNING" && data.name.match(/_template/) ){ }else if( data.state !== "RUNNING" && data.name.match(/\w\w/) ){
data.clone = $('#cloneFormTemplate').html(); data.clone = $('#cloneFormTemplate').html();
} }