Projet

Général

Profil

Tâche #35350

Scénario #35309: Les fichiers complémentaires Zéphir sont vus comme non envoyé sur 2.7

Utiliser la chaîne de caractères représentant les chemins pour les fonctions incompatibles avec Path

Ajouté par Benjamin Bohard il y a environ un an. Mis à jour il y a 12 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
01/10/2022
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Révisions associées

Révision 35dab1e8 (diff)
Ajouté par Benjamin Bohard il y a 12 mois

Lister les fichiers personnalisés pour la détection des différences.

Ref #35350

Révision 531ff9f5 (diff)
Ajouté par Benjamin Bohard il y a 12 mois

Utiliser la représentation chaîne de caractères pour les chemins.

Ref #35350

Révision c6a9de18 (diff)
Ajouté par Benjamin Bohard il y a 12 mois

Suppression du message de debug.

Ref #35350

Historique

#1 Mis à jour par Benjamin Bohard il y a environ un an

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Benjamin Bohard il y a environ un an

La fonction open (dans la fonction md5file de zephir.agentmanager/util.py) en python 2 n’accepte pas les objets Path en paramètre.

#3 Mis à jour par Benjamin Bohard il y a environ un an

La correction du code sur les clients 2.7.2 entraîne une détection de fichiers absents du zéphir 2.7.2 dont le code n’a pas été modifié.

Avec la modification suivante, les listes sont équivalentes sur le serveur et le client.

diff --git a/python/zephir/backend/lib_backend.py b/python/zephir/backend/lib_backend.py
index 9dcec375..40a357e7 100644
--- a/python/zephir/backend/lib_backend.py
+++ b/python/zephir/backend/lib_backend.py
@@ -35,6 +35,7 @@ from ConfigParser import ConfigParser
 from glob import glob
 from cStringIO import StringIO
 import xmlrpclib, cjson
+from pathlib2 import Path

 class ResourceAuthError(Exception):
     pass
@@ -981,7 +982,33 @@ class Serveur:
                         if pattern == None or fic.endswith(pattern):
                             fics.append(os.path.join(dst,fic))
             else:
-                fics.append(dst)
+                fics[dst] = src
+
+        fichiers_zephir_root = Path().joinpath(self.confdir, 'fichiers_zephir')
+        fichiers_zephir_listing = fichiers_zephir_root.joinpath('fichiers_zephir')
+        fichiers_variante_listing = fichiers_zephir_root.joinpath('variante', 'fichiers_variante')
+        if fichiers_zephir_listing.is_file():
+            with open(fichiers_zephir_listing.as_posix(), 'r') as listing_fh:
+                for l in listing_fh.readlines():
+                    if l.startswith('#'):
+                        continue
+                    if l.startswith('%%'):
+                        break
+                    fichier_serveur = Path(l.strip())
+                    fichier_zephir = Path().joinpath('fichiers_zephir', fichier_serveur.name)
+                    if Path(self.confdir).joinpath(fichier_zephir).is_file():
+                        fics[fichier_zephir.as_posix()] = fichier_serveur.as_posix()
+        if fichiers_variante_listing.is_file():
+            with open(fichiers_variante_listing.as_posix(), 'r') as listing_fh:
+                for l in listing_fh.readlines():
+                    if l.startswith('#'):
+                        continue
+                    if l.startswith('%%'):
+                        break
+                    fichier_serveur = Path(l.strip())
+                    fichier_zephir = Path().joinpath('fichiers_zephir', 'variante', fichier_serveur.name)
+                    if Path(self.confdir).joinpath(fichier_zephir).is_file():
+                        fics[fichier_zephir.as_posix()] = fichier_serveur.as_posix()

         if config.USE_THREADS:
             # lancement depuis la boucle principale
@@ -1015,8 +1042,8 @@ class Serveur:
                                         args = ["-c",md5file],
                                         path = self.confdir,
                                         env = {'LC_ALL': 'C'})
-            cmd_md5.addCallback(self._check_md5_res, md5s, modifs)
-            cmd_md5.addErrback(self._check_md5_res, md5s, modifs)
+            cmd_md5.addCallback(self._check_md5_res, md5s, modifs, fics)
+            cmd_md5.addErrback(self._check_md5_res, md5s, modifs, fics)
         else:
             # pas d'infos md5 pour ce serveur
             self.maj_params({'md5s':[-1,""]})

#4 Mis à jour par Joël Cuissinat il y a environ un an

OK pour appliquer le patch côté serveur Zéphir sur les versions ≥ 2.7.0.

#5 Mis à jour par Benjamin Bohard il y a 12 mois

  • Statut changé de En cours à À valider
  • % réalisé changé de 0 à 100

#6 Mis à jour par Laurent Gourvenec il y a 12 mois

  • Statut changé de À valider à Résolu

#7 Mis à jour par Joël Cuissinat il y a 12 mois

zephir-parc$ git branch -r --contains 35dab1e8 
  origin/2.7.0/master
  origin/2.7.1/master
  origin/2.7.2/master
  origin/2.8.0/master
  origin/2.8.1/master
  origin/HEAD -> origin/master
  origin/dist/eole/2.7.0/master
  origin/dist/eole/2.7.1/master
  origin/dist/eole/2.7.2/master
  origin/dist/eole/2.8.0/master
  origin/dist/eole/2.8.1/master
  origin/dist/eole/2.9.0/master
  origin/master

#8 Mis à jour par Joël Cuissinat il y a 12 mois

zephir-client$ git branch -r --contains 531ff9f5 
  origin/2.7.0/master
  origin/2.7.1/master
  origin/2.7.2/master
  origin/2.8.0/master
  origin/2.8.1/master
  origin/HEAD -> origin/master
  origin/dist/eole/2.7.0/master
  origin/dist/eole/2.7.1/master
  origin/dist/eole/2.7.2/master
  origin/dist/eole/2.8.0/master
  origin/dist/eole/2.8.1/master
  origin/dist/eole/2.9.0/master
  origin/master

#9 Mis à jour par Joël Cuissinat il y a 12 mois

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF