module Flare::Tools::Cli::IndexServerConfig

Constants

Entity
FLARE_INDEX_SERVER
FLARE_INDEX_SERVERS

Private Instance Methods

get_index_server_from_cluster(name, envname = FLARE_INDEX_SERVERS) click to toggle source

@return [Flare::Entity::Server | nil]

# File lib/flare/tools/cli/index_server_config.rb, line 33
def get_index_server_from_cluster(name, envname = FLARE_INDEX_SERVERS)
  return nil if name.nil?
  if ENV.has_key? envname
    clusters = ENV[envname].split(';').map{|s| s.split(':')}
    clusters.each do |cluster_name,index_name,index_port|
      return Entity::Server.new(index_name, index_port) if cluster_name == name
    end
  end
  return nil
end
get_index_server_from_nodekeys(dnodekeys, envname = FLARE_INDEX_SERVERS) click to toggle source

@return [Flare::Entity::Server | nil]

# File lib/flare/tools/cli/index_server_config.rb, line 45
def get_index_server_from_nodekeys(dnodekeys, envname = FLARE_INDEX_SERVERS)
  nodekeys = []
  return nil if dnodekeys.empty?
  dnodekeys.each do |n|
    l = n.split(':')
    return nil if l.size < 2
    nodekeys << "#{l[0]}:#{l[1]}"
  end
  if ENV.has_key? envname
    clusters = ENV[envname].split(';').map{|s| s.split(':')}
    clusters.each do |cluster_name,index_name,index_port|
      ret = Flare::Tools::IndexServer.open(index_name, index_port.to_i) do |s|
        cluster_nodekeys = s.stats_nodes.map {|x| x[0]}
        included = true
        nodekeys.each do |nodekey|
          included = false unless cluster_nodekeys.include? nodekey
        end
        if included
          Entity::Server.new(index_name, index_port)
        else
          nil
        end
      end
      return ret unless ret.nil?
    end
  end
  nil
rescue => e
  debug(e.message)
  nil
end
get_index_server_name_and_port(index_server, envname = FLARE_INDEX_SERVER) click to toggle source

@param [Flare::Entity::Server] index_server @return [Flare::Entity::Server]

# File lib/flare/tools/cli/index_server_config.rb, line 79
def get_index_server_name_and_port(index_server, envname = FLARE_INDEX_SERVER)
  env_ihostname = nil
  env_iport = nil
  if ENV.has_key? envname
    env_ihostname, env_iport = ENV[envname].split(':')
  end
  ihostname, iport = index_server.host.split(':') unless index_server.host.nil?
  ihostname = ihostname || env_ihostname || DefaultIndexServerName
  if iport && index_server.port
    raise "--index-server-port option isn't allowed."
  else
    iport = index_server.port || env_iport || DefaultIndexServerPort if iport.nil?
  end
  Entity::Server.new(ihostname, iport)
end
parse_index_server(config, rest) click to toggle source
# File lib/flare/tools/cli/index_server_config.rb, line 17
def parse_index_server(config, rest)
  if @cluster
    @index_server_entity = get_index_server_from_cluster(@cluster)
  else
    @index_server_entity =
      get_index_server_from_nodekeys(rest) ||
      get_index_server_name_and_port(Entity::Server.new(@index_server_host, @index_server_port))
  end

  return unless @index_server_entity

  config[:index_server_hostname] = @index_server_entity.host
  config[:index_server_port] = @index_server_entity.port
end