diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-04-11 16:40:55 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-04-11 16:40:55 +0000 |
commit | 07444514a50b6d4ed9e0b2c4fadd887737c40f09 (patch) | |
tree | 568219b89fdbcd1f2fc274bf72666198cb350c70 | |
parent | 14abab6bd88a76aee2dcb34dfa1d88185bf0ad37 (diff) | |
parent | bbc49d3fcf98384df9b211f1f451ab64255dd698 (diff) | |
download | ironic-07444514a50b6d4ed9e0b2c4fadd887737c40f09.tar.gz |
Merge "Cherry pick oslo rpc HA fixes" into milestone-proposed
-rw-r--r-- | ironic/openstack/common/rpc/impl_kombu.py | 5 | ||||
-rw-r--r-- | ironic/openstack/common/rpc/impl_qpid.py | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/ironic/openstack/common/rpc/impl_kombu.py b/ironic/openstack/common/rpc/impl_kombu.py index 2d06be9aa..31c079f75 100644 --- a/ironic/openstack/common/rpc/impl_kombu.py +++ b/ironic/openstack/common/rpc/impl_kombu.py @@ -458,6 +458,9 @@ class Connection(object): self.params_list = params_list + brokers_count = len(self.params_list) + self.next_broker_indices = itertools.cycle(range(brokers_count)) + self.memory_transport = self.conf.fake_rabbit self.connection = None @@ -528,7 +531,7 @@ class Connection(object): attempt = 0 while True: - params = self.params_list[attempt % len(self.params_list)] + params = self.params_list[next(self.next_broker_indices)] attempt += 1 try: self._connect(params) diff --git a/ironic/openstack/common/rpc/impl_qpid.py b/ironic/openstack/common/rpc/impl_qpid.py index 718ff7259..324fcf2bf 100644 --- a/ironic/openstack/common/rpc/impl_qpid.py +++ b/ironic/openstack/common/rpc/impl_qpid.py @@ -467,6 +467,10 @@ class Connection(object): self.brokers = params['qpid_hosts'] self.username = params['username'] self.password = params['password'] + + brokers_count = len(self.brokers) + self.next_broker_indices = itertools.cycle(range(brokers_count)) + self.connection_create(self.brokers[0]) self.reconnect() @@ -494,7 +498,6 @@ class Connection(object): def reconnect(self): """Handles reconnecting and re-establishing sessions and queues.""" - attempt = 0 delay = 1 while True: # Close the session if necessary @@ -504,8 +507,7 @@ class Connection(object): except qpid_exceptions.ConnectionError: pass - broker = self.brokers[attempt % len(self.brokers)] - attempt += 1 + broker = self.brokers[next(self.next_broker_indices)] try: self.connection_create(broker) |