Overview over monitoring states in admin panel.
This commit is contained in:
parent
eb3e0d96be
commit
4ea37d59cd
4 changed files with 126 additions and 2 deletions
server
|
@ -4,6 +4,7 @@ angular.module('ffffng').factory('MonitoringResource', function (
|
|||
Constraints,
|
||||
Validator,
|
||||
MonitoringService,
|
||||
Logger,
|
||||
_,
|
||||
Strings,
|
||||
Resources,
|
||||
|
@ -12,6 +13,30 @@ angular.module('ffffng').factory('MonitoringResource', function (
|
|||
var isValidToken = Validator.forConstraint(Constraints.token);
|
||||
|
||||
return {
|
||||
getAll: function (req, res) {
|
||||
Resources.getValidRestParams('list', req, function (err, restParams) {
|
||||
if (err) {
|
||||
return Resources.error(res, err);
|
||||
}
|
||||
|
||||
return MonitoringService.getAll(
|
||||
restParams,
|
||||
function (err, monitoringStates, total) {
|
||||
if (err) {
|
||||
Logger.tag('monitoring', 'admin').error('Could not get monitoring states:', err);
|
||||
return Resources.error(res, {data: 'Internal error.', type: ErrorTypes.internalError});
|
||||
}
|
||||
|
||||
res.set('X-Total-Count', total);
|
||||
return Resources.success(res, _.map(monitoringStates, function (state) {
|
||||
state.mapId = _.toLower(state.mac).replace(/:/g, '');
|
||||
return state;
|
||||
}));
|
||||
}
|
||||
);
|
||||
});
|
||||
},
|
||||
|
||||
confirm: function (req, res) {
|
||||
var data = Resources.getData(req);
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@ angular.module('ffffng').factory('Router', function (
|
|||
app.put('/internal/api/tasks/enable/:id', TaskResource.enable);
|
||||
app.put('/internal/api/tasks/disable/:id', TaskResource.disable);
|
||||
|
||||
app.get('/internal/api/monitoring', MonitoringResource.getAll);
|
||||
|
||||
app.get('/internal/api/mails', MailResource.getAll);
|
||||
app.get('/internal/api/mails/:id', MailResource.get);
|
||||
app.delete('/internal/api/mails/:id', MailResource.delete);
|
||||
|
|
|
@ -15,7 +15,8 @@ angular.module('ffffng')
|
|||
Strings,
|
||||
UrlBuilder,
|
||||
Validator,
|
||||
Constraints
|
||||
Constraints,
|
||||
Resources
|
||||
) {
|
||||
var MONITORING_MAILS_DB_BATCH_SIZE = 50;
|
||||
var MONITORING_OFFLINE_MAILS_SCHEDULE = {
|
||||
|
@ -352,6 +353,53 @@ angular.module('ffffng')
|
|||
}
|
||||
|
||||
return {
|
||||
getAll: function (restParams, callback) {
|
||||
Database.get(
|
||||
'SELECT count(*) AS total FROM node_state',
|
||||
[],
|
||||
function (err, row) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var total = row.total;
|
||||
|
||||
var filter = Resources.filterClause(
|
||||
restParams,
|
||||
'id',
|
||||
[
|
||||
'id',
|
||||
'mac',
|
||||
'state',
|
||||
'last_seen',
|
||||
'import_timestamp',
|
||||
'last_status_mail_type',
|
||||
'last_status_mail_sent',
|
||||
'created_at',
|
||||
'modified_at'
|
||||
],
|
||||
[
|
||||
'mac',
|
||||
'state',
|
||||
'last_status_mail_type'
|
||||
]
|
||||
);
|
||||
|
||||
Database.all(
|
||||
'SELECT * FROM node_state WHERE ' + filter.query,
|
||||
_.concat([], filter.params),
|
||||
function (err, rows) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
callback(null, rows, total);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
confirm: function (token, callback) {
|
||||
NodeService.getNodeDataByMonitoringToken(token, function (err, node, nodeSecrets) {
|
||||
if (err) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue