From 2fa5d1b973449f4f0bd85436d7957b21a8b322af Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Tue, 24 Apr 2018 16:31:18 +0100 Subject: [PATCH] Added more logging --- force_bdss/cli/force_bdss.py | 2 ++ force_bdss/core_evaluation_driver.py | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/force_bdss/cli/force_bdss.py b/force_bdss/cli/force_bdss.py index 40503ce..1434b1d 100644 --- a/force_bdss/cli/force_bdss.py +++ b/force_bdss/cli/force_bdss.py @@ -19,6 +19,8 @@ push_exception_handler(reraise_exceptions=True) def run(evaluate, logfile, workflow_filepath): logging_config = {} + logging_config["level"] = logging.INFO + if logfile is not None: logging_config["filename"] = logfile diff --git a/force_bdss/core_evaluation_driver.py b/force_bdss/core_evaluation_driver.py index 1f4b9dc..2657f35 100644 --- a/force_bdss/core_evaluation_driver.py +++ b/force_bdss/core_evaluation_driver.py @@ -14,7 +14,6 @@ CORE_EVALUATION_DRIVER_ID = plugin_id("core", "CoreEvaluationDriver") log = logging.getLogger(__name__) - class CoreEvaluationDriver(BaseCoreDriver): """Main plugin that handles the execution of the MCO or the evaluation. @@ -35,17 +34,20 @@ class CoreEvaluationDriver(BaseCoreDriver): sys.exit(0) mco_factory = mco_model.factory + log.info("Creating communicator") mco_communicator = mco_factory.create_communicator() mco_data_values = _get_data_values_from_mco( mco_model, mco_communicator) + log.info("Computing data layer 1") ds_results = _compute_layer_results( mco_data_values, workflow.data_sources, "create_data_source" ) + log.info("Computing data layer 2") kpi_results = _compute_layer_results( ds_results + mco_data_values, workflow.kpi_calculators, @@ -107,7 +109,13 @@ def _compute_layer_results(environment_data_values, # execute data source, passing only relevant data values. log.info("Evaluating for Data Source {}".format( factory.name)) - res = evaluator.run(model, passed_data_values) + + try: + res = evaluator.run(model, passed_data_values) + except Exception: + log.error("Evaluation could not be performed. Run method raised" + "exception", exc_info=True) + raise if len(res) != len(out_slots): error_txt = ( @@ -165,6 +173,9 @@ def _get_data_values_from_mco(model, communicator): """ mco_data_values = communicator.receive_from_mco(model) + log.info("Received data from MCO: \n{}".format( + "\n".join([str(x) for x in mco_data_values]))) + if len(mco_data_values) != len(model.parameters): error_txt = ("The number of data values returned by" " the MCO ({} values) does not match the" -- GitLab