class Flare::Tools::Cli::Dumpkey
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/flare/tools/cli/dumpkey.rb, line 41 def initialize super @output = nil @format = nil @part = nil @partsize = nil @bwlimit = nil @all = false end
Public Instance Methods
execute(config, args)
click to toggle source
# File lib/flare/tools/cli/dumpkey.rb, line 51 def execute(config, args) parse_index_server(config, args) cluster = nil Flare::Tools::IndexServer.open(config[:index_server_hostname], config[:index_server_port], @timeout) do |s| cluster = Flare::Tools::Cluster.new(s.host, s.port, s.stats_nodes) end return S_NG if cluster.nil? if @all unless args.empty? STDERR.puts "don't specify any nodes with --all option." return S_NG else args = cluster.master_nodekeys end else if args.empty? STDERR.puts "please specify --all option to get complete dump." return S_NG end end unless @format.nil? unless ["csv"].include? @format puts "unknown format: #{@format}" return S_NG end end hosts = args.map {|x| x.split(':')} hosts.each do |x| if x.size != 2 puts "invalid argument '#{x.join(':')}'." return S_NG end end hosts.each do |hostname,port| Flare::Tools::Node.open(hostname, port.to_i, @timeout, @bwlimit, @bwlimit) do |n| output = STDOUT unless @output.nil? output = File.open(@output, "w") end case @format when "csv" writer = CSV::Writer.generate(output) output.puts "# key" end interruptible { n.dumpkey(@part, @partsize) do |key| case @format when "csv" writer << [key] else output.puts "#{key}" end false end } output.close if output != STDOUT end end S_OK end
setup()
click to toggle source
Calls superclass method
# File lib/flare/tools/cli/dumpkey.rb, line 30 def setup super set_option_index_server @optp.on('-o', '--output=FILE', "output to file" ) {|v| @output = v} @optp.on('-f', '--format=FORMAT', "output format [csv]" ) {|v| @format = v} @optp.on('-p', '--partition=NUMBER', "partition number" ) {|v| @part = v.to_i if v.to_i >= 0} @optp.on('-s', '--partition-size=SIZE', "partition size" ) {|v| @partsize = v.to_i if v.to_i > 0} @optp.on( '--bwlimit=BANDWIDTH', "bandwidth limit (bps)" ) {|v| @bwlimit = v if v.to_i > 0} @optp.on( '--all', "dump form all partitions") {@all = true} end