Projet

Général

Profil

Tâche #22349

Scénario #22221: Les services Zéphir doivent avoir un niveau technique homogène

Finaliser la mise à niveau du code du service `saltmaster`

Ajouté par William Petit il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
13/11/2017
Echéance:
% réalisé:

100%

Temps estimé:
0.00 h
Temps passé:
Restant à faire (heures):
0.0

Demandes liées

Lié à Zéphir - Tâche #22352: Mutualiser le contrôleur WAMP Nouveau 13/11/2017

Révisions associées

Révision ac39c3c8 (diff)
Ajouté par Daniel Dehennin il y a plus de 8 ans

SaltStack: crossbar management must be restricted to the controller

We split the code between the crossbar frontend and the SaltStack
management code.

The controller is only responsible of publishing on crossbar the API
to manage SaltStack.

  • use a common SaltStack prefix for messages
  • services/saltmaster/src/salt_ctrl/salt-controller: simple executable
    script to start the controller.
    Define methods to wrap each exposed API and manage their return
    values and errors.
  • services/saltmaster/src/salt_ctrl/salt_exec.py: define exception
    classes and use them instead of autobahn specific exceptions.
    Remove the handler_map presentation trick for autobahn since it's
    managed by the controller.
    Publish an event for each sheduled command.
  • services/saltmaster/src/salt_ctrl/salt_jobs.py: ditoo.
  • services/saltmaster/src/salt_ctrl/salt-events-listener: simple
    executable script to start a SaltSatack events listener which print
    messages on standard output.
  • services/saltmaster/Dockerfile: install new event listener and adapt
    for controller and its configuration file renames.
  • services/common/messages/v1/salt.exec.yml: link to error message manifests.
  • services/common/messages/v1/salt.exec.error.execute.yml: add
    manifest for error message.
  • services/common/messages/v1/salt.exec.error.login.yml: ditoo.
  • services/common/messages/v1/salt.exec.error.missing-command.yml: ditoo.
  • services/common/messages/v1/salt.exec.error.missing-servername.yml: ditoo.
  • services/common/messages/v1/salt.jobs.list.yml: ditoo.
  • services/common/messages/v1/salt.jobs.describe.yml: ditoo.
  • services/common/messages/v1/salt.jobs.error.db-connection.yml: ditoo.
  • services/common/messages/v1/salt.jobs.error.jobid-type.yml: ditoo.
  • services/common/messages/v1/salt.jobs.error.list.yml: ditoo.
  • services/common/messages/v1/salt.jobs.error.missing-jobid.yml: ditoo.
  • services/common/messages/v1/salt.jobs.error.unknown-jobid.yml: ditoo.

Ref: #22349

Historique

#1 Mis à jour par William Petit il y a plus de 8 ans

  • Statut changé de Nouveau à En cours

#2 Mis à jour par William Petit il y a plus de 8 ans

  • Sujet changé de Finaliser la mise à niveau du code du service @saltmaster@ à Finaliser la mise à niveau du code du service `saltmaster`

#3 Mis à jour par William Petit il y a plus de 8 ans

#4 Mis à jour par Daniel Dehennin il y a plus de 8 ans

  • % réalisé changé de 0 à 100
  • Le controlleur est centré sur la gestion crossbar
  • Les erreurs crossbar sont définies dans des messages à part
  • Le point d’entrée est un script et non un module python => utilisation d’un nom qui traduit cette différence
  • Un écouteur d’exemple a exécuter en ligne de commande est fourni
    root@zephir2:~# docker exec -it zephir_saltmaster_1 /srv/salt_ctrl/salt-events-listener
    Salt events listener: crossbar joined.
    Salt events listener: topic “v1.salt.exec.command-executed” subscribed by handler “SaltEventsListener.ExecutedCommand” with subscription ID “8487881006278455”
    Got “v1.salt.exec.command-executed” event with arguments “{'return': [{'minions': ['eolebase.ac-test.fr', 'horus.ac-test.fr'], 'jid': '20171207143731313335'}], 'salt_args': 'salt_args', 'salt_command': 'salt_command', 'servername': 'servername', 'client_mode': 'client_mode'}”
    
  • La documentation des messages est regénérée et prend bien en compte les messages d’erreur.

#5 Mis à jour par Daniel Dehennin il y a plus de 8 ans

  • Temps estimé mis à 0.00 h
  • Restant à faire (heures) mis à 0.0

#6 Mis à jour par Scrum Master il y a plus de 8 ans

  • Statut changé de En cours à Résolu

#7 Mis à jour par Daniel Dehennin il y a plus de 8 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF