From 239b45e8248645bffdff770d7aff386edc4ff3b2 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 Change-Id: Ifc3baccb5fc5d98a76a6b191841ab45d654f330d --- src/config/common/vnc_kombu.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/config/common/vnc_kombu.py b/src/config/common/vnc_kombu.py index 2c70041698a..a31ebe91638 100644 --- a/src/config/common/vnc_kombu.py +++ b/src/config/common/vnc_kombu.py @@ -111,6 +111,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() @@ -181,9 +192,9 @@ def shutdown(self): self._connection_monitor_greenlet.kill() self._producer.close() self._consumer.close() + self._delete_queue() self._conn.close() - class VncKombuClientV1(VncKombuClientBase): def __init__(self, rabbit_ip, rabbit_port, rabbit_user, rabbit_password, rabbit_vhost, rabbit_ha_mode, q_name, subscribe_cb, logger):