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 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