def lease_server!
      begin
        if num_current_generation_servers < MAX_SERVERS_PER_GENERATION && registry_open?
          start_a_server 
        end

        lease_server
      rescue ServerOffline => e
        Bullring.logger.debug {"Lost connection with a server, retrying..."}
        retry
      end
    end
def lease_server!
      begin
        if num_current_generation_servers < MAX_SERVERS_PER_GENERATION && registry_open?
          start_a_server 
        end

        lease_server
      rescue ServerOffline => e
        Bullring.logger.debug {"Lost connection with a server, retrying..."}
        retry
      end
    end
First starts up a server if needed then blocks until it is available and returns it