lib/ej/commands.rb in ej-0.1.3 vs lib/ej/commands.rb in ej-0.1.4
- old
+ new
@@ -1,18 +1,16 @@
#!/usr/bin/env ruby
# coding: utf-8
+require 'ej/core'
require 'thor'
require 'yajl'
-require 'elasticsearch'
-require 'ej/core'
-require 'logger'
module Ej
class Commands < Thor
class_option :index, aliases: '-i', type: :string, default: '_all', desc: 'index'
class_option :host, aliases: '-h', type: :string, default: 'localhost', desc: 'host'
- class_option :debug, aliases: '-d', type: :string, default: false, desc: 'debug mode'
+ class_option :debug, aliases: '-d', type: :boolean, default: false, desc: 'debug mode'
map '-s' => :search
map '-f' => :facet
map '-c' => :count
map '-b' => :bulk
@@ -23,45 +21,45 @@
map '--health' => :health
def initialize(args = [], options = {}, config = {})
super(args, options, config)
@global_options = config[:shell].base.options
- @core = Ej::Core.new(@global_options['host'], @global_options['index'], @global_options['debug'])
+ @core = Ej::Core.new(@global_options[:host], @global_options[:index], @global_options[:debug])
end
desc '-s [lucene query]', 'search'
option :type, type: :string, aliases: '-t', default: nil, desc: 'type'
option :size, type: :numeric, aliases: '-n', default: nil, desc: 'size'
option :from, type: :numeric, aliases: '--from', default: 0, desc: 'from'
option :fields, type: :array, aliases: '--fields', default: nil, desc: 'fields'
option :source_only, type: :boolean, aliases: '--so', default: true, desc: 'from'
option :query, type: :string, aliases: '-q', default: nil, desc: 'query'
option :sort, type: :hash, aliases: '--sort', default: nil, desc: 'ex. --sort @timestamp:desc'
- def search(query = options['query'])
- puts_with_format(@core.search(options['type'],
+ def search(query = options[:query])
+ puts_with_format(@core.search(options[:type],
query,
- options['size'],
- options['from'],
- options['source_only'],
+ options[:size],
+ options[:from],
+ options[:source_only],
nil,
- options['fields'],
- options['sort']
+ options[:fields],
+ options[:sort]
))
end
desc 'total [lucene query]', 'total'
option :type, type: :string, aliases: '-t', default: nil, desc: 'type'
option :query, type: :string, aliases: '-q', default: nil, desc: 'query'
- def count(query = options['query'])
- puts_with_format(@core.search(options['type'], query, 0, 0, false))
+ def count(query = options[:query])
+ puts_with_format(@core.search(options[:type], query, 0, 0, false))
end
desc 'distinct [lucene query]', 'distinct'
option :type, type: :string, aliases: '-t', default: nil, desc: 'type'
option :query, type: :string, aliases: '-q', default: nil, desc: 'query'
def distinct(term)
- puts_with_format(@core.distinct(term, options['type'], options['query']))
+ puts_with_format(@core.distinct(term, options[:type], options[:query]))
end
desc 'copy', 'copy index'
option :source, type: :string, aliases: '--source', required: true, desc: 'source host'
option :dest, type: :string, aliases: '--dest', required: true, desc: 'dest host'
@@ -69,61 +67,61 @@
option :per, type: :numeric, default: nil, desc: 'per'
option :proc_num, type: :numeric, default: 1, desc: 'proc num for multi thread'
option :from, type: :numeric, default: 0, desc: 'from'
def copy
@core.copy(
- options['source'],
- options['dest'],
- options['query'],
- options['per'],
- options['proc_num'],
- options['from']
+ options[:source],
+ options[:dest],
+ options[:query],
+ options[:per],
+ options[:proc_num],
+ options[:from]
)
end
desc 'dump', 'dump index'
option :query, type: :string, aliases: '-q', default: nil, desc: 'query'
option :per, type: :numeric, default: nil, desc: 'per'
def dump
- @core.dump(options['query'], options['per'])
+ @core.dump(options[:query], options[:per])
end
desc '-f', 'facet'
option :query, type: :string, aliases: '-q', default: '*', desc: 'query'
option :size, type: :numeric, aliases: '-n', default: 10, desc: 'size'
def facet(term)
- puts_with_format(@core.facet(term, options['size'], options['query']))
+ puts_with_format(@core.facet(term, options[:size], options[:query]))
end
desc 'aggs', 'aggs'
option :query, type: :string, aliases: '-q', default: '*', desc: 'query'
option :size, type: :numeric, aliases: '-n', default: 10, desc: 'size'
option :terms, type: :array, aliases: '-t', required: true, desc: 'size'
def aggs
- puts_with_format(@core.aggs(options['terms'], options['size'], options['query']))
+ puts_with_format(@core.aggs(options[:terms], options[:size], options[:query]))
end
desc 'min', 'term'
option :term, type: :string, aliases: '-k', desc: 'terms'
def min
- puts_with_format(@core.min(options['term']))
+ puts_with_format(@core.min(options[:term]))
end
desc 'max', 'count record, group by keys'
option :term, type: :string, aliases: '-k', desc: 'terms'
def max
- puts_with_format(@core.max(options['term']))
+ puts_with_format(@core.max(options[:term]))
end
desc '-b', 'bulk import STDIN JSON'
option :index, aliases: '-i', type: :string, default: "logstash-#{Time.now.strftime('%Y.%m.%d')}", required: true, desc: 'index'
option :type, type: :string, aliases: '-t', default: nil, required: true, desc: 'type'
option :timestamp_key, aliases: '--timestamp_key', type: :string, desc: 'timestamp key', default: nil
option :add_timestamp, type: :boolean, default: true, desc: 'add_timestamp'
option :id_keys, type: :array, aliases: '--id', default: nil, desc: 'id'
def bulk
- @core.bulk(options['timestamp_key'], options['type'], options['add_timestamp'], options['id_keys'], options['index'])
+ @core.bulk(options[:timestamp_key], options[:type], options[:add_timestamp], options[:id_keys], options[:index])
end
desc 'health', 'health'
def health
puts_with_format(@core.health)
@@ -164,12 +162,12 @@
desc 'put_routing', "put routing.\nexsample. ej put_routing -i someindex -t sometype --path somecolumn"
option :index, aliases: '-i', type: :string, default: nil, required: true, desc: 'index'
option :type, aliases: '-t', type: :string, default: nil, required: true, desc: 'type'
option :path, type: :string, default: nil, required: true, desc: 'path'
def put_routing
- body = { options['type'] => {"_routing"=>{"required"=>true, "path"=>options['path']}}}
- puts_with_format(@core.put_mapping(options['index'], options['type'], body))
+ body = { options[:type] => {"_routing"=>{"required"=>true, "path"=>options[:path]}}}
+ puts_with_format(@core.put_mapping(options[:index], options[:type], body))
end
desc 'put_template', 'put template'
def put_template(name)
hash = Yajl::Parser.parse(STDIN.read)
@@ -178,11 +176,11 @@
desc 'create_aliases', 'create aliases'
option :alias, type: :string, aliases: '-a', default: nil, required: true, desc: 'alias name'
option :indices, type: :array, aliases: '-x', default: nil, required: true, desc: 'index array'
def create_aliases
- @core.create_aliases(options['alias'], options['indices'])
+ @core.create_aliases(options[:alias], options[:indices])
end
desc 'recovery', 'recovery'
def recovery
@core.recovery
@@ -191,16 +189,16 @@
desc 'delete', 'delete'
option :index, aliases: '-i', type: :string, default: nil, required: true, desc: 'index'
option :type, type: :string, aliases: '-t', default: nil, desc: 'type'
option :query, type: :string, aliases: '-q', default: nil, desc: 'query'
def delete
- @core.delete(options['index'], options['type'], options['query'])
+ @core.delete(options[:index], options[:type], options[:query])
end
desc 'delete_template --name [name]', 'delete_template'
option :name, type: :string, default: nil, required: true, desc: 'template name'
def delete_template
- @core.delete_template(options['name'])
+ @core.delete_template(options[:name])
end
desc 'template', 'show template'
def template
puts_with_format(@core.template)