Bonjour,

Voila mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
import getpass
import sys
import os
import commands
import string
 
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
 
#recuperation de l'ip de la sonde
HOTE = sys.argv[1]
 
OID = sys.argv[2]
 
 
valeur2 = sys.argv[3]
warning2 = sys.argv[4]
critical2 = sys.argv[5]
#requete snmp sur l'OID de t a sonde
commande = 'snmpget -v 1 -c public ' + HOTE +' '+ OID +' ' +'''| awk '{ print $4 } ' '''
resultat= commands.getoutput(commande)
#puissance = float(resultat)
#cpt=resultat.find('string:')  # a remplacer au besoin suivant ce que renvoie la commande snmpget precedente
valeur = eval(valeur2)
warning = eval(warning2)
critical = eval(critical2)
puissance = eval(resultat)
#puissance = float(resultat)
#puissance = resultat
print puissance
print valeur
print warning
print critical
print puissance >= (valeur - warning) and puissance <= (valeur + warning)
 
if puissance >= (valeur - warning) and puissance <= (valeur + warning) :
   print "Normal"
   sys.exit(STATE_OK)
#if puissance >= valeur -critical and puissance <= valeur - critical :
#   print "Danger"
#   sys.exit(STATE_WARNING)
#if puissance < valeur -critical or puissance > valeur - critical :
#   print "Critique"
#   sys.exit(STATE_CRITICAL)
#si rien trouver
print "resultat inconnu"
sys.exit(STATE_UNKNOWN)
 
print resultat
 
print puissance
voila ce qu'il me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
3.3
3.5
0.25
0.5
False
resultat inconnu
Jusqu'à nouvelle ordre 3.3 et inférieur à 3.75
Lorsque je test le code en ligne de commande le resultat est bon !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> print valeur 
3.5
>>> print puissance
3.3
>>> print warning
0.25
>>> print critique
0.5
>>> puissance >= (valeur - warning)
True
>>> puissance <= (valeur + warning)
True
>>> puissance >= (valeur - warning) and puissance <= (valeur + warning) 
True
Je ne comprend pas pourquoi il me sort false dans le programme

Si quelqu'un à une idée

Merci