Skip to content

Commit 188f6ad

Browse files
Use parallel to workaround blocking rest api operations
1 parent 84b8507 commit 188f6ad

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
@@ -27,6 +27,8 @@ Gem::Specification.new do |s|
2727
s.add_development_dependency 'rspec', '~> 3.0.0'
2828
s.add_development_dependency 'simplecov', '~> 0.8'
2929
s.add_development_dependency 'coveralls', '~> 0.7'
30+
s.add_development_dependency 'parallel', '~> 1.3'
31+
3032

3133
s.add_runtime_dependency 'chef', chef_version
3234
s.add_runtime_dependency 'yajl-ruby', '~> 1.2'

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)