Skip to content

Commit 663b215

Browse files
Use parallel to workaround blocking rest api ops
1 parent 84b8507 commit 663b215

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

knife-inspect.gemspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Gem::Specification.new do |s|
2828
s.add_development_dependency 'simplecov', '~> 0.8'
2929
s.add_development_dependency 'coveralls', '~> 0.7'
3030

31+
3132
s.add_runtime_dependency 'chef', chef_version
3233
s.add_runtime_dependency 'yajl-ruby', '~> 1.2'
34+
s.add_runtime_dependency 'parallel', '~> 1.3'
3335
end

lib/health_inspector/checklists/base.rb

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# encoding: UTF-8
22
require 'pathname'
3+
require 'parallel'
34

45
module HealthInspector
56
module Checklists
@@ -38,19 +39,16 @@ def all_item_names
3839
(server_items + local_items).uniq.sort
3940
end
4041

41-
def each_item
42-
all_item_names.each do |name|
43-
yield load_item(name)
44-
end
42+
def load_validate(name)
43+
item = load_item(name)
44+
validate_item(item)
4545
end
4646

4747
def run
4848
banner "Inspecting #{self.class.title}"
4949

50-
results = []
51-
52-
each_item do |item|
53-
results << validate_item(item)
50+
results = Parallel.map(all_item_names) do |name|
51+
load_validate(name)
5452
end
5553

5654
!results.include?(false)

0 commit comments

Comments
 (0)