diff --git a/server/website/website/db/base/parser.py b/server/website/website/db/base/parser.py index 087e283..d268f2d 100644 --- a/server/website/website/db/base/parser.py +++ b/server/website/website/db/base/parser.py @@ -220,10 +220,14 @@ class BaseParser: 'Unknown metric type for {}: {}'.format(name, metadata.metric_type)) target_list = target_objectives.get_all(self.dbms_id) + if target_objective not in target_list: + raise ValueError( + "Invalid target objective '{}'. Expected one of: {}.".format( + target_objective, ', '.join(target_list.keys()))) + for target_name, target_instance in target_list.items(): metric_data[target_name] = target_instance.compute( base_metric_data, observation_time) - LOG.info("Added target '%s=%s' to metric data", target_name, metric_data[target_name]) return metric_data diff --git a/server/website/website/db/base/target_objective.py b/server/website/website/db/base/target_objective.py index 0fee155..7aa6ee9 100644 --- a/server/website/website/db/base/target_objective.py +++ b/server/website/website/db/base/target_objective.py @@ -84,9 +84,9 @@ class TargetObjectives: self._default_target_objective = THROUGHPUT def register(self): - from ..myrocks.target_objective import target_objective_list as _myrocks_list - from ..oracle.target_objective import target_objective_list as _oracle_list - from ..postgres.target_objective import target_objective_list as _postgres_list + from ..myrocks.target_objective import target_objective_list as _myrocks_list # pylint: disable=import-outside-toplevel + from ..oracle.target_objective import target_objective_list as _oracle_list # pylint: disable=import-outside-toplevel + from ..postgres.target_objective import target_objective_list as _postgres_list # pylint: disable=import-outside-toplevel if not self.registered(): LOG.info('Registering target objectives...') diff --git a/server/website/website/db/oracle/target_objective.py b/server/website/website/db/oracle/target_objective.py index d4fcec9..75e7a86 100644 --- a/server/website/website/db/oracle/target_objective.py +++ b/server/website/website/db/oracle/target_objective.py @@ -4,8 +4,8 @@ # Copyright (c) 2017-18, Carnegie Mellon University Database Group # -from ..base.target_objective import BaseTargetObjective, BaseThroughput, LESS_IS_BETTER from website.types import DBMSType +from ..base.target_objective import BaseTargetObjective, BaseThroughput, LESS_IS_BETTER class DBTime(BaseTargetObjective):