iperf3: fix for influxDb schema errors
[yardstick.git] / yardstick / benchmark / scenarios / base.py
index 540acca..8146067 100644 (file)
@@ -15,9 +15,35 @@ import yardstick.common.utils as utils
 
 class Scenario(object):
 
+    def setup(self):
+        ''' default impl for scenario setup '''
+        pass
+
     def run(self, args):
+        ''' catcher for not implemented run methods in subclasses '''
+        raise RuntimeError("run method not implemented")
+
+    def teardown(self):
+        ''' default impl for scenario teardown '''
         pass
 
+    @staticmethod
+    def get_types():
+        '''return a list of known runner type (class) names'''
+        scenarios = []
+        for scenario in utils.itersubclasses(Scenario):
+            scenarios.append(scenario)
+        return scenarios
+
+    @staticmethod
+    def get_cls(scenario_type):
+        '''return class of specified type'''
+        for scenario in utils.itersubclasses(Scenario):
+            if scenario_type == scenario.__scenario_type__:
+                return scenario
+
+        raise RuntimeError("No such scenario type %s" % scenario_type)
+
     @staticmethod
     def get(scenario_type):
         """Returns instance of a scenario runner for execution type.