sdk_entrepot_gpf.workflow.action#
ActionAbstract(workflow_context, definition_dict, parent_action=None)
#
Bases: ABC
Classe abstraite représentant une action d'un workflow.
Lancer une action revient à créer une entité dans l'API. Par exemple :
- faire un traitement revient à créer une Exécution de Traitement ;
- configurer un géoservice revient à créer une Configuration ;
- publier un géoservice revient à créer une Offre.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
index
property
#
Renvoie l'index de l'action dans la liste des actions de cette étape. La première action a le numéro 0.
Returns:
Type | Description |
---|---|
int
|
index de l'action dans la liste des actions de cette étape |
get_filters(config_key, infos, tags)
staticmethod
#
Génère les critères de filtres (pour voir si cette action n'a pas déjà été lancée) d'après les critères d'unicité et les paramètres de création d'entité.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
config_key
|
str
|
clé permettant de récupérer les critère d'unicité en config |
required |
infos
|
Dict[str, Any]
|
paramètres d'attributs pour la création de l'entité |
required |
tags
|
Dict[str, Any]
|
paramètres de tags pour la création de l'entité |
required |
Returns:
Type | Description |
---|---|
Tuple[Dict[str, str], Dict[str, str]]
|
critère de filtres sur les infos et les tags |
resolve(**kwargs)
#
Résout la définition de l'action.
L'action peut faire référence à des entités via des filtres, on veut donc résoudre ces éléments afin de soumettre une requête valide à l'API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
kwargs
|
Any
|
paramètres supplémentaires. |
{}
|
Raises:
Type | Description |
---|---|
StepActionError
|
description |
run(datastore=None)
abstractmethod
#
Lancement de l'action.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. Si None, le datastore sera récupéré dans la configuration. Defaults to None. |
None
|
AccessAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la création des accès.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__access |
Optional[Access]
|
représentation Python de l'accès créé |
ConfigurationAction(workflow_context, definition_dict, parent_action=None, behavior=None, compatibility_cartes=None)
#
Bases: ActionAbstract
Classe dédiée à la création des Configuration.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__configuration |
Optional[Configuration]
|
représentation Python de la configuration créée |
find_configuration(datastore)
#
Fonction permettant de récupérer une Configuration ressemblant à celle qui devrait être créée en fonction des filtres définis dans la Config.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
required |
Returns: configuration retrouvée
CopyConfigurationAction(workflow_context, definition_dict, parent_action=None, behavior=None, compatibility_cartes=None)
#
Bases: ConfigurationAction
Classe dédiée à la copie des Configuration.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__configuration |
Optional[Configuration]
|
représentation Python de la configuration créée |
DeleteAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la suppression des entités.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
print_before_delete(l_delete)
staticmethod
#
Affichage avant que la suppression soit effectuée
Parameters:
Name | Type | Description | Default |
---|---|---|---|
l_delete
|
List[StoreEntity]
|
liste des entités à supprimer |
required |
Returns:
Type | Description |
---|---|
List[StoreEntity]
|
List[StoreEntity]: liste finale des entités à supprimer |
question_before_delete(l_delete)
staticmethod
#
question posée avant que la suppression soit effectuée
Parameters:
Name | Type | Description | Default |
---|---|---|---|
l_delete
|
List[StoreEntity]
|
liste des entités à supprimer |
required |
Returns:
Type | Description |
---|---|
List[StoreEntity]
|
List[StoreEntity]: liste final des entités à supprimer |
EditAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la Mise à jour des entités.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
EditUsedDataConfigurationAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la copie des Configuration.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__configuration |
Optional[Configuration]
|
représentation Python de la configuration créée |
OfferingAction(workflow_context, definition_dict, parent_action=None, behavior=None)
#
Bases: ActionAbstract
Classe dédiée à la création des Offering.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__offering |
Optional[Offering]
|
représentation Python de la Offering créée |
find_configuration(datastore=None)
#
Fonction permettant de récupérer la Configuration associée à l'Offering qui doit être crée par cette Action.
C'est à dire la Configuration indiquée dans url_parameters
du definition_dict
de cette Action.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
None
|
Returns: Configuration
find_offering(datastore=None)
#
Fonction permettant de récupérer l'Offering qui devrait être créée (si elle existe déjà).
C'est à dire une offering associée à la Configuration indiquée dans url_parameters
et au endpoint indiqué dans body_parameters
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
None
|
Returns: Offre retrouvée
PermissionAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la création des Permissions.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__permission |
Optional[Permission]
|
représentation Python de la permission créée |
ProcessingExecutionAction(workflow_context, definition_dict, parent_action=None, behavior=None, compatibility_cartes=None)
#
Bases: ActionAbstract
Classe dédiée à la création des ProcessingExecution.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__processing_execution |
Optional[ProcessingExecution]
|
représentation Python de l'exécution de traitement créée |
__Upload |
Optional[Upload]
|
représentation Python de la livraison en sortie (null si donnée stockée en sortie) |
__StoredData |
Optional[StoredData]
|
représentation Python de la donnée stockée en sortie (null si livraison en sortie) |
output_new_entity
property
#
Indique s'il y aura création d'une nouvelle entité par rapport au paramètre de création de l'exécution de traitement (la clé "name" et non la clé "_id" est présente dans le paramètre "output" du corps de requête).
output_update_entity
property
#
Indique s'il y aura mise à jour d'une entité par rapport au paramètre de création de l'exécution de traitement (la clé "_id" et non la clé "name" est présente dans le paramètre "output" du corps de requête).
find_stored_data(datastore=None)
#
Fonction permettant de récupérer une Stored Data ressemblant à celle qui devrait être créée par l'exécution de traitement en fonction des filtres définis dans la Config.
Returns:
Type | Description |
---|---|
Optional[StoredData]
|
donnée stockée retrouvée |
monitoring_until_end(callback=None, ctrl_c_action=None)
#
Attend que la ProcessingExecution soit terminée (statut SUCCESS
, FAILURE
ou ABORTED
) avant de rendre la main.
La fonction callback indiquée est exécutée après chaque vérification du statut en lui passant en paramètre la processing execution (callback(self.processing_execution)).
Si l'utilisateur stoppe le programme (par ctrl-C), le devenir de la ProcessingExecutionAction sera géré par la callback ctrl_c_action().
Parameters:
Name | Type | Description | Default |
---|---|---|---|
callback
|
Optional[Callable[[ProcessingExecution], None]]
|
fonction de callback à exécuter. Prend en argument le traitement (callback(processing-execution)). |
None
|
ctrl_c_action
|
Optional[Callable[[], bool]]
|
fonction de gestion du ctrl-C. Renvoie True si on doit stopper le traitement. |
None
|
Returns:
Name | Type | Description |
---|---|---|
str |
str
|
statut final de l'exécution du traitement |
SynchronizeOfferingAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la synchronization des Offering.
Attributes:
Name | Type | Description |
---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
run(datastore=None)
#
lancement de la synchronization des Offering.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
surcharge du datastore, sinon utilisation de celui par défaut. Defaults to None. |
None
|
Raises:
Type | Description |
---|---|
StepActionError
|
Aucune offre trouvée pour la synchronisation |
StepActionError
|
Plusieurs offres trouvées pour la synchronisation (uniquement si "if_multi" == "error") |
StepActionError
|
La synchronisation d'au moins une offre est terminée en erreur |
UploadAction(dataset, behavior=None, compatibility_cartes=None)
#
Classe permettant d'accompagner la création d'une livraison.
Attributes:
Name | Type | Description |
---|---|---|
__dataset |
Dataset
|
dataset contenant les info de la livraison à créer |
__upload |
Optional[Upload]
|
livraison représentant l'entité créée sur l'entrepôt |
__behavior |
str
|
comportement à adopter si la livraison existe déjà sur l'entrepôt |
initialise le comportement de UploadAction
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dataset
|
Dataset
|
description |
required |
behavior
|
Optional[str]
|
description. Defaults to None. |
None
|
compatibility_cartes
|
Optional[bool]
|
récupère l'information du fonctionnement en mode compatibilité avec cartes.gouv |
None
|
add_carte_tags(mode_cartes, upload, upload_step)
staticmethod
#
En mode cartes, ajoute les tags nécessaires.
find_upload(datastore)
#
Fonction permettant de lister un éventuel upload déjà existant à partir des critères d'unicité donnés.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
required |
Returns:
Type | Description |
---|---|
Optional[Upload]
|
None si rien trouvé, sinon l'Upload trouvé |
monitor_until_end(upload, callback=None, ctrl_c_action=None, mode_cartes=None)
staticmethod
#
Attend que toute les vérifications liées à la Livraison indiquée soient terminées (en erreur ou en succès) avant de rendre la main.
La fonction callback indiquée est exécutée à chaque vérification en lui passant en paramètre un message de suivi du nombre de vérifications par statut.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
upload
|
Upload
|
Livraison à monitorer |
required |
callback
|
Optional[Callable[[str], None]]
|
fonction de callback à exécuter avec le message de suivi. |
None
|
ctrl_c_action
|
Optional[Callable[[], bool]]
|
gestion du ctrl-C. Si None ou si la fonction renvoie True, il faut arrêter les vérifications. |
None
|
Returns:
Type | Description |
---|---|
bool
|
True si toutes les vérifications sont ok, sinon False |
parse_tree(tree, prefix='')
staticmethod
#
Parse l'arborescence renvoyée par l'API en un dictionnaire associant le chemin de chaque fichier à sa taille. L'objectif est de permettre de facilement identifier quels sont les fichiers à (re)livrer.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tree
|
List[Dict[str, Any]]
|
arborescence à parser |
required |
prefix
|
str
|
pré-fixe du chemin |
''
|
Returns:
Type | Description |
---|---|
Dict[str, int]
|
liste des fichiers envoyés et leur taille |
run(datastore, check_before_close=False)
#
Crée la livraison décrite dans le dataset et livre les données avant de retourner la livraison créée.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. Si None, le datastore sera récupéré dans la configuration. |
required |
check_before_close
|
bool
|
Vérification de l'arborescence de la livraison avant fermeture. |
False
|
Raises:
Type | Description |
---|---|
GpfSdkError
|
levée si création non effectuée |
Returns:
Type | Description |
---|---|
Upload
|
livraison créée |