Projet

Général

Profil

Scénario #36839

Problème avec les commandes Zéphir AAF

Ajouté par Joël Cuissinat il y a 11 mois. Mis à jour il y a 5 mois.

Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
01/10/2022
Echéance:
01/01/2026
% réalisé:

100%

Points de scénarios:
2.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

Extraits du message de Charles :

[ ... ] Ils ont upgradé en 2.9 le Zephir.
Ils ont rencontré des erreurs des upload des fichiers avec les commandes z.aaf.notify_upload, z.aaf.get_list et autres commandes z.aaf.XXXX.

J’ai trouvé le problème.
La version de python implantée sur le 2.9 est la 3.10, et xmlrpc a été modifié pour augmenter la sécurité.

La commande « z = Server("https://utilisateur:codeSecret@adresse_zephir:7080") » n’est plus suffisante et donne des erreurs lors des commandes z.aaf.xxx.
En fait, cette commande utilise des options par défaut, comme transport qu’il faut obligatoirement renseigner pour que cela fonctionne.

Pour résoudre ce problème, il faut renseigner l’option transport avec une classe de surcharge des paramètres headers nécessaires au bon fonctionnement.


Sous-tâches

Tâche #36997: etudeFerméLudwig Seys

Tâche #37059: création script manage_aaf.pyFerméLudwig Seys

Tâche #37060: modification documentationFerméLudwig Seys

Tâche #37061: testFerméBenjamin Bohard

Tâche #37087: Faire utiliser le nouveau script dans les tests squashFerméLudwig Seys

Historique

#1 Mis à jour par Joël Cuissinat il y a 10 mois

#!/usr/bin/python3.10
# -*- coding: utf-8 -*-

import subprocess
import sys
from xmlrpc.client import Server
from xmlrpc import client as xmlrpclib # ligne à rajouter

#subprocess.call('/root/get_AAF')

# avec Python 3.10, il faut surcharger le headers du transport avec cette classe
class SpecialTransport(xmlrpclib.SafeTransport):
    def send_content(self, connection, request_body):
        connection.putheader("Referer", "https://adresse_zephir:7080") # URL du zephir
        connection.putheader("Origin", "https://adresse_zephir:7080") #URL du zephir
        connection.putheader("X-Requested-With", "XMLHttpRequest")
        connection.putheader("Content-Type", "text/xml")
        connection.putheader("Content-Length", str(len(request_body)))
        connection.endheaders()
        if request_body:
            connection.send(request_body)
# Fin de la classe  de surcharge

z = Server("https://admin_zephir:password@adresse_zephir:7080", # meme format https://USER:MDP_USER@URL_ZEPHIR:PORT
    transport=SpecialTransport(), # Appel de la classe de surcharge transport
    verbose=False, # ligne à rajouter
    allow_none=True) # ligne à rajouter

a = z.aaf.get_list(3) # ligne de test

print(a)

#2 Mis à jour par Joël Cuissinat il y a 10 mois

  • Tracker changé de Demande à Scénario
  • Début 06/05/2025 supprimé
  • Release mis à EOLE 2.9.0
  • Points de scénarios mis à 1.0

#3 Mis à jour par Joël Cuissinat il y a 10 mois

  • Release changé de EOLE 2.9.0 à Carnet de produit Cadoles - MEN

#4 Mis à jour par Laurent Gourvenec il y a 9 mois

  • Assigné à mis à Ludwig Seys

#5 Mis à jour par Ludwig Seys il y a 8 mois

  • Echéance mis à 01/01/2026
  • Version cible mis à Carnet Cadoles - MEN
  • Début mis à 01/10/2022

#6 Mis à jour par Joël Cuissinat il y a 7 mois

  • Points de scénarios changé de 1.0 à 2.0

+1 pour fournir et documenter un script "propre" (cf. #36997#note-3)

#7 Mis à jour par Joël Cuissinat il y a 5 mois

  • Statut changé de Nouveau à Terminé (Sprint)
  • Version cible changé de Carnet Cadoles - MEN à Livraison Cadoles - MEN 30/06/2025 (20)
  • Release changé de Carnet de produit Cadoles - MEN à EOLE 2.9.0

Formats disponibles : Atom PDF