diff options
Diffstat (limited to 'test-scheduler/server/src/step/workload.py')
-rw-r--r-- | test-scheduler/server/src/step/workload.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test-scheduler/server/src/step/workload.py b/test-scheduler/server/src/step/workload.py new file mode 100644 index 00000000..b35819e1 --- /dev/null +++ b/test-scheduler/server/src/step/workload.py @@ -0,0 +1,46 @@ +############################################################################## +# 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 +############################################################################## + +import json +import os +from src.step.test_step import TestStep + + +class WorkloadStep(TestStep): + __step_type__ = 'workload' + + def __init__(self, id, name, service, action, args): + super(WorkloadStep, self).__init__( + self.__step_type__, id, name, service, action, args) + self._argsParse() + self._action() + + def _argsParse(self): + if self._callType == "REST": + currentDirPath = os.path.dirname(os.path.abspath(__file__)) + envDirPath = os.path.abspath( + os.path.join(currentDirPath, os.pardir, os.pardir, 'env')) + envFilePath = os.path.join( + envDirPath, "%s.json" % self._service['name']) + with open(envFilePath) as f: + propDict = json.load(f) + self._args['ip'] = propDict['ip'] + self._args['port'] = propDict['port'] + self._args['api'] = "%s/%s" % ( + propDict['api_map']['workload'], self._args['command']) + exclude = {'ip', 'port', 'api', 'command', 'method'} + self._args['req_body'] = { + key: value for key, value in + self._args.items() if key not in exclude} + + def _start(self): + print "workload start" + + def _stop(self): + print "workload stop" |