From dcf7faad332df1b2375d25b650b9d6c6de71722b Mon Sep 17 00:00:00 2001 From: william Date: Fri, 29 Jan 2016 18:04:35 -0500 Subject: [PATCH 1/3] added strict --- routes/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/api.js b/routes/api.js index 1236a40..327ef37 100644 --- a/routes/api.js +++ b/routes/api.js @@ -37,9 +37,9 @@ router.get('/live/:template/:name', function(req, res, next){ }); router.get('/stop/:name', function(req, res, next){ - lxc.stop(req.params.name, function(data, message){ + lxc.stop(req.params.name, function(data){ if(data){ - res.json({status: 500, name: req.params.name, message: message}); + res.json({status: 500, name: req.params.name, message: data}); }else{ res.json({status: 200}); } From 2585509f6d0904c271019e1594bd53d99f9fa8b3 Mon Sep 17 00:00:00 2001 From: william Date: Fri, 29 Jan 2016 18:37:54 -0500 Subject: [PATCH 2/3] reformated LXC --- lxc.js | 89 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/lxc.js b/lxc.js index 59c70d3..1446b58 100644 --- a/lxc.js +++ b/lxc.js @@ -1,62 +1,66 @@ 'use strict'; +var cmd = require('node-cmd'); -module.exports = function(config){ - var obj = {}; - var cmd = require('node-cmd'); +var sysExec = function(command, callback){ + // console.log('sysExec: ', command, '||| callback:', callback) + cmd.get('unset XDG_SESSION_ID XDG_RUNTIME_DIR; cgm movepid all virt $$; '+command, callback); +}; - var sysExec = function(command, callback){ - // console.log('sysExec: ', command, '||| callback:', callback) - cmd.get('unset XDG_SESSION_ID XDG_RUNTIME_DIR; cgm movepid all virt $$; '+command, callback) - } - - obj.create = function(name, template, config, cbComplete){ +var lxc = { + create: function(name, template, config, cbComplete){ sysExec('lxc-create -n '+name+' -t '+template, cbComplete); - }; - - obj.clone = function(name, base_name, callback){ + }, + + clone: function(name, base_name, callback){ sysExec('lxc-clone -o '+base_name+ ' -n '+name +' -B overlayfs -s', callback); - }; + }, - obj.destroy = function(name, callback){ + destroy: function(name, callback){ sysExec('lxc-destroy -n '+ name, function(data){ - callback(!data.match(/Destroyed container/)) + callback(!data.match(/Destroyed container/)); }); - }; + }, - obj.start = function(name, callback){ + start: function(name, callback){ var cmd = 'lxc-start --name '+name+' --daemon'; - console.log('start cmd\n', cmd, '\n'); sysExec(cmd, callback); - }; - - obj.startEphemeral = function(name, base_name, callback){ + }, + + startEphemeral: function(name, base_name, callback){ var output = ''; sysExec('lxc-start-ephemeral -o '+base_name+ ' -n '+name +' --union-type overlayfs -d', function(data){ - if(data.match("doesn't exist.")) return callback({status: 500, error: "doesn't exist."}); - if(data.match("already exists.")) return callback({status: 500, error: "already exists"}); - if(data.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)) return callback({status: 200, state:'RUNNING', ip: data.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)[0]}); + if(data.match("doesn't exist.")){ + return callback({status: 500, error: "doesn't exist."}); + } + if(data.match("already exists.")){ + return callback({status: 500, error: "already exists"}); + } + if(data.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)){ + return callback({status: 200, state:'RUNNING', ip: data.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)[0]}); + } + callback({'?': '?', data: data, name: name, base_name: base_name}); }); - }; + }, - obj.stop = function(name, callback){ - console.log('stop', name); + stop: function(name, callback){ sysExec('lxc-stop -n '+ name, callback); - }; + }, - obj.freeze = function(name, callback){ + freeze: function(name, callback){ sysExec('lxc-freeze -n '+name, callback); - }; - - obj.unfreeze = function(name, callback){ + }, + + unfreeze: function(name, callback){ sysExec('lxc-unfreeze -n '+name, callback); - }; - - obj.info = function(name, callback){ - var output = ''; + }, + + info: function(name, callback){ sysExec('lxc-info -n '+name, function(data){ - console.log('info', name, data) - if(data.match("doesn't exist")) return callback({state: 'NULL'}); + if(data.match("doesn't exist")){ + return callback({state: 'NULL'}); + } + var info = {}; data = data.replace(/\suse/ig, '').replace(/\sbytes/ig, '').split("\n").slice(0,-1); for(var i in data){ @@ -65,9 +69,9 @@ module.exports = function(config){ } callback(info); }); - }; + }, - obj.list = function(callback){ + list: function(callback){ sysExec('lxc-ls --fancy', function(data){ var output = data.split("\n"); var keys = output.splice(0,1)[0].split(/\s+/).slice(0,-1); @@ -87,7 +91,6 @@ module.exports = function(config){ } callback(info); }); - }; - - return obj; + } }; +module.exports = lxc; From 9ab8388a9ebfc0438551b143a0d53ad56d925070 Mon Sep 17 00:00:00 2001 From: william Date: Fri, 29 Jan 2016 18:39:22 -0500 Subject: [PATCH 3/3] removed all syntax --- routes/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/api.js b/routes/api.js index 327ef37..171e226 100644 --- a/routes/api.js +++ b/routes/api.js @@ -5,7 +5,7 @@ var router = express.Router(); var extend = require('node.extend'); var redis = require("redis"); var client = redis.createClient(); -var lxc = require('../lxc')(); +var lxc = require('../lxc'); //lxc.startEphemeral('ubuntu_template', 'ue0', function(){console.log('cb1', arguments)}, function(){console.log('cb2', arguments)}) router.get('/start/:name', function(req, res, next){ lxc.start(req.params.name, function(status, message){