Projet

Général

Profil

Anomalie #6593

Revoir la gestion des erreurs des services

Ajouté par Emmanuel GARETTE il y a plus de 10 ans. Mis à jour il y a plus de 10 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
Echéance:
06/12/2013
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.4

Description

Liste des actions possibles

  • action d'activation/désactivation : enable/disable/configure (configure reprenant la configuration Creole)
  • action de stop/(re)démarrage : start/stop/restart/reload/apply (apply démarrant/stoppant suivant la configuration Creole)
  • action de status : status

Fonctionnement interne

Aujourd'hui, après le refactoring en s'inspirant de ce qu'il y avait nous avons :

  • check avant l'action (quelque soit l'action) qui vérifie :
    • si l'action est activé (au sens ubuntu et non Creole) ;
    • si l'action n'est pas configuré correctement (toujours au sens ubuntu).

Sauf cas particulier il n'est pas possible de lancer une action si le check ne passe pas.
Par contre, il y a un "raise" que si l'action est 'start' ou 'restart' (sauf si on redémarre tous les services).

  • si le check passe (sauf cas particulier) lancement de l'action.

Problèmes :

Voici une liste non exhaustive des problèmes actuels :

  • peu de distinction des actions globales (application d'une configuration) et action sur un service particulier
  • c'est ubuntu qui a raison (et non Creole) :
    • il est possible de (dés)activer une action alors qu'elle est active dans Creole
    • si on désactive une action il n'est plus possible de faire un status/stop/... sur ce service
    • si un service est activer dans Creole, il n'est pas possible de le démarrer si pas configuration dans ubuntu
    • ....
  • gestion des erreurs a définir :
    • pourquoi fait un raise si un service ne doit pas être démarré, mais juste un log.debug pour status ?

Problèmes connexes

  • l'ordre de démarrage des services au démarrage de la machine n'est pas contrôlable ;
  • on ne peut pas démarrer les conteneurs sans démarrer les services (donc il n'est pas possible d'avoir accès au conteneur en posttemplate ou les services sont démarrés avant posttemplate et non postservice).

Demandes liées

Lié à creole - Evolution #6673: Ajouter et gérer un attribut de service "unmanaged" Classée sans suite

Révisions associées

Révision 18525ccc (diff)
Ajouté par Emmanuel GARETTE il y a plus de 10 ans

pyeole/service/ validation sur creole (ref #6593)

Révision af6f5159 (diff)
Ajouté par Emmanuel GARETTE il y a plus de 10 ans

bin/Maj-Auto validation sur creole + creole/reconfigure.py : start les services au lieu d'apply (ref #6593)

Révision 89134673 (diff)
Ajouté par Joël Cuissinat il y a plus de 10 ans

Correction : même les scripts disabled démarrent !

Ref #6593 @10m

Révision 5966473b (diff)
Ajouté par Emmanuel GARETTE il y a plus de 10 ans

pouvoir ajouter l'option 'force' à manage_services (ref #6593)

Révision fabc6a68 (diff)
Ajouté par Emmanuel GARETTE il y a plus de 10 ans

ajouter l'option --force à CreoleService (fixes #6593)

Historique

#1 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

Solution proposé par Philippe :

Ne pas se soucier de la configuration Ubuntu/Creole. Avoir un système permissif.

Cela permet d'avoir un code plus clair, mais surtout permettre de test/débugger sans passer par les outils ubuntu standard. Les contrôles post-actions ne sont pas vraiment justifier. Cela n'impactera pas le fonctionnement de la machine si on arrive à démarrer un service qui ne devrait pas l'être.

#2 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

Je serais pour une vérification de la configuration Creole et uniquement la configuration Creole.

Pour le démarrage des services, je pense qu'on devrait évalué la possibilité que ca soit un service spécial EOLE qui démarre les services une fois que tous les conteneurs sont démarrés et ne plus utiliser le système de démarrage de Ubuntu.

#3 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Version cible changé de Eole 2.4-beta2 à Eole 2.4-beta3

#4 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

Manage_services doit utiliser les informations de Creoled et non ubuntu.

Il faudra pouvoir ne pas faire de vérification avec les commandes CreoleService (option --force).

#5 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

  • Assigné à mis à Emmanuel GARETTE

#6 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

Reste a voir le "--force" dans CreoleService.

#7 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • % réalisé changé de 0 à 50

#8 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 50 à 100

#9 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de Résolu à À valider
  • % réalisé changé de 100 à 90

Il reste un soucis quelque part !

root@scribe:~# CreoleService -c mysql mysql stop 
root - manage_services() got an unexpected keyword argument 'force'

#10 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de À valider à Résolu
  • % réalisé changé de 90 à 100

Suite à des problèmes de compilation, la dernière modification n'était pas disponible sur les serveurs.
C'est mieux avec le paquet : python-pyeole_2.4.0-93

#11 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Echéance mis à 06/12/2013
  • Statut changé de Résolu à Fermé
root@scribe:~# CreoleService nut start
root - cannot start disabled service
root@scribe:~# CreoleService -f nut start
Start System V service nut in root                          [  OK  ]

Formats disponibles : Atom PDF