Merge "Yardstick container rabbitmq supervisor RUN state"
authorVolodymyr Mytnyk <volodymyrx.mytnyk@intel.com>
Mon, 25 Feb 2019 12:24:15 +0000 (12:24 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 25 Feb 2019 12:24:15 +0000 (12:24 +0000)
ansible/install.yaml
ansible/roles/configure_rabbitmq/tasks/main.yml
ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2 [new file with mode: 0644]
docker/supervisor.sh

index 184fa86..558c486 100644 (file)
@@ -39,7 +39,8 @@
     - { role: configure_gui, when: installation_mode != inst_mode_container_pull }
     - { role: download_trex, when: installation_mode != inst_mode_container_pull }
     - { role: install_trex, when: installation_mode != inst_mode_container_pull }
-    - { role: configure_rabbitmq, when: installation_mode == inst_mode_baremetal }
+    - role: configure_rabbitmq
+      install_mode: "{{ installation_mode }}"
 
 
   post_tasks:
index 3ad60c1..59998ab 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 ---
-- name: Restart rabbitmq
-  service:
-    name: rabbitmq-server
-    state: restarted
+- block:
+  - name: Restart rabbitmq
+    service:
+      name: rabbitmq-server
+      state: restarted
 
-- name: rabbitmqctl start_app
-  shell: rabbitmqctl start_app
+  - name: rabbitmqctl start_app
+    shell: rabbitmqctl start_app
 
-- name: Configure rabbitmq
-  rabbitmq_user:
-    user: yardstick
-    password: yardstick
-    configure_priv: .*
-    read_priv: .*
-    write_priv: .*
-    state: present
+  - name: Configure rabbitmq
+    rabbitmq_user:
+      user: yardstick
+      password: yardstick
+      configure_priv: .*
+      read_priv: .*
+      write_priv: .*
+      state: present
+  when: install_mode == inst_mode_baremetal
+
+- name: Create rabbitmq file for supervisor
+  template:
+    src: rabbitmq.sh.j2
+    dest: /etc/yardstick/rabbitmq.sh
+    mode: 0755
+  when: install_mode == inst_mode_container
diff --git a/ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2 b/ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2
new file mode 100644 (file)
index 0000000..a91565c
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash\r
+trap "rabbitmqctl stop_app" EXIT\r
+\r
+rabbitmqctl stop_app\r
+service rabbitmq-server restart\r
+rabbitmqctl start_app\r
+\r
+tmp_file="/tmp/$(basename -- $0).configured"\r
+if [ ! -f "$tmp_file" ]; then\r
+    rabbitmqctl add_user yardstick yardstick\r
+    rabbitmqctl set_permissions -p / yardstick '.*' '.*' '.*'\r
+    touch "$tmp_file"\r
+fi\r
+\r
+while :\r
+do\r
+    sleep 5\r
+    service rabbitmq-server status > /dev/null 2>&1 || exit 1\r
+    rabbitmqctl report | grep "Status of node rabbit@`hostname`" > /dev/null 2>&1 || exit 1\r
+done\r
index bd17cfb..a4104c7 100755 (executable)
@@ -10,7 +10,6 @@
 
 # nginx service start when boot
 supervisor_config='/etc/supervisor/conf.d/yardstick.conf'
-rabbitmq_config='/etc/supervisor/conf.d/rabbitmq.conf'
 
 if [[ ! -e "${supervisor_config}" ]]; then
 
@@ -24,18 +23,9 @@ command = service nginx restart
 [program:yardstick_uwsgi]
 directory = /etc/yardstick
 command = uwsgi -i yardstick.ini
-EOF
-
-fi
-
-if [[ ! -e "${rabbitmq_config}" ]]; then
 
-    cat << EOF > "${rabbitmq_config}"
 [program:rabbitmq]
-command = /bin/bash -c "service rabbitmq-server restart
-    rabbitmqctl start_app
-    rabbitmqctl add_user yardstick yardstick
-    rabbitmqctl set_permissions -p / yardstick '.*' '.*'"
+command=/etc/yardstick/rabbitmq.sh
 EOF
 
 fi