Projet

Général

Profil

Anomalie #2082

Instanciation en mode conteneur échoue sur une machine trop rapide

Ajouté par Emmanuel GARETTE (2) il y a plus de 12 ans. Mis à jour il y a plus de 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Début:
20/09/2011
Echéance:
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.3

Description

Sur une machine trop rapide, l'instanciation d'un serveur en mode conteneur échoue.

Visiblement Cheetah n'aime pas qu'on templatise 2 fichiers avec le même nom dans un temps très court. Il utilise alors le contenu du 1er template pour créer le second fichier. C'est particulièrement gênant dans le cadre du mode conteneur, en effet, il y a des boucles utilisant un fichier temporaire '/tmp/container.tmpl'. Si je met un sleep(1) dans la boucle, ca fonctionne. Si je retire le sleep(1) tous les fichiers sont identiques.

Je propose donc d'utilise mktemp plutôt que de nommer directement un fichier.

--- cfgparser.py.old    2011-09-20 17:23:54.000000000 +0200
+++ cfgparser.py    2011-09-20 17:28:20.000000000 +0200
@@ -12,6 +12,7 @@
 from glob import glob
 from commands import getstatusoutput
 from shutil import move
+from tempfile import mktemp
 try:
     import json
 except:
@@ -632,7 +633,7 @@
                     except:
                         import traceback
                         traceback.print_exc()
-            inputfile='/tmp/container.tmpl'
+            inputfile=mktemp()
             files = glob(join(inputdir, '*'))
             fd = open(inputfile, 'wa')
             for filename in files:
@@ -644,7 +645,7 @@
             t.process(self)

         for container in containers:
-            inputfile='/tmp/container.tmpl'
+            inputfile=mktemp()
             files = glob(join(self._make_root_path(container), 'interfaces.d', '*'))
             fd = open(inputfile, 'wa')
             for filename in files:
@@ -961,7 +962,7 @@
                 fh.close()

         for container in cname:
-            inputfile='/tmp/container.tmpl'
+            inputfile=mktemp()
             inputdir = join(self._make_root_path(container), 'hosts.d')
             outputfile = join(self._make_root_path(container), config.VIRTBASE, 'etc/hosts')
             files = glob(join(inputdir, '*'))

Révisions associées

Révision eeb9eead (diff)
Ajouté par Walid Nouh il y a environ 14 ans

see #2082 Do not change user's authentication method when a wrong authentication occured

Révision 19656a83 (diff)
Ajouté par Joël Cuissinat il y a plus de 12 ans

cfgparser.py : application du patch avec utilisation de mktemp (fixes #2082)

Historique

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

  • Version cible mis à Mises à jour 2.3 - 02 RC

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

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

#3 Mis à jour par Fabrice Barconnière il y a plus de 12 ans

  • Statut changé de Résolu à Fermé
  • Distribution mis à EOLE 2.3

Formats disponibles : Atom PDF