Projet

Général

Profil

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

Ajouté par Benjamin Bohard il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
21/12/2020
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

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

Formats disponibles : Atom PDF