From 0f3ad6f2db26fb91190e47c89f77fb59b7601b84 Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Thu, 9 Feb 2017 10:12:39 +0800 Subject: Refactoring collector initialization in plan loader - move ClassProps to module - collectors should be array in plan definition Change-Id: I37d85dbc977c91aa1bb81de45b5e1c41660e6d1f Signed-off-by: Yujun Zhang --- qtip/loader/plan.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'qtip/loader/plan.py') 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' -- cgit 1.2.3-korg