From: Jonathan Rajotte Date: Mon, 27 Nov 2017 20:30:10 +0000 (-0500) Subject: Fix: circular dependency between bootstrap and projects cache X-Git-Url: http://git.efficios.com/?p=deliverable%2Flttng-ivc.git;a=commitdiff_plain;h=3ac73e85efe6a048f3562fa6705a16afe4a313ab Fix: circular dependency between bootstrap and projects cache Split in two step the bootstrapping and the projects cache. Signed-off-by: Jonathan Rajotte --- diff --git a/lttng_ivc/bootstrap.py b/lttng_ivc/bootstrap.py index ec44f2b..df85145 100644 --- a/lttng_ivc/bootstrap.py +++ b/lttng_ivc/bootstrap.py @@ -10,7 +10,6 @@ dir_path = os.path.dirname(os.path.realpath(__file__)) sys.path.insert(0, os.path.join(dir_path, "..")) import settings as Settings -import utils.ProjectFactory as ProjectFactory def is_ref_branch(repo, ref): try: @@ -162,8 +161,3 @@ for project, markers in config.items(): with open(Settings.run_configuration_file, 'w') as run_configuration: yaml.dump(runnable_markers, run_configuration, default_flow_style=False) - -# Prebuild all projects -for key in runnable_markers: - logger_git.info('Preparing and building {}'.format(key)) - ProjectFactory.get_precook(key) diff --git a/lttng_ivc/build_projects.py b/lttng_ivc/build_projects.py new file mode 100644 index 0000000..6bec156 --- /dev/null +++ b/lttng_ivc/build_projects.py @@ -0,0 +1,40 @@ +# Copyright (c) 2017 Jonathan Rajotte-Julien +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import os +import sys +import yaml +import logging + +dir_path = os.path.dirname(os.path.realpath(__file__)) +sys.path.insert(0, os.path.join(dir_path, "..")) + +import utils.ProjectFactory as ProjectFactory +import settings as Settings + +_logger = logging.getLogger('project.cache_builder') + +with open(Settings.run_configuration_file, 'r') as stream: + markers = yaml.load(stream) + +# Prebuild all projects +for key in markers: + _logger.info('Preparing and building {}'.format(key)) + ProjectFactory.get_precook(key)