Projet

Général

Profil

Tâche #30131

Scénario #29921: Sphynx 2.8.0 : Porter ARV en python 3

Porter ARV vers Sqlalchemy

Ajouté par Emmanuel GARETTE il y a presque 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
04/05/2020
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Description

L'API doit être le plus proche possible de l'API actuelle pour éviter d'avoir (trop) de changement dans les scripts tiers.


Demandes liées

Lié à Distribution EOLE - Tâche #30382: Passer ce script en python3 : /mnt/eole-ci-tests/scripts/arv_apply_conf_ipsec.py Fermé 14/10/2019

Révisions associées

Révision da827c01 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

pouvoir instancier un Sphynx (ref #30131)

Révision 09e4cef9 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

problème de conversion du bytes en str (ref #30131)

Révision 00fadcb3 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

convertion de cert.py en python3 (ref #30131)

Révision 82108e64 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

portage de active_rvp en python3 (ref #30131)

Révision 8def4e92 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

convertion de cert.py en python3 (ref #30131)

Révision 1c54aace (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

portage de ARV en python3 (ref #30131)

Révision 85be1909 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

ne pas convertir, le retour n'est pas forcement une string (ref #30131)

Révision cc8fd637 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

setup.py en python3 (ref #30131)

Révision faf13667 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

dependance python3 (ref #30131)

Révision 0a847343 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

dependance python3 (ref #30131)

Révision 9d132e11 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi maintenant un bytes (ref #30131)

Révision 45c9cf0b (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

les commandes renvoi des bytes (ref #30131)

Révision 10f330a2 (diff)
Ajouté par Joël Cuissinat il y a presque 4 ans

Conversion du retour de commande pour bareos

ref #30131

Révision c4fd7269 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

faire fonctionner la fonction apply (ref #30131)

Révision f74e3d84 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

(pouvoir récupérer les informations du Zéphir (ref #30131)

Révision 40906e26 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

la configuration peut etre de type binary (si vient de ARV) (ref #30131)

Révision ee9746b3 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

portage de init_sphynx en python3 (ref #30131)

Révision 29de7f05 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

la cle peut etre alternativement en string ou bytes => converti tout en bytes (ref #30131)

Révision c7de693d (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

Revert "system_out renvoi maintenant un bytes (ref #30131)"

This reverts commit 9d132e1132c8ad6be4a1d0dcf0b389346addbfa8.

Révision 0b0a4bd6 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi un string (ref #30131)

Révision 9687a27b (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi un string (ref #30131)

Révision 30acef4c (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi un string (ref #30131)

Révision 8fbd9736 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi un string (ref #30131)

Révision e90ec47a (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

pouvoir utiliser to_str dans system_out (ref #30131)

Révision bb03f406 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi un string (ref #30131)

Révision eafbc229 (diff)
Ajouté par Emmanuel GARETTE il y a presque 4 ans

system_out renvoi un string (ref #30131)

Révision 2ea52e86 (diff)
Ajouté par Fabrice Barconnière il y a presque 4 ans

system_out renvoi un string (ref #30131)

Historique

#1 Mis à jour par Emmanuel GARETTE il y a presque 4 ans

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Emmanuel GARETTE il y a presque 4 ans

  • Statut changé de En cours à Résolu
  • % réalisé changé de 0 à 100

#3 Mis à jour par Emmanuel GARETTE il y a presque 4 ans

  • Statut changé de Résolu à En cours

#4 Mis à jour par Emmanuel GARETTE il y a presque 4 ans

  • Statut changé de En cours à Résolu

#5 Mis à jour par Fabrice Barconnière il y a presque 4 ans

  • Statut changé de Résolu à En cours

#6 Mis à jour par Fabrice Barconnière il y a presque 4 ans

Sphynx 2.8.0 enregistré sur un Zéphir 2.8.0

  • Traceback à l'exécution d'init_sphynx :
    * Certificat /var/lib/arv/CA/certs/sphynx.pem généré
    Traceback (most recent call last):
      File "/usr/share/eole/sbin/init_sphynx", line 257, in <module>
        populate_database()
      File "/usr/share/eole/sbin/init_sphynx", line 187, in populate_database
        add_credential('sphynx', 'eole', node1, 'autosigned')
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 53, in newFunc
        return func(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/arv/db/edge.py", line 564, in add_credential
        subjkey, keyid_cred = get_keyid_in_certif(certfile, passwd=passwd, certiftype='notca')
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 53, in newFunc
        return func(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 181, in get_keyid_in_certif
        return get_keyid_from_keyid_in_certif(priv_certname, passwd, mode='rsa')
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 53, in newFunc
        return func(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 195, in get_keyid_from_keyid_in_certif
        code, pub_info_der, stderr = system_out(pub_info_cmd, stdin=passwd)
      File "/usr/lib/python3/dist-packages/pyeole/process.py", line 325, in system_out
        return creole_system_out(cmd, stdin, container, context, env, pty, to_str=to_str)
      File "/usr/lib/python3/dist-packages/pyeole/process.py", line 344, in creole_system_out
        return _service(cmd, stdin, container, context, env, pty, PIPE, PIPE, to_str=to_str)
      File "/usr/lib/python3/dist-packages/pyeole/process.py", line 263, in _service
        stdout_output = stdout_output.decode() if isinstance(stdout_output, bytes) else stdout_output
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 1: invalid start byte
    
  • L'ajout d'IP externe ne va plus interroger Zéphir :
    Dans class GetExtr de childpage.py
  • Erreur lors de l'ajout d'un certificat autosigné :
    -> entering get_all_credentials([], {})
    Error in GetAllCred with args {b'_dc': [b'1590482307276']}
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/arv/web/page.py", line 86, in render
        ret = self.render_page(request)
      File "/usr/lib/python3/dist-packages/arv/web/childpage.py", line 927, in render_page
        related_node_name = uai + " - " + name
    TypeError: can't concat str to bytes
    
  • Erreur Apply (peut-être lié aux erreurs précédentes) :
    Error in Apply with args {b'_dc': [b'1590484434596']}
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/arv/web/page.py", line 86, in render
        ret = self.render_page(request)
      File "/usr/lib/python3/dist-packages/arv/web/page.py", line 269, in render_page
        ipsec_conf_apply(zephir=zephir)
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 53, in newFunc
        return func(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/arv/lib/sw_config_apply.py", line 743, in ipsec_conf_apply
        ipsec_conf_build(zephir, current_node, arv_node=True)
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 53, in newFunc
        return func(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/arv/lib/sw_config_apply.py", line 494, in ipsec_conf_build
        name_peercfg = '%s-%s_' % (remove_special_characters(local_node.name), remove_special_characters(remote_node.name))
      File "/usr/lib/python3/dist-packages/arv/lib/util.py", line 661, in remove_special_characters
        text = text.replace( character, '' )
    TypeError: a bytes-like object is required, not 'str'
    

#7 Mis à jour par Emmanuel GARETTE il y a presque 4 ans

Visiblement je n'ai pas fait le commit hier soir.

Je viens de faire un nouveau paquet.

Par contre pour :

L'ajout d'IP externe ne va plus interroger Zéphir :
Dans class GetExtr de childpage.py

Tu peux préciser ?

Durant mes tests la semaine dernière quand on fait "IP externe"/"Ajouter" on voyait bien l'IP d'eth0.
C'est bien cette fonctionnalité ?

#8 Mis à jour par Fabrice Barconnière il y a presque 4 ans

  • J'avais fait des modifs pour avancer dans mes tests ce qui a produit des erreurs là où il n'y en avait pas. J'ai corrigé childpage.py et sw_config_apply.py, il n'y a finalement pas besoin de decode() sur name.
  • Les configurations se génèrent correctement.
    Sur Amon les tunnels se montent mais le script ipsec_updown ne semble pas s'exécuter (pas de route ni de règles iptables liées à ipsec).
  • Pour ce qui est de l'ip externe, c'est bien cette fonctionnalité "IP externe"/"Ajouter", le code semble ne pas passer dans le cas "new == 'true'" et n'interroge pas Zéphir.
    Pour tester, j'ai affecté la valeur 'true' à "new" juste avant le test et l'adresse IP s'affiche bien dans ARV

#9 Mis à jour par Emmanuel GARETTE il y a presque 4 ans

  • Statut changé de En cours à Résolu

J'ai ouvert une nouvelle demande pour les IP externes.

Je pense que je peux résoudre celle là et corriger le dernier problème dans la nouvelle demande.

#10 Mis à jour par Fabrice Barconnière il y a presque 4 ans

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

#11 Mis à jour par Joël Cuissinat il y a plus de 3 ans

  • Lié à Tâche #30382: Passer ce script en python3 : /mnt/eole-ci-tests/scripts/arv_apply_conf_ipsec.py ajouté

Formats disponibles : Atom PDF