Project

General

Profile

Anomalie #3301

Agent Zéphir : met une diode verte même si erreur + pas de vérification au diagnose

Added by Emmanuel GARETTE over 11 years ago. Updated over 11 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Category:
-
Start date:
04/14/2012
Due date:
% Done:

100%

Estimated time:
0.50 h
Spent time:
Distribution:
EOLE 2.3

Description

L'agent Zéphir est vert ou gris, mais jamais rouge, même si la sauvegarde est en erreur.

Voici un patch pour corriger :

--- sauvegarde.py    2012-04-12 14:35:24.000000000 +0200
+++ /usr/lib/python2.6/dist-packages/zephir/monitor/agents/sauvegarde.py    2012-04-14 16:32:21.000000000 +0200
@@ -33,11 +33,14 @@
         ret_ctlg = bacula_rapport_load('catalogue')
         self.status = {BACULA_RAPPORT_UNKNOWN: status.Unknown(),
                 BACULA_RAPPORT_OK: status.OK(),
-                BACULA_RAPPORT_ERR: status.Unknown()}.get(ret_svg[0])
-        res = [{ 'status': boolean_to_onoff(ret_svg[0]),
+                BACULA_RAPPORT_ERR: status.Error()}.get(ret_svg[0])
+        c_status = {BACULA_RAPPORT_UNKNOWN: status.Unknown(),
+                BACULA_RAPPORT_OK: status.OK(),
+                BACULA_RAPPORT_ERR: status.Error()}.get(ret_ctlg[0])
+        res = [{ 'status': self.status,
                  'type': 'sauvegarde',
                  'comment': ret_svg[1]},
-               { 'status': boolean_to_onoff(ret_ctlg[0]),
+                 { 'status': c_status,
                  'type': 'catalogue',
                  'comment': ret_ctlg[1]}]
         return {'statistics': res }

Il n'y a pas de vérification de la sauvegarde dans le diagnose. Voici un patch (dont je ne suis pas spécialement fière mais bon) :

--- /tmp/153-bacula    2012-04-14 16:38:17.804576866 +0200
+++ 153-bacula    2012-04-14 19:00:17.838329288 +0200
@@ -47,6 +47,19 @@
     else
         EchoRouge "Erreur" 
     fi
-echo
+    #copier depuis pyeole/bacula.py
+    BACULA_RAPPORT_OK="1" 
+    BACULA_RAPPORT_ERR="-1" 
+    BACULA_RAPPORT_UNKNOWN="0" 
+    eval `/usr/bin/env python -c 'from pyeole.bacula import bacula_rapport_load; rap = bacula_rapport_load("sauvegarde"); print "RAP[0]=\"%s\"; RAP[1]=\"%s\";"%(rap[0], rap[1])'`
+    printf ".  %${len_pf}s => " "Statut de la sauvegarde" 
+    if [ "$RAP" = $BACULA_RAPPORT_OK ]; then
+        EchoVert "Ok : ${RAP[1]}" 
+    elif [ "$RAP" = $BACULA_RAPPORT_ERR ]; then
+        EchoRouge "Erreur : ${RAP[1]}" 
+    else
+        EchoOrange "Inconnue : ${RAP[1]}" 
+    fi
+    echo
 fi
 exit 0

Associated revisions

Revision 4f97930b (diff)
Added by Benjamin Bohard over 11 years ago

l'agent zéphir ne calcul pas les statuts convenablement

Plusieurs problèmes : une inadéquation entre le statut lu depuis le
fichier et le statut attribué (BACULA_RAPPORT_ERREUR -> status.Unknown),
le statut général ne reflète que l'état de la sauvegarde principale.

  • zephir/monitor/agents/sauvegarde.py : correction du statut,
    utilisation de trois variables pour le statut de la sauvegarde
    générale, le statut de la sauvegarde du catalogue et le statut
    général, ce dernier étant calculé en fonction des deux autres.

Ref #3301

Revision 3d28479c (diff)
Added by Benjamin Bohard over 11 years ago

Vérification des statuts de sauvegarde dans diagnose

  • eole/diagnose/module/153-bacula : interrogation du fichier
    /var/lib/eole/reports/resultat-bacula dans le diagnose pour afficher le
    statut des sauvegardes à l'aide de la fonction bacula_rapport_load de
    pyeole/bacula.py.

Ref #3301

Revision 07e40900 (diff)
Added by Joël Cuissinat over 11 years ago

  • 153-bacula : ne teste le support que si bacula-sd est activé
    Ref #3301 @10m

History

#1 Updated by Emmanuel GARETTE over 11 years ago

s/Inconnue/Inconnu/

#2 Updated by Emmanuel GARETTE over 11 years ago

Si le catalogue est en erreur, la diode générale est encore verte. Il faudrait tester si les 2 sont verts.

#3 Updated by Joël Cuissinat over 11 years ago

  • Target version set to Mises à jour 2.3.5 RC
  • Estimated time set to 0.50 h

#4 Updated by Benjamin Bohard over 11 years ago

La classe status (zephir-client/zephir/monitor/agentmanager/status.py) surcharge la méthode cmp suivant la liste ordonnée croissante suivante : Unknown, OK, Warn, Error, Dependant. Une possibilité pour combiner plusieurs statuts consiste à prendre le max. Unknown n'est peut-être pas bien placé dans ce cas.

La fonction mesure calcule trois statuts différents : le statut de la sauvegarde principale, le statut de la sauvegarde du catalogue et le statut général combinant les deux premiers.

def measure(self):
        ret_svg = bacula_rapport_load('sauvegarde')
        ret_ctlg = bacula_rapport_load('catalogue')
        status_svg = {BACULA_RAPPORT_UNKNOWN: status.Unknown(),
                BACULA_RAPPORT_OK: status.OK(),
                BACULA_RAPPORT_ERR: status.Error()}.get(ret_svg[0])
        status_ctlg = {BACULA_RAPPORT_UNKNOWN: status.Unknown(),
                BACULA_RAPPORT_OK: status.OK(),
                BACULA_RAPPORT_ERR: status.Error()}.get(ret_ctlg[0])
        res = [{ 'status': status_svg,
                 'type': 'sauvegarde',
                 'comment': ret_svg[1]},
               { 'status': status_ctlg,
                 'type': 'catalogue',
                 'comment': ret_ctlg[1]}]
        self.status = max(status_svg, status_ctlg)
        logger.error(str(self.status))
        return {'statistics': res }

#5 Updated by Benjamin Bohard over 11 years ago

  • Status changed from Nouveau to Résolu

#6 Updated by Joël Cuissinat over 11 years ago

  • Assigned To set to Benjamin Bohard
  • % Done changed from 0 to 100
<Icephale> je n'ai pas eu de souci avec mes tests
<Icephale> il reste une question en suspend : l'ordre des statuts est-il adéquat ?

#7 Updated by Joël Cuissinat over 11 years ago

  • Status changed from Résolu to Fermé

Test avec un chemin de support invalide :

  • Zéphir => diode rouge :
    Statut Type de sauvegarde Dernière sauvegarde
    Off sauvegarde Sauvegarde échouée le Wednesday 13 June 2012 à 15:06.
    Off catalogue Sauvegarde échouée le Wednesday 13 June 2012 à 15:06.
  • diagnose :
    .          Montage du support => Erreur
    Statut des sauvegardes :
    .      sauvegarde principale => Erreur : Sauvegarde échouée le mercredi 13 juin 2012 à 15:06.
    .       sauvegarde catalogue => Erreur : Sauvegarde échouée le mercredi 13 juin 2012 à 15:06.
    

Also available in: Atom PDF