ENV HOME /home/opnfv
ENV REPOS_DIR ${HOME}/dovetail
+ENV API_DIR ${REPOS_DIR}/dovetail/api
WORKDIR $HOME
RUN \
WORKDIR ${REPOS_DIR}/dovetail
-# get db schema from opnfv sites
-# RUN mkdir -p ${REPOS_DIR}/dovetail/utils/local_db
-# ADD get_db_schema.py ${REPOS_DIR}/dovetail/utils/local_db
-# RUN cd ${REPOS_DIR}/dovetail/utils/local_db && python get_db_schema.py
+ENV FLASK_APP ${API_DIR}/app/routes.py
+EXPOSE 5000
+CMD ${API_DIR}/boot.sh
--- /dev/null
+NFVI_PROJECT = ['bottlenecks', 'functest', 'yardstick']
+VNF_PROJECT = ['onap-vtp', 'onap-vvp']
--- /dev/null
+#!flask/bin/python
+
+from flask import Flask, jsonify
+
+import server
+
+app = Flask(__name__)
+
+
+@app.route('/api/v1/scenario/nfvi/testsuites', methods=['GET'])
+def get_all_testsuites():
+ testsuites = server.list_testsuites()
+ return jsonify({'testsuites': testsuites}), 200
+
+
+@app.route('/api/v1/scenario/nfvi/testcases', methods=['GET'])
+def get_testcases():
+ testcases = server.list_testcases()
+ return jsonify({'testcases': testcases}), 200
--- /dev/null
+import constants
+
+from dovetail.testcase import Testsuite, Testcase
+
+
+def list_testsuites():
+ return Testsuite.load()
+
+
+def list_testcases():
+ testcases = Testcase.load()
+ testcase_list = []
+ for key, value in testcases.items():
+ testcase = {'testCaseName': key,
+ 'description': value.objective(),
+ 'subTestCase': value.sub_testcase()}
+ if value.validate_type() in constants.NFVI_PROJECT:
+ testcase['scenario'] = 'nfvi'
+ elif value.validate_type() in constants.VNF_PROJECT:
+ testcase['scenario'] = 'vnf'
+ else:
+ testcase['scenario'] = 'unknown'
+ testcase_list.append(testcase)
+ return testcase_list
--- /dev/null
+#!/bin/sh
+
+cd $(dirname $(readlink -f $0))
+exec gunicorn -b :5000 --access-logfile - --error-logfile - app.routes:app
else:
cls.logger.error('Failed to create test case: {}'
.format(testcase_file))
+ return cls.testcase_list
@classmethod
def get(cls, testcase_name):
with open(os.path.join(root, testsuite_yaml)) as f:
testsuite_yaml = yaml.safe_load(f)
cls.testsuite_list.update(testsuite_yaml)
+ return cls.testsuite_list
@classmethod
def get(cls, testsuite_name):
ansible==2.2.0
click==6.7
+docker==3.4.1
+flask==1.0.2
+gunicorn==19.9.0
Jinja2==2.10
os-client-config==1.29.0
pbr==3.1.1
python-hosts==0.4.1
PyYAML==3.12
shade==1.27.2
-docker==3.4.1