diff options
-rw-r--r-- | api/base.py | 11 | ||||
-rw-r--r-- | api/resources/env_action.py | 21 | ||||
-rw-r--r-- | yardstick/common/constants.py | 1 |
3 files changed, 30 insertions, 3 deletions
diff --git a/api/base.py b/api/base.py index 527008588..6fa2777ce 100644 --- a/api/base.py +++ b/api/base.py @@ -23,9 +23,16 @@ logger.setLevel(logging.DEBUG) class ApiResource(Resource): def _post_args(self): - params = common_utils.translate_to_str(request.json) - action = params.get('action', '') + data = request.json if request.json else {} + params = common_utils.translate_to_str(data) + action = params.get('action', request.form.get('action', '')) args = params.get('args', {}) + + try: + args['file'] = request.files['file'] + except KeyError: + pass + logger.debug('Input args is: action: %s, args: %s', action, args) return action, args diff --git a/api/resources/env_action.py b/api/resources/env_action.py index 42bef8529..3536559b7 100644 --- a/api/resources/env_action.py +++ b/api/resources/env_action.py @@ -16,12 +16,12 @@ import threading import time import uuid import glob +import yaml import collections from six.moves import configparser from oslo_serialization import jsonutils from docker import Client -from docker.utils import create_host_config from api.database.handler import AsyncTaskHandler from api.utils import influx @@ -343,3 +343,22 @@ def update_openrc(args): logger.info('Source openrc: Done') return result_handler(consts.API_SUCCESS, {'openrc': openrc_vars}) + + +def upload_pod_file(args): + try: + pod_file = args['file'] + except KeyError: + return result_handler(consts.API_ERROR, 'file must be provided') + + logger.info('Checking file') + data = yaml.load(pod_file.read()) + if not isinstance(data, collections.Mapping): + return result_handler(consts.API_ERROR, 'invalid yaml file') + + logger.info('Writing file') + with open(consts.POD_FILE, 'w') as f: + yaml.dump(data, f, default_flow_style=False) + logger.info('Writing finished') + + return result_handler(consts.API_SUCCESS, {'pod_info': data}) diff --git a/yardstick/common/constants.py b/yardstick/common/constants.py index 4d65aff0c..47a519923 100644 --- a/yardstick/common/constants.py +++ b/yardstick/common/constants.py @@ -43,6 +43,7 @@ TESTSUITE_DIR = join(YARDSTICK_ROOT_PATH, 'tests/opnfv/test_suites/') # file OPENRC = get_param('file.openrc', '/etc/yardstick/openstack.creds') CONF_FILE = join(CONF_DIR, 'yardstick.conf') +POD_FILE = join(CONF_DIR, 'pod.yaml') CONF_SAMPLE_FILE = join(CONF_SAMPLE_DIR, 'yardstick.conf.sample') FETCH_SCRIPT = get_param('file.fetch_script', 'utils/fetch_os_creds.sh') FETCH_SCRIPT = join(RELENG_DIR, FETCH_SCRIPT) |