From d73ee4a856b84b5d19d7b604f49ce5cbb8d061d4 Mon Sep 17 00:00:00 2001
From: Serguei Bezverkhi <sbezverk@cisco.com>
Date: Sun, 10 Apr 2016 16:17:00 -0400
Subject: [PATCH] Rabbitmq Upgrade restarts container only when image was
 changed.

This fix adds a check of Rabbitmq's image version during the upgrade.
The container gets restarted only when the image version is different.

Change-Id: Ie038845c0c8fff1ac51b7cbf21e1b593229c2c0e
Closes-Bug: #1558832
---
 ansible/roles/rabbitmq/tasks/upgrade.yml | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/ansible/roles/rabbitmq/tasks/upgrade.yml b/ansible/roles/rabbitmq/tasks/upgrade.yml
index aaf91cbb9a..e76d3b8727 100644
--- a/ansible/roles/rabbitmq/tasks/upgrade.yml
+++ b/ansible/roles/rabbitmq/tasks/upgrade.yml
@@ -1,4 +1,13 @@
 ---
+- name: Checking if rabbitmq container needs upgrading
+  kolla_docker:
+    action: "compare_image"
+    common_options: "{{ docker_common_options }}"
+    name: "rabbitmq"
+    image: "{{ rabbitmq_image_full }}"
+  when: inventory_hostname in groups['rabbitmq']
+  register: rabbitmq_differs
+
 - include: config.yml
 
 - name: Find gospel node
@@ -13,10 +22,16 @@
     action: "stop_container"
     common_options: "{{ docker_common_options }}"
     name: "rabbitmq"
-  when: rabbitmq_hostname != (gospel_node.stdout | from_json).hostname
+  when:
+    - rabbitmq_hostname != (gospel_node.stdout | from_json).hostname
+    - rabbitmq_differs['result']
 
 - include: start.yml
-  when: rabbitmq_hostname == (gospel_node.stdout | from_json).hostname
+  when:
+    - rabbitmq_hostname == (gospel_node.stdout | from_json).hostname
+    - rabbitmq_differs['result']
 
 - include: start.yml
-  when: rabbitmq_hostname != (gospel_node.stdout | from_json).hostname
+  when:
+    - rabbitmq_hostname != (gospel_node.stdout | from_json).hostname
+    - rabbitmq_differs['result']