forked from ungleich-public/cdist
Fix missing configuration file usage, support -g
PreOS code did not use configuration support. This fix adds support for using cdist configuration, which takes into account cdist configuration file, environment variables and command line options, especially conf_dir. It also adds support for -g, --config-file option, for specifying custom configuration file.
This commit is contained in:
parent
51ba4a49d8
commit
11f569959d
3 changed files with 18 additions and 14 deletions
|
@ -5,8 +5,9 @@ import inspect
|
||||||
import argparse
|
import argparse
|
||||||
import cdist
|
import cdist
|
||||||
import logging
|
import logging
|
||||||
import re
|
|
||||||
import cdist.argparse
|
import cdist.argparse
|
||||||
|
import cdist.configuration
|
||||||
|
import cdist.exec.util as util
|
||||||
|
|
||||||
|
|
||||||
_PREOS_CALL = "commandline"
|
_PREOS_CALL = "commandline"
|
||||||
|
@ -24,16 +25,6 @@ def extend_plugins_path(dirs):
|
||||||
_PLUGINS_PATH.append(preos_dir)
|
_PLUGINS_PATH.append(preos_dir)
|
||||||
|
|
||||||
|
|
||||||
cdist_home = cdist.home_dir()
|
|
||||||
if cdist_home:
|
|
||||||
extend_plugins_path((cdist_home, ))
|
|
||||||
x = 'CDIST_PATH'
|
|
||||||
if x in os.environ:
|
|
||||||
vals = re.split(r'(?<!\\):', os.environ[x])
|
|
||||||
vals = [x for x in vals if x]
|
|
||||||
extend_plugins_path(vals)
|
|
||||||
|
|
||||||
|
|
||||||
def preos_plugin(obj):
|
def preos_plugin(obj):
|
||||||
"""It is preos if _PREOS_MARKER is True and has _PREOS_CALL."""
|
"""It is preos if _PREOS_MARKER is True and has _PREOS_CALL."""
|
||||||
if hasattr(obj, _PREOS_MARKER):
|
if hasattr(obj, _PREOS_MARKER):
|
||||||
|
@ -102,6 +93,9 @@ class PreOS(object):
|
||||||
help=('Add configuration directory (one that '
|
help=('Add configuration directory (one that '
|
||||||
'contains "preos" subdirectory)'),
|
'contains "preos" subdirectory)'),
|
||||||
action='append')
|
action='append')
|
||||||
|
parser.add_argument('-g', '--config-file',
|
||||||
|
help='Use specified custom configuration file.',
|
||||||
|
dest="config_file", required=False)
|
||||||
parser.add_argument('-L', '--list-preoses',
|
parser.add_argument('-L', '--list-preoses',
|
||||||
help='List available PreOS-es',
|
help='List available PreOS-es',
|
||||||
action='store_true', default=False)
|
action='store_true', default=False)
|
||||||
|
@ -110,8 +104,12 @@ class PreOS(object):
|
||||||
cdist.argparse.handle_loglevel(args)
|
cdist.argparse.handle_loglevel(args)
|
||||||
log.debug("preos args : {}".format(args))
|
log.debug("preos args : {}".format(args))
|
||||||
|
|
||||||
if args.conf_dir:
|
cfg = cdist.configuration.Configuration(args)
|
||||||
extend_plugins_path(args.conf_dir)
|
configuration = cfg.get_config(section='GLOBAL')
|
||||||
|
conf_dirs = util.resolve_conf_dirs(configuration,
|
||||||
|
args.conf_dir)
|
||||||
|
|
||||||
|
extend_plugins_path(conf_dirs)
|
||||||
sys.path.extend(_PLUGINS_PATH)
|
sys.path.extend(_PLUGINS_PATH)
|
||||||
cls.preoses = find_preoses()
|
cls.preoses = find_preoses()
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ Changelog
|
||||||
|
|
||||||
next:
|
next:
|
||||||
* Type __acl: Add --entry parameter to replace --acl, deprecate --acl (Ander Punnar)
|
* Type __acl: Add --entry parameter to replace --acl, deprecate --acl (Ander Punnar)
|
||||||
|
* Core: preos: Fix missing configuration file usage, support -g, --config-file option (Darko Poljak)
|
||||||
|
|
||||||
6.4.0: 2020-01-04
|
6.4.0: 2020-01-04
|
||||||
* Type __consul_agent: Don't deploy init script on Alpine anymore, it ships with one itself (Nico Schottelius)
|
* Type __consul_agent: Don't deploy init script on Alpine anymore, it ships with one itself (Nico Schottelius)
|
||||||
|
|
|
@ -59,7 +59,9 @@ SYNOPSIS
|
||||||
[-I INVENTORY_DIR] [-a] [-f HOSTFILE] [-H] [-t]
|
[-I INVENTORY_DIR] [-a] [-f HOSTFILE] [-H] [-t]
|
||||||
[host [host ...]]
|
[host [host ...]]
|
||||||
|
|
||||||
cdist preos [-h] [-l LOGLEVEL] [-q] [-v] [-c CONF_DIR] [-L] [preos] ...
|
cdist preos [-h] [-l LOGLEVEL] [-q] [-v] [-c CONF_DIR] [-g CONFIG_FILE]
|
||||||
|
[-L]
|
||||||
|
[preos] ...
|
||||||
|
|
||||||
cdist preos [preos-options] debian [-h] [-l LOGLEVEL] [-q] [-v] [-b] [-a ARCH] [-B]
|
cdist preos [preos-options] debian [-h] [-l LOGLEVEL] [-q] [-v] [-b] [-a ARCH] [-B]
|
||||||
[-C] [-c CDIST_PARAMS] [-D DRIVE] [-e REMOTE_EXEC]
|
[-C] [-c CDIST_PARAMS] [-D DRIVE] [-e REMOTE_EXEC]
|
||||||
|
@ -464,6 +466,9 @@ Create PreOS.
|
||||||
**-c CONF_DIR, --conf-dir CONF_DIR**
|
**-c CONF_DIR, --conf-dir CONF_DIR**
|
||||||
Add configuration directory (one that contains "preos" subdirectory).
|
Add configuration directory (one that contains "preos" subdirectory).
|
||||||
|
|
||||||
|
**-g CONFIG_FILE, --config-file CONFIG_FILE**
|
||||||
|
Use specified custom configuration file.
|
||||||
|
|
||||||
**-L, --list-preoses**
|
**-L, --list-preoses**
|
||||||
List available PreOS-es.
|
List available PreOS-es.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue