project-ize testAPI 43/14943/3
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 1 Jun 2016 07:36:17 +0000 (15:36 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 1 Jun 2016 08:21:46 +0000 (16:21 +0800)
JIRA: FUNCTEST-284

Change-Id: I219e934bb11f50de84df2aa0345ecc7885223491
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
85 files changed:
utils/test/result_collection_api/README.md [deleted file]
utils/test/result_collection_api/README.rst [new file with mode: 0644]
utils/test/result_collection_api/etc/config.ini [moved from utils/test/result_collection_api/config.ini with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/__init__.py [new file with mode: 0644]
utils/test/result_collection_api/opnfv_testapi/cmd/__init__.py [new file with mode: 0644]
utils/test/result_collection_api/opnfv_testapi/cmd/result_collection_api.py [moved from utils/test/result_collection_api/result_collection_api.py with 83% similarity]
utils/test/result_collection_api/opnfv_testapi/common/__init__.py [moved from utils/test/result_collection_api/common/__init__.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/common/config.py [moved from utils/test/result_collection_api/common/config.py with 97% similarity]
utils/test/result_collection_api/opnfv_testapi/common/constants.py [moved from utils/test/result_collection_api/common/constants.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/__init__.py [moved from utils/test/result_collection_api/dashboard/__init__.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/bottlenecks2Dashboard.py [moved from utils/test/result_collection_api/dashboard/bottlenecks2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/dashboard_utils.py [moved from utils/test/result_collection_api/dashboard/dashboard_utils.py with 97% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/doctor2Dashboard.py [moved from utils/test/result_collection_api/dashboard/doctor2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/functest2Dashboard.py [moved from utils/test/result_collection_api/dashboard/functest2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/promise2Dashboard.py [moved from utils/test/result_collection_api/dashboard/promise2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/qtip2Dashboard.py [moved from utils/test/result_collection_api/dashboard/qtip2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/vsperf2Dashboard.py [moved from utils/test/result_collection_api/dashboard/vsperf2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/dashboard/yardstick2Dashboard.py [moved from utils/test/result_collection_api/dashboard/yardstick2Dashboard.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/__init__.py [moved from utils/test/result_collection_api/resources/__init__.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/dashboard_handlers.py [moved from utils/test/result_collection_api/resources/dashboard_handlers.py with 91% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/handlers.py [moved from utils/test/result_collection_api/resources/handlers.py with 97% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/models.py [moved from utils/test/result_collection_api/resources/models.py with 94% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/pod_handlers.py [moved from utils/test/result_collection_api/resources/pod_handlers.py with 94% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/pod_models.py [moved from utils/test/result_collection_api/resources/pod_models.py with 96% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/project_handlers.py [moved from utils/test/result_collection_api/resources/project_handlers.py with 95% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/project_models.py [moved from utils/test/result_collection_api/resources/project_models.py with 96% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/result_handlers.py [moved from utils/test/result_collection_api/resources/result_handlers.py with 95% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/result_models.py [moved from utils/test/result_collection_api/resources/result_models.py with 98% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/testcase_handlers.py [moved from utils/test/result_collection_api/resources/testcase_handlers.py with 93% similarity]
utils/test/result_collection_api/opnfv_testapi/resources/testcase_models.py [moved from utils/test/result_collection_api/resources/testcase_models.py with 97% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/__init__.py [new file with mode: 0644]
utils/test/result_collection_api/opnfv_testapi/tests/unit/__init__.py [moved from utils/test/result_collection_api/tests/__init__.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/fake_pymongo.py [moved from utils/test/result_collection_api/tests/unit/fake_pymongo.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_base.py [moved from utils/test/result_collection_api/tests/unit/test_base.py with 88% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_dashboard.py [moved from utils/test/result_collection_api/tests/unit/test_dashboard.py with 97% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_fake_pymongo.py [moved from utils/test/result_collection_api/tests/unit/test_fake_pymongo.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_pod.py [moved from utils/test/result_collection_api/tests/unit/test_pod.py with 94% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_project.py [moved from utils/test/result_collection_api/tests/unit/test_project.py with 95% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_result.py [moved from utils/test/result_collection_api/tests/unit/test_result.py with 96% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_testcase.py [moved from utils/test/result_collection_api/tests/unit/test_testcase.py with 96% similarity]
utils/test/result_collection_api/opnfv_testapi/tests/unit/test_version.py [moved from utils/test/result_collection_api/tests/unit/test_version.py with 91% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/LICENSE [moved from utils/test/result_collection_api/tornado_swagger_ui/LICENSE with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/README [moved from utils/test/result_collection_api/tornado_swagger_ui/README with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/README.md [moved from utils/test/result_collection_api/tornado_swagger_ui/README.md with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/__init__.py [moved from utils/test/result_collection_api/tornado_swagger_ui/__init__.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/example/basic.py [moved from utils/test/result_collection_api/tornado_swagger_ui/example/basic.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/setup.py [moved from utils/test/result_collection_api/tornado_swagger_ui/setup.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/__init__.py [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/__init__.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/handlers.py [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/handlers.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/settings.py [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/settings.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/.gitignore [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/.gitignore with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/css/highlight.default.css [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/css/highlight.default.css with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/css/hightlight.default.css [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/css/hightlight.default.css with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/css/screen.css [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/css/screen.css with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/endpoint.html [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/endpoint.html with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/images/explorer_icons.png [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/images/explorer_icons.png with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/images/logo_small.png [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/images/logo_small.png with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/images/pet_store_api.png [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/images/pet_store_api.png with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/images/throbber.gif [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/images/throbber.gif with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/images/wordnik_api.png [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/images/wordnik_api.png with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/index.html [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/index.html with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/backbone-min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/backbone-min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/handlebars-1.0.0.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/handlebars-1.0.0.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/highlight.7.3.pack.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/highlight.7.3.pack.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/jquery-1.8.0.min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/jquery-1.8.0.min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/jquery.ba-bbq.min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/jquery.ba-bbq.min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/jquery.slideto.min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/jquery.slideto.min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/jquery.wiggle.min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/jquery.wiggle.min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/shred.bundle.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/shred.bundle.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/shred/content.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/shred/content.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/swagger-oauth.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/swagger-oauth.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/swagger.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/swagger.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/lib/underscore-min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/lib/underscore-min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/o2c.html [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/o2c.html with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/swagger-ui.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/swagger-ui.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/static/swagger-ui.min.js [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/static/swagger-ui.min.js with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/swagger.py [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py with 100% similarity]
utils/test/result_collection_api/opnfv_testapi/tornado_swagger_ui/tornado_swagger/views.py [moved from utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/views.py with 100% similarity]
utils/test/result_collection_api/requirements.txt [new file with mode: 0644]
utils/test/result_collection_api/run_test.sh
utils/test/result_collection_api/samples/sample.json.postman_collection [deleted file]
utils/test/result_collection_api/setup.cfg [new file with mode: 0644]
utils/test/result_collection_api/setup.py [new file with mode: 0644]
utils/test/result_collection_api/test-requirements.txt [new file with mode: 0644]
utils/test/result_collection_api/tests/unit/__init__.py [deleted file]

diff --git a/utils/test/result_collection_api/README.md b/utils/test/result_collection_api/README.md
deleted file mode 100644 (file)
index 2798db6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# result_collection_api
-
-## prepare:
-Install:
-
-```
-pip install testtools
-pip install discover
-pip install futures
-```
-
-## How to:
-run_test.sh:
-
-```
-bash ./run_test.sh
-```
diff --git a/utils/test/result_collection_api/README.rst b/utils/test/result_collection_api/README.rst
new file mode 100644 (file)
index 0000000..c0075bc
--- /dev/null
@@ -0,0 +1,64 @@
+=============
+opnfv-testapi
+=============
+
+Test Results Collector of OPNFV Test Projects
+
+Start Server
+==============
+
+Getting setup
+^^^^^^^^^^^^^
+
+Requirements for opnfv-testapi:
+
+* tornado
+* epydoc
+
+These requirements are expressed in the requirements.txt file and may be
+installed by running the following (from within a virtual environment)::
+
+    pip install -r requirements.txt
+
+How to install
+^^^^^^^^^^^^^^
+
+From within your environment, just run:
+
+    python setup.py install
+
+How to run
+^^^^^^^^^^
+
+From within your environment, just run:
+
+    opnfv-testapi
+
+This will start a server on port 8000.  Just visit http://localhost:8000
+
+For swagger website, just visit http://localhost:8000/swagger/spec.html
+
+Unittest
+=====================
+
+Getting setup
+^^^^^^^^^^^^^
+
+Requirements for unittest:
+
+* testtools
+* discover
+* futures
+
+These requirements are expressed in the test-requirements.txt file and may be
+installed by running the following (from within a virtual environment)::
+
+    pip install -r test-requirements.txt
+
+How to run
+^^^^^^^^^^
+
+From within your environment, just run::
+
+    bash run_test.sh
+
diff --git a/utils/test/result_collection_api/opnfv_testapi/__init__.py b/utils/test/result_collection_api/opnfv_testapi/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/utils/test/result_collection_api/opnfv_testapi/cmd/__init__.py b/utils/test/result_collection_api/opnfv_testapi/cmd/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
@@ -34,14 +34,17 @@ import argparse
 import tornado.ioloop
 import motor
 
-from resources.handlers import VersionHandler
-from resources.testcase_handlers import TestcaseCLHandler, TestcaseGURHandler
-from resources.pod_handlers import PodCLHandler, PodGURHandler
-from resources.project_handlers import ProjectCLHandler, ProjectGURHandler
-from resources.result_handlers import ResultsCLHandler, ResultsGURHandler
-from resources.dashboard_handlers import DashboardHandler
-from common.config import APIConfig
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.resources.handlers import VersionHandler
+from opnfv_testapi.resources.testcase_handlers import TestcaseCLHandler, \
+    TestcaseGURHandler
+from opnfv_testapi.resources.pod_handlers import PodCLHandler, PodGURHandler
+from opnfv_testapi.resources.project_handlers import ProjectCLHandler, \
+    ProjectGURHandler
+from opnfv_testapi.resources.result_handlers import ResultsCLHandler, \
+    ResultsGURHandler
+from opnfv_testapi.resources.dashboard_handlers import DashboardHandler
+from opnfv_testapi.common.config import APIConfig
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 
 # optionally get config file from command line
 parser = argparse.ArgumentParser()
@@ -31,7 +31,7 @@ class APIConfig:
     """
 
     def __init__(self):
-        self._default_config_location = "config.ini"
+        self._default_config_location = "/etc/opnfv_testapi/config.ini"
         self.mongo_url = None
         self.mongo_dbname = None
         self.api_port = None
@@ -42,7 +42,7 @@ def check_dashboard_ready_project(test_project):
     # Check that the first param corresponds to a project
     # for whoch dashboard processing is available
     # print("test_project: %s" % test_project)
-    project_module = 'dashboard.'+test_project + '2Dashboard'
+    project_module = 'opnfv_testapi.dashboard.'+test_project + '2Dashboard'
     return True if project_module in sys.modules else False
 
 
@@ -1,11 +1,12 @@
 from tornado.web import HTTPError
 
-from common.constants import HTTP_NOT_FOUND
-from dashboard.dashboard_utils import check_dashboard_ready_project, \
+from opnfv_testapi.common.constants import HTTP_NOT_FOUND
+from opnfv_testapi.dashboard.dashboard_utils import \
+    check_dashboard_ready_project, \
     check_dashboard_ready_case, get_dashboard_result
-from resources.result_handlers import GenericResultHandler
-from resources.result_models import TestResult
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.resources.result_handlers import GenericResultHandler
+from opnfv_testapi.resources.result_models import TestResult
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 
 
 class GenericDashboardHandler(GenericResultHandler):
@@ -27,9 +27,9 @@ from tornado.web import RequestHandler, asynchronous, HTTPError
 from tornado import gen
 
 from models import CreateResponse
-from common.constants import DEFAULT_REPRESENTATION, HTTP_BAD_REQUEST, \
-    HTTP_NOT_FOUND, HTTP_FORBIDDEN
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.common.constants import DEFAULT_REPRESENTATION, \
+    HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_FORBIDDEN
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 
 
 class GenericApiHandler(RequestHandler):
@@ -13,7 +13,7 @@
 # feng.xiaowei@zte.com.cn  mv TestCase to testcase_models.py       5-20-2016\r
 # feng.xiaowei@zte.com.cn  mv TestResut to result_models.py        5-23-2016\r
 ##############################################################################\r
-from tornado_swagger_ui.tornado_swagger import swagger\r
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger\r
 \r
 \r
 class CreateResponse(object):\r
@@ -1,7 +1,7 @@
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 from handlers import GenericApiHandler
 from pod_models import Pod
-from common.constants import HTTP_FORBIDDEN
+from opnfv_testapi.common.constants import HTTP_FORBIDDEN
 
 
 class GenericPodHandler(GenericApiHandler):
@@ -1,4 +1,4 @@
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 
 __author__ = '__serena__'
 
@@ -1,6 +1,6 @@
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 from handlers import GenericApiHandler
-from common.constants import HTTP_FORBIDDEN
+from opnfv_testapi.common.constants import HTTP_FORBIDDEN
 from project_models import Project
 
 
@@ -3,10 +3,10 @@ from datetime import datetime, timedelta
 from bson.objectid import ObjectId
 from tornado.web import HTTPError
 
-from common.constants import HTTP_BAD_REQUEST, HTTP_NOT_FOUND
-from resources.handlers import GenericApiHandler
-from resources.result_models import TestResult
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.common.constants import HTTP_BAD_REQUEST, HTTP_NOT_FOUND
+from opnfv_testapi.resources.handlers import GenericApiHandler
+from opnfv_testapi.resources.result_models import TestResult
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 
 
 class GenericResultHandler(GenericApiHandler):
@@ -1,7 +1,7 @@
-from common.constants import HTTP_FORBIDDEN
-from resources.handlers import GenericApiHandler
-from resources.testcase_models import Testcase
-from tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.common.constants import HTTP_FORBIDDEN
+from opnfv_testapi.resources.handlers import GenericApiHandler
+from opnfv_testapi.resources.testcase_models import Testcase
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
 
 
 class GenericTestcaseHandler(GenericApiHandler):
diff --git a/utils/test/result_collection_api/opnfv_testapi/tests/__init__.py b/utils/test/result_collection_api/opnfv_testapi/tests/__init__.py
new file mode 100644 (file)
index 0000000..9f28b0b
--- /dev/null
@@ -0,0 +1 @@
+__author__ = 'serena'
@@ -3,13 +3,16 @@ import json
 from tornado.web import Application
 from tornado.testing import AsyncHTTPTestCase
 
-from resources.pod_handlers import PodCLHandler, PodGURHandler
-from resources.project_handlers import ProjectCLHandler, ProjectGURHandler
-from resources.handlers import VersionHandler
-from resources.testcase_handlers import TestcaseCLHandler, TestcaseGURHandler
-from resources.result_handlers import ResultsCLHandler, ResultsGURHandler
-from resources.dashboard_handlers import DashboardHandler
-from resources.models import CreateResponse
+from opnfv_testapi.resources.pod_handlers import PodCLHandler, PodGURHandler
+from opnfv_testapi.resources.project_handlers import ProjectCLHandler, \
+    ProjectGURHandler
+from opnfv_testapi.resources.handlers import VersionHandler
+from opnfv_testapi.resources.testcase_handlers import TestcaseCLHandler, \
+    TestcaseGURHandler
+from opnfv_testapi.resources.result_handlers import ResultsCLHandler, \
+    ResultsGURHandler
+from opnfv_testapi.resources.dashboard_handlers import DashboardHandler
+from opnfv_testapi.resources.models import CreateResponse
 import fake_pymongo
 
 
@@ -1,7 +1,7 @@
 import unittest
 
 from test_result import TestResultBase
-from common.constants import HTTP_NOT_FOUND, HTTP_OK
+from opnfv_testapi.common.constants import HTTP_NOT_FOUND, HTTP_OK
 
 __author__ = '__serena__'
 
@@ -1,8 +1,8 @@
 import unittest
 
 from test_base import TestBase
-from resources.pod_models import PodCreateRequest, Pod, Pods
-from common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
+from opnfv_testapi.resources.pod_models import PodCreateRequest, Pod, Pods
+from opnfv_testapi.common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
     HTTP_FORBIDDEN, HTTP_NOT_FOUND
 
 
@@ -1,8 +1,9 @@
 import unittest
 
 from test_base import TestBase
-from resources.project_models import ProjectCreateRequest, Project, Projects
-from common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
+from opnfv_testapi.resources.project_models import ProjectCreateRequest, \
+    Project, Projects
+from opnfv_testapi.common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
     HTTP_FORBIDDEN, HTTP_NOT_FOUND
 
 
@@ -2,12 +2,12 @@ import unittest
 import copy
 
 from test_base import TestBase
-from resources.pod_models import PodCreateRequest
-from resources.project_models import ProjectCreateRequest
-from resources.testcase_models import TestcaseCreateRequest
-from resources.result_models import ResultCreateRequest, \
+from opnfv_testapi.resources.pod_models import PodCreateRequest
+from opnfv_testapi.resources.project_models import ProjectCreateRequest
+from opnfv_testapi.resources.testcase_models import TestcaseCreateRequest
+from opnfv_testapi.resources.result_models import ResultCreateRequest, \
     TestResult, TestResults
-from common.constants import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND
+from opnfv_testapi.common.constants import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND
 
 __author__ = '__serena__'
 
@@ -1,10 +1,10 @@
 import unittest
 
 from test_base import TestBase
-from resources.testcase_models import TestcaseCreateRequest, \
+from opnfv_testapi.resources.testcase_models import TestcaseCreateRequest, \
     Testcase, Testcases, TestcaseUpdateRequest
-from resources.project_models import ProjectCreateRequest
-from common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
+from opnfv_testapi.resources.project_models import ProjectCreateRequest
+from opnfv_testapi.common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
     HTTP_FORBIDDEN, HTTP_NOT_FOUND
 
 
@@ -1,7 +1,8 @@
 import unittest
 
 from test_base import TestBase
-from resources.models import Versions
+from opnfv_testapi.resources.models import Versions
+
 __author__ = 'serena'
 
 
diff --git a/utils/test/result_collection_api/requirements.txt b/utils/test/result_collection_api/requirements.txt
new file mode 100644 (file)
index 0000000..a0685a4
--- /dev/null
@@ -0,0 +1,8 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+pbr>=1.6
+setuptools>=16.0
+tornado>=3.1
+epydoc>=0.3.1
index 6006fcf..9b25f8f 100755 (executable)
@@ -6,5 +6,5 @@
 # pip install testtools, discover
 
 find . -type f -name "*.pyc" -delete
-testrargs="discover ./tests/unit"
-python -m testtools.run $testrargs
\ No newline at end of file
+testrargs="discover ./opnfv_testapi/tests/unit"
+python -m testtools.run $testrargs
diff --git a/utils/test/result_collection_api/samples/sample.json.postman_collection b/utils/test/result_collection_api/samples/sample.json.postman_collection
deleted file mode 100644 (file)
index 445b2ee..0000000
+++ /dev/null
@@ -1,1159 +0,0 @@
-{
-       "id": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-       "name": "OPNFV_results_collection_api",
-       "description": "",
-       "order": [],
-       "folders": [
-               {
-                       "id": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "name": "Local DB",
-                       "description": "",
-                       "order": [
-                               "3e8b0cbd-386b-837b-305f-e6fec272f888",
-                               "2feef0a4-4ba7-6df6-9884-bef808853bb0",
-                               "c7f8ccfb-ecdd-6d5a-d9d6-3c097dcce62c",
-                               "1183979d-1847-0238-4abe-12406c10d3e5",
-                               "c820f80b-cdc8-602d-d9f3-32df11c861ef",
-                               "7396c965-4732-7ae4-398e-b0d3bc7fe937",
-                               "737d0ddf-0f98-4721-9a78-432108ad1ace",
-                               "dae740a1-0767-6a0a-4e55-03b258094ae2",
-                               "11547eb2-2140-ec5b-7a3f-021897f2768f",
-                               "353f3bb0-d446-6a7f-b6f8-8bdc72de35de",
-                               "f8fe7ff5-3dc6-d248-1bee-4e1ecc932ea7",
-                               "ee0a1121-a3ab-1a30-8da7-8ef6d8ac493c",
-                               "1b64311e-566d-fe59-b804-6fb196ae717e",
-                               "61989e89-afb7-b63f-b969-93413ef0d3a3",
-                               "935a26e5-7cf0-59d3-6d09-68948597cda7",
-                               "2c82e470-d45e-333c-a635-f6def51d8460",
-                               "64af419d-3b29-b3ab-05c0-29ee19d97cc7",
-                               "0e9e9e38-5015-528d-1c9e-969ada0bdc28",
-                               "c52cfd79-363c-fb84-39a3-9b3c2ba37cbf",
-                               "e0139c7b-1c7f-239f-d029-b16a70d08a2f",
-                               "593b9f5e-46f0-46f8-6214-b01efbdf6445",
-                               "d058c0d9-6c8f-f480-2cdd-f83a91430114",
-                               "4c7651ea-4395-de8f-ce09-3b182cff1fd4",
-                               "46347e52-c68c-bae8-f64f-a35de3b99c6f",
-                               "6035dcb9-87f5-a5ff-32f9-2aa998a47a34",
-                               "2ea6a7a9-4d73-e78a-4e9a-21df9d72dc4d",
-                               "d1c53d34-be0e-8eda-31f5-9c9386e892c3",
-                               "78fc1ca8-6179-ffe0-4d10-c345dad994f6",
-                               "93f87cf3-4b1f-e3b2-9726-94f8fc259ee1",
-                               "b27a4bd2-3156-cbd0-80f2-cc0ea57d81d9",
-                               "e47d97c9-6d3a-f4ae-d4d0-94b03e2ce7d0"
-                       ],
-                       "owner": 0,
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140"
-               },
-               {
-                       "id": "9c6a44b6-753c-daaf-f172-272532535c6f",
-                       "name": "Orange temp DB",
-                       "description": "",
-                       "order": [
-                               "604f31ad-c0d5-2730-2bad-1d1ec2e837b2",
-                               "7083368c-d71c-2509-9b0c-f158ee774387",
-                               "8c925a09-4c8a-b811-d25c-be2bb2592c8f",
-                               "3077838a-4ea1-f35e-5c05-2b1aba7d5b91",
-                               "4cb44e62-8f36-62c4-2f9e-c51019f97535",
-                               "99c8fa51-df1c-cae5-09c7-d554a4c8b8a0",
-                               "0950e986-fe23-0548-3adb-2d8e7735c34e",
-                               "524ad12d-45f9-608a-4a8c-6ab7f92402d3",
-                               "2f6236b3-7ff3-7b76-73e7-19398c61de9e",
-                               "81e5a277-7cde-8816-9fce-23f456cff0d6",
-                               "e1e77578-87b6-3485-147c-c3bb41fc7821",
-                               "8155d61f-9ee6-65bc-4a7f-d88f3bf09cb4",
-                               "598e5a67-1ae5-4545-a90c-fe362db567b6",
-                               "0549811c-237c-4acd-3bd9-21d204b30038",
-                               "168fcbbe-85d8-cadd-bdc8-73bf2a48fac8",
-                               "2f9d760a-8165-57df-df6b-5a265dcbe807",
-                               "22ca6985-beb8-6017-c85a-cd1bbab8c37d",
-                               "ebd03cfb-16ba-b0b3-e52a-24a8ef3c3ddd",
-                               "7c8a6590-2623-10fb-f858-ca7be72c949c",
-                               "a9b73b81-061f-2bb1-2dbd-613bf5ef2171",
-                               "62ba5099-92e7-5f6e-3dae-2f05a31e57d3",
-                               "7d91df4c-dd33-3b58-ccab-c3cd686468d6",
-                               "d01bdcec-aea8-38f7-342f-55dea7bf65b1",
-                               "acac56bf-af93-bb07-774f-11667ea71a8b"
-                       ],
-                       "owner": 0
-               }
-       ],
-       "timestamp": 1440765153277,
-       "owner": 0,
-       "remoteLink": "",
-       "public": false,
-       "requests": [
-               {
-                       "id": "0549811c-237c-4acd-3bd9-21d204b30038",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?project=yardstick",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548111819,
-                       "name": "get_yardstick_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "0950e986-fe23-0548-3adb-2d8e7735c34e",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544601808,
-                       "name": "get_all_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "0e9e9e38-5015-528d-1c9e-969ada0bdc28",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/dashboard?project=functest&case=vPing",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546198630,
-                       "name": "get_dashboard_functest_vPing",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "11547eb2-2140-ec5b-7a3f-021897f2768f",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?pod_name=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546143097,
-                       "name": "get_all_results_pod2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "1183979d-1847-0238-4abe-12406c10d3e5",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/projects/yardstick/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546110865,
-                       "name": "get_tests_cases_yardstick",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "168fcbbe-85d8-cadd-bdc8-73bf2a48fac8",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?project=functest",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548116418,
-                       "name": "get_functest_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "1b64311e-566d-fe59-b804-6fb196ae717e",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?project=vsperf",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546167286,
-                       "name": "get_vsperf_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "22ca6985-beb8-6017-c85a-cd1bbab8c37d",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?case=vPing",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545249988,
-                       "name": "get_functest_results_vPing",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "2c82e470-d45e-333c-a635-f6def51d8460",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?case=Tempest",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546184593,
-                       "name": "get_functest_results_Tempest",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "2ea6a7a9-4d73-e78a-4e9a-21df9d72dc4d",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/projects/project_foo/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546758229,
-                       "name": "get_test_cases_project_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "2f6236b3-7ff3-7b76-73e7-19398c61de9e",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?pod_name=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544886122,
-                       "name": "get_all_results_pod2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "2f9d760a-8165-57df-df6b-5a265dcbe807",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?case=Tempest",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545231594,
-                       "name": "get_functest_results_Tempest",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "2feef0a4-4ba7-6df6-9884-bef808853bb0",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/pods",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546097800,
-                       "name": "get_pods",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "3077838a-4ea1-f35e-5c05-2b1aba7d5b91",
-                       "headers": "",
-                       "url": "http://213.77.62.197/projects/yardstick/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548082092,
-                       "name": "get_tests_cases_yardstick",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "353f3bb0-d446-6a7f-b6f8-8bdc72de35de",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?project=functest&installer=fuel&period=90",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546149288,
-                       "name": "get_functest_results_fuel_pod2_90days",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "3e8b0cbd-386b-837b-305f-e6fec272f888",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/version",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545810935,
-                       "name": "get_version",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "46347e52-c68c-bae8-f64f-a35de3b99c6f",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/projects/project_foo/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546329587,
-                       "name": "post_foo_case_1",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "rawModeData": "{\n  \"creation_date\": \"2015-09-09 13:10:18.478986\",\n  \"name\": \"case foo1\",\n  \"description\": \"This case deals with the tricky foo1 testcase\",\n  \"url\":\"http://showmefoo1case.oprnfv.org\"\n  \n}"
-               },
-               {
-                       "id": "4c7651ea-4395-de8f-ce09-3b182cff1fd4",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/projects/project_foo/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546382030,
-                       "name": "post_foo_case_2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "rawModeData": "{\n  \"creation_date\": \"2015-11-09 13:10:18\",\n  \"name\": \"case foo2\",\n  \"description\": \"This case deals with the tricky foo2 testcase\",\n  \"url\":\"http://showmefoo2case.oprnfv.org\"\n  \n}"
-               },
-               {
-                       "id": "4cb44e62-8f36-62c4-2f9e-c51019f97535",
-                       "headers": "",
-                       "url": "http://213.77.62.197/projects/vsperf/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544508152,
-                       "name": "get_tests_cases_vsperf",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "524ad12d-45f9-608a-4a8c-6ab7f92402d3",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544601808,
-                       "name": "get_all_results_fuel",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "593b9f5e-46f0-46f8-6214-b01efbdf6445",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/version",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546217570,
-                       "name": "get_version",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "598e5a67-1ae5-4545-a90c-fe362db567b6",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?project=vsperf",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548107420,
-                       "name": "get_vsperf_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "6035dcb9-87f5-a5ff-32f9-2aa998a47a34",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/pods",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546550902,
-                       "name": "post_pod_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "rawModeData": "{\n  \"creation_date\": \"2015-11-22 15:11:18\",\n  \"name\": \"pod_foo\",\n  \"mode\": \"metal\"\n}"
-               },
-               {
-                       "id": "604f31ad-c0d5-2730-2bad-1d1ec2e837b2",
-                       "headers": "",
-                       "url": "http://213.77.62.197/version",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544145426,
-                       "name": "get_version",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "61989e89-afb7-b63f-b969-93413ef0d3a3",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?project=yardstick",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546172967,
-                       "name": "get_yardstick_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "62ba5099-92e7-5f6e-3dae-2f05a31e57d3",
-                       "headers": "",
-                       "url": "http://213.77.62.197/version",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545740543,
-                       "name": "get_version copy",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "64af419d-3b29-b3ab-05c0-29ee19d97cc7",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?case=vPing",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546192922,
-                       "name": "get_functest_results_vPing",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "7083368c-d71c-2509-9b0c-f158ee774387",
-                       "headers": "",
-                       "url": "http://213.77.62.197/pods",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544164341,
-                       "name": "get_pods",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "737d0ddf-0f98-4721-9a78-432108ad1ace",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546129247,
-                       "name": "get_all_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "7396c965-4732-7ae4-398e-b0d3bc7fe937",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/projects/foo/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546123219,
-                       "name": "get_tests_cases_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "78fc1ca8-6179-ffe0-4d10-c345dad994f6",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/projects/project_foo",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448547109232,
-                       "name": "delete_project_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "rawModeData": "{\n}"
-               },
-               {
-                       "id": "7c8a6590-2623-10fb-f858-ca7be72c949c",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/dashboard?project=functest&case=vPing&pod=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545566587,
-                       "name": "get_dashboard_functest_vPing_pod2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "7d91df4c-dd33-3b58-ccab-c3cd686468d6",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548134004,
-                       "name": "post_functest_results_vPing",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "rawModeData": "{\n    \"project_name\": \"functest\",\n    \"case_name\": \"vPing\",\n    \"pod_id\": 1,\n    \"details\": {\n        \"timestart\": 1440768107,\n        \"duration\": 72.2,\n        \"status\": \"OK\"\n    }\n}"
-               },
-               {
-                       "id": "8155d61f-9ee6-65bc-4a7f-d88f3bf09cb4",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?project=functest&installer=fuel",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548102876,
-                       "name": "get_functest_results_fuel",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "81e5a277-7cde-8816-9fce-23f456cff0d6",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?project=functest&installer=fuel&period=90",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548092582,
-                       "name": "get_functest_results_fuel_pod2_90days",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "8c925a09-4c8a-b811-d25c-be2bb2592c8f",
-                       "headers": "",
-                       "url": "http://213.77.62.197/projects",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544219255,
-                       "name": "get_tests_projects",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "935a26e5-7cf0-59d3-6d09-68948597cda7",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?project=functest",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546178519,
-                       "name": "get_functest_results",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "93f87cf3-4b1f-e3b2-9726-94f8fc259ee1",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/projects/project_foo/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448547433205,
-                       "name": "get_tests_cases_project_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "99c8fa51-df1c-cae5-09c7-d554a4c8b8a0",
-                       "headers": "",
-                       "url": "http://213.77.62.197/projects/foo/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448544540399,
-                       "name": "get_tests_cases_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "a9b73b81-061f-2bb1-2dbd-613bf5ef2171",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/dashboard?project=functest&case=vPing&pod=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545566587,
-                       "name": "get_dashboard_functest_vPing_pod2_fuel",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "acac56bf-af93-bb07-774f-11667ea71a8b",
-                       "headers": "",
-                       "url": "http://213.77.62.197/projects/functest/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548056060,
-                       "name": "get_tests_cases_functest",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "9c6a44b6-753c-daaf-f172-272532535c6f"
-               },
-               {
-                       "id": "b27a4bd2-3156-cbd0-80f2-cc0ea57d81d9",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results",
-                       "pathVariables": {},
-                       "preRequestScript": "",
-                       "method": "POST",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "data": [],
-                       "dataMode": "raw",
-                       "name": "post_results_project_foo_case2",
-                       "description": "",
-                       "descriptionFormat": "html",
-                       "time": 1448547874388,
-                       "version": 2,
-                       "responses": [],
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "folder": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "rawModeData": "{ \n\"project_name\": \"project_foo\", \n\"case_name\": \"case foo2\", \n\"pod_name\": \"opnfv-jump-2\", \n\"installer\": \"fuel\", \n\"version\": \"master\", \n\"details\": { \n    \"result1\": 1,\n    \"result2\": 2,\n    \"resultN\": \"N\"\n} \n}"
-               },
-               {
-                       "id": "c52cfd79-363c-fb84-39a3-9b3c2ba37cbf",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/dashboard?project=functest&case=vPing&pod=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546204291,
-                       "name": "get_dashboard_functest_vPing_pod2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "c7f8ccfb-ecdd-6d5a-d9d6-3c097dcce62c",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/projects",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546104097,
-                       "name": "get_tests_projects",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "c820f80b-cdc8-602d-d9f3-32df11c861ef",
-                       "headers": "",
-                       "url": "http://127.0.0.1:8000/projects/vsperf/cases",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546116759,
-                       "name": "get_tests_cases_vsperf",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "d01bdcec-aea8-38f7-342f-55dea7bf65b1",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548141744,
-                       "name": "post_functest_results_rally",
-                       "description": "#Rally example",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "rawModeData": "{\n    \"project_name\": \"functest\",\n    \"case_name\": \"Rally-keystone\",\n    \"pod_id\": 1,\n    \"details\": [\n                    {\n                        \"full_duration\": 13.434283971786499,\n                        \"key\": {\n                            \"kw\": {\n                                \"args\": {\n                                    \"repetitions\": 2\n                                },\n                                \"context\": {\n                                    \"users\": {\n                                        \"project_domain\": \"default\",\n                                        \"resource_management_workers\": 30,\n                                        \"tenants\": 3,\n                                        \"user_domain\": \"default\",\n                                        \"users_per_tenant\": 5\n                                    }\n                                },\n                                \"runner\": {\n                                    \"concurrency\": 5,\n                                    \"times\": 10,\n                                    \"type\": \"constant\"\n                                },\n                                \"sla\": {\n                                    \"failure_rate\": {\n                                        \"max\": 0\n                                    }\n                                }\n                            },\n                            \"name\": \"Authenticate.validate_glance\",\n                            \"pos\": 0\n                        },\n                        \"load_duration\": 2.0447540283203125,\n                        \"result\": [\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.39156103134155273,\n                                    \"authenticate.validate_glance (2)\": 0.29338502883911133\n                                },\n                                \"duration\": 0.8208529949188232,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057866.306874\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.4294250011444092,\n                                    \"authenticate.validate_glance (2)\": 0.3034169673919678\n                                },\n                                \"duration\": 0.8573858737945557,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057866.301465\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.3728928565979004,\n                                    \"authenticate.validate_glance (2)\": 0.39923620223999023\n                                },\n                                \"duration\": 0.8929460048675537,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057866.305317\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.34391307830810547,\n                                    \"authenticate.validate_glance (2)\": 0.42811083793640137\n                                },\n                                \"duration\": 0.9105398654937744,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057866.299724\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.2886049747467041,\n                                    \"authenticate.validate_glance (2)\": 0.14571404457092285\n                                },\n                                \"duration\": 0.5435879230499268,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057867.163641\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 1.0052940845489502,\n                                    \"authenticate.validate_glance (2)\": 0.306164026260376\n                                },\n                                \"duration\": 1.43681001663208,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057866.303711\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.2820088863372803,\n                                    \"authenticate.validate_glance (2)\": 0.22127580642700195\n                                },\n                                \"duration\": 0.6009759902954102,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057867.204187\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.26488184928894043,\n                                    \"authenticate.validate_glance (2)\": 0.38507914543151855\n                                },\n                                \"duration\": 0.761146068572998,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057867.132616\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.2802588939666748,\n                                    \"authenticate.validate_glance (2)\": 0.40570998191833496\n                                },\n                                \"duration\": 0.7788181304931641,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057867.214552\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_glance\": 0.21006989479064941,\n                                    \"authenticate.validate_glance (2)\": 0.294111967086792\n                                },\n                                \"duration\": 0.6066539287567139,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057867.711255\n                            }\n                        ],\n                        \"sla\": [\n                            {\n                                \"criterion\": \"failure_rate\",\n                                \"detail\": \"Failure rate criteria 0.00% <= 0.00% <= 0.00% - Passed\",\n                                \"success\": true\n                            }\n                        ]\n                    },\n                    {\n                        \"full_duration\": 17.062700033187866,\n                        \"key\": {\n                            \"kw\": {\n                                \"context\": {\n                                    \"users\": {\n                                        \"project_domain\": \"default\",\n                                        \"resource_management_workers\": 30,\n                                        \"tenants\": 3,\n                                        \"user_domain\": \"default\",\n                                        \"users_per_tenant\": 50\n                                    }\n                                },\n                                \"runner\": {\n                                    \"concurrency\": 5,\n                                    \"times\": 100,\n                                    \"type\": \"constant\"\n                                },\n                                \"sla\": {\n                                    \"failure_rate\": {\n                                        \"max\": 0\n                                    }\n                                }\n                            },\n                            \"name\": \"Authenticate.keystone\",\n                            \"pos\": 0\n                        },\n                        \"load_duration\": 2.356674909591675,\n                        \"result\": [\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11447501182556152,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057881.91112\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1194148063659668,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057881.915913\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1262960433959961,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057881.913771\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.12775683403015137,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057881.91932\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.14647698402404785,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057881.920414\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09206509590148926,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.04143\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10759997367858887,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.049727\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11386418342590332,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.056872\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09681296348571777,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.080657\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1297130584716797,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.062075\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10251498222351074,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.145068\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10632205009460449,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.169107\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09042000770568848,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.188747\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09928083419799805,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.181904\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10303592681884766,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.203635\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10155487060546875,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.259236\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09708189964294434,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.290836\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10545611381530762,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.287992\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1079401969909668,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.29522\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.096221923828125,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.317847\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09431815147399902,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.372588\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09795784950256348,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.397329\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0960240364074707,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.4048\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10223388671875,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.41563\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10910201072692871,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.423633\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11187386512756348,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.478671\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1031641960144043,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.50556\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10940790176391602,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.51247\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0961160659790039,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.543124\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10811209678649902,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.53136\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1057741641998291,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.604869\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09453606605529785,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.632127\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10852813720703125,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.621816\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0984351634979248,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.648599\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11260080337524414,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.650628\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09508180618286133,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.725505\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09563398361206055,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.737705\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09678101539611816,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.743761\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10105705261230469,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.774512\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.15161895751953125,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.758783\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09496903419494629,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.834522\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10758399963378906,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.848252\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11817502975463867,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.844934\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11712980270385742,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.886917\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10655593872070312,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.923146\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1017909049987793,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.942394\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09309101104736328,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.967981\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09177494049072266,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057882.9749\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0935659408569336,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.016603\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09125399589538574,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.040973\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09270405769348145,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.055342\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09214210510253906,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.075558\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1134340763092041,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.070905\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09458184242248535,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.121072\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10666298866271973,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.143265\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1070718765258789,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.160623\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10773897171020508,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.177809\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09554290771484375,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.193772\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09224605560302734,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.224372\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0942540168762207,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.262426\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.08960795402526855,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.298152\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11007499694824219,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.278159\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09602808952331543,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.29917\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.08866596221923828,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.327795\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09883308410644531,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.368218\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09276008605957031,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.400606\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09929299354553223,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.399425\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1076200008392334,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.40656\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10410904884338379,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.427654\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09338712692260742,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.480141\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09706807136535645,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.505426\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09878301620483398,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.510756\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09467792510986328,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.527519\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11408305168151855,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.541555\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09735894203186035,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.583167\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10222315788269043,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.614133\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10002493858337402,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.620285\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10399293899536133,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.635176\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09962701797485352,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.666925\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09385085105895996,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.691018\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09930109977722168,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.729923\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1118478775024414,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.72773\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09327292442321777,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.750502\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10117578506469727,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.775705\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09125018119812012,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.796383\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09859800338745117,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.853554\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11451888084411621,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.842291\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.1194310188293457,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.85268\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09339618682861328,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.890586\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11132121086120605,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.899402\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10263800621032715,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.960116\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.11652922630310059,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.969123\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10523200035095215,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.983364\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10346293449401855,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057883.996788\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.10489106178283691,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057884.02169\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09156990051269531,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057884.07607\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0932149887084961,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057884.097649\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09448099136352539,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057884.101187\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.0889430046081543,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057884.108768\n                            },\n                            {\n                                \"atomic_actions\": {},\n                                \"duration\": 0.09735989570617676,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057884.139214\n                            }\n                        ],\n                        \"sla\": [\n                            {\n                                \"criterion\": \"failure_rate\",\n                                \"detail\": \"Failure rate criteria 0.00% <= 0.00% <= 0.00% - Passed\",\n                                \"success\": true\n                            }\n                        ]\n                    },\n                    {\n                        \"full_duration\": 12.26237678527832,\n                        \"key\": {\n                            \"kw\": {\n                                \"args\": {\n                                    \"repetitions\": 2\n                                },\n                                \"context\": {\n                                    \"users\": {\n                                        \"project_domain\": \"default\",\n                                        \"resource_management_workers\": 30,\n                                        \"tenants\": 3,\n                                        \"user_domain\": \"default\",\n                                        \"users_per_tenant\": 5\n                                    }\n                                },\n                                \"runner\": {\n                                    \"concurrency\": 5,\n                                    \"times\": 10,\n                                    \"type\": \"constant\"\n                                },\n                                \"sla\": {\n                                    \"failure_rate\": {\n                                        \"max\": 0\n                                    }\n                                }\n                            },\n                            \"name\": \"Authenticate.validate_heat\",\n                            \"pos\": 0\n                        },\n                        \"load_duration\": 1.12772798538208,\n                        \"result\": [\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.21649980545043945,\n                                    \"authenticate.validate_heat (2)\": 0.02943706512451172\n                                },\n                                \"duration\": 0.38662195205688477,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057897.944749\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.23157501220703125,\n                                    \"authenticate.validate_heat (2)\": 0.11071586608886719\n                                },\n                                \"duration\": 0.478823184967041,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057897.952067\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.24916505813598633,\n                                    \"authenticate.validate_heat (2)\": 0.1333010196685791\n                                },\n                                \"duration\": 0.5228979587554932,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057897.948157\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.20219683647155762,\n                                    \"authenticate.validate_heat (2)\": 0.20975685119628906\n                                },\n                                \"duration\": 0.5500960350036621,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057897.953945\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.11552000045776367,\n                                    \"authenticate.validate_heat (2)\": 0.13436102867126465\n                                },\n                                \"duration\": 0.3519399166107178,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057898.335756\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.13963985443115234,\n                                    \"authenticate.validate_heat (2)\": 0.12062907218933105\n                                },\n                                \"duration\": 0.3728628158569336,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057898.435136\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.1136929988861084,\n                                    \"authenticate.validate_heat (2)\": 0.12874698638916016\n                                },\n                                \"duration\": 0.34929800033569336,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057898.475341\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.6060349941253662,\n                                    \"authenticate.validate_heat (2)\": 0.14234614372253418\n                                },\n                                \"duration\": 0.8975369930267334,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057897.949405\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.12208294868469238,\n                                    \"authenticate.validate_heat (2)\": 0.13369202613830566\n                                },\n                                \"duration\": 0.3832571506500244,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057898.5089\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_heat\": 0.13014984130859375,\n                                    \"authenticate.validate_heat (2)\": 0.12287497520446777\n                                },\n                                \"duration\": 0.35695910453796387,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057898.691324\n                            }\n                        ],\n                        \"sla\": [\n                            {\n                                \"criterion\": \"failure_rate\",\n                                \"detail\": \"Failure rate criteria 0.00% <= 0.00% <= 0.00% - Passed\",\n                                \"success\": true\n                            }\n                        ]\n                    },\n                    {\n                        \"full_duration\": 12.742466926574707,\n                        \"key\": {\n                            \"kw\": {\n                                \"args\": {\n                                    \"repetitions\": 2\n                                },\n                                \"context\": {\n                                    \"users\": {\n                                        \"project_domain\": \"default\",\n                                        \"resource_management_workers\": 30,\n                                        \"tenants\": 3,\n                                        \"user_domain\": \"default\",\n                                        \"users_per_tenant\": 5\n                                    }\n                                },\n                                \"runner\": {\n                                    \"concurrency\": 5,\n                                    \"times\": 10,\n                                    \"type\": \"constant\"\n                                },\n                                \"sla\": {\n                                    \"failure_rate\": {\n                                        \"max\": 0\n                                    }\n                                }\n                            },\n                            \"name\": \"Authenticate.validate_nova\",\n                            \"pos\": 0\n                        },\n                        \"load_duration\": 1.0150089263916016,\n                        \"result\": [\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.13207483291625977,\n                                    \"authenticate.validate_nova (2)\": 0.04423213005065918\n                                },\n                                \"duration\": 0.2950870990753174,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.286474\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.2142009735107422,\n                                    \"authenticate.validate_nova (2)\": 0.0367739200592041\n                                },\n                                \"duration\": 0.368710994720459,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.284629\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.2249600887298584,\n                                    \"authenticate.validate_nova (2)\": 0.03574085235595703\n                                },\n                                \"duration\": 0.3801591396331787,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.27978\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.22323894500732422,\n                                    \"authenticate.validate_nova (2)\": 0.05197501182556152\n                                },\n                                \"duration\": 0.4056689739227295,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.288603\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.10703492164611816,\n                                    \"authenticate.validate_nova (2)\": 0.027653217315673828\n                                },\n                                \"duration\": 0.23597002029418945,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.657853\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.23308300971984863,\n                                    \"authenticate.validate_nova (2)\": 0.03578996658325195\n                                },\n                                \"duration\": 0.3829309940338135,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.586116\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.18607378005981445,\n                                    \"authenticate.validate_nova (2)\": 0.0350642204284668\n                                },\n                                \"duration\": 0.32976508140563965,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.698665\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.23930788040161133,\n                                    \"authenticate.validate_nova (2)\": 0.03780484199523926\n                                },\n                                \"duration\": 0.3847389221191406,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.664163\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.6229109764099121,\n                                    \"authenticate.validate_nova (2)\": 0.04339885711669922\n                                },\n                                \"duration\": 0.8153781890869141,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.282544\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_nova\": 0.22771215438842773,\n                                    \"authenticate.validate_nova (2)\": 0.04434013366699219\n                                },\n                                \"duration\": 0.3739948272705078,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057913.897859\n                            }\n                        ],\n                        \"sla\": [\n                            {\n                                \"criterion\": \"failure_rate\",\n                                \"detail\": \"Failure rate criteria 0.00% <= 0.00% <= 0.00% - Passed\",\n                                \"success\": true\n                            }\n                        ]\n                    },\n                    {\n                        \"full_duration\": 13.5781090259552,\n                        \"key\": {\n                            \"kw\": {\n                                \"args\": {\n                                    \"repetitions\": 2\n                                },\n                                \"context\": {\n                                    \"users\": {\n                                        \"project_domain\": \"default\",\n                                        \"resource_management_workers\": 30,\n                                        \"tenants\": 3,\n                                        \"user_domain\": \"default\",\n                                        \"users_per_tenant\": 5\n                                    }\n                                },\n                                \"runner\": {\n                                    \"concurrency\": 5,\n                                    \"times\": 10,\n                                    \"type\": \"constant\"\n                                },\n                                \"sla\": {\n                                    \"failure_rate\": {\n                                        \"max\": 0\n                                    }\n                                }\n                            },\n                            \"name\": \"Authenticate.validate_cinder\",\n                            \"pos\": 0\n                        },\n                        \"load_duration\": 1.4636518955230713,\n                        \"result\": [\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.2951390743255615,\n                                    \"authenticate.validate_cinder (2)\": 0.020451068878173828\n                                },\n                                \"duration\": 0.458575963973999,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.197007\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.20381712913513184,\n                                    \"authenticate.validate_cinder (2)\": 0.21071982383728027\n                                },\n                                \"duration\": 0.5479309558868408,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.206163\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.36303210258483887,\n                                    \"authenticate.validate_cinder (2)\": 0.20453500747680664\n                                },\n                                \"duration\": 0.6960139274597168,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.199876\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.3702220916748047,\n                                    \"authenticate.validate_cinder (2)\": 0.2456200122833252\n                                },\n                                \"duration\": 0.7609479427337646,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.201746\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.09752583503723145,\n                                    \"authenticate.validate_cinder (2)\": 0.21224498748779297\n                                },\n                                \"duration\": 0.40781497955322266,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.660598\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.21454405784606934,\n                                    \"authenticate.validate_cinder (2)\": 0.1894090175628662\n                                },\n                                \"duration\": 0.5106320381164551,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.758535\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.2029271125793457,\n                                    \"authenticate.validate_cinder (2)\": 0.21360301971435547\n                                },\n                                \"duration\": 0.5096330642700195,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.96731\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.11590790748596191,\n                                    \"authenticate.validate_cinder (2)\": 0.21600103378295898\n                                },\n                                \"duration\": 0.4414501190185547,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057928.071667\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 0.10145401954650879,\n                                    \"authenticate.validate_cinder (2)\": 0.4396059513092041\n                                },\n                                \"duration\": 0.6649971008300781,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.900213\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_cinder\": 1.1637070178985596,\n                                    \"authenticate.validate_cinder (2)\": 0.12073302268981934\n                                },\n                                \"duration\": 1.4324371814727783,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057927.204223\n                            }\n                        ],\n                        \"sla\": [\n                            {\n                                \"criterion\": \"failure_rate\",\n                                \"detail\": \"Failure rate criteria 0.00% <= 0.00% <= 0.00% - Passed\",\n                                \"success\": true\n                            }\n                        ]\n                    },\n                    {\n                        \"full_duration\": 11.263267993927002,\n                        \"key\": {\n                            \"kw\": {\n                                \"args\": {\n                                    \"repetitions\": 2\n                                },\n                                \"context\": {\n                                    \"users\": {\n                                        \"project_domain\": \"default\",\n                                        \"resource_management_workers\": 30,\n                                        \"tenants\": 3,\n                                        \"user_domain\": \"default\",\n                                        \"users_per_tenant\": 5\n                                    }\n                                },\n                                \"runner\": {\n                                    \"concurrency\": 5,\n                                    \"times\": 10,\n                                    \"type\": \"constant\"\n                                },\n                                \"sla\": {\n                                    \"failure_rate\": {\n                                        \"max\": 0\n                                    }\n                                }\n                            },\n                            \"name\": \"Authenticate.validate_neutron\",\n                            \"pos\": 0\n                        },\n                        \"load_duration\": 1.034574031829834,\n                        \"result\": [\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.12639093399047852,\n                                    \"authenticate.validate_neutron (2)\": 0.13690996170043945\n                                },\n                                \"duration\": 0.388185977935791,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057939.807832\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.2541072368621826,\n                                    \"authenticate.validate_neutron (2)\": 0.018501996994018555\n                                },\n                                \"duration\": 0.4223909378051758,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057939.803057\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.14838004112243652,\n                                    \"authenticate.validate_neutron (2)\": 0.24619603157043457\n                                },\n                                \"duration\": 0.5041840076446533,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057939.805074\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.132310152053833,\n                                    \"authenticate.validate_neutron (2)\": 0.26080799102783203\n                                },\n                                \"duration\": 0.504011869430542,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057939.808804\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.2618129253387451,\n                                    \"authenticate.validate_neutron (2)\": 0.14159107208251953\n                                },\n                                \"duration\": 0.5195119380950928,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057939.801376\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.12067985534667969,\n                                    \"authenticate.validate_neutron (2)\": 0.11738705635070801\n                                },\n                                \"duration\": 0.3286769390106201,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057940.201273\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.12789011001586914,\n                                    \"authenticate.validate_neutron (2)\": 0.01934814453125\n                                },\n                                \"duration\": 0.24778389930725098,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057940.314835\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.12448310852050781,\n                                    \"authenticate.validate_neutron (2)\": 0.15597200393676758\n                                },\n                                \"duration\": 0.38387608528137207,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057940.230381\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.1347517967224121,\n                                    \"authenticate.validate_neutron (2)\": 0.16216206550598145\n                                },\n                                \"duration\": 0.4160311222076416,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057940.318054\n                            },\n                            {\n                                \"atomic_actions\": {\n                                    \"authenticate.validate_neutron\": 0.1645338535308838,\n                                    \"authenticate.validate_neutron (2)\": 0.21524405479431152\n                                },\n                                \"duration\": 0.48433613777160645,\n                                \"error\": [],\n                                \"idle_duration\": 0,\n                                \"scenario_output\": {\n                                    \"data\": {},\n                                    \"errors\": \"\"\n                                },\n                                \"timestamp\": 1444057940.325259\n                            }\n                        ],\n                        \"sla\": [\n                            {\n                                \"criterion\": \"failure_rate\",\n                                \"detail\": \"Failure rate criteria 0.00% <= 0.00% <= 0.00% - Passed\",\n                                \"success\": true\n                            }\n                        ]\n                    }\n                ]\n    \n}"
-               },
-               {
-                       "id": "d058c0d9-6c8f-f480-2cdd-f83a91430114",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/projects",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546239892,
-                       "name": "post_tests_project_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "rawModeData": "{\n    \"name\": \"project_foo\",\n    \"description\": \"OPNFV foo testing project\"\n}"
-               },
-               {
-                       "id": "d1c53d34-be0e-8eda-31f5-9c9386e892c3",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/projects/project_foo",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546984500,
-                       "name": "put_foo_case_2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "folder": "6ac2fba2-88fa-7ca6-1903-b395eee702a9",
-                       "rawModeData": "{\n  \"creation_date\": \"2015-11-09 13:10:18\",\n  \"name\": \"project foo\",\n  \"description\": \"This case deals with the VERY tricky foo testcases\"\n}"
-               },
-               {
-                       "id": "dae740a1-0767-6a0a-4e55-03b258094ae2",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546136988,
-                       "name": "get_all_results_fuel",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "e0139c7b-1c7f-239f-d029-b16a70d08a2f",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/dashboard?project=functest&case=vPing&pod=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546210051,
-                       "name": "get_dashboard_functest_vPing_pod2_fuel",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "e1e77578-87b6-3485-147c-c3bb41fc7821",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/results?project=functest&installer=fuel&pod=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448548097644,
-                       "name": "get_functest_results_fuel_pod2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "e47d97c9-6d3a-f4ae-d4d0-94b03e2ce7d0",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "POST",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448547977197,
-                       "name": "post_results_project_foo_case1_pod_foo",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": [],
-                       "rawModeData": "{ \n\"project_name\": \"project_foo\", \n\"case_name\": \"case foo1\", \n\"pod_name\": \"pod_foo\", \n\"installer\": \"fuel\", \n\"version\": \"master\", \n\"details\": { \n    \"result1\": 1,\n    \"result2\": 2,\n    \"resultN\": \"N\"\n} \n}"
-               },
-               {
-                       "id": "ebd03cfb-16ba-b0b3-e52a-24a8ef3c3ddd",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://213.77.62.197/dashboard?project=functest&case=vPing",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448545464521,
-                       "name": "get_dashboard_functest_vPing",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "ee0a1121-a3ab-1a30-8da7-8ef6d8ac493c",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?project=functest&installer=fuel",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546161086,
-                       "name": "get_functest_results_fuel",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               },
-               {
-                       "id": "f8fe7ff5-3dc6-d248-1bee-4e1ecc932ea7",
-                       "headers": "Content-Type: application/json\n",
-                       "url": "http://127.0.0.1:8000/results?project=functest&installer=fuel&pod=opnfv-jump-2",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448546155181,
-                       "name": "get_functest_results_fuel_pod2",
-                       "description": "",
-                       "collectionId": "ed0951e6-560a-cad4-36c3-1197e7f32140",
-                       "responses": []
-               }
-       ]
-}
diff --git a/utils/test/result_collection_api/setup.cfg b/utils/test/result_collection_api/setup.cfg
new file mode 100644 (file)
index 0000000..b0e008a
--- /dev/null
@@ -0,0 +1,45 @@
+[metadata]
+name = opnfv_testapi
+summary = Test Result Collector
+description-file = 
+    README.rst
+author = SerenaFeng
+author-email = feng.xiaowei@zte.com.cn
+#home-page = http://www.opnfv.org/
+classifier =
+    Environment :: opnfv
+    Intended Audience :: Information Technology
+    Intended Audience :: System Administrators
+    License :: OSI Approved :: Apache Software License
+    Operating System :: POSIX :: Linux
+    Programming Language :: Python
+    Programming Language :: Python :: 2
+    Programming Language :: Python :: 2.7
+
+[global]
+setup-hooks =
+    pbr.hooks.setup_hook
+
+[files]
+packages =
+    opnfv_testapi
+package_data =
+    opnfv_testapi =
+        tornado_swagger_ui/tornado_swagger/static/*.*
+        tornado_swagger_ui/tornado_swagger/static/css/*.*
+        tornado_swagger_ui/tornado_swagger/static/images/*.*
+        tornado_swagger_ui/tornado_swagger/static/lib/*.*
+        tornado_swagger_ui/tornado_swagger/static/lib/shred/*.*
+data_files =
+    /etc/opnfv_testapi =
+        etc/config.ini
+
+[entry_points]
+console_scripts =
+    opnfv-testapi = opnfv_testapi.cmd.result_collection_api:main
+
+[egg_info]
+tag_build =
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/utils/test/result_collection_api/setup.py b/utils/test/result_collection_api/setup.py
new file mode 100644 (file)
index 0000000..6f3b45f
--- /dev/null
@@ -0,0 +1,12 @@
+__author__ = 'serena'
+
+import setuptools
+
+try:
+    import multiprocessing
+except ImportError:
+    pass
+
+setuptools.setup(
+    setup_requires=['pbr>=1.8'],
+    pbr=True)
diff --git a/utils/test/result_collection_api/test-requirements.txt b/utils/test/result_collection_api/test-requirements.txt
new file mode 100644 (file)
index 0000000..ddbdefc
--- /dev/null
@@ -0,0 +1,7 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+testtools>=1.4.0
+discover
+futures
\ No newline at end of file
diff --git a/utils/test/result_collection_api/tests/unit/__init__.py b/utils/test/result_collection_api/tests/unit/__init__.py
deleted file mode 100644 (file)
index 3ed9fd0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-__author__ = 'root'