[docs] Updated baremetal instalation instructions
[yardstick.git] / api / __init__.py
index c6cbbf1..3235022 100644 (file)
@@ -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
+
+        args.update({k: v for k, v in request.form.items()})
+
+        return action, args
+
+    def _get_args(self):
+        args = common_utils.translate_to_str(request.args)
+
+        return args
+
+    def _dispatch_post(self, **kwargs):
+        action, args = self._post_args()
+        args.update(kwargs)
+        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, target):
+        super(Url, self).__init__()
+        self.url = url
+        self.target = target
+
+common_utils.import_modules_from_package("api.resources")