21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/logworm_utils/compute.rb', line 21
def run
begin
query_data = @db.query(@table, @query.to_json)
url = query_data["results_uri"]
rows = @db.results(url + "?nocache=1")["results"]
rescue Logworm::DatabaseException, Logworm::ForbiddenAccessException => e
$stderr.puts "Error: #{e}"
exit(-1)
rescue Logworm::InvalidQueryException => e
$stderr.puts "#{e}, #{@query.to_json}"
exit(-1)
rescue Exception => e
$stderr.puts "Error: #{e}"
exit(-1)
end
if @options[:debug]
puts "logworm query: #{@query.to_json}"
puts "logworm query url: #{query_data["self_uri"]}"
puts "logworm results url: #{url}"
puts
end
if @query.groups.length > 0
results = {}
rows.each do |r|
grp = []
@query.groups.each do |g|
grp << "#{g}:#{r[g]}"
end
key = "[#{grp.join(', ')}]"
value = r[@function]
results[key] = {:value => value, :keys => r.dup}
results[key][:keys].delete(@function)
end
results.keys.sort.each do |k|
puts "#{k} \t ==> #{@valuefield} = #{results[k][:value]}"
end
else
puts "#{@valuefield} = #{rows.first[@function]}"
end
end
|