Projet

Général

Profil

Evolution #4317

Revoir la détection du mode conteneur en 2.4

Ajouté par Daniel Dehennin il y a plus de 11 ans. Mis à jour il y a environ 11 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
28/01/2013
Echéance:
08/02/2013
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.4

Description

Le code de source:creole/config.py?rev=2.3 est à revoir pour la détection du mode conteneur.


Demandes liées

Lié à eole-common - Evolution #2622: Mettre à jour l’utilisation de LXC pour 2.4 Fermé 28/01/2013 21/03/2014

Révisions associées

Révision 4d275a64 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

Préparation LXC pour EOLE 2.4

L’installation des conteneurs LXC en 2.4 se fera avec la commande
lxc-create et un template d’installation EOLE :

lxc-create n test -t eole - --release precise

L’utilitaire « gen_conteneurs » n’est pas encore utilisable pour EOLE
2.4.

Suppression de l’arborescence source eole-conteneur avec dispersion des
fichiers encore utiles. On supprime le fstab et le répertoire hosts
devenu obsolète avec les nouvelles balises creole.

  • Makefile (eole_lxc_templates_PROG_DIR): Répertoire des templates
    lxc-create.
  • lxc/templates/lxc-eole: Installation d’un conteneur EOLE, basé sur
    lxc-ubuntu.
  • scripts/gen_conteneurs: n’est pas encore utilisable.
  • dicos/01_container.xml: Forcer la variable « mode_conteneur_actif » à
    oui.
    Installer une configuration sshd dans tous les conteneurs.
    Créer un fichier témoin d’activation du mode conteneur.
  • tmpl/lxc-controller.enable: Verrou d’activation du mode conteneur.

Ref: #2622 @5h
Ref: #4317

Révision 3b77b69e (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

Nettoyage du fichier de configuration de creole.

  • creole/config.py: Suppression des variables inutiles en 2.4.

Ref: #4317 @2m

Révision 8f810e80 (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

L’attribut « group » d’un conteneur est son « name » par défaut

Un conteneur pouvait avoir un groupe à « None » si aucun dictionnaire ne
défini de groupe pour un conteneur.

  • creole/loader.py (CreoleContainer._get_containers): Correction et
    factorisation de la définition des attributs de conteneurs.

Ref: #4317 @10m

Révision c69e109f (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

Utilisation d’une variable inexistante dans les calculs de chemins

  • creole/loader.py (CreoleContainer.gen_containers_creole): Utilisation
    de la clef « group » du dictionnaire « container ».
    (CreoleContainer.gen_files): Récupération de la définition du conteneur
    pour calculer le chemin du fichier.

Ref: #4317 @10m

Révision 88859986 (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

Détection de l’activation du mode conteneur depuis les dictionnaires

  • creole/loader.py (CreoleVarLoader.__init__): Définition d’un nouvel
    attribut « containers_enabled ».
    (CreoleVarLoader._init_creole_varloader): Initialisation de l’attribut
    « containers_enabled » en fonction de la valeur
    de « self.families['general']['vars']['mode_conteneur_actif']['value'] ».

Fixes: #4317 @45m

Révision 70118baa (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

Vérification de la cohérence de l’état d’activation du mode conteneur

L’activation du mode conteneur est gérée par une variable de dictionnaire
uniquement.

La fonction « is_lxc_enabled » vérifie si le mode conteneur est activé
dans la configuration et si cet état est cohérent avec les verrous.

  • creole/config.py: Suppression des tests liés aux conteneurs.
    Suppression de « VIRTDISABLED ».
  • creole/containers.py (is_lxc_locked): Renvoi l’état des verrous LXC:
    « enable », « disable » ou « None ». Lève une exception si les deux
    sont présents.
    (is_lxc_enabled): Renvoi l’état de configuration du mode conteneur,
    vérifie la cohérence avec les verrous.
  • creole/eosfunc.py: Ne plus utiliser « VIRTDISABLED » et suppression du
    code inutile lié aux conteneurs.

Ref: #4317 @20m

Révision 48510d22 (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

La variable « VIRTDISABLED » n’existe plus

  • data/gen_config.py: Suppression du test sur le lancement
    de « gen_conteneurs ».

Ref: #4317 @2m

Révision b4cd5fd9 (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

Génération des verrous du mode conteneur

La variable « mode_conteneur_actif » n’est gérée que par dictionnaire.

  • dicos/00_common.xml: Instanciation d’un verrou de désactivation.
    Suppression du calcul automatique sur « mode_conteneur_actif ».
  • dicos/01_container.xml: Instanciation du verrou d’activation du mode
    conteneur.
    Surcharge de la variable « mode_conteneur_actif » pour l’activer.
  • tmpl/lxc-controller.lockfile: Fichier servant de verrou.

Ref: #2622 @5m
Ref: #4317 @2m

Révision 81a07216 (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

Les chemins ne sont jamais relatifs aux conteneurs

Le commit « c69e10 Utilisation d’une variable inexistante dans les
calculs de chemins » a transformé une variable « string » en dictionnaire
python.

  • creole/loader.py (CreoleContainer.gen_files): La variable « container »
    est désormais un dictionnaire.

Ref: #4317 @2m

Révision ece2be7b (diff)
Ajouté par Daniel Dehennin il y a environ 11 ans

L’attribut « instance_mode » remplace « in_container » et « container_only »

L’idée est qu’une ressource, quelle soit dans sur le maître ou dans un
conteneur, peut n’être à générée que si le mode conteneur est activé ou
désactivé :

instance_mode mode conteneur mode non conteneur
-------------------+----------------+--------------------
when_container x
when_no_container x
always (default)
  • data/creole.dtd: Ajout de l’attribut « instance_mode » aux balises
    « service », « host », « package » et « files »
  • creole/loader.py (COMMON_KEY): Remplacement de « in_container » par
    « instance_mode ».
    (CreoleContainer.gen_files): Suppression de la gestion
    de « in_container » et et « container_only »
  • creole/loader.py (CreoleContainer._check_instance_mode): Valide la
    resource en fonction de son attribut « instance_mode » et de l’état du
    mode conteneur.
  • creole/loader.py (CreoleContainer._config_list_to_dict): Ne pas tenir
    compte des resources non actives en fonction du mode conteneur.

Ref: #4317 @25m

Historique

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

  • Version cible changé de Eole 2.4-dev-1 à Eole 2.4-dev-2

#2 Mis à jour par Benjamin Bohard il y a plus de 11 ans

  • Echéance mis à 01/02/2013
  • Statut changé de Nouveau à Accepté
  • Début changé de 22/10/2012 à 28/01/2013

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

  • Echéance changé de 01/02/2013 à 08/02/2013

#4 Mis à jour par Daniel Dehennin il y a environ 11 ans

  • Assigné à changé de developpeurs_eole à Daniel Dehennin

#5 Mis à jour par Daniel Dehennin il y a environ 11 ans

  • Statut changé de Accepté à Résolu
  • % réalisé changé de 0 à 100

#6 Mis à jour par Joël Cuissinat il y a environ 11 ans

  • Statut changé de Résolu à Fermé
  • "Eclair" 2.4 :
    root@eolebase:~# CreoleGet mode_conteneur_actif 
    oui
    
  • "Scribe" 2.4 :
    root@scribe:~# CreoleGet mode_conteneur_actif
    non
    

Formats disponibles : Atom PDF