Class: Flare::Tools::Cli::Index
- Inherits:
-
SubCommand
- Object
- SubCommand
- Flare::Tools::Cli::Index
- 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
Instance Method Summary collapse
- #execute(config, args) ⇒ Object
-
#initialize ⇒ Index
constructor
A new instance of Index.
- #setup ⇒ Object
Methods included from Util::Logging
#debug, #error, #fatal, #info, logger, #puts, set_logger, #trace, #warn
Methods included from Util::Conversion
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
#initialize ⇒ Index
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 |
#setup ⇒ Object
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 |