Class: Flare::Tools::Cli::Index

Inherits:
SubCommand show all
Includes:
IndexServerConfig, Util::Conversion
Defined in:
lib/flare/tools/cli/index.rb

Constant Summary

Constants included from IndexServerConfig

Flare::Tools::Cli::IndexServerConfig::Entity, Flare::Tools::Cli::IndexServerConfig::FLARE_INDEX_SERVER, Flare::Tools::Cli::IndexServerConfig::FLARE_INDEX_SERVERS

Constants included from Util::Constant

Util::Constant::DefalutBwlimit, Util::Constant::DefaultIndexServerName, Util::Constant::DefaultIndexServerPort, Util::Constant::DefaultNodePort, Util::Constant::DefaultTimeout, Util::Constant::STATUS_NG, Util::Constant::STATUS_OK

Constants inherited from SubCommand

SubCommand::S_NG, SubCommand::S_OK

Constants included from Util::Interruption

Util::Interruption::InterruptionTargets

Instance Attribute Summary

Attributes included from Option

#optp

Instance Method Summary collapse

Methods included from Util::Logging

#debug, #error, #fatal, #info, logger, #puts, set_logger, #trace, #warn

Methods included from Util::Conversion

#short_desc_of_second

Methods inherited from SubCommand

desc, #execute_subcommand, myname, #myname, to_s, to_sym, usage

Methods included from Util::Interruption

included, #initialize_interruption, #interrupt, #interrupt_, interrupt_all, #interrupted?, #interruptible, #interruptible?

Methods included from Option

#option_init, #parse_options, #set_option_dry_run, #set_option_force, #set_option_global, #set_option_index_server

Constructor Details

#initializeIndex

Returns a new instance of Index.



31
32
33
34
35
# File 'lib/flare/tools/cli/index.rb', line 31

def initialize
  super
  @output = nil
  @increment = nil
end

Instance Method Details

#execute(config, args) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/flare/tools/cli/index.rb', line 37

def execute(config, args)
  parse_index_server(config, args)
  cluster, node_map_version = Flare::Tools::Stats.open(config[:index_server_hostname], config[:index_server_port], @timeout) do |s|
    nodes = s.stats_nodes.sort_by{|key, val| [val['partition'], val['role'], key]}
    [Flare::Tools::Cluster.new(s.host, s.port, s.stats_nodes), s.stats['node_map_version']]
  end

  output = cluster.serialize(node_map_version.to_i + @increment.to_i)
  if @output.nil?
    info output
  else
    open(@output, "w") do |f|
      f.write(output)
    end
  end

  S_OK
end

#setupObject



24
25
26
27
28
29
# File 'lib/flare/tools/cli/index.rb', line 24

def setup
  super
  set_option_index_server
  @optp.on('--output=FILE',            "output index to a file"    ) {|v| @output = v}
  @optp.on('--increment=VERSION',      "increment node_map_version") {|v| @increment = v}
end