def self.add_simplerpc_options(parser, options)
parser.separator ""
parser.separator "RPC Options"
parser.on('--np', '--no-progress', 'Do not show the progress bar') do |v|
options[:progress_bar] = false
end
parser.on('--one', '-1', 'Send request to only one discovered nodes') do |v|
options[:mcollective_limit_targets] = 1
end
parser.on('--batch SIZE', 'Do requests in batches') do |v|
if ((v =~ /^(\d+)%$/ && Integer($1) != 0) || v =~ /^(\d+)$/)
options[:batch_size] = v
else
raise(::OptionParser::InvalidArgument.new(v))
end
end
parser.on('--batch-sleep SECONDS', Float, 'Sleep time between batches') do |v|
options[:batch_sleep_time] = v
end
parser.on('--limit-seed NUMBER', Integer, 'Seed value for deterministic random batching') do |v|
options[:limit_seed] = v
end
parser.on('--limit-nodes COUNT', '--ln', '--limit', 'Send request to only a subset of nodes, can be a percentage') do |v|
raise "Invalid limit specified: #{v} valid limits are /^\d+%*$/" unless v =~ /^\d+%*$/
if v =~ /^\d+$/
options[:mcollective_limit_targets] = v.to_i
else
options[:mcollective_limit_targets] = v
end
end
parser.on('--json', '-j', 'Produce JSON output') do |v|
options[:progress_bar] = false
options[:output_format] = :json
end
parser.on('--display MODE', 'Influence how results are displayed. One of ok, all or failed') do |v|
if v == "all"
options[:force_display_mode] = :always
else
options[:force_display_mode] = v.intern
end
raise "--display has to be one of 'ok', 'all' or 'failed'" unless [:ok, :failed, :always].include?(options[:force_display_mode])
end
end