X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fbenchmark%2Fscenarios%2Fbase.py;h=3cb138dd85fd25ab8ce2de6cdd6285b3e3cf3278;hb=18e1f4432adea4e115a82fac96238970389ab07e;hp=8146067ba78651af7bc39c4dcc0da8e747eedd21;hpb=d7fd300e9a9bd480ad9f1500494021c42ec6ecee;p=yardstick.git diff --git a/yardstick/benchmark/scenarios/base.py b/yardstick/benchmark/scenarios/base.py index 8146067ba..3cb138dd8 100644 --- a/yardstick/benchmark/scenarios/base.py +++ b/yardstick/benchmark/scenarios/base.py @@ -1,35 +1,45 @@ -############################################################################## -# 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''' + """return a list of known runner type (class) names""" scenarios = [] for scenario in utils.itersubclasses(Scenario): scenarios.append(scenario) @@ -37,7 +47,7 @@ class Scenario(object): @staticmethod def get_cls(scenario_type): - '''return class of specified type''' + """return class of specified type""" for scenario in utils.itersubclasses(Scenario): if scenario_type == scenario.__scenario_type__: return scenario @@ -53,3 +63,15 @@ class Scenario(object): return scenario.__module__ + "." + scenario.__name__ raise RuntimeError("No such scenario type %s" % scenario_type) + + def _push_to_outputs(self, keys, values): + return dict(zip(keys, values)) + + def _change_obj_to_dict(self, obj): + dic = {} + for k, v in vars(obj).items(): + try: + vars(v) + except TypeError: + dic[k] = v + return dic