X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=api%2F__init__.py;h=3235022326e7002e3d4e320424287a79b641bcf4;hb=155d5fd7d8c3d0b69d79efca67946fa26f7ef37f;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=3c3ac5d9e89af36bb609017e69f6d03b52d8b251;p=yardstick.git diff --git a/api/__init__.py b/api/__init__.py index e69de29bb..323502232 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -0,0 +1,65 @@ +############################################################################## +# 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")