Revision 2ef10562 snf-common/synnefo/lib/amqp_puka.py

b/snf-common/synnefo/lib/amqp_puka.py
80 80
    """
81 81
    def __init__(self, hosts=settings.AMQP_HOSTS, max_retries=30,
82 82
                 confirms=True, confirm_buffer=100):
83
        """Format hosts as "amqp://username:pass@host:port" """
83
        """
84
        Format hosts as "amqp://username:pass@host:port"
85
        max_retries=0 defaults to unlimited retries
86

  
87
        """
84 88

  
85 89
        self.hosts = hosts
86 90
        shuffle(self.hosts)
......
98 102
        self.exchanges = []
99 103

  
100 104
    def connect(self, retries=0):
101
        if retries > self.max_retries:
102
            logger.error("Aborting after %s retries", retries - 1)
105
        if self.max_retries and retries >= self.max_retries:
106
            logger.error("Aborting after %d retries", retries)
103 107
            raise AMQPConnectionError('Aborting after %d connection failures.'\
104
                                      % (retries - 1))
108
                                      % retries)
105 109
            return
106 110

  
107 111
        # Pick up a host
......
117 121
            promise = self.client.connect()
118 122
            self.client.wait(promise)
119 123
        except socket_error as e:
120
            logger.error('Cannot connect to host %s: %s', host, e)
121
            if retries > 2 * len(self.hosts):
124
            if retries < len(self.hosts):
125
                logger.warning('Cannot connect to host %s: %s', host, e)
126
            else:
127
                logger.error('Cannot connect to host %s: %s', host, e)
122 128
                sleep(1)
123 129
            return self.connect(retries + 1)
124 130

  

Also available in: Unified diff