gpf_pub_agent_road2.agent_road2 module#
Main module logic.
- class gpf_pub_agent_road2.agent_road2.Road2Agent(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: Optional[str] = None, user_agent: str = 'AgentdepublicationRoad2/2.0.0', rabbit_login: Optional[str] = None, rabbit_password: Optional[str] = None, service_url_health_check: str = '', work_dir: Optional[Path] = None, pg_user: str = '', pg_pass: str = '', road2_graph_data_dir: Optional[Path] = None, road2_service_dir: Optional[Path] = None, road2_admin_url: str = '', listening_mode: bool = True, health_filepath: Optional[Path] = None, 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: Optional[str] = None, mattermost_request_timeout: int = 60, checking_sources_to_be_removed_timer: int = 30, road2_db_pool_size: Optional[int] = None)#
Bases :
PublishAgentCette classe définit l’agent de publication qui communique avec Road2.
Au démarrage l’agent attend que Road2 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: Optional[str] = None, user_agent: str = 'AgentdepublicationRoad2/2.0.0', rabbit_login: Optional[str] = None, rabbit_password: Optional[str] = None, service_url_health_check: str = '', work_dir: Optional[Path] = None, pg_user: str = '', pg_pass: str = '', road2_graph_data_dir: Optional[Path] = None, road2_service_dir: Optional[Path] = None, road2_admin_url: str = '', listening_mode: bool = True, health_filepath: Optional[Path] = None, 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: Optional[str] = None, mattermost_request_timeout: int = 60, checking_sources_to_be_removed_timer: int = 30, road2_db_pool_size: Optional[int] = None)#
Permet d’initialiser l’agent Road2.
- 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) – nom de l’exchange du bus sur lequel
écouter –
une (vaut "my_exchange" par défaut. Ne doit pas être) –
vide. (chaîne) –
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) –
user_agent (str) – nom du user_agent à envoyer lors des requètes vers l’API Entrepot
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
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 PGRouting
pg_pass (str, optional) – mot de passe de la base de donnees PGRouting
road2_graph_data_dir (Path) – dossier contenant les données de graphes partagé par tout les endpoint
road2_service_dir (Path) – dossier contenant les fichiers de configuration pour Road2
road2_admin_url (str, optional) – url de l’administration de Road2
health_filepath – chemin vers le fichier de santé de l’agent
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) –
road2_db_pool_size (int, optional) – taille du pool de connection dans le service Road2
- get_published_offerings() list[str]#
Fonction qui récupère la liste des offres publiées sur le serveur.
- Renvoie:
La liste des offres publiées.
- Type renvoyé:
List[str]
- 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
- non_blocking_callback() None#
Cette fonction est appelée juste avant de consommer les messages sur l’exchange fanout. Elle doit impérativement exécuter des actions non-bloquantes.
- publish_offering(params: dict) Status#
Permet de publier un service ITINERARY ou ISOCHRONOUS.
- 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 ITINERARY ou ISOCHRONOUS.
- 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 ITINERARY ou ISOCHRONOUS.
- Paramètres:
params (dict) – paramètre de publication
- Renvoie:
état de la publication
- Type renvoyé:
Status
- gpf_pub_agent_road2.agent_road2.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, user_agent: str, rabbit_login: str, rabbit_password: str, service_url_health_check: str, work_dir: Path, pg_user: str, pg_pass: str, road2_graph_data_dir: Path, road2_service_dir: Path, road2_admin_url: str, health_filepath: Path, 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, checking_sources_to_be_removed_timer: int, road2_db_pool_size: Optional[int] = None)#
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 –
une (vaut "my_exchange" par défaut. Ne doit pas être) –
vide. (chaîne) –
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) –
user_agent (str) – nom du user_agent à envoyer lors des requètes vers l’API Entrepot
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
work_dir (Path) – dossier dans lequel l’agent peut créer des fichiers
pg_user (str) – utilisateur de la base de donnees PGRouting
pg_pass (str) – mot de passe de la base de donnees PGRouting
road2_graph_data_dir (Path) – dossier contenant les données de graphes partagé par tout les endpoint
road2_service_dir (Path) – dossier contenant les fichiers de configuration pour Road2
road2_admin_url (str) – url de l’administration de Road2
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) –
road2_db_pool_size (int, optional) – taille du pool de connection dans le service Road2