Merge "Add API(v2) to get certain task info"
[yardstick.git] / api / api-prepare.sh
index 712ad83..7632d9d 100755 (executable)
@@ -1,33 +1,41 @@
 #!/bin/bash
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
 
-# yardstick output config
-output_config='/etc/yardstick/yardstick.conf'
+: ${YARDSTICK_REPO_DIR:='/home/opnfv/repos/yardstick'}
 
-if [[ ! -e "${output_config}" ]];then
-    gateway_ip=$(ip route | grep default | awk '{print $3}')
-    echo "${gateway_ip}"
+# generate uwsgi config file
+mkdir -p /etc/yardstick
+uwsgi_config='/etc/yardstick/yardstick.ini'
+if [[ ! -e "${uwsgi_config}" ]];then
 
-    install -d /etc/yardstick -m 0755 -o root
-
-    cat << EOF >> "${output_config}"
-[DEFAULT]
-debug = True
-dispatcher = influxdb
-
-[dispatcher_file]
-file_path = /tmp/yardstick.out
-
-[dispatcher_http]
-timeout = 5
-# target = http://127.0.0.1:8000/results
-
-[dispatcher_influxdb]
-timeout = 5
-target = http://${gateway_ip}:8086
-db_name = yardstick
-username = root
-password = root
+    cat << EOF > "${uwsgi_config}"
+[uwsgi]
+master = true
+debug = true
+chdir = ${YARDSTICK_REPO_DIR}/api
+module = server
+plugins = python
+processes = 10
+threads = 5
+async = true
+max-requests = 5000
+chmod-socket = 666
+callable = app_wrapper
+enable-threads = true
+close-on-exec = 1
+daemonize= /var/log/yardstick/uwsgi.log
+socket = /var/run/yardstick.sock
 EOF
+    if [[ "${YARDSTICK_VENV}" ]];then
+        echo "virtualenv = ${YARDSTICK_VENV}" >> "${uwsgi_config}"
+    fi
 fi
 
 # nginx config
@@ -35,25 +43,42 @@ nginx_config='/etc/nginx/conf.d/yardstick.conf'
 
 if [[ ! -e "${nginx_config}" ]];then
 
-    cat << EOF >> "${nginx_config}"
+    cat << EOF > "${nginx_config}"
 server {
     listen 5000;
     server_name localhost;
     index  index.htm index.html;
     location / {
         include uwsgi_params;
-        uwsgi_pass unix:///home/opnfv/repos/yardstick/api/yardstick.sock;
+        uwsgi_pass unix:///var/run/yardstick.sock;
     }
 }
 EOF
 fi
 
 # nginx service start when boot
-cat << EOF >> /root/.bashrc
+supervisor_config='/etc/supervisor/conf.d/yardstick.conf'
 
-nginx_status=\$(service nginx status | grep not)
-if [ -n "\${nginx_status}" ];then
-    service nginx restart
-    uwsgi -i /home/opnfv/repos/yardstick/api/yardstick.ini
-fi
+if [[ ! -e "${supervisor_config}" ]];then
+    cat << EOF > "${supervisor_config}"
+[supervisord]
+nodaemon = true
+
+[program:yardstick_nginx]
+user = root
+command = service nginx restart
+autorestart = true
+
+[program:yardstick_uwsgi]
+user = root
+directory = /etc/yardstick
+command = uwsgi -i yardstick.ini
+autorestart = true
 EOF
+fi
+
+# create api log directory
+mkdir -p /var/log/yardstick
+
+# create yardstick.sock for communicating
+touch /var/run/yardstick.sock