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/1.11.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, road2_db_pool_size: Optional[int] = None)#

Bases : PublishAgent

Cette 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/1.11.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, 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

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, 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