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
Début:
01/10/2022
Echéance:
% réalisé:
100%
Restant à faire (heures):
0.0
Révisions associées
Lister les fichiers personnalisés pour la détection des différences.
Ref #35350
Utiliser la représentation chaîne de caractères pour les chemins.
Ref #35350
Suppression du message de debug.
Ref #35350
Historique
#1 Mis à jour par Benjamin Bohard il y a presque 3 ans
- Statut changé de Nouveau à En cours
#2 Mis à jour par Benjamin Bohard il y a presque 3 ans
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 presque 3 ans
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 presque 3 ans
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 presque 3 ans
- Statut changé de En cours à À valider
- % réalisé changé de 0 à 100
#6 Mis à jour par Laurent Gourvenec il y a presque 3 ans
- Statut changé de À valider à Résolu
#7 Mis à jour par Joël Cuissinat il y a presque 3 ans
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 presque 3 ans
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 presque 3 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0