Make __cdist_loglevel value more expressive. (#571)

This commit is contained in:
Darko Poljak 2017-09-07 16:36:23 +02:00 • committed by GitHub
commit 57f15f9cce
9 changed files with 48 additions and 14 deletions

View file

@ -24,16 +24,16 @@ remote_copy="$__type/files/remote/copy"
cdist_args=""
case "$__cdist_loglevel" in
20)
INFO)
cdist_args="-v"
;;
15)
VERBOSE)
cdist_args="-vv"
;;
10)
DEBUG)
cdist_args="-vvv"
;;
5)
TRACE)
cdist_args="-vvvv"
;;
esac

View file

@ -23,7 +23,7 @@ uri="$(cat "$__object/parameter/uri" 2>/dev/null \
target="$(cat "$__object/parameter/target")"
case "$__cdist_loglevel" in
10|5) # DEBUG or TRACE
DEBUG|TRACE)
curl="curl"
tar="tar -xvzp"
;;

View file

@ -114,7 +114,7 @@ class Manifest(object):
}
self.env.update(
{'__cdist_loglevel': str(self.log.getEffectiveLevel())})
{'__cdist_loglevel': logging.getLevelName(self.log.getEffectiveLevel())})
def _open_logger(self):
self.log = logging.getLogger(self.target_host[0])

View file

@ -111,12 +111,18 @@ class Emulator(object):
if '__cdist_loglevel' in self.env:
try:
level = int(self.env['__cdist_loglevel'])
loglevel = self.env['__cdist_loglevel']
# For a text level it returns its numerical value.
level = logging.getLevelName(loglevel)
except ValueError:
level = logging.WARNING
else:
level = logging.WARNING
logging.root.setLevel(level)
try:
logging.root.setLevel(level)
except (ValueError, TypeError):
# if invalid __cdist_loglevel value
logging.root.setLevel(logging.WARNING)
self.log = logging.getLogger(self.target_host[0])

View file

@ -27,6 +27,7 @@ import shutil
import string
import filecmp
import random
import logging
import cdist
from cdist import test
@ -63,6 +64,8 @@ class EmulatorTestCase(test.CdistTestCase):
self.manifest = core.Manifest(self.target_host, self.local)
self.env = self.manifest.env_initial_manifest(self.script)
self.env['__cdist_object_marker'] = self.local.object_marker_name
if '__cdist_loglevel' in self.env:
del self.env['__cdist_loglevel']
def tearDown(self):
shutil.rmtree(self.temp_dir)
@ -115,6 +118,31 @@ class EmulatorTestCase(test.CdistTestCase):
emu = emulator.Emulator(argv, env=self.env)
# if we get here all is fine
def test_loglevel(self):
argv = ['__file', '/tmp/foobar']
self.env['require'] = '__file/etc/*'
emu = emulator.Emulator(argv, env=self.env)
emu_loglevel = emu.log.getEffectiveLevel()
self.assertEqual(emu_loglevel, logging.WARNING)
self.env['__cdist_loglevel'] = logging.getLevelName(logging.DEBUG)
emu = emulator.Emulator(argv, env=self.env)
emu_loglevel = emu.log.getEffectiveLevel()
self.assertEqual(emu_loglevel, logging.DEBUG)
del self.env['__cdist_loglevel']
def test_invalid_loglevel_value(self):
argv = ['__file', '/tmp/foobar']
self.env['require'] = '__file/etc/*'
emu = emulator.Emulator(argv, env=self.env)
emu_loglevel = emu.log.getEffectiveLevel()
self.assertEqual(emu_loglevel, logging.WARNING)
# lowercase is invalid
self.env['__cdist_loglevel'] = 'debug'
emu = emulator.Emulator(argv, env=self.env)
emu_loglevel = emu.log.getEffectiveLevel()
self.assertEqual(emu_loglevel, logging.WARNING)
del self.env['__cdist_loglevel']
def test_requirement_via_order_dependency(self):
self.env['CDIST_ORDER_DEPENDENCY'] = 'on'
argv = ['__planet', 'erde']

View file

@ -137,6 +137,7 @@ class ManifestTestCase(test.CdistTestCase):
self.log.setLevel(logging.DEBUG)
manifest = cdist.core.manifest.Manifest(self.target_host, self.local)
self.assertTrue("__cdist_loglevel" in manifest.env)
self.assertEqual(manifest.env["__cdist_loglevel"], 'DEBUG')
self.log.setLevel(current_level)