X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fbenchmark%2Fscenarios%2Fbase.py;h=5d3c36c389fb00e470d754827a2bd565d7764208;hb=5b99f1532ec4d15258ec86e970acd2904954b3bc;hp=e1e31fd2a857293e20a3376bb6f9a902429ddcc7;hpb=d290591a6f53d74ed00fe49e93654be5c486e998;p=yardstick.git diff --git a/yardstick/benchmark/scenarios/base.py b/yardstick/benchmark/scenarios/base.py index e1e31fd2a..5d3c36c38 100644 --- a/yardstick/benchmark/scenarios/base.py +++ b/yardstick/benchmark/scenarios/base.py @@ -1,32 +1,59 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. +# Copyright 2013: Mirantis Inc. +# All Rights Reserved. # -# 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 -############################################################################## +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# yardstick comment: this is a modified copy of +# rally/rally/benchmark/scenarios/base.py """ Scenario base class """ +from __future__ import absolute_import import yardstick.common.utils as utils class Scenario(object): def setup(self): - ''' default impl for scenario setup ''' + """ default impl for scenario setup """ pass def run(self, args): - ''' catcher for not implemented run methods in subclasses ''' + """ catcher for not implemented run methods in subclasses """ raise RuntimeError("run method not implemented") def teardown(self): - ''' default impl for scenario teardown ''' + """ 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.