kennel 1.15.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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