Compare commits
2 Commits
07dc49fd13
...
c4245fe199
Author | SHA1 | Date |
---|---|---|
|
c4245fe199 | |
|
42d4537b23 |
|
@ -257,7 +257,7 @@ class Indicator extends PanelMenu.Button {
|
||||||
|
|
||||||
if ( ! col [ 'special' ] )
|
if ( ! col [ 'special' ] )
|
||||||
_child = new St.Label({ style_class: 'monito-label', text: text.toString(), });
|
_child = new St.Label({ style_class: 'monito-label', text: text.toString(), });
|
||||||
else if ( col.special == 'actions' )
|
else if ( col.special == 'actions' && this.serverLogic.canRecheck )
|
||||||
{
|
{
|
||||||
_child = new St.BoxLayout ( { x_expand: true,
|
_child = new St.BoxLayout ( { x_expand: true,
|
||||||
x_align: Clutter.ActorAlign.FILL,
|
x_align: Clutter.ActorAlign.FILL,
|
||||||
|
@ -389,7 +389,8 @@ class Indicator extends PanelMenu.Button {
|
||||||
|
|
||||||
infoBox.add_child ( this.createBin ( entry.status, entry [ _col ], column_definitions [ _col ] ) );
|
infoBox.add_child ( this.createBin ( entry.status, entry [ _col ], column_definitions [ _col ] ) );
|
||||||
}
|
}
|
||||||
infoBox.add_child ( this.createBin ( entry.status, entry, column_definitions [ 'actions' ] ) );
|
if ( this.serverLogic.canRecheck )
|
||||||
|
infoBox.add_child ( this.createBin ( entry.status, entry, column_definitions [ 'actions' ] ) );
|
||||||
|
|
||||||
_row ++;
|
_row ++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,8 @@ const Me = ExtensionUtils.getCurrentExtension();
|
||||||
const Preferences = Me.imports.prefs;
|
const Preferences = Me.imports.prefs;
|
||||||
|
|
||||||
|
|
||||||
class GenericServer {
|
class GenericServer {
|
||||||
|
|
||||||
constructor ( _server, _serverType = 'Generic' )
|
constructor ( _server, _serverType = 'Generic' )
|
||||||
{
|
{
|
||||||
log ( '>>> New %s server #%s'.format ( _serverType, _server ) );
|
log ( '>>> New %s server #%s'.format ( _serverType, _server ) );
|
||||||
|
@ -38,6 +39,8 @@ class GenericServer {
|
||||||
this._settings = Preferences.getAccountSettings ( this._server );
|
this._settings = Preferences.getAccountSettings ( this._server );
|
||||||
this._httpSession = null;
|
this._httpSession = null;
|
||||||
this._url = null;
|
this._url = null;
|
||||||
|
|
||||||
|
this.canRecheck = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
getServer ( )
|
getServer ( )
|
||||||
|
@ -105,6 +108,27 @@ class GenericServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleCMDMessage ( _httpSession, message )
|
||||||
|
{
|
||||||
|
let _data;
|
||||||
|
try {
|
||||||
|
_data = this.handleMessage ( _httpSession, message );
|
||||||
|
if ( this.error )
|
||||||
|
log ( 'Parent error ' + this.error );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// if error, grep for class='errorMessage'
|
||||||
|
// else grep for class='successBox'
|
||||||
|
log ( 'Cmd output ' + _data );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( e )
|
||||||
|
{
|
||||||
|
log ( e );
|
||||||
|
log ( _data );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
getProcessedStatus ( )
|
getProcessedStatus ( )
|
||||||
{
|
{
|
||||||
|
|
|
@ -104,26 +104,5 @@ class Icinga extends GenericServer {
|
||||||
log ( _data );
|
log ( _data );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleCMDMessage ( _httpSession, message )
|
|
||||||
{
|
|
||||||
let _data;
|
|
||||||
try {
|
|
||||||
_data = super.handleMessage ( _httpSession, message );
|
|
||||||
if ( this.error )
|
|
||||||
log ( 'Parent error ' + this.error );
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// if error, grep for class='errorMessage'
|
|
||||||
// else grep for class='successBox'
|
|
||||||
log ( 'Cmd output ' + _data );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch ( e )
|
|
||||||
{
|
|
||||||
log ( e );
|
|
||||||
log ( _data );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,8 @@ const GenericServer = Me.imports.servers.genericserver.GenericServer;
|
||||||
class Icinga2 extends GenericServer {
|
class Icinga2 extends GenericServer {
|
||||||
constructor ( _server ) {
|
constructor ( _server ) {
|
||||||
super(_server, 'Icinga2');
|
super(_server, 'Icinga2');
|
||||||
|
|
||||||
|
this.canRecheck = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh ( extension ) {
|
refresh ( extension ) {
|
||||||
|
|
|
@ -31,6 +31,7 @@ const GenericServer = Me.imports.servers.genericserver.GenericServer;
|
||||||
|
|
||||||
|
|
||||||
class Icinga2API extends GenericServer {
|
class Icinga2API extends GenericServer {
|
||||||
|
|
||||||
constructor ( _server ) {
|
constructor ( _server ) {
|
||||||
super(_server, 'Icinga2 API');
|
super(_server, 'Icinga2 API');
|
||||||
}
|
}
|
||||||
|
@ -46,13 +47,31 @@ class Icinga2API extends GenericServer {
|
||||||
{
|
{
|
||||||
super.prepareHttp ( );
|
super.prepareHttp ( );
|
||||||
|
|
||||||
let message = Soup.form_request_new_from_hash ( 'GET', this.urlcgi, { 'format': 'json' } );
|
let message = Soup.form_request_new_from_hash ( 'GET', this.urlcgi + '/objects/services', { } );
|
||||||
message.request_headers.append ( 'Accept', 'application/json' );
|
message.request_headers.append ( 'Accept', 'application/json' );
|
||||||
|
|
||||||
this.authenticateAndSend ( message );
|
this.authenticateAndSend ( message, this.handlePollMessage );
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMessage ( _httpSession, message )
|
recheck ( entry )
|
||||||
|
{
|
||||||
|
let message = Soup.form_request_new_from_hash ( 'POST', this.urlcgi + '/actions/reschedule-check', { } );
|
||||||
|
|
||||||
|
let params = '{ "type": "Service", "filter": "host.name==\\"%s\\" && service.name==\\"%s\\"", "force": true, "pretty": true }' . format ( encodeURI ( entry.host_name ), encodeURI ( entry.service_display_name ) );
|
||||||
|
|
||||||
|
message.request_body.truncate();
|
||||||
|
message.request_body.append ( params );
|
||||||
|
message.request_body.flatten();
|
||||||
|
|
||||||
|
log ( '> Body: ' + message.request_body.data );
|
||||||
|
|
||||||
|
message.request_headers.append ( 'Accept', 'application/json' );
|
||||||
|
log ( message.request_headers );
|
||||||
|
|
||||||
|
this.authenticateAndSend ( message, this.handleCMDMessage );
|
||||||
|
}
|
||||||
|
|
||||||
|
handlePollMessage ( _httpSession, message )
|
||||||
{
|
{
|
||||||
let _data = super.handleMessage ( _httpSession, message );
|
let _data = super.handleMessage ( _httpSession, message );
|
||||||
try
|
try
|
||||||
|
|
Loading…
Reference in New Issue