Demande #16746
ARV : améliorer la détection des identifiants de modules (Zéphir)
0%
Description
lorsque je tente de copier une conf VPN de spynx vers zephir 2.5.2
voir pièce jointe pour voir les modules supprimés
Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/arv/lib/usezephir.py", line 260, in send_db sphynx_module = self.get_module('sphynx')['moduleid'] TypeError: 'NoneType' object has no attribute '__getitem__' Traceback (most recent call last): File "./conf2.4.py", line 331, in <module> ipsec_conf_apply(zephir=zephir) File "/usr/lib/python2.7/dist-packages/arv/lib/util.py", line 49, in newFunc return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/arv/lib/sw_config_apply.py", line 698, in ipsec_conf_apply ipsec_conf_build(zephir, node) File "/usr/lib/python2.7/dist-packages/arv/lib/util.py", line 49, in newFunc return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/arv/lib/sw_config_apply.py", line 668, in ipsec_conf_build zephir.send_db(archive, uai, name, id_zephir) File "/usr/lib/python2.7/dist-packages/arv/lib/util.py", line 49, in newFunc return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/arv/lib/usezephir.py", line 271, in send_db raise Exception('Error: unable to send data to zephir') Exception: Error: unable to send data to zephir
from arv.lib.usezephir import Zephir z = Zephir(user="tonuser', password='tonpass') z.get_modules() [{'name': 'amon', 'moduleid': 177}, {'name': 'horus', 'moduleid': 179}]
from arv.lib.usezephir import ZEPHIR_MODULE_VERSION print ZEPHIR_MODULE_VERSION 10
16:10:26 - gnunux : dans userzephir.py remplace le ZEPHIR_MODULE_VERSION = 10 par ZEPHIR_MODULE_VERSION = 8
cela a fonctionné
Demandes liées
Historique
#1 Mis à jour par Bruno Boiget il y a presque 8 ans
- Tracker changé de Demande à Proposition Scénario
- Sujet changé de problèmes suite suppression de modules inutilisés à ARV : améliorer la détection des identifiants de modules (Zéphir)
- Catégorie mis à Version mineure
Après avoir regardé un peu le code de usezephir.py dans arv, je constate qu'il se base sur la liste des modules présent dans la version Eole 2.3 pour récupérer tous les serveurs concernés par ARV (ZEPHIR_MODULE_VERSION=5).
Cela explique qu'en cas de suppression du module amon ou sphynx en version 2.3, arv n'arrive plus à retrouver ses modules.
Voir avec Fabrice pour améliorer la gestion des modules par rapport à Zéphir.
Je vois que dans ton cas ZEPHIR_MODULE_VERSION est à 10 (eole 2.5.1), version qui ne comporte pas non plus de serveur Sphynx chez toi. Est ce que tu as modifié cette valeur à la main, ou un mécanisme m'échappe (sur mon sphynx 2.5.2, il est à 5) ?
En attendant pour te débloquer, il y a quelques solutions:
- remettre en place les modules sphynx/amon manquants sur Zéphir (recréer à la main le lien entre les fichiers de /usr/share/zephir/eole_modules et /usr/share/zephir/default_modules (+ relance du service zephir)
- ou modifier ZEPHIR_MODULE_VERSION dans usezephir.py pour utiliser une version ayant tous les modules nécessaires
#2 Mis à jour par Bruno Boiget il y a presque 8 ans
- Tracker changé de Proposition Scénario à Demande
- Statut changé de Nouveau à En attente d'informations
J'ai continué de creuser un peu et je constate que ton problème a déjà été corrigé sur Sphynx 2.4.2 et 2.5.2 (cf demande #15096).
La ligne qui cause ce traceback (sphynx_module = self.get_module('sphynx')['moduleid']) ne devrait plus exister dans ces versions, Par contre le correctif ne semble pas reporté dans la version 2.5.1. La fonction en question n'est plus utilisée dans les versions corrigées.
Quelle version de Sphynx utilises tu ? Il faudra voir avec Fabrice pourquoi la correction n'est pas en 2.5.1 (il me semble que sphynx 2.5.1 n'est pas considéré comme stable à cause de problèmes sur la haute dispo).
Tu peux appliquer si besoin la modification présente ici : 8a4606fe7ae561e18da5594d56b442df953b1a59
#3 Mis à jour par Bruno Boiget il y a presque 8 ans
- Projet changé de Zéphir à arv
- Catégorie
Version mineuresupprimé - Assigné à mis à Bruno Boiget
#4 Mis à jour par Christophe Dezé il y a presque 8 ans
root@barbechat:~# cat /etc/eole/release
EOLE_MODULE=sphynx
EOLE_VERSION=2.4
EOLE_RELEASE=2.4.2
root@zephir:~# cat /etc/eole/release
EOLE_MODULE=zephir
EOLE_VERSION=2.5
EOLE_RELEASE=2.5.
#5 Mis à jour par Christophe Dezé il y a presque 8 ans
Christophe Dezé a écrit :
root@barbechat:~# cat /etc/eole/release
EOLE_MODULE=sphynx
EOLE_VERSION=2.4
EOLE_RELEASE=2.4.2root@zephir:~# cat /etc/eole/release
EOLE_MODULE=zephir
EOLE_VERSION=2.5
EOLE_RELEASE=2.5.2
#6 Mis à jour par Christophe Dezé il y a presque 8 ans
mon sphynx n'est pas à jour!
mea culpa
#7 Mis à jour par Bruno Boiget il y a presque 8 ans
- Statut changé de En attente d'informations à Classée sans suite
Correctif déjà publié (voir demande liée)