aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStepan Andrushko <stepanx.andrushko@intel.com>2019-02-19 19:14:55 +0200
committerStepan Andrushko <stepanx.andrushko@intel.com>2019-02-20 15:16:21 +0200
commit38c458e35a181e9cced957d733832c1e297e2e35 (patch)
tree6b060c6ea4b7793f28e82135725ee7b3f572da77
parent88c5dda9712afc71742b164905f21cfff45926fa (diff)
Yardstick container rabbitmq supervisor RUN state
Rabbitmq process exited supervisor and couldn't respawn it afterwards. Updated the way rabbitmq service and node are spawned to have them RUNNING after a service stop or node down. JIRA: YARDSTICK-1600 Change-Id: Idd6812db7a1985e8c727efd7ea45572199c1a4a9 Signed-off-by: Stepan Andrushko <stepanx.andrushko@intel.com>
-rw-r--r--ansible/install.yaml3
-rw-r--r--ansible/roles/configure_rabbitmq/tasks/main.yml37
-rw-r--r--ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j220
-rwxr-xr-xdocker/supervisor.sh12
4 files changed, 46 insertions, 26 deletions
diff --git a/ansible/install.yaml b/ansible/install.yaml
index 6146c7f19..0f010e507 100644
--- a/ansible/install.yaml
+++ b/ansible/install.yaml
@@ -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:
diff --git a/ansible/roles/configure_rabbitmq/tasks/main.yml b/ansible/roles/configure_rabbitmq/tasks/main.yml
index 3ad60c1ea..59998abc0 100644
--- a/ansible/roles/configure_rabbitmq/tasks/main.yml
+++ b/ansible/roles/configure_rabbitmq/tasks/main.yml
@@ -12,19 +12,28 @@
# 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
index 000000000..a91565c01
--- /dev/null
+++ b/ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2
@@ -0,0 +1,20 @@
+#!/bin/bash
+trap "rabbitmqctl stop_app" EXIT
+
+rabbitmqctl stop_app
+service rabbitmq-server restart
+rabbitmqctl start_app
+
+tmp_file="/tmp/$(basename -- $0).configured"
+if [ ! -f "$tmp_file" ]; then
+ rabbitmqctl add_user yardstick yardstick
+ rabbitmqctl set_permissions -p / yardstick '.*' '.*' '.*'
+ touch "$tmp_file"
+fi
+
+while :
+do
+ sleep 5
+ service rabbitmq-server status > /dev/null 2>&1 || exit 1
+ rabbitmqctl report | grep "Status of node rabbit@`hostname`" > /dev/null 2>&1 || exit 1
+done
diff --git a/docker/supervisor.sh b/docker/supervisor.sh
index bd17cfbc4..a4104c7fb 100755
--- a/docker/supervisor.sh
+++ b/docker/supervisor.sh
@@ -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