diff options
Diffstat (limited to 'qtip/loader/plan.py')
-rw-r--r-- | qtip/loader/plan.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/qtip/loader/plan.py b/qtip/loader/plan.py index 9b5546e0..0fd9ff52 100644 --- a/qtip/loader/plan.py +++ b/qtip/loader/plan.py @@ -8,8 +8,9 @@ ############################################################################## -from qtip.base.constant import PlanProp -from qtip.collector.logfile import LogfileCollector +from qtip.base.constant import BaseProp +from qtip.collector.base import CollectorProp as CProp +from qtip.loader.module import load_collector from qtip.loader.yaml_file import YamlFileLoader from qtip.loader.qpi import QPISpec @@ -24,9 +25,26 @@ class Plan(YamlFileLoader): def __init__(self, name, paths=None): super(Plan, self).__init__(name, paths) + _config = self.content[PlanProp.CONFIG] + + self.collectors = [load_collector(c[CProp.TYPE])(c, self) + for c in _config[PlanProp.COLLECTORS]] + self.qpis = [QPISpec(qpi, paths=paths) for qpi in self.content[PlanProp.QPIS]] - _config = self.content[PlanProp.CONFIG] - # TODO(yujunz) create collector by name - self.collector = LogfileCollector(_config[PlanProp.COLLECTOR], paths) + +class PlanProp(BaseProp): + # plan + INFO = 'info' + + FACILITY = 'facility' + ENGINEER = 'engineer' + + CONFIG = 'config' + + DRIVER = 'driver' + COLLECTORS = 'collectors' + REPORTER = 'reporter' + + QPIS = 'QPIs' |