kennel 1.15.0 → 1.15.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 203db588fb0b4a3297898e2e86fc2905ffcdb787b653a95b7a4c4ed81bfed6c2
4
- data.tar.gz: '082e2d0d9e73c6753ecdae3fa2d81c0938afb0884ac82ebd1a6365d2a4166f42'
3
+ metadata.gz: 855385c4552df559fad87161c013597c2a1233f60b51a80af7ea0b40d9af1bf5
4
+ data.tar.gz: bc5318c6d20511940b66ec5c8c08bc9dd2d1cb37e2d06a16880837d5d3f0cc66
5
5
  SHA512:
6
- metadata.gz: 582eb3d3391750263d0fb595778a72f17e626bee11c720b7ee13303be7f197e03a0bd1d0e5b93ab2dbb48074017f460518ba58278131a5136a77ecf4ec72f157
7
- data.tar.gz: d2dfbfd993fc9b44349f88a095967eaa8ae299b7ccd6498e8c5488947477845faecbea82a25c5cd797d38be1af88ad48d8b8faa28ee8b3df962d18045480fbcf
6
+ metadata.gz: 583eacc7338bbb5eb92b19fcb20fd376557bec576dadeff9ae60815156726ffe6a13ee1049bb26ca386273998318ec7b5ce635e7aca4c986aaa4b2cf752aaff3
7
+ data.tar.gz: 9ed70fd2932133cc52b7c6d8329ce20c66b5fda1405704fb475b5f4229e41a0d2236fa505bd9a94693b444f5e5df47cc5a9ae6047222f03df22437ca3513e7fa
@@ -63,8 +63,9 @@ module Kennel
63
63
 
64
64
  def validate_json(data)
65
65
  # check for bad variables
66
+ # TODO: do the same check for apm_query and their group_by
66
67
  variables = data.fetch(:template_variables).map { |v| "$#{v.fetch(:name)}" }
67
- queries = data[:graphs].flat_map { |g| g[:definition][:requests].map { |r| r.fetch(:q) } }
68
+ queries = data[:graphs].flat_map { |g| g[:definition][:requests].map { |r| r[:q] }.compact }
68
69
  bad = queries.grep_v(/(#{variables.map { |v| Regexp.escape(v) }.join("|")})\b/)
69
70
  if bad.any?
70
71
  invalid! "queries #{bad.join(", ")} must use the template variables #{variables.join(", ")}"
data/lib/kennel/utils.rb CHANGED
@@ -88,14 +88,26 @@ module Kennel
88
88
  end
89
89
  end
90
90
 
91
- def parallel(items)
92
- items.map do |item|
91
+ def parallel(items, max: 10)
92
+ threads = [items.size, max].min
93
+ work = items.each_with_index.to_a
94
+ done = Array.new(items.size)
95
+ workers = Array.new(threads).map do
93
96
  Thread.new do
94
- yield item
95
- rescue StandardError => e
96
- e
97
+ loop do
98
+ item, i = work.pop
99
+ break unless i
100
+ done[i] =
101
+ begin
102
+ yield item
103
+ rescue StandardError => e
104
+ e
105
+ end
106
+ end
97
107
  end
98
- end.map(&:value).each { |i| raise i if i.is_a?(StandardError) }
108
+ end
109
+ workers.each(&:join)
110
+ done.each { |d| raise d if d.is_a?(StandardError) }
99
111
  end
100
112
 
101
113
  def natural_order(name)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.15.0"
3
+ VERSION = "1.15.1"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kennel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-01 00:00:00.000000000 Z
11
+ date: 2018-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday