From b365d1ccbd6a1b1bfff944a45f83b53aba93f0f8 Mon Sep 17 00:00:00 2001 From: sbalineni Date: Thu, 17 Dec 2015 11:17:21 -0800 Subject: [PATCH] DM: Graceful cleanup of RabbitMQ message queues when DM stops Delete RMQ message queues when DM receives stop signal, this will ensure queues gets deleted when DM gets stopped gracefully. Closes-Bug: #1524548 (cherry picked from commit 239b45e8248645bffdff770d7aff386edc4ff3b2) Conflicts: src/config/common/vnc_kombu.py Change-Id: Ifc3baccb5fc5d98a76a6b191841ab45d654f330d --- src/config/common/vnc_kombu.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/config/common/vnc_kombu.py b/src/config/common/vnc_kombu.py index b9fae2b9642..b2567f21af0 100644 --- a/src/config/common/vnc_kombu.py +++ b/src/config/common/vnc_kombu.py @@ -104,6 +104,17 @@ def _reconnect(self, delete_old_q=False): self._producer = kombu.Producer(self._channel, exchange=self.obj_upd_exchange) # end _reconnect + def _delete_queue(self): + # delete the queue + try: + bound_q = self._update_queue_obj(self._channel) + if bound_q: + bound_q.delete() + except Exception as e: + msg = 'Unable to delete the old ampq queue: %s' %(str(e)) + self._logger(msg, level=SandeshLevel.SYS_ERR) + #end _delete_queue + def _connection_watch(self, connected): if not connected: self._reconnect() @@ -174,6 +185,7 @@ def shutdown(self): self._connection_monitor_greenlet.kill() self._producer.close() self._consumer.close() + self._delete_queue() self._conn.close() _SSL_PROTOCOLS = {