Skip to content

Commit 33f97cc

Browse files
cemersozDerekTBrown
authored andcommitted
Meteor.methods and api changes (#122)
* issue 32 fixed * removed swp * fixed nconf issues * issue 82, 84 fixes * fixed #82 * isse #77 * fixed tests * fixed files * fixed tests master * fixed comment * moved validator * removed duplicate file * fixed tests, removed duplicate underscore, publish * changes * fixed methods.ts import * fixed issues w methods * fixes * minor fixes * A * api changes
1 parent 09ad63a commit 33f97cc

File tree

4 files changed

+34
-5
lines changed

4 files changed

+34
-5
lines changed

server/imports/api/lab.env.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
var dockerode = require('dockerode');
33
// Import other libraries
44
var async = require('async');
5-
var underscore = require('underscore');
5+
var etcd = require('node-etcd');
66
var nconf = require('nconf');
77

88
/* constructor
@@ -370,7 +370,7 @@ env.prototype.shell = function(vmName,command,opts) {
370370
*/
371371
env.prototype.getPass = function(vmName,callback){
372372
this.shell1(vmName, "cat /pass")
373-
.then(function(sOut){ callback(sOut); }, function(s1,s2,s3){callback(s1,s2,s3);});
373+
.then(function(sOut){ callback(null,null,sOut); }, function(s1,s2,s3){callback(s1,s2,s3);});
374374
}
375375
env.prototype.getNetwork = function() {} //Don't know what this does
376376
env.prototype.getVolume = function() {} //Don't know what this does

server/imports/api/lab.session.d.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace lab_exec {
2+
interface labExec{
3+
var env : any;
4+
var tuxlab : any;
5+
function init(user : string, labId : number, callback : any)
6+
function parseTasks() : any
7+
function start(callback : any) : any
8+
function next(callback : any) : any
9+
function end(callback : any) : any
10+
11+
}
12+
function labExec() : any
13+
}

server/imports/api/lab.session.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ session.prototype.init = function(user,labId,callback){
1515
this.env.setUser(user);
1616

1717
// Get Metadata from Database
18-
var lab = Collections.labs.findOne({_id: lab_id}, {fields: {'file' : 0}}).fetch();
19-
if(lab.length < 0){
18+
var lab = Collections.labs.findOne({_id: labId}, {fields: {'file' : 0}});
19+
if(!lab || lab.length < 0){
2020
callback(new Error("Lab Not Found.", null));
2121
}
2222
else{

server/imports/lab/methods.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,24 @@ Meteor.methods({
55
* callback: (err,parseTasks,labExec)
66
*/
77
'prepareLab': function(labId : number,callback : any){
8-
var lab = require('../api/lab.session.js');
8+
var session = require('../api/lab.session.js');
99
var uId = Meteor.userId();
10+
session.init(uId,labId,function(err,res){
11+
session.env.getPass(function(err1,err2,pass){
12+
if(err1){
13+
TuxLog.log("debug","error getting pass from labVm container: "+err1);
14+
callback("Internal Service Error",null);
15+
}
16+
else if(err2){
17+
TuxLog.log("debug","error getting pass from labVm container: "+err2);
18+
callback("Internal Service Error",null);
19+
}
20+
else{
21+
var resolve = {'pass': pass}
22+
callback(null,resolve);
23+
}
24+
});
25+
});
1026
return uId;
1127
/**lab.init(userId,labId,cb)
1228
* cb(err,parsedTasks) cache session in cb, get rid of parsedTasks if unnecessary

0 commit comments

Comments
 (0)