130 lines
3.5 KiB
JavaScript
130 lines
3.5 KiB
JavaScript
Machines = new Mongo.Collection("machines");
|
|
|
|
Meteor.startup(function() {
|
|
|
|
Meteor.methods({
|
|
updateConfiguration: function (machineId, configId, data) {
|
|
console.log('saving !!!!', machineId, configId, data);
|
|
Machines.update({
|
|
machineId: machineId,
|
|
"configurations._id": configId
|
|
}, {
|
|
$set: {
|
|
"configurations.$.content": data.content,
|
|
"configurations.$.filePath": data.filePath,
|
|
"configurations.$.description": data.description
|
|
}
|
|
});
|
|
return "ok";
|
|
}
|
|
});
|
|
var bodyParser = Meteor.npmRequire('body-parser');
|
|
Picker.middleware(bodyParser.urlencoded({ extended: false }));
|
|
Picker.middleware(bodyParser.json());
|
|
// code to run on server at startup
|
|
Picker.route('/api/machines', function(params, req, res, next) {
|
|
var allMachines = Machines.find({});
|
|
res.end(JSON.stringify(allMachines.fetch()));
|
|
});
|
|
|
|
Picker.route('/api/machine', function(params, req, res, next) {
|
|
console.log(params, req.body);
|
|
// Hostname string
|
|
// Platform string
|
|
// Architecture string
|
|
// MachineGuid string
|
|
var data = req.body;
|
|
Machines.update({
|
|
machineId: data.MachineGuid
|
|
}, { $set: {
|
|
hostname: data.Hostname,
|
|
status: 'OK',
|
|
platform: data.Platform,
|
|
architecture: data.Architecture
|
|
}}, {upsert: true});
|
|
// return res.end()"ok";
|
|
res.end("ok");
|
|
});
|
|
|
|
Picker.route('/api/templates/:type', function(params, req, res, next) {
|
|
var type = params.type;
|
|
var fs = Meteor.npmRequire('fs');
|
|
var path = Meteor.npmRequire('path');
|
|
|
|
var template = Async.runSync(function(done) {
|
|
// github.gists.getFromUser({user: 'arunoda'}, function(err, data) {
|
|
// done(null, data);
|
|
// });
|
|
fs.readFile(path.resolve('../public/configs/' + type + '.conf'), function(err, data) {
|
|
console.log('done!', err, data);
|
|
done(null, data);
|
|
});
|
|
|
|
});
|
|
|
|
console.log('done received!', template);
|
|
res.end(template.result);
|
|
});
|
|
|
|
|
|
// Global API configuration
|
|
// Restivus.configure({
|
|
// prettyJson: true,
|
|
// useAuth: false
|
|
// });
|
|
//
|
|
// Restivus.addCollection(Machines);
|
|
// Restivus.addRoute('post/:_id', {
|
|
// get: function() {
|
|
// var id = this.urlParams._id; // "5"
|
|
// return {
|
|
// hamo: 1
|
|
// }
|
|
// }
|
|
// });
|
|
//
|
|
// Restivus.addRoute('/api/templates/:type', {
|
|
//
|
|
// }, {
|
|
// get: {
|
|
// action: function() {
|
|
// var type = this.urlParams.type;
|
|
// var fs = Meteor.npmRequire('fs');
|
|
//
|
|
// var template = Async.runSync(function(done) {
|
|
// // github.gists.getFromUser({user: 'arunoda'}, function(err, data) {
|
|
// // done(null, data);
|
|
// // });
|
|
// fs.readFile('../public/configs/' + type + '.conf', function(err, data) {
|
|
// done(null, data);
|
|
// });
|
|
//
|
|
// });
|
|
//
|
|
// return template.result;
|
|
// }
|
|
// }
|
|
// })
|
|
// Restivus.addRoute('/api/machines', {
|
|
// // authRequired: false
|
|
// }, {
|
|
// get: {
|
|
// action: function() {
|
|
// var allMaMachines = Machines.find({});
|
|
// return {
|
|
// meho:1,
|
|
// data: allMaMachines
|
|
// };
|
|
// }
|
|
// // var post = Posts.findOne(this.urlParams.id);
|
|
// // if (post) {
|
|
// // return {status: 'success', data: post};
|
|
// // }
|
|
// // return {
|
|
// // statusCode: 404,
|
|
// // body: {status: 'fail', message: 'Post not found'}
|
|
// // };
|
|
// }
|
|
// });
|
|
});
|