IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Script python non compatible en v2.2 ?


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Script python non compatible en v2.2 ?
    Bonjour,

    J'ai récupéré un script écrit en python (permettant de faire des checks d'une carte RAID pour Nagios). Le script renvoi des erreurs à son exécution. Je pense que cela vient de la version de python qui est installée (2.2.3). J'ai essayé d'upgrader la version de Python, mais compte-tenu de l'OS (une CentOS 3.9), cela ne semble pas possible.
    Je n'ai pas de connaissances suffisantes en python pour savoir ce qu'il faudrait retoucher pour le rendre compatible avec la version 2.2.3 (si toutefois le problème d'exécution vient bien de la version).

    J'ai mis le script en question en pièce jointe.

    Voici les messages d'erreur que j'ai en retour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Traceback (most recent call last):
      File "./check_lsi_megaraid", line 311, in ?
        main()
      File "./check_lsi_megaraid", line 304, in main
        result, message = test_raid(verbosity, no_summary)
      File "./check_lsi_megaraid", line 183, in test_raid
        if "Status:" in line:
    TypeError: 'in <string>' requires character as left operand
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Bonjour,



    Ayant téléchargé ta pièce jointe, la ligne 83 est celle ci:

    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
    for line in detailed_output:
    # Les line sont des éléments de detailed_output
     
    detailed_output = run("-dispCfg -a%s" % controller )
    #detailed_output est la sortie de la fonction run()
     
    # run() renvoie un objet lines qui a été crée par 
    lnes = output.split("\n")
     
    result, output = commands.getstatusoutput(cmd)
    #output est le deuxième élément d’un couple qui recueille 
    # la sortie de commands.getstatusoutput(cmd)
     
    #commands est un module que tu importes, on ne peut donc 
    #pas remonter plus haut





    Je te suggere de remplacer les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            array_details = {}
            for line in detailed_output:
                if "Status:" in line:
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            array_details = {}
            print 'type(detailed_output) =',type(detailed_output)
            for i,line in enumerate(detailed_output):
                print 'i = '+str(i)+'  typ(line i) = '+repr(type(line))
                if "Status:" in line:



    et d’autre part remplacer les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       result, output = commands.getstatusoutput(cmd)
        lines = output.split("\n")
        if result != 0:
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        result, output = commands.getstatusoutput(cmd)
        print 'type(output =',type(output)
        lines = output.split("\n")
        print 'map(len,lines) =\n'+repr(map(len,lines))
        if result != 0:

    et de nous donner les résultats.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 291
    Points : 36 786
    Points
    36 786
    Par défaut
    Salut

    Le script python exécute le programme /megarc.bin et en analyse la sortie.

    Si çà ne fonctionne pas, regardez d'abord la sortie de l'exécution de megarc.bin i.e. à quoi ressemble la sortie.

    Note: tel qu'est construit le code, l'exécution se passe 'bien' mais Le contenu de detailed_output est une suite de lignes vides.

    Essayez de récupérer et installer ut_linux_megarc_1.11.zip

    Si ca ne marche toujours pas, lancez le script en ajoutant --verbosity=3 et postez le résultat.

    - W

Discussions similaires

  1. script non compatible IE 8/ Google chrome
    Par awalter1 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 25/01/2012, 12h05
  2. Script non compatible Chrome
    Par TRUNCKS dans le forum jQuery
    Réponses: 3
    Dernier message: 23/06/2011, 14h08
  3. Réponses: 10
    Dernier message: 14/07/2009, 18h39
  4. [W3C] Balise <MARQUEE> non compatible W3C
    Par grospaulo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 08/09/2005, 10h39
  5. Réponses: 3
    Dernier message: 05/04/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo