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)