chef-sugar 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +2 -2
- data/lib/chef/sugar.rb +1 -0
- data/lib/chef/sugar/filters.rb +89 -5
- data/lib/chef/sugar/version.rb +1 -1
- metadata +2 -3
- data/.hound.yml +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a4445aeb371367f5395edf0f995fd4f52e6314a
|
4
|
+
data.tar.gz: 92dcd636d49954fd5095234337e363905a402c69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c97a0235cba4f0600e1f7213edfb881443a37867962a89d878d3b9976e0dc3b8198a7440a17ca0a7cf8d78a365e1b0653aedd915cea4d0a8a1aad06a0352b35
|
7
|
+
data.tar.gz: 067a00297c93cbb0ad32842070f7b0002e39703f7a13881d8a8c36931b56fdfd6e7da2e34c77dd3d16485ffb036431f117dafd50f9005367cf9fd64f595fca5b
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@ Chef Sugar Changelog
|
|
2
2
|
=========================
|
3
3
|
This file is used to list changes made in each version of the chef-sugar cookbook and gem.
|
4
4
|
|
5
|
+
v3.0.1 (2015-03-20)
|
6
|
+
-------------------
|
7
|
+
### Breaking Changes
|
8
|
+
- Rename `compile_time` `to at_compile_time` - if your recipes are affected by
|
9
|
+
this breaking change, your Chef Client run will produce a verbose error
|
10
|
+
message with details on how to fix the error.
|
11
|
+
|
5
12
|
v3.0.0 (2015-03-17)
|
6
13
|
-------------------
|
7
14
|
### Breaking Changes
|
data/README.md
CHANGED
@@ -412,13 +412,13 @@ end
|
|
412
412
|
```
|
413
413
|
|
414
414
|
### Filters
|
415
|
-
- `
|
415
|
+
- `at_compile_time` - accepts a block of resources to run at compile time
|
416
416
|
- `before` - insert resource in the collection before the given resource
|
417
417
|
- `after` - insert resource in the collection after the given resource
|
418
418
|
|
419
419
|
#### Examples
|
420
420
|
```ruby
|
421
|
-
|
421
|
+
at_compile_time do
|
422
422
|
package 'apache2'
|
423
423
|
end
|
424
424
|
|
data/lib/chef/sugar.rb
CHANGED
data/lib/chef/sugar/filters.rb
CHANGED
@@ -4,7 +4,7 @@ class Chef
|
|
4
4
|
#
|
5
5
|
# Evaluate resources at compile time instead of converge time.
|
6
6
|
#
|
7
|
-
class
|
7
|
+
class AtCompileTime
|
8
8
|
def initialize(recipe)
|
9
9
|
@recipe = recipe
|
10
10
|
end
|
@@ -94,19 +94,19 @@ class Chef
|
|
94
94
|
# end.run_action(:install)
|
95
95
|
#
|
96
96
|
# @example The new way
|
97
|
-
#
|
97
|
+
# at_compile_time do
|
98
98
|
# package('apache2')
|
99
99
|
# end
|
100
100
|
#
|
101
101
|
# @example Resource actions are run in order
|
102
|
-
#
|
102
|
+
# at_compile_time do
|
103
103
|
# service 'apache2' do
|
104
104
|
# action [:enable, :start] # run_action(:enable), run_action(:start)
|
105
105
|
# end
|
106
106
|
# end
|
107
107
|
#
|
108
|
-
def
|
109
|
-
Chef::Sugar::Filters::
|
108
|
+
def at_compile_time(&block)
|
109
|
+
Chef::Sugar::Filters::AtCompileTime.new(self).evaluate(&block)
|
110
110
|
end
|
111
111
|
|
112
112
|
#
|
@@ -149,5 +149,89 @@ class Chef
|
|
149
149
|
Chef::Sugar::Filters::Injector.new(self, identifier, :after).evaluate(&block)
|
150
150
|
end
|
151
151
|
end
|
152
|
+
|
153
|
+
module RecipeDSL
|
154
|
+
#
|
155
|
+
# @deprecated The description is in the method body pretty accurately...
|
156
|
+
#
|
157
|
+
def compile_time(&block)
|
158
|
+
message = <<-EOH
|
159
|
+
|
160
|
+
The Chef Sugar recipe DSL method `compile_time' has been renamed to
|
161
|
+
`at_compile_time'! This is a breaking change that was released in a patch
|
162
|
+
version, so please continue reading to understand the necessary semantic
|
163
|
+
versioning violation.
|
164
|
+
|
165
|
+
Despite having existed since October 15, 2013 (b4d4c0e) and being one of the
|
166
|
+
most widely used cookbooks in the Chef ecosystem, Chef Software decided to
|
167
|
+
implement their own version of `compile_time' in Chef 12.1, breaking any cookbook
|
168
|
+
that uses or depends on Chef Sugar on Chef 12.1:
|
169
|
+
|
170
|
+
https://www.chef.io/blog/2015/03/03/chef-12-1-0-released
|
171
|
+
|
172
|
+
As is common with Chef-ecosystem tooling, no warning was given, and maintainers
|
173
|
+
are left to pick up the pieces from upset Chef users who get rather bespoke
|
174
|
+
error messages now:
|
175
|
+
|
176
|
+
https://github.com/sethvargo/chef-sugar/issues/89
|
177
|
+
https://github.com/opscode-cookbooks/xml/issues/22
|
178
|
+
https://github.com/opscode-cookbooks/aws/pull/110
|
179
|
+
|
180
|
+
In order to progress Chef Sugar forward, the DSL method has been renamed to
|
181
|
+
avoid the namespace collision.
|
182
|
+
|
183
|
+
In short, you should change this:
|
184
|
+
|
185
|
+
compile_time do
|
186
|
+
# ...
|
187
|
+
end
|
188
|
+
|
189
|
+
to this:
|
190
|
+
|
191
|
+
at_compile_time do
|
192
|
+
# ...
|
193
|
+
end
|
194
|
+
|
195
|
+
EOH
|
196
|
+
|
197
|
+
if Chef::Resource::ChefGem.instance_methods(false).include?(:compile_time)
|
198
|
+
message << <<-EOH
|
199
|
+
You are running a version of Chef Client that includes the `compile_time'
|
200
|
+
attribute on core Chef resources (most likely Chef 12.1+). Instead of continuing
|
201
|
+
and having Chef provide you with an obscure error message, I am going to error
|
202
|
+
here. There is no way for the Chef Recipe to successfully continue unless you
|
203
|
+
change the Chef Sugar `compile_time' method to `at_compile_time' in your Chef
|
204
|
+
recipes.
|
205
|
+
|
206
|
+
You should NOT change resource-level `compile_time' attributes:
|
207
|
+
|
208
|
+
package "foo" do
|
209
|
+
compile_time true # Do NOT change these
|
210
|
+
end
|
211
|
+
|
212
|
+
I truly apologize for the inconvienence and hope the reason for introducing this
|
213
|
+
breaking change is clear. I am sorry if it causes extra work, but I promise this
|
214
|
+
error message is much more informative that "wrong number of arguments".
|
215
|
+
|
216
|
+
If you have any questions, please feel free to open an issue on GitHub at:
|
217
|
+
|
218
|
+
https://github.com/sethvargo/chef-sugar
|
219
|
+
|
220
|
+
Thank you, and have a great day!
|
221
|
+
EOH
|
222
|
+
raise RuntimeError, message
|
223
|
+
else
|
224
|
+
message << <<-EOH
|
225
|
+
You are running a version of Chef Client that does not include the
|
226
|
+
`compile_time' attribute on core Chef resources (most likely less than
|
227
|
+
Chef 12.1), so this is just a warning. Please consider changing the Chef Sugar
|
228
|
+
`compile_time' method to `at_compile_time' in your Chef recipes. If you upgrade
|
229
|
+
Chef, your recipes WILL break.
|
230
|
+
EOH
|
231
|
+
Chef::Log.warn(message)
|
232
|
+
at_compile_time(&block)
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
152
236
|
end
|
153
237
|
end
|
data/lib/chef/sugar/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-sugar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Vargo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -90,7 +90,6 @@ extensions: []
|
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
92
|
- ".gitignore"
|
93
|
-
- ".hound.yml"
|
94
93
|
- ".kitchen.yml"
|
95
94
|
- ".travis.yml"
|
96
95
|
- CHANGELOG.md
|
data/.hound.yml
DELETED