X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fbenchmark%2Fscenarios%2Fbase.py;h=8146067ba78651af7bc39c4dcc0da8e747eedd21;hb=d784099d0b178476d6f03a97068e0f16a8454cc0;hp=540acca47afd68e05fdcc724124fb3ffca984c80;hpb=e2a4270e0d29eac71f7723ed901617d4daa799c0;p=yardstick.git diff --git a/yardstick/benchmark/scenarios/base.py b/yardstick/benchmark/scenarios/base.py index 540acca47..8146067ba 100644 --- a/yardstick/benchmark/scenarios/base.py +++ b/yardstick/benchmark/scenarios/base.py @@ -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.