From 8d56e59c70f15897e366a0dbddefda43107b61c6 Mon Sep 17 00:00:00 2001 From: akhilbatra898 Date: Fri, 10 Mar 2017 15:35:04 +0530 Subject: Implement Retrieval of plans, QPIs, and metrics - All specs can be listed - All specs can be individually retrieved - API can be installed alongside qtip - API can be hosted using command `qtip-api` JIRA: QTIP-221 JIRA: QTIP-222 Change-Id: I1e80e6609cae1252cb2fcdc38c71b4bf6d02e8c9 Signed-off-by: akhilbatra898 (cherry picked from commit 15fceada86ad0d5dabe26365451aae9c95b36be1) --- qtip/api/controllers/qpi.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'qtip/api/controllers/qpi.py') diff --git a/qtip/api/controllers/qpi.py b/qtip/api/controllers/qpi.py index 0b5c5b09..3c4dd718 100644 --- a/qtip/api/controllers/qpi.py +++ b/qtip/api/controllers/qpi.py @@ -7,17 +7,26 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -import connexion import httplib +import connexion + +from qtip.base import error +from qtip.loader import qpi + def list_qpis(): - return connexion.problem(httplib.NOT_IMPLEMENTED, - 'List QPIs', - 'QPIs listing not implemented') + qpi_spec_list = list(qpi.QPISpec.list_all()) + return qpi_spec_list, httplib.OK def get_qpi(name): - return connexion.problem(httplib.NOT_IMPLEMENTED, - 'Get a QPI', - 'QPI retrieval not implemented') + try: + qpi_spec = qpi.QPISpec(name) + return {'name': qpi_spec.name, + 'abspath': qpi_spec.abspath, + 'content': qpi_spec.content}, httplib.OK + except error.NotFoundError: + return connexion.problem(httplib.NOT_FOUND, + 'QPI Not Found', + 'Requested QPI Spec `' + name + '` not found.') -- cgit 1.2.3-korg