Projet

Général

Profil

Development #4577

Notification en push des programmes agents

Ajouté par Frédéric Péters il y a environ 10 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Catégorie:
-
Version cible:
-
Début:
26 mars 2014
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour le moment les agents sont nécessairement en mode polling du serveur, ça pourrait être bien chouette d'avoir un fonctionnement en push.


Fichiers

Historique

#1

Mis à jour par Frédéric Péters il y a presque 10 ans

  • Projet changé de Portail admin à Hobo
  • Patch proposed mis à Non
#2

Mis à jour par Frédéric Péters il y a presque 10 ans

C'est une expérimentation très basique à base de celery; l'idée est simplement d'envoyer un message en broadcast dès qu'il y a une modif, ce sur quoi les workers installés sur les différents serveurs exécutent les différents agents (par un bête os.system).

Sauf erreur le nécessaire est en place dans le patch pour que la dépendance soit optionnelle, il reste tout à fait possible aux agents d'être exécutés via un job cron.

Pour tester j'ai dans ma configuration locale ceci :

HOBO_AGENT_COMMANDS = [
        '/home/fred/src/eo/wcs/wcsctl.py -f /home/fred/src/eo/wcs/wcs.cfg check-hobos http://127.0.0.1:8000/',
]

Et je démarre ensuite un worker en local via "celery -A hobo.agent worker -l info -n foo" (et un deuxième pour vérifier le broadcast, avec -n bar).

Quand on aura via #5106 des bases communes pour le déploiement en tenants de nos applications, il y a du code qui pourra être partagé, plutôt que cet appel à os.system() mais l'idée me semble déjà convenir.

#3

Mis à jour par Frédéric Péters il y a presque 10 ans

  • Patch proposed changé de Non à Oui
#4

Mis à jour par Benjamin Dauvergne il y a presque 10 ans

Question de béotien: comment se fait la diffusion ? y-a-t-il un RabbitMQ à faire tourner quelque part ?

#5

Mis à jour par Frédéric Péters il y a presque 10 ans

Ouaip, en local sans config, ou ailleurs en positionnant BROKER_URL ('amqp://guest:guest@localhost:5672//' est la valeur par défaut).

#6

Mis à jour par Frédéric Péters il y a plus de 9 ans

Patch modifié pour envoyer la config via celery, ce qui évite un http get à l'agent.

Ce patch intègre aussi du code de déploiement, la base pour quelque chose de générique (quand le ticket "multi tenant sans modèle" sera terminé) ainsi que du spécifique pour wcs (ce qui réduit le code dans son agent (second patch)).

#7

Mis à jour par Frédéric Péters il y a plus de 9 ans

Correction d'un bug dans le environment/views.py, suite au déplacement d'une fonction vers le utils.py. Pas d'autre changement.

#8

Mis à jour par Thomas Noël il y a plus de 9 ans

pour le coup, le HOBO_AGENT_COMMANDS n'a plus de raison d'être dans le settings.py, non ?

A part ça, c'est ok !

#9

Mis à jour par Frédéric Péters il y a plus de 9 ans

  • Statut changé de En cours à Résolu (à déployer)

Non, plus de raison d'être, je la supprime.

commit 8404eef58b012882447c8589dd3e14378493c6f4
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Jul 23 11:08:14 2014 +0200

    use celery to push notification changes to agents (#4577)
#10

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF