class Norikra::Client::Query

Public Instance Methods

add(query_name, expression) click to toggle source
# File lib/norikra/client/cli.rb, line 98
def add(query_name, expression)
  wrap do
    client(parent_options).register(query_name, options[:group], expression)
  end
end
dump() click to toggle source
# File lib/norikra/client/cli.rb, line 126
def dump

  require 'json'

  wrap do
    queries = client(parent_options).queries
    puts JSON.pretty_generate(queries)
  end
end
list() click to toggle source
# File lib/norikra/client/cli.rb, line 79
def list
  wrap do
    puts ["NAME", "GROUP", "TARGETS", "SUSPENDED", "QUERY"].join("\t") unless options[:simple]
    queries = client(parent_options).queries
    queries.sort{|a,b| (a['targets'].first <=> b['targets'].first).nonzero? || a['name'] <=> b['name']}.each do |q|
      puts [
        q['name'],
        (q['group'] || 'default'),
        q['targets'].join(','),
        q['suspended'].to_s,
        q['expression'].split("\n").map(&:strip).join(" ")
      ].join("\t")
    end
    puts "#{queries.size} queries found." unless options[:simple]
  end
end
remove(query_name) click to toggle source
# File lib/norikra/client/cli.rb, line 105
def remove(query_name)
  wrap do
    client(parent_options).deregister(query_name)
  end
end
resume(query_name) click to toggle source
# File lib/norikra/client/cli.rb, line 119
def resume(query_name)
  wrap do
    client(parent_options).resume(query_name)
  end
end
suspend(query_name) click to toggle source
# File lib/norikra/client/cli.rb, line 112
def suspend(query_name)
  wrap do
    client(parent_options).suspend(query_name)
  end
end
sync() click to toggle source
# File lib/norikra/client/cli.rb, line 138
def sync

  require 'json'

  wrap do
    load_queries = JSON.load($stdin)
    server_queries = client(parent_options).queries
    prefix = options[:dry_run] ? "[dry-run] " : ""

    (server_queries - load_queries).each do |q|
      puts "#{prefix}remove query #{q}"
      unless options[:dry_run]
        client(parent_options).deregister(q['name'])
      end
    end

    (load_queries - server_queries).each do |q|
      puts "#{prefix}add query #{q}"
      unless options[:dry_run]
        client(parent_options).register(q['name'], q['group'], q['expression'])
      end
    end
  end
end