summaryrefslogtreecommitdiffstats
path: root/qtip/runner
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2016-12-30 14:08:15 +0800
committerYujun Zhang <zhang.yujunz@zte.com.cn>2017-01-03 18:16:12 +0800
commitd8c05b528b5a75377848d130286bc997da06a792 (patch)
treed88f44e3a0d87ffdf64ba20ecf0417e01f63427f /qtip/runner
parentdecad5f7fdb212c4f78fc31f00e591eaba104450 (diff)
Implement plan, qpi and metric constructors
- separate runner from `plan` and move `plan` to `loader` - rename `algorithm` to `formula` - use `numpy` for formulas - update sample qpi and metrics Change-Id: I3131ca79907376f2de31d6cb920bd7d0230664a6 Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
Diffstat (limited to 'qtip/runner')
-rw-r--r--qtip/runner/__init__.py43
-rw-r--r--qtip/runner/base.py45
-rw-r--r--qtip/runner/plan.py25
3 files changed, 43 insertions, 70 deletions
diff --git a/qtip/runner/__init__.py b/qtip/runner/__init__.py
index e69de29b..eab81156 100644
--- a/qtip/runner/__init__.py
+++ b/qtip/runner/__init__.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2016 ZTE Corp and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+from qtip.base.constant import PkgName, PropName
+from qtip.base.error import NotFound
+from qtip.collector.stdout import StdoutCollector
+from qtip.driver.random import RandomDriver
+from qtip.reporter.console import ConsoleReporter
+
+
+class Runner(object):
+ def __init__(self, spec, config=None):
+ if config is None:
+ config = spec[PropName.CONFIG]
+
+ driver_name = config[PropName.DRIVER]
+ collector_name = config[PropName.COLLECTOR]
+ reporter_name = config[PropName.REPORTER]
+
+ # TODO(yujunz) dynamically load modules by name
+
+ if driver_name == 'random':
+ self.driver = RandomDriver()
+ else:
+ raise NotFound(driver_name, package=PkgName.DRIVER)
+
+ if collector_name == 'stdout':
+ self.collector = StdoutCollector()
+ else:
+ raise NotFound(collector_name,
+ package=PkgName.COLLECTOR)
+
+ if reporter_name == 'console':
+ self.reporter = ConsoleReporter()
+ else:
+ raise NotFound(reporter_name,
+ package=PkgName.REPORTER)
diff --git a/qtip/runner/base.py b/qtip/runner/base.py
deleted file mode 100644
index 07fba104..00000000
--- a/qtip/runner/base.py
+++ /dev/null
@@ -1,45 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 ZTE Corp and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-from qtip.base.constant import PkgName, PropName
-from qtip.base.error import NotFound
-from qtip.collector.logfile import LogfileCollector
-from qtip.driver.sample import SampleDriver
-from qtip.loader.base import BaseLoader
-from qtip.reporter.console import ConsoleReporter
-
-
-class BaseRunner(BaseLoader):
- def __init__(self, name, paths=None, config=None):
- super(BaseRunner, self).__init__(name, paths=paths)
- if config is None:
- config = self.content[PropName.CONFIG]
-
- driver_name = config[PropName.DRIVER]
- collector_name = config[PropName.COLLECTOR]
- reporter_name = config[PropName.REPORTER]
-
- # TODO(yujunz) dynamically load modules by name
-
- if driver_name == 'sample':
- self.driver = SampleDriver()
- else:
- raise NotFound(driver_name, package=PkgName.DRIVER)
-
- if collector_name == 'logfile':
- self.collector = LogfileCollector()
- else:
- raise NotFound(collector_name,
- package=PkgName.COLLECTOR)
-
- if reporter_name == 'console':
- self.reporter = ConsoleReporter()
- else:
- raise NotFound(reporter_name,
- package=PkgName.REPORTER)
diff --git a/qtip/runner/plan.py b/qtip/runner/plan.py
deleted file mode 100644
index f6c1c3bb..00000000
--- a/qtip/runner/plan.py
+++ /dev/null
@@ -1,25 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 ZTE Corp and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-from qtip.base.constant import PropName
-from qtip.runner.base import BaseRunner
-from qtip.loader.qpi import QPISpec
-
-
-class Plan(BaseRunner):
- """
- a benchmark plan is consist of configuration and a QPI list
- """
-
- DEFAULT_DIR = 'plan'
-
- def __init__(self, name, paths=None):
- super(Plan, self).__init__(name, paths)
- self.qpis = [QPISpec(qpi, paths=paths)
- for qpi in self.content[PropName.QPIS]]