Package: iparapheur-utils3
i-Parapheur UtilsIntroductionC'est principalement une librairie écrite en Python permettant la communication avec lei-Parapheuren version 4.2+, au travers de l'API REST ou via webservice SOAP.Elle offre des commandes accessibles depuis un shell standard, pour faciliter certaines opérations d'exploitation.InstallationSur une distribution Ubuntu 18.04 LTS :une instance i-Parapheur accessible en v4.4.0 ou plusun environnement Python fonctionnel !ajout de l'outilpipdepuis un terminal BASH :sudobash
curlhttps://bootstrap.pypa.io/get-pip.py|pythoninstallation du paquet pythoniparapheur-utils, depuis un terminal BASH :sudopipinstalliparapheur-utilsProblèmes connus et solutionspython2 et python3 coexistent sur la machineLancer les commandes pour python2, spécifiquement (partant du principe quepython2pointe sur l'exécutable python 2)curlhttps://bootstrap.pypa.io/get-pip.py|python2
sudopython2-mpipinstalliparapheur-utilsErreur urllib3 : "No module named ordered_dict"Une dépendance de iparapheur-utils est installée dans une mauvaise version, non supportée (eg urllib3 v 1.24).
Il faut la désinstaller et la réinstaller dans la bonne version (v 1.23).sudopipuninstallurllib3
sudopipinstallurllib3==1.23Cas d'environnement avec MitMCertains environnements réseau bloquent l'accès à pypi.org, avec un message "SSL Error: Certificate_Verify_Failed".Could not fetch URLhttps://pypi.org/…/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=’pypi.org’, port=443): Max retries exceeded with url: /…/ (Caused by SSLError(SSLCertVerificationError(1, ‘[ SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: …Il est possible de passer outre, au prix d'une réduction de la confiance, avec l'argument--trusted-hostsudopipinstall--trusted-hostpypi.orgiparapheur-utilsSupport CentOS / RHEL :Version 6 : Cette version n'est plus supportée, en cause une version de python trop ancienne (2.6)Version 7 : Cette version requiert l'installation de paquets supplémentaires :yum install libffi-devel gcc openssl-develUsageCes commandes sont actuellement disponibles :ph-initph-checkph-echoph-recupArchivesph-exportph-importph-renameph-removeldapph-pushdocph-ipcleanph-ldapsearchph-count_filesph-reset_admin_passwordph-patchph-recupfullph-orphanRemarques : Elles sont conçues pour être exécutées en environnement bash standard: ligne de commande, ou script BASH.Aucune qualification à ce stade pour l'usage de ces commandes dans un interpréteur Python.ph-initCette commande permet la génération d'un fichier de configuration "par défaut", qu'il faut bien sûr adapter au serveur.Exemple d'utilisation :usage: ph-init [-h] [-p P] [-c {recuparchives,export,import}]

Génère un fichier de configuration par défaut dans le répertoire courant

Arguments:
  -h, --help            Affiche ce message et quitte
  -p P                  Chemin du fichier de configuration
  -c {recuparchives,export,import}
                        Commande pour laquelle générer le fichier de
                        configurationLe lancement de la commande génère un fichieriparapheur-utils.cfg, lu par défaut lors de l'appel des autres fonctionsph-checkLance le script de check d'installation. Pas de pré-requis particulier.ph-echoLance la fonctionechovers le i-Parapheur désigné dans le fichier de configuration.Exemple d'utilisation :ph-echo -h
---
usage: ph-echo [-h] [-s S] [-c C] [-u U] [-p P]

Lance un echo via webservice sur un iParapheur

Arguments:
  -h, --help  Affiche ce message et quitte
  -s S        URL du serveur iParapheur
  -c C        Fichier de configuration
  -u U        Utilisateur
  -p P        Mot de passeph-recupArchivesLance la fonction de récupération ou/et de purge des archives.
Il est vivement conseillé d'utiliser la commandeph-init -c recuparchivesafin de générer un squelette de fichier de configuration complet.Exemple d'utilisation :ph-recupArchives -h
---
usage: ph-recupArchives [-h] [-s S] [-c C] [-u U] [-p P] [-f F] [-ps PS]
                        [-r {true,false}] [-i {true,false}] [-pu {true,false}]
                        [-d {true,false}] [-t T] [-st ST] [-w W]

Lance une récupération / purge des archives

Arguments:
  -h, --help        Affiche ce message et quitte
  -s S              URL du serveur iParapheur
  -c C              Fichier de configuration
  -u U              Utilisateur
  -p P              Mot de passe
  -f F              Répertoire de destination
  -ps PS            Taille des pages à récupérer
  -r {true,false}   Chemins réduis des téléchargements
  -i {true,false}   Ajout identifiant alfresco dans le chemin complet (true par defaut)
  -pu {true,false}  Active la purge les données
  -d {true,false}   Télécharge les données
  -t T              Filtre sur type
  -st ST            Filtre sur sous-type
  -w W              Délai de conservation des donnéesph-exportLance la fonction d'exporation de la configuration du parapheur vers un dossier.
Il est vivement conseillé d'utiliser la commandeph-init -c exportafin de générer un squelette de fichier de configuration complet.
La liste des éléments à exporter peut être modifiée dans ce fichier.ATTENTION: Seule laconfigurationdu parapheur est exportée. Comprendre qu'aucun dossier, archive, statistique ou historique n'est conservé.Exemple d'utilisation :usage: ph-export [-h] [-s S] [-c C] [-u U] [-p P] [-i I] [-dh DH] [-dp DP]
                 [-du DU] [-dpw DPW] [-dd DD] [-ou OU] [-og OG] [-ob OB] [-oc OC] [-ot OT] [-om OM] [-oq OQ] [-oa OA]

Exporte la configuration du parapheur ciblé vers un dossier

Arguments:
  -h, --help  Affiche ce message et quitte
  -s S        URL du serveur iParapheur
  -c C        Fichier de configuration
  -u U        Utilisateur administrateur
  -p P        Mot de passe
  -i I        Répertoire de destination
  -dh DH      IP du serveur mysql
  -dp DP      Port du serveur mysql
  -du DU      Utilisateur alfresco de mysql
  -dpw DPW    Mot de passe utilisateur alfresco de mysql
  -dd DD      Nom de la base mysql
  -ou {true,false}      Boolean importe les utilisateurs
  -og {true,false}      Boolean importe les groupes
  -ob {true,false}      Boolean importe les bureaux
  -oc {true,false}      Boolean importe les circuits
  -ot {true,false}      Boolean importe les types et sous-types
  -om {true,false}      Boolean importe les metadatas
  -oq {true,false}      Boolean importe les calques
  -oa {true,false}      Boolean importe les advancedph-importLance la fonction d'importation de la configuration du parapheur à partir d'un dossier.
Il est vivement conseillé d'utiliser la commandeph-init -c importafin de générer un squelette de fichier de configuration complet.ATTENTION: Seule laconfigurationdu parapheur est importée. Comprendre qu'aucun dossier, archive, statistique ou historique n'est conservé.Exemple d'utilisation :usage: ph-import [-h] [-s S] [-c C] [-u U] [-p P] [-i I] [-dh DH] [-dp DP]
                 [-du DU] [-dpw DPW] [-dd DD]

Importe la configuration ciblée dans un parapheur vierge

Arguments:
  -h, --help  Affiche ce message et quitte
  -s S        URL du serveur iParapheur
  -c C        Fichier de configuration
  -u U        Utilisateur administrateur
  -p P        Mot de passe
  -i I        Répertoire à importer
  -dh DH      IP du serveur mysql
  -dp DP      Port du serveur mysql
  -du DU      Utilisateur alfresco de mysql
  -dpw DPW    Mot de passe utilisateur alfresco de mysql
  -dd DD      Nom de la base mysqlph-renameCette commande permet de changer l'URL d'accès au i-ParapheurExemple d'utilisation :usage: ph-rename [-h] -n N

Change l'URL d'accès du i-Parapheur

Arguments:
  -h, --help  Affiche ce message et quitte
  -n N        Nouvelle URL du serveur iParapheurLe lancement de la commande modifie l'URL d'accès au i-Parapheur mais ne change pas la configuration du certificat serveur.Il est important de suivre la procédure de changement de certificat serveur donnée après le lancement de la commande.ATTENTION ! Le certificat configuré dans le fichier /etc/nginx/conf.d/parapheur_ssl.conf
ne correspond potentiellement plus avec le nouveau nom du parapheur.
Il convient de remplacer ce certificat (localisé dans le dossier /etc/nginx/ssl/)
pour que le parapheur soit totalement fonctionnel.

Propriétés à modifier dans le fichier de configuration /etc/nginx/conf.d/parapheur_ssl.conf :
- ssl_certficiate /etc/nginx/ssl/test.pem;     # Partie publique
- ssl_certficiate_key /etc/nginx/ssl/test.key; # Partie privée

Une fois les modifications de certificat effectuées, relancer le service NginX :
service nginx restartph-removeldapCette commande permet de supprimer les utilisateurs synchronisés avec un LDAP n'ayant aucun bureau liés.Exemple d'utilisation :usage: ph-removeldap [-h]

Supprime les utilisateurs synchronisés LDAP n'ayant aucune liaison avec un bureau

Arguments:
  -h, --help  Affiche ce message et quitteph-pushdocLance la fonction d'importation de dossier via le connecteur générique Pushdoc.
Il est vivement conseillé d'utiliser la commandeph-init -c pushdocafin de générer un squelette de fichier de configuration complet.ATTENTION: Des pré-requis sont nécéssaires avant l'utilisation de cette commande :Un jar pushdoc en dernière version dans le même dossier que ce scriptTout le nécéssaire pour faire fonctionner pushdoc (wsdl, conf.cf, keystore, truststore)Le fichier par défaut pour le visuel pdf des flux PES (template-visuelPDF.pdf)Exemple d'utilisation :usage: ph-pushdoc [-h] [-c C] [-j J] [-i I] [-e E] [-x X] [-v V]

Importe la configuration ciblée dans un parapheur vierge

Arguments:
  -h, --help  Affiche ce message et quitte
  -c C        Fichier de configuration
  -j J        Fichier JAR du pushdoc
  -i I        Répertoire à traiter
  -e E        Courriel de l'utilisateur webservice
  -x X        xPath par défaut dans le cas d'un envoi de flux PES
  -v V        Visuel PDF à utiliser dans le cas d'un envoi de flux PESph-ipcleanCette commande permet de générer les index automatiquement en supprimant les noeuds dans la base de données, en lançant
la procédure doIPcleantransaction.sql, en supprimant les dossiers alf_data/lucene-indexes et
alf_data/backup-lucene-indexes et en coupant et relançant l'application.Exemple d'utilisation :usage: ph-ipclean [-h]

Génère les index

Arguments:
  -h, --help  Affiche ce message et quitteph-ldapsearchCette commande vérifie que le fichier de conf LDAP est bien présent, que la synchronisation est bien demandée, que le serveur est accessible.
Puis affiche la requête LDAP complète et enfin retourne la liste des utilisateurs correspondants.
Il est vivement conseillé d'utiliser la commandeph-init -c ldapsearchafin de générer un squelette de fichier de configuration complet.Exemple d'utilisation :usage: ph-ldapsearch [-h]

Génère des vérifications de propriétés du fichier conf, la requête LDAP, la liste des utilisateurs retournés par celle-ci.

Arguments:
  -h, --help  Affiche ce message et quitteph-count_filesCette commande affiche un tableau récapitulatif du nombre de dossier et d'archives par tenant. Les dossiers sont classés par bureau et banette.Exemple d'utilisation :usage: ph-count_files [-h]

Arguments:
  -h, --help  Affiche ce message et quitteph-reset_admin_passwordCette commande passe le mot de passe de l'utilisateur à "admin".
Il est vivement conseillé d'utiliser la commandeph-init -c reset_admin_passwordafin de générer un squelette de fichier de configuration complet.Exemple d'utilisation :usage: ph-reset_admin_password [-h] [-c C] [-dh DH] [-dp DP] [-du DU] [-dpw DPW] [-dd DD]

Arguments:
  -h, --help  Affiche ce message et quitte
  -c C        Fichier de configuration
  -dh DH      IP du serveur mysql
  -dp DP      Port du serveur mysql
  -du DU      Utilisateur alfresco de mysql
  -dpw DPW    Mot de passe utilisateur alfresco de mysql
  -dd DD      Nom de la base mysqlph-patchCette commande déploie le patch.Il faut au préalable créer un dossier contenant l'archive tar.gz du patch,
et compléter le iparapheur-utils.cfg (en lançant la commandeph-init -c patch)Exemple d'utilisation :usage: ph-patch [-h] [-c C] [-u U] [-d D]

Arguments:
  -h, --help  Affiche ce message et quitte
  -c C        Fichier de configuration
  -u U        URL webservice sans le "secure-"
  -d D        dossier du parapheur (par défaut /opt/iParapheur)ph-recupfullCette commande est une nouvelle version deph-recuparchives, plus complète.La principale nouveauté : prise en compte des métadonnées dans l'opération de récupération.Il y a 4 nouvelles fonctionnalités :récupérer les archives sous forme d'arborescence personnalisée,ajout d'un fichier de propriété XML pour chaque archive,1 rapport d'exécution au format CSVet 1 log au format CSV.Il faut au préalable compléter leiparapheur-utils.cfg(en lançant la commandeph-init -c recupfull)Exemple d'utilisation :ph-recupfull -h
---
usage: ph-recupArchives [-h] [-s S] [-c C] [-u U] [-p P] [-f F] [-ps PS]
                        [-r {true,false}] [-i {true,false}] [-pu {true,false}]
                        [-d {true,false}] [-t T] [-st ST] [-w W]

Lance une récupération / purge des archives

Arguments:
  -h, --help        Affiche ce message et quitte
  -c C              Fichier de configuration
  
  -u U              Utilisateur
  -p P              Mot de passe
  -s S              URL du serveur iParapheur
  
  -f F              Répertoire de destination
  -ps PS            Taille des pages à récupérer
  -pu {true,false}  Active la purge les données
  -d {true,false}   Télécharge les données
  -mx {true,false}  Ajout d un fichier de propriété au format XML pour chaque archive
  -t T              Filtre sur type
  -st ST            Filtre sur sous-type
  -w W              Délai de conservation des données
  
  -ml ml            Liste des métadonnées a exploiter au format CSV
  -mdv mdv          Liste des valeurs par défaut des métadonnées à exploiter au format CSV
  -mt mt            arborescence par métadonnées ou mots clés
  -cdr cdr {true,false} CSV généré lors de chaque exécution : tous les répertoires créés
  -clr clr {true,false} log au format CSV : tous les dossiers créésph-templateCette commande permet de :sauvegarder les templates et bordereau dans un fichier ZIP datévérifie pour chaque modèle si il n'est pas à jour ou si il a été modifiési reload = true, les modèles sont rechargésIl faut au préalable compléter leiparapheur-utils.cfg(en lançant la commandeph-init -c template)Exemple d'utilisation :ph-template -h
---
usage: ph-template [-h] [-c C] [-u U] [-p P] [-s S [-r {true,false}] 

Arguments:
  -h, --help        Affiche ce message et quitte
  -c C              Fichier de configuration
  
  -u U              Utilisateur
  -p P              Mot de passe
  -s S              URL du serveur iParapheur
  -r {true,false}   Rechargement des modèlesph-orphanCette commande indique si il y a des noeuds orphelins avec un message et un code retour.
0 = il n'y a pas de noeud orphelin
1 = il y a des noeuds orphelinsExemple d'utilisation :usage: ph-orphanUtilisation en librairieDéfinir un fichier de configurationscript.cfgdans le répertoire racine via la commandeph-init, qui aura la forme suivante :[Parapheur]username=adminpassword=adminserver=secure-iparapheur.dom.localPuis, créer un script python avec utilisation de l'API REST :#!/usr/bin/env python# coding=utf-8importparapheur# Init REST API clientclient=parapheur.getrestclient()ifclient.islogged:# Do a lot of things...Ou, pour une utilisation avec l'API SOAP :#!/usr/bin/env python# coding=utf-8importparapheur# Init SOAP API clientwebservice=parapheur.getsoapclient()webservice.call().echo('Coucou, ici python !')Le rendre éxecutable, puis le lancer depuis une console bash :chmod+x./script.py
./script.pyCas spécifiquesProxyIl est possible de contourner l'usage d'un proxy pour les appels Webservices ou API REST,
si le script à lancer doit communiquer directement avec le serveur i-Parapheur
sans passer par un éventuel proxy défini sur le système.Pour cela, il suffit d'ajouter la variableNO_PROXYavant l'appel d'une fonction ou d'un script.
Par exemple, pour un appel deph-echoverssecure-iparapheur.dom.local, la commande sera :NO_PROXY="secure-iparapheur.dom.local"ph-echo