compat_resource 12.5.19 → 12.5.20
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 +4 -4
- data/files/lib/chef_compat/copied_from_chef/chef/property.rb +43 -10
- data/files/lib/chef_compat/copied_from_chef/chef/resource.rb +20 -17
- data/files/lib/chef_compat/copied_from_chef/chef/resource/action_class.rb +4 -0
- data/files/lib/compat_resource/version.rb +1 -1
- data/files/spec/data/Gemfile.lock +17 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcc44231613d35471cb0378bd77c57cdcf7f788b
|
4
|
+
data.tar.gz: 67886e5fff8f5c789dbdefb320966dd0a0534d32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 620e7fb90243c24c3ec80cfe532e8d67634a93253e27e8724a0fa48c0246203783864034857195fa6eb2cb99bd87dc48e204d7a99ede6c64a42116279d2c92db
|
7
|
+
data.tar.gz: e6e2986f4ffe22a66fa138718d19f030145d0baf2070a4ab5403d297164942c015eceb9b0fbe0d9b875ef2c585745bca682d1d677a3742cc26baa1dece0edf71
|
@@ -120,6 +120,10 @@ super if defined?(::Chef::Property)
|
|
120
120
|
options[:instance_variable_name] = options[:instance_variable_name].to_sym if options[:instance_variable_name]
|
121
121
|
end
|
122
122
|
|
123
|
+
def to_s
|
124
|
+
name
|
125
|
+
end
|
126
|
+
|
123
127
|
#
|
124
128
|
# The name of this property.
|
125
129
|
#
|
@@ -251,16 +255,19 @@ super if defined?(::Chef::Property)
|
|
251
255
|
return get(resource)
|
252
256
|
end
|
253
257
|
|
254
|
-
# myprop nil is sometimes a get (backcompat)
|
255
258
|
if value.nil? && !explicitly_accepts_nil?(resource)
|
256
|
-
#
|
257
|
-
#
|
258
|
-
|
259
|
-
|
259
|
+
# In Chef 12, value(nil) does a *get* instead of a set, so we
|
260
|
+
# warn if the value would have been changed. In Chef 13, it will be
|
261
|
+
# equivalent to value = nil.
|
262
|
+
result = get(resource)
|
263
|
+
if !result.nil?
|
264
|
+
Chef.log_deprecation("#{name} nil currently does not overwrite the value of #{name}. This will change in Chef 13, and the value will be set to nil instead. Please change your code to explicitly accept nil using \"property :#{name}, [MyType, nil]\", or stop setting this value to nil.")
|
265
|
+
end
|
266
|
+
result
|
267
|
+
else
|
268
|
+
# Anything else, such as myprop(value) is a set
|
269
|
+
set(resource, value)
|
260
270
|
end
|
261
|
-
|
262
|
-
# Anything else (myprop value) is a set
|
263
|
-
set(resource, value)
|
264
271
|
end
|
265
272
|
|
266
273
|
#
|
@@ -296,6 +303,28 @@ super if defined?(::Chef::Property)
|
|
296
303
|
value
|
297
304
|
|
298
305
|
else
|
306
|
+
# If the user does something like this:
|
307
|
+
#
|
308
|
+
# ```
|
309
|
+
# class MyResource < Chef::Resource
|
310
|
+
# property :content
|
311
|
+
# action :create do
|
312
|
+
# file '/x.txt' do
|
313
|
+
# content content
|
314
|
+
# end
|
315
|
+
# end
|
316
|
+
# end
|
317
|
+
# ```
|
318
|
+
#
|
319
|
+
# It won't do what they expect. This checks whether you try to *read*
|
320
|
+
# `content` while we are compiling the resource.
|
321
|
+
if resource.respond_to?(:enclosing_provider) && resource.enclosing_provider &&
|
322
|
+
!resource.currently_running_action &&
|
323
|
+
!name_property? &&
|
324
|
+
resource.enclosing_provider.respond_to?(name)
|
325
|
+
Chef::Log.warn("#{Chef::Log.caller_location}: property #{name} is declared in both #{resource} and #{resource.enclosing_provider}. Use new_resource.#{name} instead. At #{Chef::Log.caller_location}")
|
326
|
+
end
|
327
|
+
|
299
328
|
if has_default?
|
300
329
|
value = default
|
301
330
|
if value.is_a?(DelayedEvaluator)
|
@@ -452,18 +481,22 @@ super if defined?(::Chef::Property)
|
|
452
481
|
# stack trace if you use `define_method`.
|
453
482
|
declared_in.class_eval <<-EOM, __FILE__, __LINE__+1
|
454
483
|
def #{name}(value=NOT_PASSED)
|
484
|
+
raise "Property #{name} of \#{self} cannot be passed a block! If you meant to create a resource named #{name} instead, you'll need to first rename the property." if block_given?
|
455
485
|
self.class.properties[#{name.inspect}].call(self, value)
|
456
486
|
end
|
457
487
|
def #{name}=(value)
|
488
|
+
raise "Property #{name} of \#{self} cannot be passed a block! If you meant to create a resource named #{name} instead, you'll need to first rename the property." if block_given?
|
458
489
|
self.class.properties[#{name.inspect}].set(self, value)
|
459
490
|
end
|
460
491
|
EOM
|
461
492
|
rescue SyntaxError
|
462
493
|
# If the name is not a valid ruby name, we use define_method.
|
463
|
-
declared_in.define_method(name) do |value=NOT_PASSED|
|
494
|
+
declared_in.define_method(name) do |value=NOT_PASSED, &block|
|
495
|
+
raise "Property #{name} of #{self} cannot be passed a block! If you meant to create a resource named #{name} instead, you'll need to first rename the property." if block
|
464
496
|
self.class.properties[name].call(self, value)
|
465
497
|
end
|
466
|
-
declared_in.define_method("#{name}=") do |value|
|
498
|
+
declared_in.define_method("#{name}=") do |value, &block|
|
499
|
+
raise "Property #{name} of #{self} cannot be passed a block! If you meant to create a resource named #{name} instead, you'll need to first rename the property." if block
|
467
500
|
self.class.properties[name].set(self, value)
|
468
501
|
end
|
469
502
|
end
|
@@ -150,26 +150,29 @@ super if defined?(::Chef::Resource)
|
|
150
150
|
def current_value_does_not_exist!
|
151
151
|
raise Chef::Exceptions::CurrentValueDoesNotExist
|
152
152
|
end
|
153
|
-
def self.action_class
|
154
|
-
@action_class
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
end
|
159
|
-
end
|
160
|
-
def self.declare_action_class
|
161
|
-
return @action_class if @action_class
|
162
|
-
|
163
|
-
if superclass.respond_to?(:action_class)
|
164
|
-
base_provider = superclass.action_class
|
153
|
+
def self.action_class(&block)
|
154
|
+
return @action_class if @action_class && !block
|
155
|
+
# If the superclass needed one, then we need one as well.
|
156
|
+
if block || (superclass.respond_to?(:action_class) && superclass.action_class)
|
157
|
+
@action_class = declare_action_class(&block)
|
165
158
|
end
|
166
|
-
|
159
|
+
@action_class
|
160
|
+
end
|
161
|
+
def self.declare_action_class(&block)
|
162
|
+
@action_class ||= begin
|
163
|
+
if superclass.respond_to?(:action_class)
|
164
|
+
base_provider = superclass.action_class
|
165
|
+
end
|
166
|
+
base_provider ||= Chef::Provider
|
167
167
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
168
|
+
resource_class = self
|
169
|
+
Class.new(base_provider) do
|
170
|
+
include ActionClass
|
171
|
+
self.resource_class = resource_class
|
172
|
+
end
|
172
173
|
end
|
174
|
+
@action_class.class_eval(&block) if block
|
175
|
+
@action_class
|
173
176
|
end
|
174
177
|
FORBIDDEN_IVARS = [:@run_context, :@not_if, :@only_if, :@enclosing_provider]
|
175
178
|
HIDDEN_IVARS = [:@allowed_actions, :@resource_name, :@source_line, :@run_context, :@name, :@not_if, :@only_if, :@elapsed_time, :@enclosing_provider]
|
@@ -25,6 +25,10 @@ class Chef < (defined?(::Chef) ? ::Chef : Object)
|
|
25
25
|
class Resource < (defined?(::Chef::Resource) ? ::Chef::Resource : Object)
|
26
26
|
module ActionClass
|
27
27
|
CopiedFromChef.extend_chef_module(::Chef::Resource::ActionClass, self) if defined?(::Chef::Resource::ActionClass)
|
28
|
+
def to_s
|
29
|
+
"#{new_resource || "<no resource>"} action #{action ? action.inspect : "<no action>"}"
|
30
|
+
end
|
31
|
+
|
28
32
|
#
|
29
33
|
# If load_current_value! is defined on the resource, use that.
|
30
34
|
#
|
@@ -1,8 +1,10 @@
|
|
1
|
-
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/chef/chef.git
|
3
|
+
revision: ac73c07e4183a083b5ca9a6fbe0ec5a9f9177219
|
4
|
+
branch: master
|
2
5
|
specs:
|
3
|
-
|
4
|
-
|
5
|
-
chef-config (= 12.5.1)
|
6
|
+
chef (12.6.0)
|
7
|
+
chef-config (= 12.6.0)
|
6
8
|
chef-zero (~> 4.2, >= 4.2.2)
|
7
9
|
diff-lcs (~> 1.2, >= 1.2.4)
|
8
10
|
erubis (~> 2.7)
|
@@ -16,17 +18,22 @@ GEM
|
|
16
18
|
net-ssh-multi (~> 1.1)
|
17
19
|
ohai (>= 8.6.0.alpha.1, < 9)
|
18
20
|
plist (~> 3.1.0)
|
21
|
+
proxifier (~> 1.0)
|
19
22
|
pry (~> 0.9)
|
20
|
-
rspec-core (~> 3.
|
21
|
-
rspec-expectations (~> 3.
|
22
|
-
rspec-mocks (~> 3.
|
23
|
+
rspec-core (~> 3.4)
|
24
|
+
rspec-expectations (~> 3.4)
|
25
|
+
rspec-mocks (~> 3.4)
|
23
26
|
rspec_junit_formatter (~> 0.2.0)
|
24
27
|
serverspec (~> 2.7)
|
25
28
|
specinfra (~> 2.10)
|
26
29
|
syslog-logger (~> 1.6)
|
27
|
-
chef-config (12.
|
30
|
+
chef-config (12.6.0)
|
28
31
|
mixlib-config (~> 2.0)
|
29
32
|
mixlib-shellout (~> 2.0)
|
33
|
+
|
34
|
+
GEM
|
35
|
+
specs:
|
36
|
+
builder (3.2.2)
|
30
37
|
chef-zero (4.3.2)
|
31
38
|
ffi-yajl (~> 2.2)
|
32
39
|
hashie (>= 2.0, < 4.0)
|
@@ -73,6 +80,7 @@ GEM
|
|
73
80
|
systemu (~> 2.6.4)
|
74
81
|
wmi-lite (~> 1.0)
|
75
82
|
plist (3.1.0)
|
83
|
+
proxifier (1.0.3)
|
76
84
|
pry (0.10.3)
|
77
85
|
coderay (~> 1.1.0)
|
78
86
|
method_source (~> 0.8.1)
|
@@ -119,7 +127,7 @@ PLATFORMS
|
|
119
127
|
ruby
|
120
128
|
|
121
129
|
DEPENDENCIES
|
122
|
-
chef
|
130
|
+
chef!
|
123
131
|
|
124
132
|
BUNDLED WITH
|
125
133
|
1.10.6
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compat_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.5.
|
4
|
+
version: 12.5.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Keiser
|
8
8
|
autorequire:
|
9
9
|
bindir: files/bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|