forked from ungleich-public/cdist
__cdist_log_level=<log level int value>; __cdist_log_level_name=<log level name> (#574)
This commit is contained in:
parent
1ae5b1732e
commit
f0dc21ec0c
20 changed files with 192 additions and 40 deletions
|
@ -22,16 +22,14 @@ uri="$(cat "$__object/parameter/uri" 2>/dev/null \
|
||||||
|| echo "$__object_id")"
|
|| echo "$__object_id")"
|
||||||
target="$(cat "$__object/parameter/target")"
|
target="$(cat "$__object/parameter/target")"
|
||||||
|
|
||||||
case "$__cdist_log_level" in
|
if [ "$__cdist_log_level" -le "10" ]
|
||||||
DEBUG|TRACE)
|
then
|
||||||
curl="curl"
|
curl="curl"
|
||||||
tar="tar -xvzp"
|
tar="tar -xvzp"
|
||||||
;;
|
else
|
||||||
*)
|
curl="curl -s"
|
||||||
curl="curl -s"
|
tar="tar -xzp"
|
||||||
tar="tar -xzp"
|
fi
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -f "$__object/parameter/insecure" ] ; then
|
if [ -f "$__object/parameter/insecure" ] ; then
|
||||||
curl="$curl -k"
|
curl="$curl -k"
|
||||||
|
|
|
@ -26,6 +26,7 @@ import cdist
|
||||||
import cdist.argparse
|
import cdist.argparse
|
||||||
import re
|
import re
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
class Singleton(type):
|
class Singleton(type):
|
||||||
|
@ -215,6 +216,24 @@ class ArchivingOption(SelectOption):
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
|
class LogLevelOption(OptionBase):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__('__cdist_log_level')
|
||||||
|
|
||||||
|
def converter(self):
|
||||||
|
def log_level_converter(val):
|
||||||
|
try:
|
||||||
|
val = logging.getLevelName(int(val))
|
||||||
|
return self.translate(val)
|
||||||
|
except (ValueError, AttributeError):
|
||||||
|
raise ValueError("Invalid {} value: {}.".format(
|
||||||
|
self.name, val))
|
||||||
|
return log_level_converter
|
||||||
|
|
||||||
|
def translate(self, val):
|
||||||
|
return VerbosityOption().translate(val)
|
||||||
|
|
||||||
|
|
||||||
_ARG_OPTION_MAPPING = {
|
_ARG_OPTION_MAPPING = {
|
||||||
'beta': 'beta',
|
'beta': 'beta',
|
||||||
'cache_path_pattern': 'cache_path_pattern',
|
'cache_path_pattern': 'cache_path_pattern',
|
||||||
|
@ -281,6 +300,9 @@ class Configuration(metaclass=Singleton):
|
||||||
'__cdist_log_level': 'verbosity',
|
'__cdist_log_level': 'verbosity',
|
||||||
}
|
}
|
||||||
ENV_VAR_BOOLEAN_OPTIONS = ('CDIST_BETA', )
|
ENV_VAR_BOOLEAN_OPTIONS = ('CDIST_BETA', )
|
||||||
|
ENV_VAR_OPTIONS = {
|
||||||
|
'__cdist_log_level': LogLevelOption(),
|
||||||
|
}
|
||||||
|
|
||||||
ARG_OPTION_MAPPING = _ARG_OPTION_MAPPING
|
ARG_OPTION_MAPPING = _ARG_OPTION_MAPPING
|
||||||
ADJUST_ARG_OPTION_MAPPING = {
|
ADJUST_ARG_OPTION_MAPPING = {
|
||||||
|
@ -366,8 +388,11 @@ class Configuration(metaclass=Singleton):
|
||||||
if option in self.ENV_VAR_BOOLEAN_OPTIONS:
|
if option in self.ENV_VAR_BOOLEAN_OPTIONS:
|
||||||
d[dst_opt] = True
|
d[dst_opt] = True
|
||||||
else:
|
else:
|
||||||
option_object = self.CONFIG_FILE_OPTIONS[section][dst_opt]
|
if option in self.ENV_VAR_OPTIONS:
|
||||||
converter = option_object.converter()
|
opt = self.ENV_VAR_OPTIONS[option]
|
||||||
|
else:
|
||||||
|
opt = self.CONFIG_FILE_OPTIONS[section][dst_opt]
|
||||||
|
converter = opt.converter()
|
||||||
val = env[option]
|
val = env[option]
|
||||||
newval = converter(val)
|
newval = converter(val)
|
||||||
d[dst_opt] = newval
|
d[dst_opt] = newval
|
||||||
|
|
|
@ -28,4 +28,4 @@ from cdist.core.explorer import Explorer
|
||||||
from cdist.core.manifest import Manifest
|
from cdist.core.manifest import Manifest
|
||||||
from cdist.core.code import Code
|
from cdist.core.code import Code
|
||||||
from cdist.core.util import listdir
|
from cdist.core.util import listdir
|
||||||
from cdist.core.util import log_level_env_var_val
|
from cdist.core.util import log_level_env_var_val, log_level_name_env_var_val
|
||||||
|
|
|
@ -109,6 +109,8 @@ class Code(object):
|
||||||
'__files': self.local.files_path,
|
'__files': self.local.files_path,
|
||||||
'__target_host_tags': self.local.target_host_tags,
|
'__target_host_tags': self.local.target_host_tags,
|
||||||
'__cdist_log_level': util.log_level_env_var_val(local.log),
|
'__cdist_log_level': util.log_level_env_var_val(local.log),
|
||||||
|
'__cdist_log_level_name': util.log_level_name_env_var_val(
|
||||||
|
local.log),
|
||||||
}
|
}
|
||||||
|
|
||||||
def _run_gencode(self, cdist_object, which):
|
def _run_gencode(self, cdist_object, which):
|
||||||
|
|
|
@ -80,6 +80,8 @@ class Explorer(object):
|
||||||
'__explorer': self.remote.global_explorer_path,
|
'__explorer': self.remote.global_explorer_path,
|
||||||
'__target_host_tags': self.local.target_host_tags,
|
'__target_host_tags': self.local.target_host_tags,
|
||||||
'__cdist_log_level': util.log_level_env_var_val(self.log),
|
'__cdist_log_level': util.log_level_env_var_val(self.log),
|
||||||
|
'__cdist_log_level_name': util.log_level_name_env_var_val(
|
||||||
|
self.log),
|
||||||
}
|
}
|
||||||
self._type_explorers_transferred = []
|
self._type_explorers_transferred = []
|
||||||
self.jobs = jobs
|
self.jobs = jobs
|
||||||
|
|
|
@ -113,6 +113,8 @@ class Manifest(object):
|
||||||
'__files': self.local.files_path,
|
'__files': self.local.files_path,
|
||||||
'__target_host_tags': self.local.target_host_tags,
|
'__target_host_tags': self.local.target_host_tags,
|
||||||
'__cdist_log_level': util.log_level_env_var_val(self.log),
|
'__cdist_log_level': util.log_level_env_var_val(self.log),
|
||||||
|
'__cdist_log_level_name': util.log_level_name_env_var_val(
|
||||||
|
self.log),
|
||||||
}
|
}
|
||||||
|
|
||||||
def _open_logger(self):
|
def _open_logger(self):
|
||||||
|
|
|
@ -38,4 +38,8 @@ def _ishidden(path):
|
||||||
|
|
||||||
|
|
||||||
def log_level_env_var_val(log):
|
def log_level_env_var_val(log):
|
||||||
|
return str(log.getEffectiveLevel())
|
||||||
|
|
||||||
|
|
||||||
|
def log_level_name_env_var_val(log):
|
||||||
return logging.getLevelName(log.getEffectiveLevel())
|
return logging.getLevelName(log.getEffectiveLevel())
|
||||||
|
|
|
@ -112,8 +112,7 @@ class Emulator(object):
|
||||||
if '__cdist_log_level' in self.env:
|
if '__cdist_log_level' in self.env:
|
||||||
try:
|
try:
|
||||||
loglevel = self.env['__cdist_log_level']
|
loglevel = self.env['__cdist_log_level']
|
||||||
# For a text level it returns its numerical value.
|
level = int(loglevel)
|
||||||
level = logging.getLevelName(loglevel)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
level = logging.WARNING
|
level = logging.WARNING
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -101,7 +101,9 @@ class CodeTestCase(test.CdistTestCase):
|
||||||
self.assertEqual(output_dict['__files'], self.local.files_path)
|
self.assertEqual(output_dict['__files'], self.local.files_path)
|
||||||
self.assertEqual(output_dict['__target_host_tags'],
|
self.assertEqual(output_dict['__target_host_tags'],
|
||||||
self.local.target_host_tags)
|
self.local.target_host_tags)
|
||||||
self.assertEqual(output_dict['__cdist_log_level'], 'WARNING')
|
self.assertEqual(output_dict['__cdist_log_level'],
|
||||||
|
str(logging.WARNING))
|
||||||
|
self.assertEqual(output_dict['__cdist_log_level_name'], 'WARNING')
|
||||||
|
|
||||||
def test_run_gencode_remote_environment(self):
|
def test_run_gencode_remote_environment(self):
|
||||||
output_string = self.code.run_gencode_remote(self.cdist_object)
|
output_string = self.code.run_gencode_remote(self.cdist_object)
|
||||||
|
@ -127,7 +129,9 @@ class CodeTestCase(test.CdistTestCase):
|
||||||
self.assertEqual(output_dict['__files'], self.local.files_path)
|
self.assertEqual(output_dict['__files'], self.local.files_path)
|
||||||
self.assertEqual(output_dict['__target_host_tags'],
|
self.assertEqual(output_dict['__target_host_tags'],
|
||||||
self.local.target_host_tags)
|
self.local.target_host_tags)
|
||||||
self.assertEqual(output_dict['__cdist_log_level'], 'WARNING')
|
self.assertEqual(output_dict['__cdist_log_level'],
|
||||||
|
str(logging.WARNING))
|
||||||
|
self.assertEqual(output_dict['__cdist_log_level_name'], 'WARNING')
|
||||||
|
|
||||||
def test_transfer_code_remote(self):
|
def test_transfer_code_remote(self):
|
||||||
self.cdist_object.code_remote = self.code.run_gencode_remote(
|
self.cdist_object.code_remote = self.code.run_gencode_remote(
|
||||||
|
|
|
@ -11,3 +11,4 @@ echo "echo __object_name: $__object_name"
|
||||||
echo "echo __files: $__files"
|
echo "echo __files: $__files"
|
||||||
echo "echo __target_host_tags: $__target_host_tags"
|
echo "echo __target_host_tags: $__target_host_tags"
|
||||||
echo "echo __cdist_log_level: $__cdist_log_level"
|
echo "echo __cdist_log_level: $__cdist_log_level"
|
||||||
|
echo "echo __cdist_log_level_name: $__cdist_log_level_name"
|
||||||
|
|
|
@ -27,7 +27,7 @@ import os.path as op
|
||||||
import argparse
|
import argparse
|
||||||
from cdist import test
|
from cdist import test
|
||||||
import cdist.argparse as cap
|
import cdist.argparse as cap
|
||||||
|
import logging
|
||||||
|
|
||||||
my_dir = op.abspath(op.dirname(__file__))
|
my_dir = op.abspath(op.dirname(__file__))
|
||||||
fixtures = op.join(my_dir, 'fixtures')
|
fixtures = op.join(my_dir, 'fixtures')
|
||||||
|
@ -124,6 +124,18 @@ class ConfigurationOptionsTestCase(test.CdistTestCase):
|
||||||
self.assertEqual(converter(value), ['spam', 'eggs', 'ham', ])
|
self.assertEqual(converter(value), ['spam', 'eggs', 'ham', ])
|
||||||
self.assertIsNone(converter(''))
|
self.assertIsNone(converter(''))
|
||||||
|
|
||||||
|
def test_LogLevelOption(self):
|
||||||
|
option = cc.LogLevelOption()
|
||||||
|
converter = option.converter()
|
||||||
|
value = str(logging.DEBUG)
|
||||||
|
conv_val = converter(value)
|
||||||
|
self.assertEqual(conv_val, cap.VERBOSE_DEBUG)
|
||||||
|
value = str(logging.INFO)
|
||||||
|
conv_val = converter(value)
|
||||||
|
self.assertEqual(conv_val, cap.VERBOSE_INFO)
|
||||||
|
for value in ('11', '80', 'a'):
|
||||||
|
self.assertRaises(ValueError, converter, value)
|
||||||
|
|
||||||
|
|
||||||
class ConfigurationTestCase(test.CdistTestCase):
|
class ConfigurationTestCase(test.CdistTestCase):
|
||||||
|
|
||||||
|
@ -234,17 +246,17 @@ class ConfigurationTestCase(test.CdistTestCase):
|
||||||
os.remove(custom_config_file)
|
os.remove(custom_config_file)
|
||||||
|
|
||||||
def test_singleton(self):
|
def test_singleton(self):
|
||||||
x = cc.Configuration(None)
|
x = cc.Configuration(None, env={}, config_files=())
|
||||||
args = argparse.Namespace()
|
args = argparse.Namespace()
|
||||||
args.a = 'a'
|
args.a = 'a'
|
||||||
y = cc.Configuration(args)
|
y = cc.Configuration(args, env={}, config_files=())
|
||||||
self.assertIs(x, y)
|
self.assertIs(x, y)
|
||||||
|
|
||||||
def test_non_singleton(self):
|
def test_non_singleton(self):
|
||||||
x = cc.Configuration(None, singleton=False)
|
x = cc.Configuration(None, env={}, config_files=(), singleton=False)
|
||||||
args = argparse.Namespace()
|
args = argparse.Namespace()
|
||||||
args.a = 'a'
|
args.a = 'a'
|
||||||
y = cc.Configuration(args, singleton=False)
|
y = cc.Configuration(args, env={}, config_files=(), singleton=False)
|
||||||
self.assertIsNot(x, y)
|
self.assertIsNot(x, y)
|
||||||
|
|
||||||
def test_read_config_file(self):
|
def test_read_config_file(self):
|
||||||
|
@ -1122,6 +1134,39 @@ class ConfigurationTestCase(test.CdistTestCase):
|
||||||
config_files=config_files)
|
config_files=config_files)
|
||||||
self.assertEqual(configuration.config, expected_config_dict)
|
self.assertEqual(configuration.config, expected_config_dict)
|
||||||
|
|
||||||
|
def test_configuration_cdist_log_level_env_var(self):
|
||||||
|
env = {
|
||||||
|
'__cdist_log_level': str(logging.DEBUG),
|
||||||
|
}
|
||||||
|
args = argparse.Namespace()
|
||||||
|
|
||||||
|
expected_config_dict = {
|
||||||
|
'GLOBAL': {
|
||||||
|
'verbosity': cap.VERBOSE_DEBUG,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
# bypass singleton so we can test further
|
||||||
|
cc.Configuration.instance = None
|
||||||
|
|
||||||
|
configuration = cc.Configuration(args, env=env,
|
||||||
|
config_files=())
|
||||||
|
self.assertEqual(configuration.config, expected_config_dict)
|
||||||
|
|
||||||
|
# bypass singleton so we can test further
|
||||||
|
cc.Configuration.instance = None
|
||||||
|
env['__cdist_log_level'] = '80'
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
configuration = cc.Configuration(args, env=env,
|
||||||
|
config_files=())
|
||||||
|
|
||||||
|
# bypass singleton so we can test further
|
||||||
|
cc.Configuration.instance = None
|
||||||
|
env['__cdist_log_level'] = 'x'
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
configuration = cc.Configuration(args, env=env,
|
||||||
|
config_files=())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import unittest
|
import unittest
|
||||||
|
|
|
@ -124,7 +124,7 @@ class EmulatorTestCase(test.CdistTestCase):
|
||||||
emu = emulator.Emulator(argv, env=self.env)
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
emu_loglevel = emu.log.getEffectiveLevel()
|
emu_loglevel = emu.log.getEffectiveLevel()
|
||||||
self.assertEqual(emu_loglevel, logging.WARNING)
|
self.assertEqual(emu_loglevel, logging.WARNING)
|
||||||
self.env['__cdist_log_level'] = logging.getLevelName(logging.DEBUG)
|
self.env['__cdist_log_level'] = str(logging.DEBUG)
|
||||||
emu = emulator.Emulator(argv, env=self.env)
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
emu_loglevel = emu.log.getEffectiveLevel()
|
emu_loglevel = emu.log.getEffectiveLevel()
|
||||||
self.assertEqual(emu_loglevel, logging.DEBUG)
|
self.assertEqual(emu_loglevel, logging.DEBUG)
|
||||||
|
|
|
@ -31,6 +31,7 @@ from cdist import test
|
||||||
from cdist.exec import local
|
from cdist.exec import local
|
||||||
from cdist.exec import remote
|
from cdist.exec import remote
|
||||||
from cdist.core import explorer
|
from cdist.core import explorer
|
||||||
|
import logging
|
||||||
|
|
||||||
import os.path as op
|
import os.path as op
|
||||||
my_dir = op.abspath(op.dirname(__file__))
|
my_dir = op.abspath(op.dirname(__file__))
|
||||||
|
@ -233,7 +234,9 @@ class ExplorerClassTestCase(test.CdistTestCase):
|
||||||
self.remote.global_explorer_path)
|
self.remote.global_explorer_path)
|
||||||
self.assertEqual(output_dict['__target_host_tags'],
|
self.assertEqual(output_dict['__target_host_tags'],
|
||||||
self.local.target_host_tags)
|
self.local.target_host_tags)
|
||||||
self.assertEqual(output_dict['__cdist_log_level'], 'WARNING')
|
self.assertEqual(output_dict['__cdist_log_level'],
|
||||||
|
str(logging.WARNING))
|
||||||
|
self.assertEqual(output_dict['__cdist_log_level_name'], 'WARNING')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -6,3 +6,4 @@ echo "__target_fqdn: $__target_fqdn"
|
||||||
echo "__explorer: $__explorer"
|
echo "__explorer: $__explorer"
|
||||||
echo "__target_host_tags: $__target_host_tags"
|
echo "__target_host_tags: $__target_host_tags"
|
||||||
echo "__cdist_log_level: $__cdist_log_level"
|
echo "__cdist_log_level: $__cdist_log_level"
|
||||||
|
echo "__cdist_log_level_name: $__cdist_log_level_name"
|
||||||
|
|
|
@ -99,7 +99,9 @@ class ManifestTestCase(test.CdistTestCase):
|
||||||
self.assertEqual(output_dict['__files'], self.local.files_path)
|
self.assertEqual(output_dict['__files'], self.local.files_path)
|
||||||
self.assertEqual(output_dict['__target_host_tags'],
|
self.assertEqual(output_dict['__target_host_tags'],
|
||||||
self.local.target_host_tags)
|
self.local.target_host_tags)
|
||||||
self.assertEqual(output_dict['__cdist_log_level'], 'VERBOSE')
|
self.assertEqual(output_dict['__cdist_log_level'],
|
||||||
|
str(logging.VERBOSE))
|
||||||
|
self.assertEqual(output_dict['__cdist_log_level_name'], 'VERBOSE')
|
||||||
self.log.setLevel(old_loglevel)
|
self.log.setLevel(old_loglevel)
|
||||||
|
|
||||||
def test_type_manifest_environment(self):
|
def test_type_manifest_environment(self):
|
||||||
|
@ -139,7 +141,9 @@ class ManifestTestCase(test.CdistTestCase):
|
||||||
self.assertEqual(output_dict['__files'], self.local.files_path)
|
self.assertEqual(output_dict['__files'], self.local.files_path)
|
||||||
self.assertEqual(output_dict['__target_host_tags'],
|
self.assertEqual(output_dict['__target_host_tags'],
|
||||||
self.local.target_host_tags)
|
self.local.target_host_tags)
|
||||||
self.assertEqual(output_dict['__cdist_log_level'], 'VERBOSE')
|
self.assertEqual(output_dict['__cdist_log_level'],
|
||||||
|
str(logging.VERBOSE))
|
||||||
|
self.assertEqual(output_dict['__cdist_log_level_name'], 'VERBOSE')
|
||||||
self.log.setLevel(old_loglevel)
|
self.log.setLevel(old_loglevel)
|
||||||
|
|
||||||
def test_loglevel_env_setup(self):
|
def test_loglevel_env_setup(self):
|
||||||
|
@ -147,7 +151,10 @@ class ManifestTestCase(test.CdistTestCase):
|
||||||
self.log.setLevel(logging.DEBUG)
|
self.log.setLevel(logging.DEBUG)
|
||||||
manifest = cdist.core.manifest.Manifest(self.target_host, self.local)
|
manifest = cdist.core.manifest.Manifest(self.target_host, self.local)
|
||||||
self.assertTrue("__cdist_log_level" in manifest.env)
|
self.assertTrue("__cdist_log_level" in manifest.env)
|
||||||
self.assertEqual(manifest.env["__cdist_log_level"], 'DEBUG')
|
self.assertTrue("__cdist_log_level_name" in manifest.env)
|
||||||
|
self.assertEqual(manifest.env["__cdist_log_level"],
|
||||||
|
str(logging.DEBUG))
|
||||||
|
self.assertEqual(manifest.env["__cdist_log_level_name"], 'DEBUG')
|
||||||
self.log.setLevel(current_level)
|
self.log.setLevel(current_level)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,5 @@ __manifest: $__manifest
|
||||||
__files: $__files
|
__files: $__files
|
||||||
__target_host_tags: $__target_host_tags
|
__target_host_tags: $__target_host_tags
|
||||||
__cdist_log_level: $__cdist_log_level
|
__cdist_log_level: $__cdist_log_level
|
||||||
|
__cdist_log_level_name: $__cdist_log_level_name
|
||||||
DONE
|
DONE
|
||||||
|
|
|
@ -15,4 +15,5 @@ __object_name: $__object_name
|
||||||
__files: $__files
|
__files: $__files
|
||||||
__target_host_tags: $__target_host_tags
|
__target_host_tags: $__target_host_tags
|
||||||
__cdist_log_level: $__cdist_log_level
|
__cdist_log_level: $__cdist_log_level
|
||||||
|
__cdist_log_level_name: $__cdist_log_level_name
|
||||||
DONE
|
DONE
|
||||||
|
|
|
@ -10,12 +10,13 @@ next:
|
||||||
* Type __daemontools: Improve it on FreeBSD (Kamila Součková)
|
* Type __daemontools: Improve it on FreeBSD (Kamila Součková)
|
||||||
* Type __package_pkg_openbsd: Fix use of --name (Philippe Gregoire)
|
* Type __package_pkg_openbsd: Fix use of --name (Philippe Gregoire)
|
||||||
* Type __package_pkg_openbsd: Fix pkg_version explorer (Philippe Gregoire)
|
* Type __package_pkg_openbsd: Fix pkg_version explorer (Philippe Gregoire)
|
||||||
* Documentation: Document __cdist_loglevel type variable (Darko Poljak)
|
|
||||||
* Type __install_stage: Fix __debug -> __cdist_loglevel (Darko Poljak)
|
|
||||||
* Core, types: Make __cdist_loglevel value more expressive (Darko Poljak)
|
|
||||||
* Core: Add -l/--log-level option (Darko Poljak)
|
|
||||||
* Core: __cdist_loglevel -> __cdist_log_level and make cdist honor __cdist_log_level env var (Darko Poljak)
|
|
||||||
* Type __prometheus_exporter: Fixes + go version bump (Kamila Součková)
|
* Type __prometheus_exporter: Fixes + go version bump (Kamila Součková)
|
||||||
|
* Core, types: __cdist_loglevel -> __cdist_log_level (Darko Poljak)
|
||||||
|
* Core, types: Add __cdist_log_level_name env var with vlaue of log level name (Darko Poljak)
|
||||||
|
* Core: Make cdist honor __cdist_log_level env var (Darko Poljak)
|
||||||
|
* Core: Add -l/--log-level option (Darko Poljak)
|
||||||
|
* Type __install_stage: Fix __debug -> __cdist_log_level (Darko Poljak)
|
||||||
|
* Documentation: Document __cdist_log_level (Darko Poljak)
|
||||||
|
|
||||||
4.6.1: 2017-08-30
|
4.6.1: 2017-08-30
|
||||||
* Type __user: Explore with /etc files (passwd, group, shadow) (Philippe Gregoire)
|
* Type __user: Explore with /etc files (passwd, group, shadow) (Philippe Gregoire)
|
||||||
|
|
|
@ -198,9 +198,27 @@ Environment variables (for reading)
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
The following environment variables are exported by cdist:
|
The following environment variables are exported by cdist:
|
||||||
|
|
||||||
__cdist_log_level
|
__cdist_log_level, __cdist_log_level_name
|
||||||
String value of cdist log level. One of OFF, ERROR, WARNING, INFO,
|
cdist log level value and cdist log level name. One of:
|
||||||
VERBOSE, DEBUG and TRACE.
|
|
||||||
|
+----------------+-----------------+
|
||||||
|
| Log level name | Log level value |
|
||||||
|
+================+=================+
|
||||||
|
| OFF | 60 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| ERROR | 40 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| WARNING | 30 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| INFO | 20 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| VERBOSE | 15 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| DEBUG | 10 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| TRACE | 5 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
|
||||||
Available for: initial manifest, explorer, type manifest, type explorer,
|
Available for: initial manifest, explorer, type manifest, type explorer,
|
||||||
type gencode.
|
type gencode.
|
||||||
__explorer
|
__explorer
|
||||||
|
@ -266,8 +284,27 @@ require
|
||||||
Setup dependencies between objects (see \`cdist manifest <cdist-manifest.html>\`_).
|
Setup dependencies between objects (see \`cdist manifest <cdist-manifest.html>\`_).
|
||||||
|
|
||||||
__cdist_log_level
|
__cdist_log_level
|
||||||
String value of cdist log level. One of OFF, ERROR, WARNING, INFO,
|
cdist log level value. One of:
|
||||||
VERBOSE, DEBUG and TRACE. If set cdist will set this log level in
|
|
||||||
|
+----------------+-----------------+
|
||||||
|
| Log level | Log level value |
|
||||||
|
+================+=================+
|
||||||
|
| OFF | 60 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| ERROR | 40 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| WARNING | 30 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| INFO | 20 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| VERBOSE | 15 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| DEBUG | 10 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| TRACE | 5 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
|
||||||
|
If set cdist will set this log level in
|
||||||
accordance with configuration rules. If cdist invokation is used
|
accordance with configuration rules. If cdist invokation is used
|
||||||
in types then nested cdist will honor this specified log level if
|
in types then nested cdist will honor this specified log level if
|
||||||
not specified otherwise while invoking it.
|
not specified otherwise while invoking it.
|
||||||
|
|
|
@ -333,9 +333,28 @@ So when you generate a script with the following content, it will work:
|
||||||
|
|
||||||
Log level in types
|
Log level in types
|
||||||
------------------
|
------------------
|
||||||
cdist log level can be accessed from __cdist_log_level variable.
|
cdist log level can be accessed from __cdist_log_level variable.One of:
|
||||||
Value is a string, one of OFF, ERROR, WARNING, INFO, VERBOSE, DEBUG and
|
|
||||||
TRACE. It is available for initial manifest, explorer, type manifest,
|
+----------------+-----------------+
|
||||||
|
| Log level | Log level value |
|
||||||
|
+================+=================+
|
||||||
|
| OFF | 60 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| ERROR | 40 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| WARNING | 30 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| INFO | 20 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| VERBOSE | 15 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| DEBUG | 10 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
| TRACE | 5 |
|
||||||
|
+----------------+-----------------+
|
||||||
|
|
||||||
|
|
||||||
|
It is available for initial manifest, explorer, type manifest,
|
||||||
type explorer, type gencode.
|
type explorer, type gencode.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue