summaryrefslogtreecommitdiffstats
path: root/qtip/loader/plan.py
diff options
context:
space:
mode:
Diffstat (limited to 'qtip/loader/plan.py')
-rw-r--r--qtip/loader/plan.py28
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'