def clusterStatus(self):
        """
        Returns a dict of cluster nodes and their status information
        """
        servers = yield self.client.keys('rhumba.server.*.heartbeat')
        
        d = {}

        now = time.time()

        for s in servers:
            sname = s.split('.', 2)[-1].rsplit('.', 1)[0]
            
            last = yield self.client.get('rhumba.server.%s.heartbeat' % sname)

            if not last:
                last = 0

            status = yield self.client.get('rhumba.server.%s.status' % sname)

            if (status == 'ready') and (now - last > 5):
                status = 'offline'

            d[sname] = {
                'lastseen': last,
                'status': status
            }

        defer.returnValue(d)