def set_configuration(opts)
      @options = DEFAULT_OPTIONS.clone
      @options.update(opts)

      AgentConfig.root_dir = @options[:root_dir]
      AgentConfig.pid_dir = @options[:pid_dir]

      @options[:log_path] = false
      if @options[:daemonize] || @options[:log_dir]
        @options[:log_path] = (@options[:log_dir] || Platform.filesystem.log_dir)
        FileUtils.mkdir_p(@options[:log_path]) unless File.directory?(@options[:log_path])
      end

      @options[:async_response] = true unless @options.has_key?(:async_response)
      @options[:non_blocking] = true if @options[:fiber_pool_size].to_i > 0

      @identity = @options[:identity]
      parsed_identity = AgentIdentity.parse(@identity)
      @agent_type = parsed_identity.agent_type
      @agent_name = @options[:agent_name]
      @request_queue = "request"
      @request_queue << "-#{@options[:shard_id].to_i}" if @options[:shard_id].to_i != 0
      @mode = @options[:mode].to_sym
      @stats_routing_key = "stats.#{@agent_type}.#{parsed_identity.base_id}"
      @terminate_callback = TERMINATE_BLOCK
      @revision = revision
      @queues = [@identity]
      @remaining_queue_setup = {}
      @history = History.new(@identity)
    end
def set_configuration(opts)
      @options = DEFAULT_OPTIONS.clone
      @options.update(opts)

      AgentConfig.root_dir = @options[:root_dir]
      AgentConfig.pid_dir = @options[:pid_dir]

      @options[:log_path] = false
      if @options[:daemonize] || @options[:log_dir]
        @options[:log_path] = (@options[:log_dir] || Platform.filesystem.log_dir)
        FileUtils.mkdir_p(@options[:log_path]) unless File.directory?(@options[:log_path])
      end

      @options[:async_response] = true unless @options.has_key?(:async_response)
      @options[:non_blocking] = true if @options[:fiber_pool_size].to_i > 0

      @identity = @options[:identity]
      parsed_identity = AgentIdentity.parse(@identity)
      @agent_type = parsed_identity.agent_type
      @agent_name = @options[:agent_name]
      @request_queue = "request"
      @request_queue << "-#{@options[:shard_id].to_i}" if @options[:shard_id].to_i != 0
      @mode = @options[:mode].to_sym
      @stats_routing_key = "stats.#{@agent_type}.#{parsed_identity.base_id}"
      @terminate_callback = TERMINATE_BLOCK
      @revision = revision
      @queues = [@identity]
      @remaining_queue_setup = {}
      @history = History.new(@identity)
    end
Set the agent's configuration using the supplied options

 === Parameters
 opts(Hash):: Configuration options

 === Return
 true:: Always return true