aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick/common
diff options
context:
space:
mode:
authorchenjiankun <chenjiankun1@huawei.com>2017-07-07 03:13:36 +0000
committerchenjiankun <chenjiankun1@huawei.com>2017-07-11 09:47:30 +0000
commit0d18f9d3299480cb43e6b335180e5cbdb58505c3 (patch)
treea35aa6373a88eddb3d13f4fdb7cd3db9bad1a4ee /yardstick/common
parent41136dafb30d0c410e92f9f7a7c19eae60f224e2 (diff)
Yardstick API architecture improvement
JIRA: YARDSTICK-710 Since we have the plan to upload api v2 and gui. We need to add put and delete method. So the architecture need to be improved. Change-Id: Ie20a79c26ef6c581897ce4e63980fa2895b162d2 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
Diffstat (limited to 'yardstick/common')
-rw-r--r--yardstick/common/utils.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py
index 7633777ae..1faba4d9e 100644
--- a/yardstick/common/utils.py
+++ b/yardstick/common/utils.py
@@ -24,10 +24,11 @@ import os
import subprocess
import sys
import collections
-import six
from functools import reduce
import yaml
+import six
+from flask import jsonify
from six.moves import configparser
from oslo_utils import importutils
from oslo_serialization import jsonutils
@@ -197,7 +198,8 @@ def flatten_dict_key(data):
next_data = {}
# use list, because iterable is too generic
- if not any(isinstance(v, (collections.Mapping, list)) for v in data.values()):
+ if not any(isinstance(v, (collections.Mapping, list))
+ for v in data.values()):
return data
for k, v in six.iteritems(data):
@@ -212,3 +214,21 @@ def flatten_dict_key(data):
next_data[k] = v
return flatten_dict_key(next_data)
+
+
+def translate_to_str(obj):
+ if isinstance(obj, collections.Mapping):
+ return {str(k): translate_to_str(v) for k, v in obj.items()}
+ elif isinstance(obj, list):
+ return [translate_to_str(ele) for ele in obj]
+ elif isinstance(obj, six.text_type):
+ return str(obj)
+ return obj
+
+
+def result_handler(status, data):
+ result = {
+ 'status': status,
+ 'result': data
+ }
+ return jsonify(result)