gpf_agent_geoserver.agent_geoserver module¶
Main module logic.
- class gpf_agent_geoserver.agent_geoserver.GeoserverAgent(endpoint_name: str, pod_id: str, url_entrepot: str, exchange_name: str, publication_result_topic: str, host: str = 'localhost', port: int = 5672, keycloack_user_id: str | None = None, rabbit_login: str | None = None, rabbit_password: str | None = None, service_url_health_check: str = '', health_filepath: Path | None = None, work_dir: Path | None = None, pg_user: str = '', pg_pass: str = '', geoserver_url='', geoserver_user: str = '', geoserver_pass: str = '', listening_mode: bool = True, consistency_checking_timer: int = 300, consistency_checking_enabled: bool = True, mattermost_webhook_scheme: str = 'http', mattermost_webhook_host: str = 'mattermost.gpf-tech.ign.fr', mattermost_webhook_port: int = 80, mattermost_webhook_token: str | None = None, mattermost_request_timeout: int = 60)¶
Bases :
PublishAgent
Cette class définie l’agent de publication qui communique avec le Geoserver.
Au démarrage l’agent attend que le Geoserver démarre. Il l’initialise en interrogeant l’API Entrepot. Il se met en attente des messages à traiter.
- __init__(endpoint_name: str, pod_id: str, url_entrepot: str, exchange_name: str, publication_result_topic: str, host: str = 'localhost', port: int = 5672, keycloack_user_id: str | None = None, rabbit_login: str | None = None, rabbit_password: str | None = None, service_url_health_check: str = '', health_filepath: Path | None = None, work_dir: Path | None = None, pg_user: str = '', pg_pass: str = '', geoserver_url='', geoserver_user: str = '', geoserver_pass: str = '', listening_mode: bool = True, consistency_checking_timer: int = 300, consistency_checking_enabled: bool = True, mattermost_webhook_scheme: str = 'http', mattermost_webhook_host: str = 'mattermost.gpf-tech.ign.fr', mattermost_webhook_port: int = 80, mattermost_webhook_token: str | None = None, mattermost_request_timeout: int = 60)¶
Permet d’initialiser l’agent Geoserver.
- Paramètres:
endpoint_name (str) – nom du endPoint
pod_id (str) – nom de l’identifiant de service
url_entrepot (str) – URL de l’Entrepôt
exchange_name (str) – topic du bus sur lequel l’agent écoute
publication_result_topic (str) – topic du bus sur lequel l’agent envoie une réponse
host (str) – nom de l’hôte du serveur RabbitMQ
port (int) – port du serveur rabbitMQ
keycloack_user_id (str) – id de l’utilisateur technique qui a le
/technical (droit d'utiliser les appels en)
rabbit_login (str) – utilisateur du bus RabbitMQ
rabbit_password (str) – mot de passe pour le bus RabbitMQ
work_dir (Path, optional) – dossier dans le quel l’agent peut créer des fichiers
pg_user (str, optional) – utilisateur de la base de donnees
pg_pass (str, optional) – mot de passe de la base de donnees
geoserver_url (str, optional) – url du Geoserver
geoserver_user (str, optional) – utilisateur du Geoserver
geoserver_pass (str, optional) – mot de passe du Geoserver
consistency_checking_timer (int), temps de repos (en secondes)
mattermost_webhook_scheme (str)
mattermost_webhook_host (str)
mattermost_webhook_port (int)
mattermost_webhook_token (str)
- all_datastores_exist(used_data_list: dict, workspace_name: str) bool ¶
Fonction qui vérifie si les datastores utilisés dans une offre sont déjà publiés sur le serveur. :param used_data_list: liste des datastores utilisés :type used_data_list: dict :param workspace_name: nom du workspace :type workspace_name: str
- Renvoie:
True si tous les datastores sont publiés, False sinon
- Type renvoyé:
bool
- all_layers_exist(used_data_list: dict, workspace_name: str, type: str) bool ¶
Fonction qui vérifie si les layers utilisés dans une offre sont déjà publiés sur le serveur. :param used_data_list: liste des layers utilisés :type used_data_list: dict :param workspace_name: nom du workspace :type workspace_name: str :param type: type du geoservice :type type: str
- Renvoie:
True si tous les layers de chaque datastore sont publiés, False sinon
- Type renvoyé:
bool
- consistency_control()¶
Fonction qui surcharge celle définie dans pyroger. Le fonctionnement est sensiblement différent dans le cas du Geoserver, où nous allons vérifier la consistence de manière atomique. Nous allons devoir récupérer non plus uniquement le layer_name de l’offre mais tout le message de publication
- is_offering_consistent(params: dict) bool ¶
Fonction qui vérifie si une offre est déjà consistente sur le serveur. :param params: offre détaillée :type params: dict
- Renvoie:
True si l’offre est consistente, False sinon.
- Type renvoyé:
bool
- is_offering_published(params: dict) bool ¶
Fonction qui vérifie si une offre est déjà publiée sur le serveur. :param params: offre courante :type params: dict
- Renvoie:
True si l’offre a déjà été publiée précédemment, False sinon.
- Type renvoyé:
bool
- publish_offering(params: dict) Status ¶
Permet de publier un service GEOSERVER.
- Paramètres:
params (dict) – paramètres de publication
- Renvoie:
état de la publication
- Type renvoyé:
Status
- synchronize_offering(params: dict) Status ¶
Permet de synchroniser un service DOWNLOAD.
- Paramètres:
params (dict) – paramètre de publication
- Renvoie:
état de la publication
- Type renvoyé:
Status
- unpublish_offering(params: dict) Status ¶
Permet de dépublier un service DOWNLOAD.
- Paramètres:
params (dict) – paramètres de publication
- Renvoie:
état de la publication
- Type renvoyé:
Status
- gpf_agent_geoserver.agent_geoserver.run(endpoint_name: str, pod_id: str, url_entrepot: str, exchange_name: str, publication_result_topic: str, host: str, port: int, keycloack_user_id: str | None, rabbit_login: str | None, rabbit_password: str | None, service_url_health_check: str, health_filepath: Path | None, work_dir: Path, pg_user: str, pg_pass: str, geoserver_url: str, geoserver_user: str, geoserver_pass: str, consistency_checking_timer: int, consistency_checking_enabled: bool, mattermost_webhook_scheme: str, mattermost_webhook_host: str, mattermost_webhook_port: int, mattermost_webhook_token: str, mattermost_request_timeout: int)¶
Fonction principale permettant la création de l’agent.
- Paramètres:
endpoint_name (str) – nom du endPoint pour le bus d’écoute
pod_id (str) – Id du POD
url_entrepot (str) – URL de l’Entrepôt
exchange_name (str) – nom de l’exchange du bus sur lequel écouter, vaut « my_exchange » par défaut. Ne doit pas être une chaîne vide.
publication_result_topic (str) – topic du bus sur lequel l’agent envoie une réponse
host (str) – nom de l’hôte du serveur RabbitMQ
port (int) – port du serveur rabbitMQ
keycloack_user_id (str) – id de l’utilisateur technique qui a le droit d’utiliser les appels en /technical
rabbit_login (str) – utilisateur du bus RabbitMQ
rabbit_password (str) – mot de passe pour le bus RabbitMQ
service_url_health_check (str) – url de vérification de l’état du service de téléchargement
health_filepath (Path) – Chemin vers le fichier de « health » de l’agent
work_dir (Path) – dossier dans le quel l’agent peut créer des fichiers
pg_user (str) – utilisateur de la base de donnees
pg_pass (str) – mot de passe de la base de donnees
geoserver_url (str) – url du Geoserver
geoserver_user (str, optional) – utilisateur du Geoserver
geoserver_pass (str) – mot de passe du Geoserver
consistency_checking_timer (int), temps de repos (en secondes)
mattermost_webhook_scheme (str)
mattermost_webhook_host (str)
mattermost_webhook_port (int)
mattermost_webhook_token (str)