Implement recheck

This commit is contained in:
Benjamin Drieu 2021-12-01 16:18:30 +01:00 committed by Benjamin Drieu
parent 07dc49fd13
commit 42d4537b23
1 changed files with 22 additions and 3 deletions

View File

@ -31,6 +31,7 @@ const GenericServer = Me.imports.servers.genericserver.GenericServer;
class Icinga2API extends GenericServer {
constructor ( _server ) {
super(_server, 'Icinga2 API');
}
@ -46,13 +47,31 @@ class Icinga2API extends GenericServer {
{
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' );
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 );
try