summaryrefslogtreecommitdiffstats
path: root/utils/test/testapi
diff options
context:
space:
mode:
Diffstat (limited to 'utils/test/testapi')
-rw-r--r--utils/test/testapi/deployment/deploy.py40
-rw-r--r--utils/test/testapi/deployment/docker-compose.yml.template15
-rw-r--r--utils/test/testapi/opts/deploy.py55
-rw-r--r--utils/test/testapi/tools/watchdog/docker_watch.sh165
4 files changed, 55 insertions, 220 deletions
diff --git a/utils/test/testapi/deployment/deploy.py b/utils/test/testapi/deployment/deploy.py
deleted file mode 100644
index 6433fa6b2..000000000
--- a/utils/test/testapi/deployment/deploy.py
+++ /dev/null
@@ -1,40 +0,0 @@
-import argparse
-import os
-
-from jinja2 import Environment, FileSystemLoader
-
-env = Environment(loader=FileSystemLoader('./'))
-docker_compose_yml = './docker-compose.yml'
-docker_compose_template = './docker-compose.yml.template'
-
-
-def render_docker_compose(port, base_url):
- vars = {
- "expose_port": port,
- "base_url": base_url,
- }
- template = env.get_template(docker_compose_template)
- yml = template.render(vars=vars)
-
- with open(docker_compose_yml, 'w') as f:
- f.write(yml)
- f.close()
-
-
-def main(args):
- render_docker_compose(args.expose_port, args.base_url)
- os.system('docker-compose -f {} up -d'.format(docker_compose_yml))
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='Backup MongoDBs')
- parser.add_argument('-p', '--expose-port',
- type=int,
- required=False,
- default=8000,
- help='testapi exposed port')
- parser.add_argument('-l', '--base-url',
- type=str,
- required=True,
- help='testapi exposed base-url')
- main(parser.parse_args())
diff --git a/utils/test/testapi/deployment/docker-compose.yml.template b/utils/test/testapi/deployment/docker-compose.yml.template
deleted file mode 100644
index cd684048e..000000000
--- a/utils/test/testapi/deployment/docker-compose.yml.template
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '2'
-services:
- mongo:
- image: mongo:3.2.1
- container_name: opnfv-mongo
- testapi:
- image: opnfv/testapi:latest
- container_name: opnfv-testapi
- environment:
- - mongodb_url=mongodb://mongo:27017/
- - base_url={{ vars.base_url }}
- ports:
- - "{{ vars.expose_port }}:8000"
- links:
- - mongo
diff --git a/utils/test/testapi/opts/deploy.py b/utils/test/testapi/opts/deploy.py
new file mode 100644
index 000000000..f58690c5d
--- /dev/null
+++ b/utils/test/testapi/opts/deploy.py
@@ -0,0 +1,55 @@
+import argparse
+import os
+
+from jinja2 import Environment
+
+DOCKER_COMPOSE_FILE = './docker-compose.yml'
+DOCKER_COMPOSE_TEMPLATE = """
+version: '2'
+services:
+ mongo:
+ image: mongo:3.2.1
+ container_name: opnfv-mongo
+ testapi:
+ image: opnfv/testapi:latest
+ container_name: opnfv-testapi
+ environment:
+ - mongodb_url=mongodb://mongo:27017/
+ - base_url={{ vars.testapi_base_url }}
+ ports:
+ - "{{ vars.testapi_port }}:8000"
+ links:
+ - mongo
+"""
+
+
+def render_docker_compose(testapi_port, testapi_base_url):
+ vars = {
+ "testapi_port": testapi_port,
+ "testapi_base_url": testapi_base_url,
+ }
+
+ yml = Environment().from_string(DOCKER_COMPOSE_TEMPLATE).render(vars=vars)
+
+ with open(DOCKER_COMPOSE_FILE, 'w') as f:
+ f.write(yml)
+ f.close()
+
+
+def main(args):
+ render_docker_compose(args.testapi_port, args.testapi_base_url)
+ os.system('docker-compose -f {} up -d'.format(DOCKER_COMPOSE_FILE))
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Backup MongoDBs')
+ parser.add_argument('-tp', '--testapi-port',
+ type=int,
+ required=False,
+ default=8000,
+ help='testapi exposed port')
+ parser.add_argument('-tl', '--testapi-base-url',
+ type=str,
+ required=True,
+ help='testapi exposed base-url')
+ main(parser.parse_args())
diff --git a/utils/test/testapi/tools/watchdog/docker_watch.sh b/utils/test/testapi/tools/watchdog/docker_watch.sh
deleted file mode 100644
index f1d8946b6..000000000
--- a/utils/test/testapi/tools/watchdog/docker_watch.sh
+++ /dev/null
@@ -1,165 +0,0 @@
-# *
-# http://www.apache.org/licenses/LICENSE-2.0 *
-# *
-# Unless required by applicable law or agreed to in writing, *
-# software distributed under the License is distributed on an *
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
-# KIND, either express or implied. See the License for the *
-# specific language governing permissions and limitations *
-# under the License. *
-
-# This script checks if deployments are working or and then
-# starts the specified containers in case one of the containers
-# crash. The only solution is restarting docker as of now.
-
-#!/bin/bash
-
-## List of modules
-modules=(testapi reporting)
-
-## Ports of the modules
-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/reporting/index.html")
-
-### Functions related to checking.
-
-function is_deploying() {
- xml=$(curl -m10 "https://build.opnfv.org/ci/job/${1}-automate-master/lastBuild/api/xml?depth=1")
- building=$(grep -oPm1 "(?<=<building>)[^<]+" <<< "$xml")
- if [[ $building == "false" ]]
- then
- false
- else
- true
- fi
-}
-
-function get_docker_status() {
- status=$(service docker status | sed -n 3p | cut -d ' ' -f5)
- echo -e "Docker status: $status"
- if [ $status = "active" ]
- then
- true
- else
- false
- fi
-}
-
-function check_connectivity() {
- echo "Checking $1 connection : $2"
- cmd=`curl --head -m10 --request GET ${2} | grep '200 OK' > /dev/null`
- rc=$?
- if [[ $rc == 0 ]]; then
- true
- else
- false
- fi
-}
-
-function check_modules() {
- echo -e "Checking modules"
- failed_modules=()
- for module in "${modules[@]}"
- do
- if is_deploying $module; then
- continue
- fi
- if ! check_connectivity $module "${urls[$module]}"; then
- echo -e "$module failed"
- failed_modules+=($module)
- fi
- done
- if [ ! -z "$failed_modules" ]; then
- echo -e "Failed Modules: $failed_modules"
- false
- else
- echo -e "All modules working good"
- exit 0
- fi
-}
-
-### Functions related fixes.
-
-function restart_docker_fix() {
- echo -e "Running restart_docker_fix"
- service docker restart
- start_containers_fix "${modules[@]}"
-}
-
-function docker_proxy_fix() {
- echo -e "Running docker_proxy_fix"
- fix_modules=("${@}")
- for module in "${fix_modules[@]}"
- do
- echo -e "Kill docker proxy and restart containers"
- pid=$(netstat -nlp | grep :${ports[$module]} | awk '{print $7}' | cut -d'/' -f1)
- echo $pid
- if [ ! -z "$pid" ]; then
- kill $pid
- start_container_fix $module
- fi
- done
-}
-
-function start_containers_fix() {
- start_modules=("${@}")
- for module in "${start_modules[@]}"
- do
- start_container_fix $module
- done
-}
-
-function start_container_fix() {
- echo -e "Starting a container $module"
- sudo docker stop $module
- sudo docker start $module
- sleep 5
- if ! check_connectivity $module "${urls[$module]}"; then
- echo -e "Starting an old container $module_old"
- sudo docker stop $module
- sudo docker start $module"_old"
- sleep 5
- fi
-}
-
-### Main Flow
-
-echo -e
-echo -e "WatchDog Started"
-echo -e
-echo -e `date "+%Y-%m-%d %H:%M:%S.%N"`
-echo -e
-
-## If the problem is related to docker daemon
-
-if ! get_docker_status; then
- restart_docker_fix
- if ! check_modules; then
- echo -e "Watchdog failed while restart_docker_fix"
- fi
- exit
-fi
-
-## If the problem is related to docker proxy
-
-if ! check_modules; then
- docker_proxy_fix "${failed_modules[@]}"
-fi
-
-## If any other problem : restart docker
-
-if ! check_modules; then
- restart_docker_fix
-fi
-
-## If nothing works out
-
-if ! check_modules; then
- echo -e "Watchdog failed"
-fi
-
-sudo docker ps
-sudo docker images \ No newline at end of file