Bonjour
je suis en train de d’écrire une unité pour générer des downtime ou plage de maintenance sur nos serveurs de supervisions (Zabbix, Nagios)
j'utilise Delphi 13 avec les deux patch
et environnement Windows et Linux
pour la partie Zabbix ras a premiere vue
mais Nagios il y a un petit soucis sous linux
pour générer un downtime il faut passer par un post sur une url du style
ce qui donne apres remplacement des varriables%APIBASE%/nrdp/?cmd=submitcmd&token=%TOKEN%&command=SCHEDULE_HOST_DOWNTIME;%HOST%;%DATEDEB%;%DATEFIN%;1%;0;0;%USER%;%COMMENTAIRE%
qui dans un curl, page web, .. fonctionne nickelht..s://supervision/NAEMON/api/nrdp/?cmd=submitcmd&token=montoken&command=SCHEDULE_HOST_DOWNTIME%3BSERVEUR001%3B1763624844%3B1763626044%3B1%3B0%3B0%3BFBASS%3BTest+V3.0+pour+vôir+éèç
la partie du code d’envoi rien de particulier ici j'ai commenter l'utilisation du tNetHTTPRequest mais çà change rien au souci
la déclaration du fNetHTTPClient est :// res := fNetHTTPRequest.get ( strCmdTmp );
res := fNetHTTPClient.get ( strCmdTmp );
pour l'utilisation du request j'avais mis un datamodule et placé les deux composant Client et request dessusfNetHTTPClient := TNetHTTPClient.Create( nil );
fNetHTTPClient.Asynchronous := False;
fNetHTTPClient.ConnectionTimeout := 1000;
fNetHTTPClient.ResponseTimeout := 1000;
fNetHTTPClient.HandleRedirects := True;
fNetHTTPClient.AllowCookies := True;
fNetHTTPClient.UserAgent := 'Embarcadero URI Client/1.0';
fNetHTTPClient.OnValidateServerCertificate := onValidateCerttificat;
fNetHTTPClient.UseDefaultCredentials := false;
le soucis que j'ai sous linux c'est que nrpd reçois en double les requêtes et donc me génère deux downtime
il semble que fNetHTTPClient envoie deux fois la requête sous linux[1763626112] SCHEDULE_HOST_DOWNTIME;SERVEUR001;1763624844;1763626044;1;0;0;FBASS;Test V3.0 pour vôir éèç
[1763626112] SCHEDULE_HOST_DOWNTIME;SERVEUR001;1763624844;1763626044;1;0;0;FBASS;Test V3.0 pour vôir éèç
malgré que le onreceivedata ne soit appelé qu'une fois
j'ai testé
- avec- sans les accents dans le commentairefNetHTTPClient.HandleRedirects := false;
suis je devant un bug tNetHTTPClient vs linux ou j'ai zappé quelque chose ?
ps le retour est le suivant
HTTP/1.1 200 OK
"<?xml version="1.0" encoding="utf-8"?> <result> <status>0</status> <message>OK</message> </result>








Répondre avec citation




Partager