Project

General

Profile

Scénario #26277

Sauvegarde ERA vers zephir

Added by Philippe Carre over 2 years ago. Updated over 1 year ago.

Status:
Terminé (Sprint)
Priority:
Normal
Assigned To:
-
Category:
-
Start date:
11/04/2019
Due date:
12/13/2019
% Done:

100%

Story points:
4.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
Auto

Description

Suite à des envois groupés de conf la semaine dernière, on s'est retrouvé avec plusieurs eSSL HS le w.e. dernier!
Le pb est que sur ces serveurs le fichier modèle local n'était pas correct. D'où le plantage apres récupération de ce fichier et reconfigure.

J'ai testé :

dans ERA
ouverture fichier local 4zones-essl.xml
Zephir - Envoi à zephir (sans enregistrer le fichier)
=> sur Zephir :
/usr/share/eole/bastion/modeles Pourquoi ce dossier ?? Non présent sur le serveur.
<firewall name="/tmp/tmpxiTAgN" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42">

Fichier - Enregistrer
Zephir - Envoi à zephir
=> sur Zephir :
/usr/share/eole/bastion/modeles
<firewall name="/tmp/tmpoUwumd" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42">

Ajout d'une règle
Fichier - Enregistrer
Zephir - Envoi à zephir
=> sur Zephir :
/usr/share/eole/bastion/modeles
<firewall name="/tmp/tmpcObNDK" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42">
Quitter ERA

dans ERA
ouverture fichier local 4zones-essl.xml
Fichier - Enregistrer
Zephir - Envoi à zephir
=> sur Zephir :
/usr/share/eole/bastion/modeles
<firewall name="/tmp/tmpwYTTIw" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42">
Quitter ERA

dans ERA
ouverture fichier local 2zones-reference.xml (sans héritage)
Zephir - Envoi à zephir
=> sur Zephir :
/usr/share/eole/bastion/modeles
<firewall name="/tmp/tmpjIkBSN" netbios="1" qos="0" version="2.42">
Quitter ERA

/usr/share/zephir/scripts/save_files.zephir
=> sur Zephir :
Plus de dossier /usr/share/eole/bastion/modeles , mais le dossier
/usr/share/era/modeles
dans 4zones-essl.xml : &lt;firewall name="/usr/share/era/modeles/4zones-essl.xml" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42"&gt;

dans ERA
ouverture fichier local 4zones-essl.xml
Zephir - Envoi à zephir
=> sur Zephir :
/usr/share/eole/bastion/modeles (de retour!)
dans 4zones-essl.xml : <firewall name="/tmp/tmpv9ZrL2" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42">
/usr/share/era/modeles
dans 4zones-essl.xml : <firewall name="/tmp/tmpv9ZrL2" model="/usr/share/era/modeles/4zones-reference.xml" version="2.42">

Au final, j'ai l'impression que la svg depuis ERA envoi vers le zephir un fichier temporaire , et du coup modifie la ligne 'firewall name=".... '
La seule sauvegarde fiable est la svg de tous les fichiers locaux via save_files.


Subtasks

Tâche #29327: Permettre de spécifier le nom en attribut du modèle eraFerméBenjamin Bohard

History

#1 Updated by Gilles Grandgérard about 2 years ago

  • Tracker changed from Proposition Scénario to Scénario

#3 Updated by Thierry Bertrand over 1 year ago

  • Release set to EOLE 2.7.1

#4 Updated by Thierry Bertrand over 1 year ago

  • Due date set to 11/22/2019
  • Target version set to MTES - Prestation Cadoles 45-47
  • Start date set to 11/04/2019

#5 Updated by Thierry Bertrand over 1 year ago

  • Story points set to 4.0

#6 Updated by Emmanuel IHRY over 1 year ago

  • Target version changed from MTES - Prestation Cadoles 45-47 to MTES - Prestation Cadoles 48-50

#7 Updated by Benjamin Bohard over 1 year ago

On pourrait supprimer le menu Zephir ? :-)

#8 Updated by Benjamin Bohard over 1 year ago

Hormis l’emplacement des modèles sur Zéphir, l’erreur est reproduite.
Dans le code d’ERA, le contenu envoyé à Zéphir est celui d’un fichier temporaire créé à partir du modèle édité.
Une modification de la fonction _send_zephir dans le fichier matrix.py semble convenir.

            # on sauvegarde le fichier dans un emplacement temporaire
            #old_filename = self.ctrl.filename
            #temp_path = tempfile.mktemp()
            #self.ctrl.filename = temp_path
            #self.ctrl._do_save(self)
            ## on remet le chemin d'origine pour la sauvegarde du fichier
            #self.ctrl.filename = old_filename
            try:
                with open(self.ctrl.filename, 'r') as era_model:
                    buff_zephir = era_model.read()
                #temp_file = open(temp_path,'r')
                #buff_zephir = temp_file.read()
                #temp_file.close()
                #os.unlink(temp_path)

Par contre, la raison pour laquelle un fichier temporaire est créé à ce moment reste un mystère pour moi et une lecture plus approfondie s’impose pour voir si il n’y a pas d’effets de bord (a priori non, vu que ce fichier temporaire était de toute façon supprimé dès le contenu lu). Peut-être un problème de lock sur le fichier empêchait-il de le lire ?

#9 Updated by Benjamin Bohard over 1 year ago

En fait, il est probable qu’il soit nécessaire de sauver le fichier puisque le contenu est lu depuis un fichier sur le disque.
La solution proposée précédemment n’est donc valide que si le modèle a été sauvé localement juste avant l’export vers Zéphir (ou si il n’a pas été modifié depuis l’ouverture).

#10 Updated by Thierry Bertrand over 1 year ago

  • Status changed from Nouveau to Terminé (Sprint)

#11 Updated by Joël Cuissinat over 1 year ago

  • Release changed from EOLE 2.7.1 to EOLE 2.7.1.2

Also available in: Atom PDF