diff options
Diffstat (limited to 'testapi')
-rw-r--r-- | testapi/3rd_party/static/testapi-ui/components/pods/podsController.js | 13 | ||||
-rw-r--r-- | testapi/README.rst | 101 | ||||
-rw-r--r-- | testapi/tools/watchdog/docker_watch.sh | 20 |
3 files changed, 82 insertions, 52 deletions
diff --git a/testapi/3rd_party/static/testapi-ui/components/pods/podsController.js b/testapi/3rd_party/static/testapi-ui/components/pods/podsController.js index 894fcc1..489fa8a 100644 --- a/testapi/3rd_party/static/testapi-ui/components/pods/podsController.js +++ b/testapi/3rd_party/static/testapi-ui/components/pods/podsController.js @@ -20,7 +20,7 @@ .controller('PodsController', PodsController); PodsController.$inject = [ - '$rootScope', '$scope', '$http', '$filter', '$state', 'testapiApiUrl','raiseAlert' + '$scope', '$http', '$filter', '$state', 'testapiApiUrl','raiseAlert' ]; /** @@ -88,16 +88,17 @@ details: ctrl.details }; ctrl.podsRequest = - $http.post(pods_url, body).error(function (error) { + $http.post(pods_url, body).error(function (data, status) { ctrl.showError = true; - ctrl.error = - 'Error creating the new pod from server: ' + - angular.toJson(error); + if(status == 403){ + ctrl.error = + 'Error creating the new pod from server: Pod\'s name already exists' + } }); } else{ ctrl.showError = true; - ctrl.error = 'Name is missing.' + ctrl.error = 'Name is missing.' } } diff --git a/testapi/README.rst b/testapi/README.rst index 44ab2a4..0d18b7e 100644 --- a/testapi/README.rst +++ b/testapi/README.rst @@ -2,63 +2,92 @@ opnfv-testapi ============= -Test Results Collector of OPNFV Test Projects +**Test Results Collector of OPNFV Test Projects**: -Start Server -============== +This project aims to provide a common way of gathering all the test results for OPNFV +testing projects into a single place, and a unified way of getting those results for +testing analysis projects, such as Reporting/Bitergia Dashboard/Qtip. It exposes +Restful APIs for collecting results and pushing them into a MongoDB database. + +If you are interested in how TestAPI looks like, please visit OPNFV's official `TestAPI Server`__ + +.. __: http://testresults.opnfv.org/test + +Pre-requsites +============= -Getting setup -^^^^^^^^^^^^^ +TestAPI leverages MongoDB as the data warehouse, in order to let it work +successfully, a MongoDB must be provided, the official MongoDB version in OPNFV +TestAPI is 3.2.6. And the database is **test_results_collection**, the five +collections are *users/pods/projects/testcases/scenarioes/results*. And thanks to +MongoDB's very user-friendly property, they don't need to be created in advance. -Requirements for opnfv-testapi: +Running locally +=============== -* tornado -* epydoc +Requirements +^^^^^^^^^^^^ -These requirements are expressed in the requirements.txt file and may be -installed by running the following (from within a virtual environment):: +All requirements are listed in requirements.txt and should be +installed by 'pip install': - pip install -r requirements.txt + *pip install -r requirements.txt* + +Installation +^^^^^^^^^^^^ + + *python setup.py install* + +After installation, configuration file etc/config.ini will be put under +/etc/opnfv_testapi/. And all the web relevant files under 3rd_party/static +will be in /user/local/share/opnfv_testapi as a totality. + +Start Server +^^^^^^^^^^^^ -How to install -^^^^^^^^^^^^^^ + *opnfv-testapi [--config-file <config.ini>]* -From within your environment, just run: +If --config-file is provided, the specified configuration file will be employed +when starting the server, or else /etc/opnfv_testapi/config.ini will be utilized +by default. - ./install.sh +After executing the command successfully, a TestAPI server will be started on +port 8000, to visit web portal, please access http://hostname:8000 -How to run -^^^^^^^^^^ +Regarding swagger-ui website, please visit http://hostname:8000/swagger/spec.html -From within your environment, just run: +Running with container +====================== - opnfv-testapi +TestAPI has already containerized, the docker image is opnfv/testapi:latest. -This will start a server on port 8000. Just visit http://localhost:8000 +**Running the container not behind nginx:** -For swagger website, just visit http://localhost:8000/swagger/spec.html +.. code-block:: shell -Unittest -===================== + docker run -dti --name testapi -p expose_port:8000 + -e "mongodb_url=mongodb://mongodb_ip:27017/" + -e "base_url=http://host_name:expose_port" + opnfv/testapi:latest -Getting setup -^^^^^^^^^^^^^ +**Running the container behind nginx:** -Requirements for unittest: +.. code-block:: shell -* testtools -* discover -* futures + docker run -dti --name testapi -p expose_port:8000 + -e "mongodb_url=mongodb://mongodb_ip:27017/" + -e "base_url=http://nginx_url" + opnfv/testapi:latest -These requirements are expressed in the test-requirements.txt file and may be -installed by running the following (from within a virtual environment):: +Unittest & pep8 +=============== - pip install -r test-requirements.txt +All requirements for unit tests are outlined in test-requirements.txt, and in TestAPI project, tox is leveraged to drive the executing of unit tests and pep8 check -How to run -^^^^^^^^^^ +**Running unit tests** -From within your environment, just run:: + *tox -e py27* - bash run_test.sh +**Running pep8 check** + *tox -e pep8* diff --git a/testapi/tools/watchdog/docker_watch.sh b/testapi/tools/watchdog/docker_watch.sh index 786fc10..f1d8946 100644 --- a/testapi/tools/watchdog/docker_watch.sh +++ b/testapi/tools/watchdog/docker_watch.sh @@ -22,7 +22,7 @@ declare -A ports=( ["testapi"]="8082" ["reporting"]="8084") ## Urls to check if the modules are deployed or not ? declare -A urls=( ["testapi"]="http://testresults.opnfv.org/test/" \ - ["reporting"]="http://testresults.opnfv.org/reporting2/reporting/index.html") + ["reporting"]="http://testresults.opnfv.org/reporting/index.html") ### Functions related to checking. @@ -31,9 +31,9 @@ function is_deploying() { building=$(grep -oPm1 "(?<=<building>)[^<]+" <<< "$xml") if [[ $building == "false" ]] then - return 0 + false else - return 1 + true fi } @@ -42,9 +42,9 @@ function get_docker_status() { echo -e "Docker status: $status" if [ $status = "active" ] then - return 1 + true else - return 0 + false fi } @@ -53,9 +53,9 @@ function check_connectivity() { cmd=`curl --head -m10 --request GET ${2} | grep '200 OK' > /dev/null` rc=$? if [[ $rc == 0 ]]; then - return 0 + true else - return 1 + false fi } @@ -74,7 +74,7 @@ function check_modules() { done if [ ! -z "$failed_modules" ]; then echo -e "Failed Modules: $failed_modules" - return 1 + false else echo -e "All modules working good" exit 0 @@ -135,7 +135,7 @@ echo -e ## If the problem is related to docker daemon -if get_docker_status; then +if ! get_docker_status; then restart_docker_fix if ! check_modules; then echo -e "Watchdog failed while restart_docker_fix" @@ -162,4 +162,4 @@ if ! check_modules; then fi sudo docker ps -sudo docker images +sudo docker images
\ No newline at end of file |