X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=testing-scheduler%2Fserver%2Fsrc%2Fstep%2Fstep_manager.py;fp=testing-scheduler%2Fserver%2Fsrc%2Fstep%2Fstep_manager.py;h=8d76c67c337660fa630042d59a4832443b94dbfe;hb=1c1cbbf6df7f30ecb807a0a09924072a59bd2071;hp=0000000000000000000000000000000000000000;hpb=ad12a6561be8c67f6da09c38c4e1c0e88eb9a6de;p=bottlenecks.git diff --git a/testing-scheduler/server/src/step/step_manager.py b/testing-scheduler/server/src/step/step_manager.py new file mode 100644 index 00000000..8d76c67c --- /dev/null +++ b/testing-scheduler/server/src/step/step_manager.py @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2018 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 +############################################################################## + +from src.step.test_step import TestStep +import os +import sys + + +class TestStepManager(object): + def __init__(self, context): + self._context = context + + currentDirPath = os.path.dirname(os.path.abspath(__file__)) + sys.path.append(currentDirPath) + + excludeFiles = ('__init__.py', 'step_manager.py', 'test_step.py') + for fileName in os.listdir(currentDirPath): + if os.path.isfile(os.path.join(currentDirPath, fileName)) and \ + os.path.splitext(fileName)[1] == '.py' and \ + fileName not in excludeFiles: + __import__(os.path.splitext(fileName)[0]) + + def getStepObj(self, type, id, name, service, action, args): + for subclass in TestStep.__subclasses__(): + if type == subclass.__step_type__: + return subclass(id, name, service, action, args, self._context) + + +if __name__ == "__main__": + tsMgr = TestStepManager() + args = {'command': 'greet', 'method': 'POST', 'args': {'name': 'leo'}} + stepObj = tsMgr.getStepObj('test', 1, 'test_cpu', { + 'name': 'greet', 'call': 'REST'}, 'start', args) + print stepObj + print stepObj.__class__.__mro__