Package: pastell-admin
Package pastelladminScripts pour PastellInstallationPour la version stable :pip install pastell-admin==0.2.0Pour la version de dev :pip install requests
pip install -i https://test.pypi.org/simple/ pastell-admin==0.2.0Développementgit clone git@github.com:megalis-bretagne/scripts-pastell.git
cd scripts-pastell
python3 -m venv .venv
source .venv/bin/activate
pip install .Utilisation des scriptsSécuritéCes scripts utilisent des API de Pastell. La configuration s'effectue dans le fichier de config.pastell-adminsitué dans le dossier de l'utilisateur courant. Si ce fichier n'existe pas, il faut le créer à partir d'une copie depastell-admin.dist. Configurer le fichier~/.pastell-adminavec notamment les informations de connexion pour les deux environnements (preprod et prod)[preprod]server=pastell-preprod.mondomaine.orglogin=usernamepassword=mypassword[prod]server=pastell.mondomaine.orglogin=usernamepassword=mypasswordSCRIPT pastell_orgCe script permet de générer un fichier csv avec la liste des entités Pastell.Paramètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--csv: fichier csv généré. Par défault il s'agit du fichier /tmp/organismes.csv"--active:  Retourne uniquement les entités actives. Par défaut retourne toutes les entités.exemple de commandepastell_org --env=preprod --csv=org.csv --activeSCRIPT pastell_find.pyCe script liste tous les documents pastell dans un état particulier sur une période donnéeLe script génère deux fichiers. Un fichiercsvpour lecture et un fichierjsonqui peut ensuite servir de source au scriptpastell_delete.pyParamètres (clé=valeur)--env=: pour sélectionner l'environnement d'éxécution (preprodouprod)--status: liste des états de dossiers pastell recherchés  exempletdt-errorou si plusieurs valeurs :accepter-sae erreur-verif-tdt--flux: liste des types de dossiers (flux) à filtrer. eg :actes-generiqueouactes-generique,deliberations-studio. Si non renseigné, le traitement est appliqué à l'ensemble des types de dossier--org=: Limite l'analyse à l' id_e fournis en paramètre. exemple. org=1--output=: définit le nom des fichiers générés (csv + json).resultpar défaut. Utiliser un chemin relatif.Options (clé)--list:  Pour lister les documents concernés (id_d)--count: pour uniquement dénombrer le nombre de documents filtrés.--transit: pour cibler les documents passés par l'état et non (par défaut) les documents dans état courant--json: pour récupérer une version json du fichier de sortie--merge: Pour mette à jour un fichier existant (output csv)exemples de commandepastell_find --env=preprod \
--status tdt-error --output=data/docs-tdt-error \
--start=2015-01-01 --end=2022-02-10 \
--list --jsonpastell_find --env=preprod \
--status accepter-sae termine --flux actes-generique deliberations-studio \
--output=data/docs-sae --org=1 \
--start=2015-01-01 --end=2022-08-31 \
--countSCRIPT pastell_docs_delete_from_list.pyCe script supprime les documents pastell listés dans un fichier json avec la structure suivante :{"docs":[{"id_e":"1","document":"9uTg9B4"},{"id_e":"7","document":"AubgGTA"}]}Le script produit un fichier de logdelete.logParamètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--limit:  Définit une limite à l'exécution (nombre de documents supprimés) . Default  = 0 c'est à dire sans limite--source: définit le nom du fichier en entrée (chemin absolu ou relatif).exemple de commande./pastell_docs_delete_from_list.py --env=preprod --source=docs-tdt-error.jsonSCRIPT delete_any.pyCe script supprime tous les documents pastell d'un type de dossier défini et dans un état défini.Paramètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--status: Etat de dossiers pastell recherchés  exempleterminate--type:  Définit le type de dossier.exempleautres-studio-sans-tdtexemple de commande./delete_any.py --env=preprod --status=terminate --type=autres-studio-sans-tdtSCRIPT pastell_connectorCe script permet de gérer des connecteurs pour une instance Pastell:statut d'un connecteur (absence, présence, doublons) unitaire ou en massecréation de connecteurs et association unitaire ou en masseMise à jour d'un connecteur unitaire ou en masseMise à jour et création si nécessaire d'un connecteur unitaire ou en masseDésassociation d'un connecteur unitaire ou en masseSuppression d'un connecteur unitaire ou en masseParamètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--source: fichier json contenant la définition du connecteur ou la liste des connecteurs à supprimer[{"id_e":"", "id_ce"},]--org: précise l'id_e de l'entité cocernée par la création du connecteur--recursive: précise si les entités filles sont également concernées. A associer avec --org=--flux: type de dossier (flux) Liste séparée par des vigules. Requis pour les actions de dissociation et de suppression sans fichier source--action: Requis. A choisir parmis [create, update, append, dissociate, delete, status]--libelle:  Libellé du connecteur. Requis pour les actions de statut, de dissociation et de suppression sans fichier source--type: type de connecteur (eg. GED). Requis pour les actions de dissociation et de suppression sans fichier source--id_connector: id_connecteur (eg. depot-pastell). Requis pour les actions de dissociation et de suppression sans fichier source--details: A utiliser avec l'action status. Option pour afficher les id_e des entités concernées.--scheduler: Pour lancer un connecteur de purge en asynchrone.exemples de commandeStatut d'un connecteurpastell_connector --env=preprod --action=status --libelle=ged-megalis-opendata-sans-tdt --detailsCréation d'un connecteur 1Dans cet exemple, le connecteur est créé sans association pour l'entité n°1 et ses fillespastell_connector --env=preprod --org=1 --recursive --action=create --source=connectors/opendata-sans-tdt.jsonCréation d'un connecteur cas 2Dans cet exemple, le connecteur est créé et associé au fluxautres-studio-sans-tdtpour toutes les entités qui n'en disposent pas déjàpastell_connector --env=preprod --action=create --flux=autres-studio-sans-tdt --source=connectors/opendata-sans-tdt.jsonCréation d'un connecteur cas 3Dans cet exemple, le connecteur est de purge est créé et déclenché en asynchronepastell_connector --env=preprod --org=1 --action=create --scheduler --source=connectors/purge.jsonMise à jour d'un connecteurCette mise à jour s'applique uniquement au connecteurs existantspastell_connector --env=preprod --action=update --flux=autres-studio-sans-tdt --source=connectors/opendata-sans-tdt.jsonCréation ou mise à jour d'un connecteurSi le connecteur n'existe pas il est créé sinon il est mis à jour pour l'entité n°1 avec récursivité.pastell_connector --env=preprod --org=1 --recursive --action=append --flux=autres-studio-sans-tdt --source=connectors/opendata-sans-tdt.jsonDissociation d'un connecteur avec un flux pour toutes les entitéspastell_connector --env=preprod --action=dissociate --flux=autres-studio-sans-tdt --type=GED --libelle=ged-megalis-opendata-sans-tdt --id_connector=depot-pastellSupression d'un connecteur pour une entité sans récursivitépastell_connector --env=preprod --org=1 --action=delete --libelle=ged-megalis-opendata-sans-tdt --id_connector=depot-pastell --type=GEDSupression de connecteurs à partir d'une listepastell_connector --env=preprod --action=delete --source=connectors/connectors_to_delete.jsonSCRIPT pastell_statsCe script permet de générer un fichier csv en sortie avec les statistiques pastell:Paramètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--csv: fichier csv généré. Par défault il s'agit du fichier /tmp/stats-yyyy-mm-aa.csv"--org: précise l'id_e de l'entité concernée par la création du connecteur--flux: Filtre les stats pour un type de flux--infos: pour afficher le statut des organismes et  notamment si l'entité est activeexemples de commandepastell_stats --env=preprod --org=1 --csv=info.csv --infospastell_stats --env=preprod  --csv=/tmp/statistiques.csvSCRIPT pastell_associationsCe script permet de générer un fichier csv en sortie avec les associations connecteur / fluxParamètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--csv: fichier csv généré. Par défault il s'agit du fichier /tmp/associations.csv"--org: précise l'id_e de l'entité concernée par la création du connecteurexemples de commandepastell_associations --env=preprod --org=1 --csv=associations.csvSCRIPT pastell_connector_instancesCe script permet de générer un fichier csv en sortie avec toutes les instances de connecteurs pastellParamètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--csv: fichier csv généré. Par défault il s'agit du fichier /tmp/instances.csv"--org: précise l'id_e de l'entité concernée par la création du connecteurexemples de commandepastell_connector_instances --env=preprod --org=1 --csv=instances.csvSCRIPT pastell_matriceCe script permet de générer un fichier csv en sortie avec la matrice de rôles PastellParamètres--env: pour sélectionner l'environnement d'éxécution (preprodouprod)--csv: fichier csv généré. Par défault il s'agit du fichier /tmp/matrice.csv"exemples de commandepastell_matrice --env=preprod --csv=roles.csvUtilisation pour des développementsClient APIfromsrc.pastelladmin.api.clientimportSession,Versionsession=(server="mon-serveur-pastel.org",user="username",password="Mon password")version_pastell=Version(session).get().resultprint(version)Scriptsfromsrc.pastelladmin.pastell_statsimportstatsstats(env="prod",org="1")