gpf_agent_rok4.agent_rok4 module

Main module logic.

class gpf_agent_rok4.agent_rok4.Rok4Agent(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, rok4_url='', 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 Rok4.

Au démarrage l’agent attend que le serveur ROK4 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, rok4_url='', 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 ROK4.

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

  • 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

  • health_filepath – chemin vers le fichier de santé de l’agent

  • work_dir (Path, optional) – dossier dans le quel l’agent peut créer des fichiers

  • rok4_url (str, optional) – url du ROK4

  • listening_mode (bool) –

    ???

  • 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)

generate_conf(params: dict) dict

Génère la configuration a envoyer au server ROK4

Paramètres:

params (dict) – paramètres du message RabbitMQ

Renvoie:

configuration ROK4

Type renvoyé:

dict

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 offering: offre courante :type offering: 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 ROK4.

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 ROK4.

Paramètres:

params (dict) – paramètres de publication

Renvoie:

état de la publication

Type renvoyé:

Status

unpublish_offering(params: dict) Status

Permet de dépublier un service ROK4.

Paramètres:

params (dict) – paramètres de publication

Renvoie:

état de la publication

Type renvoyé:

Status

gpf_agent_rok4.agent_rok4.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, work_dir: Path, rok4_url: 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

  • pod_id (str) – nom de l’identifiant de service

  • url_entrepot (str) – URL de l’Entrepôt

  • exchange_name (str) – Nom de l’exchange

  • 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

  • service_url_health_check (str) –

    ???

  • health_filepath (Path) –

    ???

  • work_dir (Path, optional) – dossier dans le quel l’agent peut créer des fichiers

  • rok4_url (str, optional) – url du ROK4

  • 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)