Project

General

Profile

Scénario #35068

Updated by Emmanuel GARETTE over 1 year ago

Je ne devrais pas avoir d'erreur dans les dictionnaires, mais si cela était le cas, l'état du serveur passe au vert dans la page : https://zephir.temmii.com:8070/serveur/aff_groupe?id_groupe=XXXX

Pour reproduire :
- générer une erreur sur le serveur distant
- ajouter une dictionnaire incorrect

Dans la page "Liste des serveurs sélectionnés" l'état passe au vert.

Le problème est dans le fichier : /usr/lib/python3/dist-packages/zephir/backend/lib_backend.py

<pre>
def check_maj_status(self, maj_checker, show_installed = False, debnames = []):
"""vérifie l'état de mise à jour d'un serveur
"""
# liste des paquets remontés par le serveur
if type(debnames) != list:
debnames = [debnames]
liste_pkgs = []
# on regarde le type de mise à jour configurée (minimale/complète) et le serveur de mise à jour
type_maj = 'complete'
dico = self.parsedico()
# champ type_maj inexistant sur eole 2.4 et >
serv_maj = dico['serveur_maj']
# utilisation de serveur spécifique pour les mises à jour ubuntu selon la configuration
if dico.get('ubuntu_update_mirrors', ''):
serv_maj_ubuntu = dico['ubuntu_update_mirrors']
else:
serv_maj_ubuntu = serv_maj
# utilisation de serveur spécifique pour les mises à jour envole selon la configuration
if dico.get('envole_update_mirrors', ''):
serv_maj_envole = dico['envole_update_mirrors']
else:
serv_maj_envole = serv_maj
version = self.module_version
pkg_file = os.path.join(os.path.abspath(config.PATH_ZEPHIR),'data','packages%s.list' % self.id_s)
# on compare les paquets installés avec ceux disponibles sur le serveur de maj
liste_pkgs, maj_infos = maj_checker.check_packages(self.id_s, self.maj_infos,
pkg_file, debnames, version,
serv_maj, serv_maj_ubuntu,
serv_maj_envole, type_maj,
show_installed)
if maj_infos is not None and not debnames and not show_installed and maj_infos != self.maj_infos:
# la liste des paquets non à jour a changé, on met à jour l'état du serveur
try:
nb_pack = len(maj_infos[0])
if len(maj_infos[0]) > 0:
self.edit_serveur({'maj':len(maj_infos[0])})
self.maj_params({'query_maj':[len(maj_infos[0]),time.ctime()]})
else:
self.edit_serveur({'maj':0})
self.maj_params({'query_maj':[0,time.ctime()]})
self.maj_infos = maj_infos
except:
traceback.print_exc()
pass
return liste_pkgs
</pre> <pre>

Devient :

<pre>
def check_maj_status(self, maj_checker, show_installed = False, debnames = []):
"""vérifie l'état de mise à jour d'un serveur
"""
# liste des paquets remontés par le serveur
if type(debnames) != list:
debnames = [debnames]
liste_pkgs = []
# on regarde le type de mise à jour configurée (minimale/complète) et le serveur de mise à jour
type_maj = 'complete'
try:
dico = self.parsedico()
# champ type_maj inexistant sur eole 2.4 et >
serv_maj = dico['serveur_maj']
# utilisation de serveur spécifique pour les mises à jour ubuntu selon la configuration
if dico.get('ubuntu_update_mirrors', ''):
serv_maj_ubuntu = dico['ubuntu_update_mirrors']
else:
serv_maj_ubuntu = serv_maj
# utilisation de serveur spécifique pour les mises à jour envole selon la configuration
if dico.get('envole_update_mirrors', ''):
serv_maj_envole = dico['envole_update_mirrors']
else:
serv_maj_envole = serv_maj
version = self.module_version
pkg_file = os.path.join(os.path.abspath(config.PATH_ZEPHIR),'data','packages%s.list' % self.id_s)
# on compare les paquets installés avec ceux disponibles sur le serveur de maj
liste_pkgs, maj_infos = maj_checker.check_packages(self.id_s, self.maj_infos,
pkg_file, debnames, version,
serv_maj, serv_maj_ubuntu,
serv_maj_envole, type_maj,
show_installed)
if maj_infos is not None and not debnames and not show_installed and maj_infos != self.maj_infos:
# la liste des paquets non à jour a changé, on met à jour l'état du serveur
try:
nb_pack = len(maj_infos[0])
if len(maj_infos[0]) > 0:
self.edit_serveur({'maj':len(maj_infos[0])})
self.maj_params({'query_maj':[len(maj_infos[0]),time.ctime()]})
else:
self.edit_serveur({'maj':0})
self.maj_params({'query_maj':[0,time.ctime()]})
self.maj_infos = maj_infos
except:
traceback.print_exc()
pass
except:
pass
return liste_pkgs
</pre>

Back