incompréhension logique 3.5>3.75
Bonjour,
Voila mon code
Code:
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:
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:
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 :aie:
Si quelqu'un à une idée
Merci