Project

General

Profile

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

Added by Benjamin Bohard over 1 year ago. Updated over 1 year ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
12/21/2020
Due date:
% Done:

100%

Remaining (hours):
0.0

History

#1 Updated by Benjamin Bohard over 1 year ago

  • Status changed from Nouveau to En cours

#2 Updated by Benjamin Bohard over 1 year ago

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 Updated by Emmanuel GARETTE over 1 year ago

  • Status changed from En cours to Résolu

#4 Updated by Emmanuel GARETTE over 1 year ago

  • Assigned To set to Benjamin Bohard
  • % Done changed from 0 to 100

#5 Updated by Joël Cuissinat over 1 year ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

Also available in: Atom PDF