chefspec 2.0.1 → 3.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/chefspec.rb +30 -44
- data/lib/chefspec/api.rb +74 -0
- data/lib/chefspec/api/apt_package.rb +192 -0
- data/lib/chefspec/api/batch.rb +43 -0
- data/lib/chefspec/api/chef_gem.rb +191 -0
- data/lib/chefspec/api/cookbook_file.rb +166 -0
- data/lib/chefspec/api/cron.rb +80 -0
- data/lib/chefspec/api/deploy.rb +117 -0
- data/lib/chefspec/api/directory.rb +80 -0
- data/lib/chefspec/api/dpkg_package.rb +117 -0
- data/lib/chefspec/api/easy_install_package.rb +154 -0
- data/lib/chefspec/api/env.rb +117 -0
- data/lib/chefspec/api/erl_call.rb +43 -0
- data/lib/chefspec/api/execute.rb +43 -0
- data/lib/chefspec/api/file.rb +166 -0
- data/lib/chefspec/api/freebsd_package.rb +80 -0
- data/lib/chefspec/api/gem_package.rb +191 -0
- data/lib/chefspec/api/git.rb +117 -0
- data/lib/chefspec/api/group.rb +154 -0
- data/lib/chefspec/api/http_request.rb +228 -0
- data/lib/chefspec/api/ifconfig.rb +154 -0
- data/lib/chefspec/api/include_recipe.rb +26 -0
- data/lib/chefspec/api/ips_package.rb +117 -0
- data/lib/chefspec/api/link.rb +102 -0
- data/lib/chefspec/api/log.rb +43 -0
- data/lib/chefspec/api/macports_package.rb +154 -0
- data/lib/chefspec/api/mdadm.rb +117 -0
- data/lib/chefspec/api/mount.rb +192 -0
- data/lib/chefspec/api/notifications.rb +38 -0
- data/lib/chefspec/api/ohai.rb +43 -0
- data/lib/chefspec/api/package.rb +192 -0
- data/lib/chefspec/api/pacman_package.rb +155 -0
- data/lib/chefspec/api/portage_package.rb +155 -0
- data/lib/chefspec/api/powershell_script.rb +43 -0
- data/lib/chefspec/api/registry_key.rb +166 -0
- data/lib/chefspec/api/remote_directory.rb +120 -0
- data/lib/chefspec/api/remote_file.rb +166 -0
- data/lib/chefspec/api/render_file.rb +32 -0
- data/lib/chefspec/api/route.rb +80 -0
- data/lib/chefspec/api/rpm_package.rb +117 -0
- data/lib/chefspec/api/ruby_block.rb +37 -0
- data/lib/chefspec/api/script.rb +228 -0
- data/lib/chefspec/api/service.rb +246 -0
- data/lib/chefspec/api/smartos_package.rb +117 -0
- data/lib/chefspec/api/solaris_package.rb +80 -0
- data/lib/chefspec/api/subversion.rb +154 -0
- data/lib/chefspec/api/template.rb +166 -0
- data/lib/chefspec/api/user.rb +228 -0
- data/lib/chefspec/api/yum_package.rb +154 -0
- data/lib/chefspec/berkshelf.rb +37 -0
- data/lib/chefspec/deprecations.rb +151 -0
- data/lib/chefspec/errors.rb +99 -0
- data/lib/chefspec/expect_exception.rb +45 -0
- data/lib/chefspec/extensions/chef/client.rb +15 -0
- data/lib/chefspec/extensions/chef/conditional.rb +11 -0
- data/lib/chefspec/extensions/chef/data_query.rb +29 -0
- data/lib/chefspec/extensions/chef/lwrp_base.rb +44 -0
- data/lib/chefspec/extensions/chef/resource.rb +27 -0
- data/lib/chefspec/extensions/chef/securable.rb +19 -0
- data/lib/chefspec/formatter.rb +270 -0
- data/lib/chefspec/macros.rb +217 -0
- data/lib/chefspec/matchers.rb +9 -0
- data/lib/chefspec/matchers/include_recipe_matcher.rb +45 -0
- data/lib/chefspec/matchers/link_to_matcher.rb +28 -0
- data/lib/chefspec/matchers/notifications_matcher.rb +92 -0
- data/lib/chefspec/matchers/render_file_matcher.rb +72 -0
- data/lib/chefspec/matchers/resource_matcher.rb +143 -0
- data/lib/chefspec/renderer.rb +137 -0
- data/lib/chefspec/rspec.rb +17 -0
- data/lib/chefspec/runner.rb +274 -0
- data/lib/chefspec/stubs/command_registry.rb +11 -0
- data/lib/chefspec/stubs/command_stub.rb +37 -0
- data/lib/chefspec/stubs/data_bag_item_registry.rb +13 -0
- data/lib/chefspec/stubs/data_bag_item_stub.rb +25 -0
- data/lib/chefspec/stubs/data_bag_registry.rb +13 -0
- data/lib/chefspec/stubs/data_bag_stub.rb +23 -0
- data/lib/chefspec/stubs/registry.rb +32 -0
- data/lib/chefspec/stubs/search_registry.rb +13 -0
- data/lib/chefspec/stubs/search_stub.rb +25 -0
- data/lib/chefspec/stubs/stub.rb +37 -0
- data/lib/chefspec/version.rb +1 -2
- metadata +100 -103
- data/lib/chef/expect_exception.rb +0 -34
- data/lib/chef/formatters/chefspec.rb +0 -233
- data/lib/chef/knife/cookbook_create_specs.rb +0 -107
- data/lib/chefspec/chef_runner.rb +0 -275
- data/lib/chefspec/helpers/describe.rb +0 -17
- data/lib/chefspec/matchers/cron.rb +0 -7
- data/lib/chefspec/matchers/env.rb +0 -8
- data/lib/chefspec/matchers/execute.rb +0 -33
- data/lib/chefspec/matchers/file.rb +0 -83
- data/lib/chefspec/matchers/file_content.rb +0 -32
- data/lib/chefspec/matchers/group.rb +0 -8
- data/lib/chefspec/matchers/include_recipe.rb +0 -20
- data/lib/chefspec/matchers/link.rb +0 -14
- data/lib/chefspec/matchers/log.rb +0 -21
- data/lib/chefspec/matchers/notifications.rb +0 -43
- data/lib/chefspec/matchers/package.rb +0 -39
- data/lib/chefspec/matchers/python.rb +0 -7
- data/lib/chefspec/matchers/ruby_block.rb +0 -13
- data/lib/chefspec/matchers/script.rb +0 -34
- data/lib/chefspec/matchers/service.rb +0 -25
- data/lib/chefspec/matchers/shared.rb +0 -132
- data/lib/chefspec/matchers/user.rb +0 -8
- data/lib/chefspec/minitest.rb +0 -195
- data/lib/chefspec/monkey_patches/conditional.rb +0 -19
- data/lib/chefspec/monkey_patches/hash.rb +0 -23
- data/lib/chefspec/monkey_patches/lwrp_base.rb +0 -45
- data/lib/chefspec/monkey_patches/provider.rb +0 -43
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'stub'
|
2
|
+
|
3
|
+
module ChefSpec
|
4
|
+
module Stubs
|
5
|
+
class SearchStub < Stub
|
6
|
+
attr_reader :block
|
7
|
+
attr_reader :query
|
8
|
+
attr_reader :type
|
9
|
+
|
10
|
+
def initialize(type, query = '*:*', &block)
|
11
|
+
@type = type.to_s
|
12
|
+
@query = query
|
13
|
+
@block = block
|
14
|
+
end
|
15
|
+
|
16
|
+
def signature
|
17
|
+
if @block
|
18
|
+
"stub_search(#{@type.inspect}, #{@query.inspect}) { # Ruby code }"
|
19
|
+
else
|
20
|
+
"stub_search(#{@type.inspect}, #{@query.inspect}).and_return(#{@value})"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module ChefSpec
|
2
|
+
module Stubs
|
3
|
+
class Stub
|
4
|
+
attr_reader :value
|
5
|
+
|
6
|
+
def and_return(value)
|
7
|
+
@value = value
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
def and_raise(exception)
|
12
|
+
@block = Proc.new { raise exception }
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def result
|
17
|
+
if @block
|
18
|
+
recursively_mashify(@block.call)
|
19
|
+
else
|
20
|
+
recursively_mashify(@value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def recursively_mashify(thing)
|
26
|
+
case thing
|
27
|
+
when Array
|
28
|
+
thing.collect { |item| recursively_mashify(item) }
|
29
|
+
when Hash
|
30
|
+
Mash.from_hash(thing)
|
31
|
+
else
|
32
|
+
thing
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/chefspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chefspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Crump
|
8
|
+
- Seth Vargo
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-10-10 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: chef
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '10.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '10.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: erubis
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
18
|
+
- - ~>
|
32
19
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
20
|
+
version: '11.0'
|
34
21
|
type: :runtime
|
35
22
|
prerelease: false
|
36
23
|
version_requirements: !ruby/object:Gem::Requirement
|
37
24
|
requirements:
|
38
|
-
- -
|
25
|
+
- - ~>
|
39
26
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
27
|
+
version: '11.0'
|
41
28
|
- !ruby/object:Gem::Dependency
|
42
29
|
name: fauxhai
|
43
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,34 +39,20 @@ dependencies:
|
|
52
39
|
- - ~>
|
53
40
|
- !ruby/object:Gem::Version
|
54
41
|
version: '1.1'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: minitest-chef-handler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.6.0
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 0.6.0
|
69
42
|
- !ruby/object:Gem::Dependency
|
70
43
|
name: rspec
|
71
44
|
requirement: !ruby/object:Gem::Requirement
|
72
45
|
requirements:
|
73
46
|
- - ~>
|
74
47
|
- !ruby/object:Gem::Version
|
75
|
-
version: '2.
|
48
|
+
version: '2.14'
|
76
49
|
type: :runtime
|
77
50
|
prerelease: false
|
78
51
|
version_requirements: !ruby/object:Gem::Requirement
|
79
52
|
requirements:
|
80
53
|
- - ~>
|
81
54
|
- !ruby/object:Gem::Version
|
82
|
-
version: '2.
|
55
|
+
version: '2.14'
|
83
56
|
- !ruby/object:Gem::Dependency
|
84
57
|
name: rake
|
85
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,108 +68,132 @@ dependencies:
|
|
95
68
|
- !ruby/object:Gem::Version
|
96
69
|
version: '0'
|
97
70
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
71
|
+
name: redcarpet
|
99
72
|
requirement: !ruby/object:Gem::Requirement
|
100
73
|
requirements:
|
101
74
|
- - ~>
|
102
75
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0
|
76
|
+
version: '3.0'
|
104
77
|
type: :development
|
105
78
|
prerelease: false
|
106
79
|
version_requirements: !ruby/object:Gem::Requirement
|
107
80
|
requirements:
|
108
81
|
- - ~>
|
109
82
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0
|
83
|
+
version: '3.0'
|
111
84
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0.5'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ~>
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0.5'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: cucumber
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ~>
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '1.3'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ~>
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '1.3'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: i18n
|
85
|
+
name: yard
|
141
86
|
requirement: !ruby/object:Gem::Requirement
|
142
87
|
requirements:
|
143
88
|
- - ~>
|
144
89
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0.
|
90
|
+
version: '0.8'
|
146
91
|
type: :development
|
147
92
|
prerelease: false
|
148
93
|
version_requirements: !ruby/object:Gem::Requirement
|
149
94
|
requirements:
|
150
95
|
- - ~>
|
151
96
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
97
|
+
version: '0.8'
|
153
98
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
99
|
+
name: aruba
|
155
100
|
requirement: !ruby/object:Gem::Requirement
|
156
101
|
requirements:
|
157
102
|
- - ~>
|
158
103
|
- !ruby/object:Gem::Version
|
159
|
-
version: '0.
|
104
|
+
version: '0.5'
|
160
105
|
type: :development
|
161
106
|
prerelease: false
|
162
107
|
version_requirements: !ruby/object:Gem::Requirement
|
163
108
|
requirements:
|
164
109
|
- - ~>
|
165
110
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0.
|
111
|
+
version: '0.5'
|
167
112
|
description: Write RSpec examples for Opscode Chef recipes
|
168
113
|
email:
|
169
114
|
executables: []
|
170
115
|
extensions: []
|
171
116
|
extra_rdoc_files: []
|
172
117
|
files:
|
173
|
-
- lib/
|
174
|
-
- lib/
|
175
|
-
- lib/
|
176
|
-
- lib/chefspec/
|
177
|
-
- lib/chefspec/
|
178
|
-
- lib/chefspec/
|
179
|
-
- lib/chefspec/
|
180
|
-
- lib/chefspec/
|
181
|
-
- lib/chefspec/
|
182
|
-
- lib/chefspec/
|
183
|
-
- lib/chefspec/
|
184
|
-
- lib/chefspec/
|
185
|
-
- lib/chefspec/
|
186
|
-
- lib/chefspec/
|
187
|
-
- lib/chefspec/
|
188
|
-
- lib/chefspec/
|
189
|
-
- lib/chefspec/
|
190
|
-
- lib/chefspec/
|
191
|
-
- lib/chefspec/
|
192
|
-
- lib/chefspec/
|
193
|
-
- lib/chefspec/
|
194
|
-
- lib/chefspec/
|
195
|
-
- lib/chefspec/
|
196
|
-
- lib/chefspec/
|
197
|
-
- lib/chefspec/
|
198
|
-
- lib/chefspec/
|
199
|
-
- lib/chefspec/
|
118
|
+
- lib/chefspec/api/apt_package.rb
|
119
|
+
- lib/chefspec/api/batch.rb
|
120
|
+
- lib/chefspec/api/chef_gem.rb
|
121
|
+
- lib/chefspec/api/cookbook_file.rb
|
122
|
+
- lib/chefspec/api/cron.rb
|
123
|
+
- lib/chefspec/api/deploy.rb
|
124
|
+
- lib/chefspec/api/directory.rb
|
125
|
+
- lib/chefspec/api/dpkg_package.rb
|
126
|
+
- lib/chefspec/api/easy_install_package.rb
|
127
|
+
- lib/chefspec/api/env.rb
|
128
|
+
- lib/chefspec/api/erl_call.rb
|
129
|
+
- lib/chefspec/api/execute.rb
|
130
|
+
- lib/chefspec/api/file.rb
|
131
|
+
- lib/chefspec/api/freebsd_package.rb
|
132
|
+
- lib/chefspec/api/gem_package.rb
|
133
|
+
- lib/chefspec/api/git.rb
|
134
|
+
- lib/chefspec/api/group.rb
|
135
|
+
- lib/chefspec/api/http_request.rb
|
136
|
+
- lib/chefspec/api/ifconfig.rb
|
137
|
+
- lib/chefspec/api/include_recipe.rb
|
138
|
+
- lib/chefspec/api/ips_package.rb
|
139
|
+
- lib/chefspec/api/link.rb
|
140
|
+
- lib/chefspec/api/log.rb
|
141
|
+
- lib/chefspec/api/macports_package.rb
|
142
|
+
- lib/chefspec/api/mdadm.rb
|
143
|
+
- lib/chefspec/api/mount.rb
|
144
|
+
- lib/chefspec/api/notifications.rb
|
145
|
+
- lib/chefspec/api/ohai.rb
|
146
|
+
- lib/chefspec/api/package.rb
|
147
|
+
- lib/chefspec/api/pacman_package.rb
|
148
|
+
- lib/chefspec/api/portage_package.rb
|
149
|
+
- lib/chefspec/api/powershell_script.rb
|
150
|
+
- lib/chefspec/api/registry_key.rb
|
151
|
+
- lib/chefspec/api/remote_directory.rb
|
152
|
+
- lib/chefspec/api/remote_file.rb
|
153
|
+
- lib/chefspec/api/render_file.rb
|
154
|
+
- lib/chefspec/api/route.rb
|
155
|
+
- lib/chefspec/api/rpm_package.rb
|
156
|
+
- lib/chefspec/api/ruby_block.rb
|
157
|
+
- lib/chefspec/api/script.rb
|
158
|
+
- lib/chefspec/api/service.rb
|
159
|
+
- lib/chefspec/api/smartos_package.rb
|
160
|
+
- lib/chefspec/api/solaris_package.rb
|
161
|
+
- lib/chefspec/api/subversion.rb
|
162
|
+
- lib/chefspec/api/template.rb
|
163
|
+
- lib/chefspec/api/user.rb
|
164
|
+
- lib/chefspec/api/yum_package.rb
|
165
|
+
- lib/chefspec/api.rb
|
166
|
+
- lib/chefspec/berkshelf.rb
|
167
|
+
- lib/chefspec/deprecations.rb
|
168
|
+
- lib/chefspec/errors.rb
|
169
|
+
- lib/chefspec/expect_exception.rb
|
170
|
+
- lib/chefspec/extensions/chef/client.rb
|
171
|
+
- lib/chefspec/extensions/chef/conditional.rb
|
172
|
+
- lib/chefspec/extensions/chef/data_query.rb
|
173
|
+
- lib/chefspec/extensions/chef/lwrp_base.rb
|
174
|
+
- lib/chefspec/extensions/chef/resource.rb
|
175
|
+
- lib/chefspec/extensions/chef/securable.rb
|
176
|
+
- lib/chefspec/formatter.rb
|
177
|
+
- lib/chefspec/macros.rb
|
178
|
+
- lib/chefspec/matchers/include_recipe_matcher.rb
|
179
|
+
- lib/chefspec/matchers/link_to_matcher.rb
|
180
|
+
- lib/chefspec/matchers/notifications_matcher.rb
|
181
|
+
- lib/chefspec/matchers/render_file_matcher.rb
|
182
|
+
- lib/chefspec/matchers/resource_matcher.rb
|
183
|
+
- lib/chefspec/matchers.rb
|
184
|
+
- lib/chefspec/renderer.rb
|
185
|
+
- lib/chefspec/rspec.rb
|
186
|
+
- lib/chefspec/runner.rb
|
187
|
+
- lib/chefspec/stubs/command_registry.rb
|
188
|
+
- lib/chefspec/stubs/command_stub.rb
|
189
|
+
- lib/chefspec/stubs/data_bag_item_registry.rb
|
190
|
+
- lib/chefspec/stubs/data_bag_item_stub.rb
|
191
|
+
- lib/chefspec/stubs/data_bag_registry.rb
|
192
|
+
- lib/chefspec/stubs/data_bag_stub.rb
|
193
|
+
- lib/chefspec/stubs/registry.rb
|
194
|
+
- lib/chefspec/stubs/search_registry.rb
|
195
|
+
- lib/chefspec/stubs/search_stub.rb
|
196
|
+
- lib/chefspec/stubs/stub.rb
|
200
197
|
- lib/chefspec/version.rb
|
201
198
|
- lib/chefspec.rb
|
202
199
|
homepage: http://acrmp.github.com/chefspec
|
@@ -214,14 +211,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
214
211
|
version: '1.9'
|
215
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
213
|
requirements:
|
217
|
-
- - '
|
214
|
+
- - '>'
|
218
215
|
- !ruby/object:Gem::Version
|
219
|
-
version:
|
216
|
+
version: 1.3.1
|
220
217
|
requirements: []
|
221
218
|
rubyforge_project:
|
222
219
|
rubygems_version: 2.0.3
|
223
220
|
signing_key:
|
224
221
|
specification_version: 4
|
225
|
-
summary: chefspec-
|
222
|
+
summary: chefspec-3.0.0.beta.1
|
226
223
|
test_files: []
|
227
224
|
has_rdoc:
|
@@ -1,34 +0,0 @@
|
|
1
|
-
class Chef
|
2
|
-
module ExpectException
|
3
|
-
class << self
|
4
|
-
def expected?(chef_message, exception, *args)
|
5
|
-
@b.call(chef_message, exception)
|
6
|
-
end
|
7
|
-
|
8
|
-
def expect(klass, message)
|
9
|
-
expect_block do |chef_message, exception|
|
10
|
-
match?(exception, klass, message)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def expect_block(&block)
|
15
|
-
@b = block
|
16
|
-
end
|
17
|
-
|
18
|
-
def clear
|
19
|
-
@b = lambda{|cm, e| false}
|
20
|
-
clear_seen
|
21
|
-
end
|
22
|
-
|
23
|
-
def clear_seen
|
24
|
-
@seen = []
|
25
|
-
end
|
26
|
-
|
27
|
-
def match?(exception, klass, message)
|
28
|
-
exception.class == klass and exception.message == message
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
clear
|
33
|
-
end
|
34
|
-
end
|
@@ -1,233 +0,0 @@
|
|
1
|
-
if defined?(Chef::Formatters::Base)
|
2
|
-
class Chef
|
3
|
-
module Formatters
|
4
|
-
class ChefSpec < Base
|
5
|
-
cli_name(:chefspec)
|
6
|
-
|
7
|
-
attr_reader :updated_resources, :updates_by_resource
|
8
|
-
|
9
|
-
def initialize(out, err)
|
10
|
-
super
|
11
|
-
@updated_resources = []
|
12
|
-
@updates_by_resource = Hash.new {|h, k| h[k] = []}
|
13
|
-
end
|
14
|
-
|
15
|
-
def error_expected?(message, exception, *args)
|
16
|
-
ExpectException.expected?(message, exception, *args)
|
17
|
-
end
|
18
|
-
|
19
|
-
# Called at the very start of a Chef Run
|
20
|
-
def run_start(version)
|
21
|
-
puts "Starting Chef Client, version #{version}"
|
22
|
-
end
|
23
|
-
|
24
|
-
# Called at the end of the Chef run.
|
25
|
-
def run_completed(node)
|
26
|
-
end
|
27
|
-
|
28
|
-
# called at the end of a failed run
|
29
|
-
def run_failed(exception)
|
30
|
-
return if error_expected?(:run_failed, exception)
|
31
|
-
puts "chef client failed. #{@updated_resources.size} resources updated"
|
32
|
-
end
|
33
|
-
|
34
|
-
# Called right after ohai runs.
|
35
|
-
def ohai_completed(node)
|
36
|
-
end
|
37
|
-
|
38
|
-
# Already have a client key, assuming this node has registered.
|
39
|
-
def skipping_registration(node_name, config)
|
40
|
-
end
|
41
|
-
|
42
|
-
# About to attempt to register as +node_name+
|
43
|
-
def registration_start(node_name, config)
|
44
|
-
end
|
45
|
-
|
46
|
-
def registration_completed
|
47
|
-
end
|
48
|
-
|
49
|
-
# Failed to register this client with the server.
|
50
|
-
def registration_failed(node_name, exception, config)
|
51
|
-
super unless error_expected?(:registration_failed, exception, config, node_name)
|
52
|
-
end
|
53
|
-
|
54
|
-
def node_load_start(node_name, config)
|
55
|
-
end
|
56
|
-
|
57
|
-
# Failed to load node data from the server
|
58
|
-
def node_load_failed(node_name, exception, config)
|
59
|
-
super unless error_expected?(:node_load_failed, exception)
|
60
|
-
end
|
61
|
-
|
62
|
-
def run_list_expand_failed(expanded_run_list, exception)
|
63
|
-
super unless error_expected?(:run_list_expand_failed, exception, expanded_run_list)
|
64
|
-
end
|
65
|
-
|
66
|
-
# Default and override attrs from roles have been computed, but not yet applied.
|
67
|
-
# Normal attrs from JSON have been added to the node.
|
68
|
-
def node_load_completed(node, expanded_run_list, config)
|
69
|
-
end
|
70
|
-
|
71
|
-
# Called before the cookbook collection is fetched from the server.
|
72
|
-
def cookbook_resolution_start(expanded_run_list)
|
73
|
-
end
|
74
|
-
|
75
|
-
# Called when there is an error getting the cookbook collection from the
|
76
|
-
# server.
|
77
|
-
def cookbook_resolution_failed(expanded_run_list, exception)
|
78
|
-
super unless error_expected?(:cookbook_resolution_failed, exception, expanded_run_list)
|
79
|
-
end
|
80
|
-
|
81
|
-
def cookbook_sync_failed(cookbooks, exception)
|
82
|
-
super unless error_expected?(:cookbook_sync_failed, exception, cookbooks)
|
83
|
-
end
|
84
|
-
|
85
|
-
# Called when the cookbook collection is returned from the server.
|
86
|
-
def cookbook_resolution_complete(cookbook_collection)
|
87
|
-
end
|
88
|
-
|
89
|
-
# Called before unneeded cookbooks are removed
|
90
|
-
#--
|
91
|
-
# TODO: Should be called in CookbookVersion.sync_cookbooks
|
92
|
-
def cookbook_clean_start
|
93
|
-
end
|
94
|
-
|
95
|
-
# Called after the file at +path+ is removed. It may be removed if the
|
96
|
-
# cookbook containing it was removed from the run list, or if the file was
|
97
|
-
# removed from the cookbook.
|
98
|
-
def removed_cookbook_file(path)
|
99
|
-
end
|
100
|
-
|
101
|
-
# Called when cookbook cleaning is finished.
|
102
|
-
def cookbook_clean_complete
|
103
|
-
end
|
104
|
-
|
105
|
-
# Called before cookbook sync starts
|
106
|
-
def cookbook_sync_start(cookbook_count)
|
107
|
-
end
|
108
|
-
|
109
|
-
# Called when cookbook +cookbook_name+ has been sync'd
|
110
|
-
def synchronized_cookbook(cookbook_name)
|
111
|
-
end
|
112
|
-
|
113
|
-
# Called when an individual file in a cookbook has been updated
|
114
|
-
def updated_cookbook_file(cookbook_name, path)
|
115
|
-
end
|
116
|
-
|
117
|
-
# Called after all cookbooks have been sync'd.
|
118
|
-
def cookbook_sync_complete
|
119
|
-
end
|
120
|
-
|
121
|
-
# Called when cookbook loading starts.
|
122
|
-
def library_load_start(file_count)
|
123
|
-
end
|
124
|
-
|
125
|
-
# Called after a file in a cookbook is loaded.
|
126
|
-
def file_loaded(path)
|
127
|
-
end
|
128
|
-
|
129
|
-
def file_load_failed(path, exception, message = :file_load_failed, &block)
|
130
|
-
super(path, exception, &block) unless error_expected?(message, exception, path)
|
131
|
-
end
|
132
|
-
|
133
|
-
def library_file_load_failed(path, exception)
|
134
|
-
file_load_failed(path, exception, :library_file_load_failed)
|
135
|
-
end
|
136
|
-
|
137
|
-
def lwrp_file_load_failed(path, exception)
|
138
|
-
file_load_failed(path, exception, :lwrp_file_load_failed)
|
139
|
-
end
|
140
|
-
|
141
|
-
def attribute_file_load_failed(path, exception)
|
142
|
-
file_load_failed(path, exception, :attribute_file_load_failed)
|
143
|
-
end
|
144
|
-
|
145
|
-
def definition_file_load_failed(path, exception)
|
146
|
-
file_load_failed(path, exception, :definition_file_load_failed)
|
147
|
-
end
|
148
|
-
|
149
|
-
def recipe_file_load_failed(path, exception)
|
150
|
-
file_load_failed(path, exception, :recipe_file_load_failed)
|
151
|
-
end
|
152
|
-
|
153
|
-
# Called when recipes have been loaded.
|
154
|
-
def recipe_load_complete
|
155
|
-
end
|
156
|
-
|
157
|
-
# Called before convergence starts
|
158
|
-
def converge_start(run_context)
|
159
|
-
end
|
160
|
-
|
161
|
-
# Called when the converge phase is finished.
|
162
|
-
def converge_complete
|
163
|
-
end
|
164
|
-
|
165
|
-
# Called before action is executed on a resource.
|
166
|
-
def resource_action_start(resource, action, notification_type=nil, notifier=nil)
|
167
|
-
end
|
168
|
-
|
169
|
-
# Called when a resource fails, but will retry.
|
170
|
-
def resource_failed_retriable(resource, action, retry_count, exception)
|
171
|
-
super unless error_expected?(:resource_failed_retriable, exception, retry_count, action, resource)
|
172
|
-
end
|
173
|
-
|
174
|
-
# Called when a resource fails and will not be retried.
|
175
|
-
def resource_failed(resource, action, exception)
|
176
|
-
super unless error_expected?(:resource, exception, exception, resource)
|
177
|
-
end
|
178
|
-
|
179
|
-
# Called when a resource action has been skipped b/c of a conditional
|
180
|
-
def resource_skipped(resource, action, conditional)
|
181
|
-
end
|
182
|
-
|
183
|
-
# Called after #load_current_resource has run.
|
184
|
-
def resource_current_state_loaded(resource, action, current_resource)
|
185
|
-
end
|
186
|
-
|
187
|
-
# Called when a resource has no converge actions, e.g., it was already correct.
|
188
|
-
def resource_up_to_date(resource, action)
|
189
|
-
end
|
190
|
-
|
191
|
-
## TODO: callback for assertion failures
|
192
|
-
|
193
|
-
## TODO: callback for assertion fallback in why run
|
194
|
-
|
195
|
-
def recipe_not_found(exception)
|
196
|
-
super unless error_expected?(:recipe_not_found, exception)
|
197
|
-
end
|
198
|
-
|
199
|
-
# Called when a change has been made to a resource. May be called multiple
|
200
|
-
# times per resource, e.g., a file may have its content updated, and then
|
201
|
-
# its permissions updated.
|
202
|
-
def resource_update_applied(resource, action, update)
|
203
|
-
@updates_by_resource[resource.name] << Array(update)[0]
|
204
|
-
end
|
205
|
-
|
206
|
-
# Called after a resource has been completely converged.
|
207
|
-
def resource_updated(resource, action)
|
208
|
-
updated_resources << resource
|
209
|
-
end
|
210
|
-
|
211
|
-
# Called before handlers run
|
212
|
-
def handlers_start(handler_count)
|
213
|
-
end
|
214
|
-
|
215
|
-
# Called after an individual handler has run
|
216
|
-
def handler_executed(handler)
|
217
|
-
end
|
218
|
-
|
219
|
-
# Called after all handlers have executed
|
220
|
-
def handlers_completed
|
221
|
-
end
|
222
|
-
|
223
|
-
# An uncategorized message. This supports the case that a user needs to
|
224
|
-
# pass output that doesn't fit into one of the callbacks above. Note that
|
225
|
-
# there's no semantic information about the content or importance of the
|
226
|
-
# message. That means that if you're using this too often, you should add a
|
227
|
-
# callback for it.
|
228
|
-
def msg(message)
|
229
|
-
end
|
230
|
-
end
|
231
|
-
end
|
232
|
-
end
|
233
|
-
end
|