Tâche #34468
Scénario #34467: EOLE 2.9 : Modifications de comportement étranges avec Bareos
scribe-fd ou scribe_fd
100%
Description
- bareosconfig.py -s manual
- bareosconfig.py -n --level=Full
- attente du résulat
bconsole -c /etc/bareos/bconsole.conf <<EOD @output /dev/null messages @output status dir quit EOD
- Recherche d'un fichier
root@scribe:~# bareosrestore.py --search Administration.url Recherche dans la sauvegarde Erreur à la recherche du fichier : ['Administration.url'] Le retour de la commande bconsole : Connecting to Director 127.0.0.1:9101 Encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 1000 OK: scribe-dir Version: 20.0.0 (16 December 2020) bareos.org build binary bareos.org binaries are UNSUPPORTED by bareos.com. Get official binaries and vendor support on https://www.bareos.com You are connected using the default console Enter a period (.) to cancel a command. restore FileSet=FileSetSauvegarde Client=scribe-fd select current yes Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" Could not find Client "scribe-fd": ERR=Client record not found in Catalog. Defined Clients: 1: bareos-fd 2: scribe_fd Select the Client (1-2): @output find Administration.url Expected a positive integer, got: find Administration.url Select the Client (1-2):
Si je modifie '-fd' en '_fd' à la ligne 151 du fichier /usr/lib/python3/dist-packages/pyeole/bareosrestore.py, j'obtiens le résultat attendu mais c'est pas normal...
root@scribe:/usr/lib/python3/dist-packages/pyeole# bareosrestore.py --search Administration.url Recherche dans la sauvegarde /home/workgroups/professeurs/Administration.url /home/adhomes/admin/perso/Administration.url
Révisions associées
run-bareos-restaure-complete.sh : hack temporaire pour 2.9.0 (ref: #34468)
Utiliser la variable existante plutôt que de reconstruire la valeur.
Ref #34468
Revert "run-bareos-restaure-complete.sh : hack temporaire pour 2.9.0 (ref: #34468)"
This reverts commit 61a32ee9b72f8fe175e062df4f5309009024ba9e.
Historique
#1 Mis à jour par Joël Cuissinat il y a plus de 3 ans
- Copié vers Tâche #34469: EOLE2.9 : bareos JobBytes ou result ajouté
#2 Mis à jour par Joël Cuissinat il y a plus de 3 ans
Ce "soucis" impacte directement la procédure de restauration puisque ce code est notamment utilisé pour la restauration de la base de données postgresql :
bareosrestore.py --postgresql Restauration postgressql Erreur lors de la récupération du catalogue
- https://dev-eole.ac-dijon.fr/jenkins/job/2.9.0/job/test-sauvegarde-bareos-restaure-full-amon-2.9.0-amd64/
- https://dev-eole.ac-dijon.fr/jenkins/job/2.9.0/job/test-sauvegarde-bareos-restaure-full-2.9.0-amd64/
- https://dev-eole.ac-dijon.fr/jenkins/job/2.9.0/job/test-sauvegarde-bareos-restaure-full-amonecole-2.9.0-amd64/
Je vais injecter un hack dans les tests Jenkins le temps que la lumière soit faite sur cette affaire ;)
#3 Mis à jour par Gilles Grandgérard il y a plus de 3 ans
- Tâche parente
#34467supprimé
#4 Mis à jour par Gilles Grandgérard il y a plus de 3 ans
- Tracker changé de Tâche à Scénario
- Début
19/07/2022supprimé - Release mis à Carnet de produit Cadoles - MEN
- Points de scénarios mis à 1.0
#5 Mis à jour par Gilles Grandgérard il y a plus de 3 ans
- Tracker changé de Scénario à Tâche
#6 Mis à jour par Gilles Grandgérard il y a plus de 3 ans
- Tâche parente mis à #34467
#7 Mis à jour par Joël Cuissinat il y a plus de 3 ans
- Copié vers Tâche #34469: EOLE2.9 : bareos JobBytes ou result supprimé
#8 Mis à jour par Benjamin Bohard il y a plus de 3 ans
Dans le dictionnaire 23_bareos.xml, on pré-remplit le nom du service de fichier bareos avec nom_machine + _fd (changement de cette dernière partie de -fd à _fd en raison du fonctionnement du code python de l’ead3 : le nom doit être un nom de variable python valide). Par contre, le changement n’a pas été répercuté dans le code de pyeole.bareosrestore. Le nom du serveur de fichier y est construit de son côté, indépendamment de la valeur de la variable bareos_fd_name.
Le changement dans le dictionnaire est présent depuis la version 2.7.0. Il faut envisager de corriger pyeole.bareosrestore à partir de 2.7.2 en utilisant la variable bareos_fd_name plutôt qu’en construisant à partir de nom_machine et de -fd
#9 Mis à jour par Benjamin Bohard il y a plus de 3 ans
- Statut changé de Nouveau à En cours
- Début mis à 23/08/2022
#10 Mis à jour par Benjamin Bohard il y a plus de 3 ans
- Assigné à mis à Benjamin Bohard
#11 Mis à jour par Benjamin Bohard il y a plus de 3 ans
Le code est incohérent pour les versions antérieures à 2.9 mais il est possible qu’un changement de comportement de bareos ne le rende problématique que sur les versions récentes.
En 2.8.1, la commande passée à bconsole se dispense du paramètre Client alors qu’elle semble nécessaire en 2.9. À moins qu’autre chose dans l’environnement d’exécution court-circuite ce choix du client en 2.8.1.
En 2.8.1, donc :
restore FileSet=FileSetSauvegarde Client=bareos-fd select current yes Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" Could not find Client "bareos-fd": ERR=Client record not found in Catalog. Automatically selected Client: scribe_fd
En 2.9.0 :
restore FileSet=FileSetSauvegarde Client=scribe-fd select current yes
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Could not find Client "scribe-fd": ERR=Client record not found in Catalog.
Defined Clients:
1: bareos-fd
2: scribe_fd
Select the Client (1-2):
#12 Mis à jour par Benjamin Bohard il y a plus de 3 ans
- Statut changé de En cours à À valider
- % réalisé changé de 0 à 100
#13 Mis à jour par Ludwig Seys il y a plus de 3 ans
- Statut changé de À valider à Résolu
#14 Mis à jour par Joël Cuissinat il y a plus de 3 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
C'est fonctionnel et les tests sont toujours verts sans le hack ;)