Added valid target objectives to the session create/edit form

This commit is contained in:
Dana Van Aken
2019-10-09 00:15:31 -04:00
parent 2b9f199c6f
commit dcb3152ec5
8 changed files with 51 additions and 20 deletions

View File

@@ -197,7 +197,7 @@ class BaseParser:
raise ValueError(
'Unknown metric type for {}: {}'.format(name, metadata.metric_type))
target_objective_instance = target_objectives.get_target_objective_instance(
target_objective_instance = target_objectives.get_instance(
self.dbms_id, target_objective)
metric_data[target_objective] = target_objective_instance.compute(
base_metric_data, observation_time)

View File

@@ -4,6 +4,7 @@
# Copyright (c) 2017-18, Carnegie Mellon University Database Group
#
import copy
import logging
from collections import OrderedDict
@@ -44,6 +45,10 @@ class BaseTargetObjective(BaseMetric):
super().__init__(name=name, pprint=pprint, unit=unit, short_unit=short_unit,
improvement=improvement, scale=scale)
@property
def label(self):
return '{} ({})'.format(self.pprint, self.short_unit)
def compute(self, metrics, observation_time):
raise NotImplementedError()
@@ -106,16 +111,26 @@ class TargetObjectives:
metadata.insert(0, (target_objective, target_objective_instance))
return OrderedDict(metadata)
def get_default_target_objective(self):
def default(self):
return self._default_target_objective
def get_target_objective_instance(self, dbms_id, target_objective):
def get_instance(self, dbms_id, target_objective):
if not self.registered():
self.register()
dbms_id = int(dbms_id)
instance = self._registry[dbms_id][target_objective]
return instance
def get_all(self, dbms_id=None):
if not self.registered():
self.register()
if dbms_id is None:
res = copy.deepcopy(self._registry)
else:
dbms_id = int(dbms_id)
res = copy.deepcopy(self._registry[dbms_id])
return res
def __repr__(self):
s = 'TargetObjectives = (\n'
for dbms_id, entry in self._registry.items(): # pylint: disable=not-an-iterable

View File

@@ -169,7 +169,7 @@ class MyRocksParser(BaseParser):
raise ValueError(
'Unknown metric type for {}: {}'.format(name, metadata.metric_type))
target_objective_instance = target_objectives.get_target_objective_instance(
target_objective_instance = target_objectives.get_instance(
self.dbms_id, target_objective)
metric_data[target_objective] = target_objective_instance.compute(
base_metric_data, observation_time)