From 1775d33f633cd4ec4fcadcfc1855fdb84c0525e3 Mon Sep 17 00:00:00 2001 From: Filip Valder Date: Wed, 16 Aug 2017 11:49:09 +0200 Subject: [PATCH 1/2] Fix/remove app recreation when used by Flask-Script (Manager) --- module_build_service/__init__.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/module_build_service/__init__.py b/module_build_service/__init__.py index ea51ad20..24fbbd77 100644 --- a/module_build_service/__init__.py +++ b/module_build_service/__init__.py @@ -54,10 +54,14 @@ from module_build_service.config import init_config from module_build_service.proxy import ReverseProxy -def create_app(debug=False, verbose=False, quiet=False): - app = Flask(__name__) - app.wsgi_app = ReverseProxy(app.wsgi_app) +app = Flask(__name__) +app.wsgi_app = ReverseProxy(app.wsgi_app) +conf = init_config(app) +db = SQLAlchemy(app) + + +def create_app(debug=False, verbose=False, quiet=False): # logging (intended for flask-script, see manage.py) log = getLogger(__name__) if debug: @@ -69,10 +73,6 @@ def create_app(debug=False, verbose=False, quiet=False): return app -app = create_app() -conf = init_config(app) -db = SQLAlchemy(app) - def load_views(): from module_build_service import views From 6a2e9aeddd2d927172bf4e2d62b5fd7f2e79c1bb Mon Sep 17 00:00:00 2001 From: Filip Valder Date: Wed, 16 Aug 2017 13:39:59 +0200 Subject: [PATCH 2/2] Fix #576: Remove empty/useless log files --- .../builder/MockModuleBuilder.py | 24 +++++++++++++++++++ module_build_service/config.py | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/module_build_service/builder/MockModuleBuilder.py b/module_build_service/builder/MockModuleBuilder.py index 29ad5efc..a02ea7a6 100644 --- a/module_build_service/builder/MockModuleBuilder.py +++ b/module_build_service/builder/MockModuleBuilder.py @@ -28,6 +28,7 @@ import koji import kobo.rpmlib import modulemd import pipes +import re import threading from module_build_service import conf, log @@ -324,6 +325,25 @@ mdpolicy=group:primary if os.path.exists(old_log): os.rename(old_log, new_log) + def _purge_useless_logs(self): + """ + Remove empty or otherwise useless log files + """ + for logf in os.listdir(self.resultsdir): + + log_path = os.path.join(self.resultsdir, logf) + + # Remove empty files + if os.path.isfile(log_path) and os.path.getsize(log_path) == 0: + os.remove(log_path) + + # Remove other files containing useless information + elif logf.endswith('-srpm-stdout.log'): + with open(log_path) as f: + data = f.read(4096) + if re.match("Downloading [^\n]*\n\n\nWrote: [^\n]", data): + os.remove(log_path) + def build_srpm(self, artifact_name, source, build_id, builder): """ Builds the artifact from the SRPM. @@ -386,6 +406,10 @@ mdpolicy=group:primary for name in os.listdir(resultsdir): os.rename(os.path.join(resultsdir, name), os.path.join(self.resultsdir, name)) + # Depending on the configuration settings, remove/keep useless log files + if conf.mock_purge_useless_logs: + self._purge_useless_logs() + # We return BUILDING state here even when we know it is already # completed or failed, because otherwise utils.start_build_batch # would think this component is already built and also tagged, but diff --git a/module_build_service/config.py b/module_build_service/config.py index f0ef9765..8c023122 100644 --- a/module_build_service/config.py +++ b/module_build_service/config.py @@ -322,6 +322,10 @@ class Config(object): 'type': Path, 'default': '~/modulebuild/builds', 'desc': 'Directory for Mock build results.'}, + 'mock_purge_useless_logs': { + 'type': bool, + 'default': True, + 'desc': 'Remove empty or otherwise useless log files.'}, 'scmurls': { 'type': list, 'default': [],