summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQiLiang <liangqi1@huawei.com>2015-12-31 02:11:21 +0000
committerQiLiang <liangqi1@huawei.com>2015-12-31 03:08:24 +0000
commit60ee06b4179bbd4b578275ad3e773853713af3c4 (patch)
tree39d318b6b6ab966bc626d3d969fd8839215e5264
parent8375eec566fc4266d940e98a61d78707c4801f93 (diff)
Add Dummy context and scenario type
Dummy Context Usage: - if no context specified in the task file then automatically use Dummy Context - or specify the context with type Dummy in the task file, like context: type: Dummy Note: context without type name default use Heat Context. (e.g. samples/fio.yaml) JIRA: - Change-Id: I7f798a7260bdd6ac24902e2c835a3b121319fd8c Signed-off-by: QiLiang <liangqi1@huawei.com>
-rw-r--r--samples/dummy-no-context.yaml14
-rw-r--r--samples/dummy.yaml17
-rw-r--r--tests/unit/benchmark/contexts/test_dummy.py31
-rw-r--r--tests/unit/benchmark/scenarios/dummy/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/dummy/test_dummy.py33
-rw-r--r--yardstick/benchmark/contexts/dummy.py38
-rw-r--r--yardstick/benchmark/scenarios/dummy/__init__.py0
-rw-r--r--yardstick/benchmark/scenarios/dummy/dummy.py36
-rwxr-xr-xyardstick/cmd/commands/task.py4
9 files changed, 172 insertions, 1 deletions
diff --git a/samples/dummy-no-context.yaml b/samples/dummy-no-context.yaml
new file mode 100644
index 000000000..5ab97a3a8
--- /dev/null
+++ b/samples/dummy-no-context.yaml
@@ -0,0 +1,14 @@
+---
+# Sample benchmark task config file
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: Dummy
+
+ runner:
+ type: Duration
+ duration: 5
+ interval: 1
+
diff --git a/samples/dummy.yaml b/samples/dummy.yaml
new file mode 100644
index 000000000..e41ab9fba
--- /dev/null
+++ b/samples/dummy.yaml
@@ -0,0 +1,17 @@
+---
+# Sample benchmark task config file
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: Dummy
+
+ runner:
+ type: Duration
+ duration: 5
+ interval: 1
+
+context:
+ type: Dummy
+
diff --git a/tests/unit/benchmark/contexts/test_dummy.py b/tests/unit/benchmark/contexts/test_dummy.py
new file mode 100644
index 000000000..5214e6630
--- /dev/null
+++ b/tests/unit/benchmark/contexts/test_dummy.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
+##############################################################################
+
+# Unittest for yardstick.benchmark.contexts.dummy
+
+import unittest
+
+from yardstick.benchmark.contexts import dummy
+
+
+class DummyContextTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.test_context = dummy.DummyContext()
+
+ def test__get_server(self):
+ self.test_context.init(None)
+ self.test_context.deploy()
+
+ result = self.test_context._get_server(None)
+ self.assertEqual(result, None)
+
+ self.test_context.undeploy()
diff --git a/tests/unit/benchmark/scenarios/dummy/__init__.py b/tests/unit/benchmark/scenarios/dummy/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/dummy/__init__.py
diff --git a/tests/unit/benchmark/scenarios/dummy/test_dummy.py b/tests/unit/benchmark/scenarios/dummy/test_dummy.py
new file mode 100644
index 000000000..1f9b729a9
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/dummy/test_dummy.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.dummy.dummy
+
+import unittest
+
+from yardstick.benchmark.scenarios.dummy import dummy
+
+
+class DummyTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.test_context = dummy.Dummy(None, None)
+
+ self.assertIsNone(self.test_context.scenario_cfg)
+ self.assertIsNone(self.test_context.context_cfg)
+ self.assertEqual(self.test_context.setup_done, False)
+
+ def test_run(self):
+ result = {}
+ self.test_context.run(result)
+
+ self.assertEqual(result["hello"], "yardstick")
+ self.assertEqual(self.test_context.setup_done, True)
diff --git a/yardstick/benchmark/contexts/dummy.py b/yardstick/benchmark/contexts/dummy.py
new file mode 100644
index 000000000..6901b2617
--- /dev/null
+++ b/yardstick/benchmark/contexts/dummy.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
+##############################################################################
+
+import logging
+
+from yardstick.benchmark.contexts.base import Context
+
+
+LOG = logging.getLogger(__name__)
+
+
+class DummyContext(Context):
+ '''Class that handle dummy info'''
+
+ __context_type__ = "Dummy"
+
+ def __init__(self):
+ super(self.__class__, self).__init__()
+
+ def init(self, attrs):
+ pass
+
+ def deploy(self):
+ '''don't need to deploy'''
+ pass
+
+ def undeploy(self):
+ '''don't need to undeploy'''
+ pass
+
+ def _get_server(self, attr_name):
+ return None
diff --git a/yardstick/benchmark/scenarios/dummy/__init__.py b/yardstick/benchmark/scenarios/dummy/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/benchmark/scenarios/dummy/__init__.py
diff --git a/yardstick/benchmark/scenarios/dummy/dummy.py b/yardstick/benchmark/scenarios/dummy/dummy.py
new file mode 100644
index 000000000..de6742c40
--- /dev/null
+++ b/yardstick/benchmark/scenarios/dummy/dummy.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
+##############################################################################
+import logging
+
+from yardstick.benchmark.scenarios import base
+
+LOG = logging.getLogger(__name__)
+
+
+class Dummy(base.Scenario):
+ """Execute Dummy echo
+ """
+ __scenario_type__ = "Dummy"
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.setup_done = False
+
+ def setup(self):
+ '''scenario setup'''
+ self.setup_done = True
+
+ def run(self, result):
+ """execute the benchmark"""
+ if not self.setup_done:
+ self.setup()
+
+ result["hello"] = "yardstick"
+ LOG.info("Dummy echo hello yardstick!")
diff --git a/yardstick/cmd/commands/task.py b/yardstick/cmd/commands/task.py
index a56824aac..fbbca29ad 100755
--- a/yardstick/cmd/commands/task.py
+++ b/yardstick/cmd/commands/task.py
@@ -233,8 +233,10 @@ class TaskParser(object):
# TODO: support hybrid context type
if "context" in cfg:
context_cfgs = [cfg["context"]]
- else:
+ elif "contexts" in cfg:
context_cfgs = cfg["contexts"]
+ else:
+ context_cfgs = [{"type": "Dummy"}]
for cfg_attrs in context_cfgs:
context_type = cfg_attrs.get("type", "Heat")