Tâche #31585
Scénario #14769: Proposer et expérimenter des solutions techniques permettant d'envoyer des messages aux utilisateurs Seth/ScribeAD
Étude de la mise en place avec des modules salt
100%
Historique
#1 Mis à jour par Benjamin Bohard il y a environ 3 ans
- Statut changé de Nouveau à En cours
#2 Mis à jour par Benjamin Bohard il y a environ 3 ans
Plusieurs options ont été envisagées pour la notification sous la forme de module d’exécution Salt.
Code pour les notifications¶
Deux bibliothèques ont été regardées : win10toast (https://pypi.org/project/win10toast/) et plyer (https://github.com/kivy/plyer).
Ces deux bibliothèques exploitent la fonctionnalité de notification des systèmes d’exploitation et leur mise en œuvre est assez similaire.
L’intérêt de plyer est sa meilleure portabilité (notification possible sur Windows 10 comme sur une distribution Linux).
Mise en place¶
La méthode d’installation doit être adaptée au contexte d’exécution.
Sur Windows, les modules et dépendances python pour salt-minion sont installés dans un répertoire propre à Salt. Il faut utiliser la version de l’installeur pip fournie dans ce répertoire pour que les bibliothèques soient accessibles ensuite.
Le module lui-même peut-être assez simple
import os try: from plyer import notification HAS_LIB = True except: HAS_LIB = False def __virtual__(): ''' Check availability ''' return HAS_LIB def notify(title, message, *args, **kwargs): ''' Trigger OS notification CLI example: salt '*' notify.notify ''' notification.notify(title=title, message=message, timeout=10)
Adéquation de la solution¶
Contexte d’exécution¶
Salt-minion n’est pas exécuté dans le bon contexte et les notifications ne sont pas affichées dans la session de l’utilisateur connecté.
Persistance de la notification¶
Dans le cas d’usage décrit dans la demande initiale, on peut supposer que le message ne doit pas disparaître avant de s’être assuré que l’utilisateur en a pris connaissance.
Le système de notification ne propose pas de système d’accusé de réception qui impliquerait une action de l’utilisateur pour la faire disparaître.
Un contournement exploré consisterait à conditionner l’affichage à répétition de la notification à la valeur d’une variable poussée par le serveur.
#3 Mis à jour par Emmanuel GARETTE il y a environ 3 ans
- Statut changé de En cours à Résolu
#4 Mis à jour par Emmanuel GARETTE il y a environ 3 ans
- Assigné à mis à Benjamin Bohard
- % réalisé changé de 0 à 100
#5 Mis à jour par Joël Cuissinat il y a environ 3 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0