MINIFICPP-1017 - Improve logging of docker tests
diff --git a/docker/DockerBuild.sh b/docker/DockerBuild.sh
index 20c5070..6217a82 100755
--- a/docker/DockerBuild.sh
+++ b/docker/DockerBuild.sh
@@ -34,6 +34,9 @@
mkdir -p $CMAKE_SOURCE_DIR/docker/minificppsource
rsync -avr \
--exclude '/*build*' \
+ --exclude '/*_repository*' \
+ --exclude '/logs' \
+ --exclude '/cmake' \
--exclude '/docker' \
--exclude '.git' \
--exclude '/extensions/expression-language/Parser.cpp' \
diff --git a/docker/test/integration/minifi/test/__init__.py b/docker/test/integration/minifi/test/__init__.py
index d25e538..c93f168 100644
--- a/docker/test/integration/minifi/test/__init__.py
+++ b/docker/test/integration/minifi/test/__init__.py
@@ -118,27 +118,28 @@
for container in self.containers:
container = self.client.containers.get(container.id)
- logging.info('Container logs for container \'%s\':\n%s', container.name, container.logs())
+ logging.info('Container logs for container \'%s\':\n%s', container.name, container.logs().decode("utf-8"))
if b'Segmentation fault' in container.logs():
+ logging.warn('Container segfaulted: %s', container.name)
self.segfault=True
if container.status == 'running':
- minifi_app_logs = container.exec_run('/bin/sh -c \'test -f ' + self.minifi_root + '/logs/minifi-app.log '
- '&& cat ' +
- self.minifi_root + '/logs/minifi-app.log\'')
- if len(minifi_app_logs) > 0:
- logging.info('MiNiFi app logs for container \'%s\':\n%s', container.name, minifi_app_logs)
+ apps = [("MiNiFi", self.minifi_root + '/logs/minifi-app.log'), ("NiFi", self.nifi_root + '/logs/nifi-app.log')]
+ for app in apps:
+ app_log_status, app_log = container.exec_run('/bin/sh -c \'cat ' + app[1] + '\'')
+ if app_log_status == 0:
+ logging.info('%s app logs for container \'%s\':\n', app[0], container.name)
+ for line in app_log.decode("utf-8").splitlines():
+ logging.info(line)
+ break
+ else:
+ logging.warning("The container is running, but none of %s logs were found", " or ".join([x[0] for x in apps]))
- nifi_app_logs = container.exec_run('/bin/sh -c \'test -f ' + self.nifi_root + '/logs/nifi-app.log '
- '&& cat ' +
- self.nifi_root + '/logs/nifi-app.log\'')
- if len(nifi_app_logs) > 0:
- logging.info('NiFi app logs for container \'%s\':\n%s', container.name, nifi_app_logs)
else:
logging.info(container.status)
logging.info('Could not cat app logs for container \'%s\' because it is not running',
container.name)
- stats = container.stats(decode=True, stream=True)
- logging.info('Container stats:\n%s', repr(stats))
+ stats = container.stats(stream=False)
+ logging.info('Container stats:\n%s', stats)
def check_output(self, timeout=5):
"""