Merge "Add API(v2) to get certain task info"
[yardstick.git] / api / api-prepare.sh
index c05dbb5..7632d9d 100755 (executable)
@@ -8,6 +8,36 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+: ${YARDSTICK_REPO_DIR:='/home/opnfv/repos/yardstick'}
+
+# generate uwsgi config file
+mkdir -p /etc/yardstick
+uwsgi_config='/etc/yardstick/yardstick.ini'
+if [[ ! -e "${uwsgi_config}" ]];then
+
+    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
 nginx_config='/etc/nginx/conf.d/yardstick.conf'
 
@@ -20,18 +50,35 @@ server {
     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