Projet

Général

Profil

Anomalie #3301

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

Ajouté par Emmanuel GARETTE il y a presque 12 ans. Mis à jour il y a presque 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
14/04/2012
Echéance:
% réalisé:

100%

Temps estimé:
0.50 h
Temps passé:
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

Révisions associées

Révision 4f97930b (diff)
Ajouté par Benjamin Bohard il y a presque 12 ans

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

Révision 3d28479c (diff)
Ajouté par Benjamin Bohard il y a presque 12 ans

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

Révision 07e40900 (diff)
Ajouté par Joël Cuissinat il y a presque 12 ans

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

Historique

#1 Mis à jour par Emmanuel GARETTE il y a presque 12 ans

s/Inconnue/Inconnu/

#2 Mis à jour par Emmanuel GARETTE il y a presque 12 ans

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

#3 Mis à jour par Joël Cuissinat il y a presque 12 ans

  • Version cible mis à Mises à jour 2.3.5 RC
  • Temps estimé mis à 0.50 h

#4 Mis à jour par Benjamin Bohard il y a presque 12 ans

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 Mis à jour par Benjamin Bohard il y a presque 12 ans

  • Statut changé de Nouveau à Résolu

#6 Mis à jour par Joël Cuissinat il y a presque 12 ans

  • Assigné à mis à Benjamin Bohard
  • % réalisé changé de 0 à 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 Mis à jour par Joël Cuissinat il y a presque 12 ans

  • Statut changé de Résolu à 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.
    

Formats disponibles : Atom PDF