delays unitil all connections are working

            args:
                timeout: number of seconds to try to connecting. Error out when
                        timeout is reached
                start_delay: number of seconds to wait before checking status
                interval: number of seconds to wait between checks

def wait_for_conns(self, timeout=60, start_delay=0, interval=5, **kwargs):
        ''' delays unitil all connections are working

            args:
                timeout: number of seconds to try to connecting. Error out when
                        timeout is reached
                start_delay: number of seconds to wait before checking status
                interval: number of seconds to wait between checks
        '''
        log.setLevel(kwargs.get('log_level',self.log_level))
        timestamp = time.time()
        last_check = time.time() + start_delay - interval
        last_delay_notification = time.time() - interval
        timeout += 1
        failing = True
        up_conns = {}
        # loop until the server is up or the timeout is reached
        while((time.time()-timestamp) < timeout) and failing:
            # if delaying, the start of the check, print waiting to start
            if start_delay > 0 and time.time() - timestamp < start_delay \
                    and (time.time()-last_delay_notification) > 5:
                print("Delaying server status check until %ss. Current time: %ss" \
                        % (start_delay, int(time.time() - timestamp)))
                last_delay_notification = time.time()
            # check status at the specified 'interval' until the server is up
            first_check = True
            while ((time.time()-last_check) > interval) and failing:
                msg = ["\tChecked status of servers at %ss" % \
                        int((time.time()-timestamp)),
                       "\t** CONNECTION STATUS:"]
                last_check = time.time()
                failing = self.failing
                new_up = (self.active.keys() - failing.keys()) - \
                          up_conns.keys()
                msg += ["\t\t UP - %s: %s" % (key, self.conns[key])
                       for key in new_up]
                up_conns.update({key: self.conns[key] for key in new_up})
                msg.append("\t*** '%s' connection(s) up" % len(up_conns))
                msg += ["\t\t FAILING - %s: %s" % (key, self.conns[key])
                        for key in failing]
                log.info("** CONNECTION STATUS:\n%s", "\n".join(msg))
                if not failing:
                    log.info("**** Servers up at %ss" % \
                        int((time.time()-timestamp)))
                    break
        if failing:
            raise RuntimeError("Unable to establish connection(s): ",
                               failing)
        for conn in up_conns.values():
            conn.delay_check_pass()
        return not failing