[PYTHON] oslo.config Suchpfad für Konfigurationsdatei

Oslo.config wurde entwickelt und verwendet, um die Konfigurationsdatei in OpenStack einfach zu umgehen.

Wenn Sie in der Option cli nicht die Einstellungsdatei angeben, auf die verwiesen werden soll, wird die Einstellungsdatei aus dem angegebenen Ordner mit dem angegebenen Dateinamen durchsucht.

Die Ordner werden zuerst in der folgenden Reihenfolge referenziert. (https://github.com/openstack/oslo.config/blob/2.5.0/oslo_config/cfg.py#L498 _get_config_dirs Funktion)

  1. ~/.${project}/
  2. ~/
  3. /etc/${project}/
  4. /etc/

${project}Ist der bei der Initialisierung angegebene Wert. Wenn Sie Folgendes angeben, wird es von `~ / .foo /` usw. gesucht.

from oslo.config import cfg

def init_oslo_config():
    cfg.CONF(project='foo')

Der Dateiname wird nach Folgendem gesucht. (https://github.com/openstack/oslo.config/blob/2.5.0/oslo_config/cfg.py#L542 find_config_files-Funktion)

${project}Ist das gleiche wie oben${prog}Dies wird auch zum Zeitpunkt der Initialisierung angegeben.

from oslo.config import cfg

def init_oslo_config():
    cfg.CONF(project='foo', prog='bar')

Wenn jedoch bei der Initialisierung kein Prog angegeben wird, wird der Prozessname (`os.path.basename (sys.argv [0])`) zu `` $ {prog} `. ..

Die Referenzregeln sind

Wenn beispielsweise `$ {project}` * foo * ist, `$ {prog}` * bar * ist und die Datei wie folgt existiert, wird sie als Konfigurationsdatei bezeichnet. `/ etc / foo / foo.conf , ~ / bar.conf`.

Dieses Verhalten kann wie folgt bestätigt werden. Versuchen Sie es also, wenn auf eine unerwartete Einstellungsdatei verwiesen wird.

from oslo.config import cfg
print cfg.find_config_files('foo', 'bar')

Wenn dieselbe Option in der Konfigurationsdatei angegeben ist, auf die verwiesen wird, hat `$ {prog}` Vorrang. Da die zu ladende Konfigurationsdatei "Wer zuerst kommt, mahlt zuerst" ist und in der Reihenfolge "$ {project}", "$ {prog}" referenziert wird.

Diese Dateien werden jedoch nicht verwendet, wenn beim Prozessstart mindestens eine `--config-Datei `als Parameter angegeben wird.

Recommended Posts

oslo.config Suchpfad für Konfigurationsdatei
[Linux] Dateisuche
Nginx-Konfigurationsdatei
In-Graph-Pfadsuche mit Networkx
Manipulation des Datei- / Ordnerpfads in Python
So erstellen Sie eine Konfigurationsdatei
Holen Sie sich den Dateipfad mit Pathlib