Skip to content

Commit

Permalink
Merge bf024cb into e195a7b
Browse files Browse the repository at this point in the history
  • Loading branch information
itayw committed Aug 19, 2014
2 parents e195a7b + bf024cb commit 3623fd6
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 1 deletion.
5 changes: 4 additions & 1 deletion config/default.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 0.0.450
version: 0.1.2
interfaces:
webserver:
enabled: true
Expand Down Expand Up @@ -452,6 +452,9 @@ workspaces:
- "system:whoami"
- "system:version"
- "system:usage"
- "usage:last_write"
- "usage:last_read"
- "usage:last_use"
- "misc:see_private"
filter: []
user:
Expand Down
125 changes: 125 additions & 0 deletions lib/dispatch/usage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
/**
* @title joola
* @overview the open-source data analytics framework
* @copyright Joola Smart Solutions, Ltd. <info@joo.la>
* @license GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+>
*
* Licensed under GNU General Public License 3.0 or later.
* Some rights reserved. See LICENSE, AUTHORS.
**/

'use strict';

var
joola = require('../joola'),
router = require('../webserver/routes/index');

exports.last_write = {
name: "/usage/last_write",
description: "",
verb: 'GET',
inputs: [],
_outputExample: {},
_permission: ['usage:last_write'],
_dispatch: {
message: 'usage:last_write'
},
run: function (context, callback) {
callback = callback || function () {
};

var user = {
username: 'user',
password: 'pass',
workspace: '_stats',
roles: ['reader']
};
joola.users.generateToken({context: joola.SYSTEM_USER}, user, function (err, token) {
var query = {
timeframe: 'last_1_items',
dimensions: ['timestamp', 'workspace', 'collection'],
metrics: ['writeCount'],
collection: 'writes',
filter: []
};

joola.query.fetch({user: token.user}, query, function (err, result) {
console.log(err, result.documents);
if (result.documents && result.documents.length > 0)
return callback(null, result.documents[0].fvalues);
else
return callback(new Error('Failed to locate writes'));
});
});
}
};

exports.last_read = {
name: "/usage/last_read",
description: "",
verb: 'GET',
inputs: [],
_outputExample: {},
_permission: ['usage:last_read'],
_dispatch: {
message: 'usage:last_read'
},
run: function (context, callback) {
callback = callback || function () {
};

var user = {
username: 'user',
password: 'pass',
workspace: '_stats',
roles: ['reader']
};
joola.users.generateToken({context: joola.SYSTEM_USER}, user, function (err, token) {
var query = {
timeframe: 'last_1_items',
dimensions: ['timestamp'],
metrics: ['readCount'],
collection: 'reads',
filter: []
};

joola.query.fetch({user: token.user}, query, function (err, result) {
console.log(err, result.documents);
if (result.documents && result.documents.length > 0)
return callback(null, result.documents[0].fvalues);
else
return callback(new Error('Failed to locate reads'));
});
});
}
};

exports.last_use = {
name: "/usage/last_use",
description: "",
verb: 'GET',
inputs: [],
_outputExample: {},
_permission: ['usage:last_use'],
_dispatch: {
message: 'usage:last_use'
},
run: function (context, callback) {
callback = callback || function () {
};

exports.last_write.run(joola.SYSTEM_USER, function (err, last_write) {
if (err)
return callback(err);
return exports.last_read.run(joola.SYSTEM_USER, function (err, last_read) {
if (err)
return callback(err);

return callback(null, {
last_write: last_write,
last_read: last_read
});
});
});
}
};
1 change: 1 addition & 0 deletions lib/webserver/middleware/meta.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ module.exports = function serviceMeta() {
metrics: require('../../dispatch/metrics'),
config: require('../../dispatch/config'),
alerts: require('../../dispatch/alerts'),
usage: require('../../dispatch/usage'),
test: require('../../dispatch/test')
};
delete describe.beacon.etl;
Expand Down
4 changes: 4 additions & 0 deletions lib/webserver/routes/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,10 @@ exports.setup = function (app) {
app.get('/system/nodeUID', middleware('/system/nodeUID'), exports.router);
app.get('/system/nodeDetails', middleware('/system/nodeDetails'), exports.router);

app.get('/usage/last_write', middleware('/usage/last_write'), exports.router);
app.get('/usage/last_read', middleware('/usage/last_read'), exports.router);
app.get('/usage/last_use', middleware('/usage/last_use'), exports.router);

app.post('/config/:key', middleware('/config/set'), exports.router);
app.get('/config/:key', middleware('/config/get'), exports.router);
app.patch('/config/:key', middleware('/config/set'), exports.router);
Expand Down

0 comments on commit 3623fd6

Please sign in to comment.