aboutsummaryrefslogtreecommitdiffstats
path: root/api/__init__.py
diff options
context:
space:
mode:
authorRex Lee <limingjiang@huawei.com>2017-07-12 01:35:03 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-07-12 01:35:03 +0000
commit7949507437f8b1b1d9100bd13cf2d90bae60279d (patch)
treef6030e60eeeebeae7670f2022c06f13296c6bb2a /api/__init__.py
parent7ee54db221fbb4173de011585a425f0750dd6ccf (diff)
parent0d18f9d3299480cb43e6b335180e5cbdb58505c3 (diff)
Merge "Yardstick API architecture improvement"
Diffstat (limited to 'api/__init__.py')
-rw-r--r--api/__init__.py63
1 files changed, 62 insertions, 1 deletions
diff --git a/api/__init__.py b/api/__init__.py
index c6cbbf104..dda12aa07 100644
--- a/api/__init__.py
+++ b/api/__init__.py
@@ -1,4 +1,65 @@
-from yardstick import _init_logging
+##############################################################################
+# Copyright (c) 2016 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 __future__ import absolute_import
+import logging
+
+from flask import request
+from flask_restful import Resource
+from yardstick import _init_logging
+from yardstick.common import constants as consts
+from yardstick.common import utils as common_utils
_init_logging()
+LOG = logging.getLogger(__name__)
+LOG.setLevel(logging.DEBUG)
+
+
+class ApiResource(Resource):
+
+ def _post_args(self):
+ 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
+
+ LOG.debug('Input args is: action: %s, args: %s', action, args)
+
+ return action, args
+
+ def _get_args(self):
+ args = common_utils.translate_to_str(request.args)
+ LOG.debug('Input args is: args: %s', args)
+
+ return args
+
+ def _dispatch_post(self):
+ action, args = self._post_args()
+ return self._dispatch(args, action)
+
+ def _dispatch(self, args, action):
+ try:
+ return getattr(self, action)(args)
+ except AttributeError:
+ common_utils.result_handler(consts.API_ERROR, 'No such action')
+
+
+class Url(object):
+
+ def __init__(self, url, endpoint):
+ super(Url, self).__init__()
+ self.url = url
+ self.endpoint = endpoint
+
+common_utils.import_modules_from_package("api.resources")