Supervisor: L'option de configuration "environment" n'accepte pas le caractère "%" même lorsqu'il est entre guillemets

Créé le 27 sept. 2013  ·  4Commentaires  ·  Source: Supervisor/supervisor

Lors de la définition du paramètre environment= dans un fichier de configuration, le signe % renvoie une erreur Error: Format string 'KEY="%"' for 'environment' is badly formatted .

par exemple

D'accord : environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"

Cassé : environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

Cassé : environment=FOO="%"

Cassé : environment=FOO="\%"

environment

Commentaire le plus utile

Cassé : environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

Vous devriez pouvoir inclure un % en utilisant %% .

Supervisor utilise l'interpolation de chaîne Python lors de l'analyse du fichier de configuration, vous pouvez donc le tester comme ceci :

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

Avec %% :

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

Tous les 4 commentaires

Cassé : environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

Vous devriez pouvoir inclure un % en utilisant %% .

Supervisor utilise l'interpolation de chaîne Python lors de l'analyse du fichier de configuration, vous pouvez donc le tester comme ceci :

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

Avec %% :

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

Salut,

Je fait face à un problème similaire avec config dans environment= paramètre intérieur [supervisord] bloc.

J'ai un paramètre avec le signe % . J'ai essayé la solution suggérée (en utilisant 2 signes % ), mais je n'ai pas réussi à résoudre le problème.

Exemple de chaîne à essayer : x1it3km%2BTVmkRsQ
Obtention de l'erreur suivante pour cette chaîne

Erreur : La chaîne de format 'SECRET="x1it3km%2BTVmkRsQ"' pour 'supervisord.environment' est mal formatée : caractère de format 'B' non pris en charge

Je pense que cela a quelque chose à voir avec un nombre suivant le signe % , mais je ne suis pas sûr.
Des idées?

@chinmaybhoir c'est le cas... il considère %2 comme un caractère spécial ou quelque chose comme ça.... Dans mon cas j'étais sur Django donc j'enlève juste tous les % dans la clé et ça a bien fonctionné

Ce serait incroyable si le superviseur pouvait automatiquement échapper à % s dans les chaînes (par exemple, %(ENV_SECRET_KEY) se développe actuellement en x1it3km%2BTVmkRsQ , ce qui n'est pas valide, mais j'aimerais qu'il se développe à x1it3km%%2BTVmkRsQ . De cette façon, je n'aurais pas à changer ma clé secrète Django pour faire plaisir au superviseur.

Cette page vous a été utile?
0 / 5 - 0 notes