summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2013-06-25 12:29:25 +0200
committerPetr Viktorin <pviktori@redhat.com>2013-07-15 15:49:14 +0200
commitc47f3154be16a096b2d255c654e2277954b14833 (patch)
tree8476fce00eabfd52576acde8d3ec899aea6dbd15
parent19a0d51d89b640c04dc285067fc59b4a7fe9ca7f (diff)
downloadfreeipa-c47f3154be16a096b2d255c654e2277954b14833.zip
freeipa-c47f3154be16a096b2d255c654e2277954b14833.tar.gz
freeipa-c47f3154be16a096b2d255c654e2277954b14833.tar.xz
Make BeakerLib logging less verbose
Logs from Beaker jobs are normally very brief, with the standard output/error containing detailed information. Make ipa-run-tests with BeakerLib plugin follow this convention. Only include INFO and higher level messages in the Beaker logs. Downgrade several message levels to DEBUG. Log to console using Python logging instead of showing the Beaker logs. Since ipa-run-tests sets up its own logging, Nose's own log handling just causes duplicate messages. Disable it with --nologcapture.
-rw-r--r--ipatests/beakerlib_plugin.py13
-rwxr-xr-xipatests/ipa-run-tests4
-rw-r--r--ipatests/test_integration/host.py10
-rw-r--r--ipatests/test_integration/tasks.py6
4 files changed, 15 insertions, 18 deletions
diff --git a/ipatests/beakerlib_plugin.py b/ipatests/beakerlib_plugin.py
index 8857a28..7c27c16 100644
--- a/ipatests/beakerlib_plugin.py
+++ b/ipatests/beakerlib_plugin.py
@@ -76,7 +76,9 @@ class BeakerLibPlugin(Plugin):
# Set up the Bash process
self.bash = subprocess.Popen(['bash'],
- stdin=subprocess.PIPE)
+ stdin=subprocess.PIPE,
+ stdout=open('/dev/null', 'w'),
+ stderr=open('/dev/null', 'w'))
source_path = os.path.join(self.env['BEAKERLIB'], 'beakerlib.sh')
self.run_beakerlib_command(['.', source_path])
@@ -88,16 +90,12 @@ class BeakerLibPlugin(Plugin):
self.setup_log_handler(BeakerLibLogHandler(self.run_beakerlib_command))
def setup_log_handler(self, handler):
- # Remove the console handler (BeakerLib will print to stderr)
- if 'console' in log_mgr.handlers:
- log_mgr.remove_handler('console')
- # Configure our logger
log_mgr.configure(
{
'default_level': 'DEBUG',
'handlers': [{'log_handler': handler,
'format': '[%(name)s] %(message)s',
- 'level': 'debug'}]},
+ 'level': 'info'}]},
configure_state='beakerlib_plugin')
def run_beakerlib_command(self, cmd):
@@ -207,7 +205,6 @@ class BeakerLibPlugin(Plugin):
tarname = os.path.join(dirname, 'logs.tar.xz')
with open(tarname, 'w') as f:
f.write(cmd.stdout_text)
- self.log.info('%s', dirname)
ipautil.run(['tar', 'xJvf', 'logs.tar.xz'], cwd=dirname)
os.unlink(tarname)
@@ -219,7 +216,7 @@ class BeakerLibPlugin(Plugin):
for filename in filenames:
fullname = os.path.relpath(
os.path.join(dirpath, filename), topdirname)
- self.log.info('Submitting file: %s', fullname)
+ self.log.debug('Submitting file: %s', fullname)
self.run_beakerlib_command(['rlFileSubmit', fullname])
self.run_beakerlib_command(['popd'])
diff --git a/ipatests/ipa-run-tests b/ipatests/ipa-run-tests
index b58e49f..2b61d3c 100755
--- a/ipatests/ipa-run-tests
+++ b/ipatests/ipa-run-tests
@@ -40,11 +40,11 @@ from ipatests.order_plugin import OrderTests
cmd = [
sys.argv[0],
- '-v',
'--with-doctest',
'--doctest-tests',
'--with-ordered-tests',
'--exclude=plugins',
+ '--nologcapture',
'--logging-filter=-paramiko',
'--where', os.path.dirname(ipatests.__file__),
]
@@ -72,7 +72,7 @@ log_mgr.configure(
'handlers': [{'log_handler': LogHandler(),
'format': '[%(name)s] %(message)s',
'level': 'debug'},
- {'level': 'info',
+ {'level': 'debug',
'name': 'console',
'stream': sys.stderr}]},
configure_state='tests')
diff --git a/ipatests/test_integration/host.py b/ipatests/test_integration/host.py
index 8109f51..9accdf0 100644
--- a/ipatests/test_integration/host.py
+++ b/ipatests/test_integration/host.py
@@ -99,7 +99,7 @@ class RemoteCommand(object):
self.log.error('Exit code: %s', self.returncode)
raise subprocess.CalledProcessError(self.returncode, self.argv)
else:
- self.log.info('Exit code: %s', self.returncode)
+ self.log.debug('Exit code: %s', self.returncode)
return self.returncode
def _start_pipe_thread(self, result_list, stream, name, do_log=True):
@@ -108,7 +108,7 @@ class RemoteCommand(object):
def read_stream():
for line in stream:
if do_log:
- log.info(line.rstrip('\n'))
+ log.debug(line.rstrip('\n'))
result_list.append(line)
thread = threading.Thread(target=read_stream)
@@ -285,7 +285,7 @@ class Host(object):
def get_file_contents(self, filename):
"""Read the named remote file and return the contents as a string"""
- self.log.info('READ %s', filename)
+ self.log.debug('READ %s', filename)
with self.sftp.open(filename) as f:
return f.read()
@@ -297,7 +297,7 @@ class Host(object):
def file_exists(self, filename):
"""Return true if the named remote file exists"""
- self.log.info('STAT %s', filename)
+ self.log.debug('STAT %s', filename)
try:
self.sftp.stat(filename)
except IOError, e:
@@ -308,7 +308,7 @@ class Host(object):
return True
def get_file(self, remotepath, localpath):
- self.log.info('GET %s', remotepath)
+ self.log.debug('GET %s', remotepath)
self.sftp.get(remotepath, localpath)
def put_file(self, localpath, remotepath):
diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py
index d131e4d..ecefdab 100644
--- a/ipatests/test_integration/tasks.py
+++ b/ipatests/test_integration/tasks.py
@@ -64,7 +64,7 @@ def fix_etc_hosts(host):
flags=re.MULTILINE)
# Add the host's info again
contents += '\n%s %s %s\n' % (host.ip, host.hostname, host.shortname)
- log.info('Writing the following to /etc/hosts:\n%s', contents)
+ log.debug('Writing the following to /etc/hosts:\n%s', contents)
host.put_file_contents('/etc/hosts', contents)
@@ -85,7 +85,7 @@ def fix_resolv_conf(host):
if other_host.role in ('master', 'replica'):
lines.append('nameserver %s' % other_host.ip)
contents = '\n'.join(lines)
- log.info('Writing the following to /etc/resolv.conf:\n%s', contents)
+ log.debug('Writing the following to /etc/resolv.conf:\n%s', contents)
host.put_file_contents('/etc/resolv.conf', contents)
@@ -109,7 +109,7 @@ def restore_hostname(host):
try:
hostname = host.get_file_contents(backupname)
except IOError:
- log.info('No hostname backed up on %s' % host.hostname)
+ log.debug('No hostname backed up on %s' % host.hostname)
else:
host.run_command(['hostname', hostname.strip()])
host.run_command(['rm', backupname])