chef 0.10.6.beta.2 → 0.10.6.beta.3

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.
Files changed (56) hide show
  1. data/distro/common/html/chef-client.8.html +4 -4
  2. data/distro/common/html/chef-expander.8.html +4 -4
  3. data/distro/common/html/chef-expanderctl.8.html +4 -4
  4. data/distro/common/html/chef-server-webui.8.html +4 -4
  5. data/distro/common/html/chef-server.8.html +4 -4
  6. data/distro/common/html/chef-solo.8.html +4 -4
  7. data/distro/common/html/chef-solr.8.html +4 -4
  8. data/distro/common/html/knife-bootstrap.1.html +4 -4
  9. data/distro/common/html/knife-client.1.html +4 -4
  10. data/distro/common/html/knife-configure.1.html +4 -4
  11. data/distro/common/html/knife-cookbook-site.1.html +4 -4
  12. data/distro/common/html/knife-cookbook.1.html +4 -4
  13. data/distro/common/html/knife-data-bag.1.html +4 -4
  14. data/distro/common/html/knife-environment.1.html +4 -4
  15. data/distro/common/html/knife-exec.1.html +4 -4
  16. data/distro/common/html/knife-index.1.html +4 -4
  17. data/distro/common/html/knife-node.1.html +4 -4
  18. data/distro/common/html/knife-role.1.html +4 -4
  19. data/distro/common/html/knife-search.1.html +4 -4
  20. data/distro/common/html/knife-ssh.1.html +4 -4
  21. data/distro/common/html/knife-status.1.html +4 -4
  22. data/distro/common/html/knife-tag.1.html +4 -4
  23. data/distro/common/html/knife.1.html +4 -4
  24. data/distro/common/html/shef.1.html +4 -4
  25. data/distro/common/man/man1/knife-bootstrap.1 +1 -1
  26. data/distro/common/man/man1/knife-client.1 +1 -1
  27. data/distro/common/man/man1/knife-configure.1 +1 -1
  28. data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
  29. data/distro/common/man/man1/knife-cookbook.1 +1 -1
  30. data/distro/common/man/man1/knife-data-bag.1 +1 -1
  31. data/distro/common/man/man1/knife-environment.1 +1 -1
  32. data/distro/common/man/man1/knife-exec.1 +1 -1
  33. data/distro/common/man/man1/knife-index.1 +1 -1
  34. data/distro/common/man/man1/knife-node.1 +1 -1
  35. data/distro/common/man/man1/knife-role.1 +1 -1
  36. data/distro/common/man/man1/knife-search.1 +1 -1
  37. data/distro/common/man/man1/knife-ssh.1 +1 -1
  38. data/distro/common/man/man1/knife-status.1 +1 -1
  39. data/distro/common/man/man1/knife-tag.1 +1 -1
  40. data/distro/common/man/man1/knife.1 +1 -1
  41. data/distro/common/man/man1/shef.1 +1 -1
  42. data/distro/common/man/man8/chef-client.8 +1 -1
  43. data/distro/common/man/man8/chef-expander.8 +1 -1
  44. data/distro/common/man/man8/chef-expanderctl.8 +1 -1
  45. data/distro/common/man/man8/chef-server-webui.8 +1 -1
  46. data/distro/common/man/man8/chef-server.8 +1 -1
  47. data/distro/common/man/man8/chef-solo.8 +1 -1
  48. data/distro/common/man/man8/chef-solr.8 +1 -1
  49. data/lib/chef/mixin/command.rb +0 -58
  50. data/lib/chef/provider/package/freebsd.rb +1 -1
  51. data/lib/chef/resource.rb +62 -40
  52. data/lib/chef/resource/conditional.rb +90 -0
  53. data/lib/chef/rest.rb +8 -0
  54. data/lib/chef/version.rb +1 -1
  55. data/lib/chef/version_class.rb +1 -1
  56. metadata +85 -40
@@ -0,0 +1,90 @@
1
+ #
2
+ # Author:: Daniel DeLeo (<dan@opscode.com>)
3
+ # Copyright:: Copyright (c) 2011 Opscode, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'chef/mixin/shell_out'
20
+
21
+ class Chef
22
+ class Resource
23
+ class Conditional
24
+ include Chef::Mixin::ShellOut
25
+
26
+ # We only create these via the `not_if` or `only_if` constructors, and
27
+ # not the default constructor
28
+ class << self
29
+ private :new
30
+ end
31
+
32
+ def self.not_if(command=nil, command_opts={}, &block)
33
+ new(:not_if, command, command_opts, &block)
34
+ end
35
+
36
+ def self.only_if(command=nil, command_opts={}, &block)
37
+ new(:only_if, command, command_opts, &block)
38
+ end
39
+
40
+ attr_reader :positivity
41
+ attr_reader :command
42
+ attr_reader :command_opts
43
+ attr_reader :block
44
+
45
+ def initialize(positivity, command=nil, command_opts={}, &block)
46
+ @positivity = positivity
47
+ case command
48
+ when String
49
+ @command, @command_opts = command, command_opts
50
+ @block = nil
51
+ when nil
52
+ raise ArgumentError, "only_if/not_if requires either a command or a block" unless block_given?
53
+ @command, @command_opts = nil, nil
54
+ @block = block
55
+ else
56
+ raise ArgumentError, "Invalid only_if/not_if command: #{command.inspect} (#{command.class})"
57
+ end
58
+ end
59
+
60
+ def continue?
61
+ case @positivity
62
+ when :only_if
63
+ evaluate
64
+ when :not_if
65
+ !evaluate
66
+ else
67
+ raise "Cannot evaluate resource conditional of type #{@positivity}"
68
+ end
69
+ end
70
+
71
+ def evaluate
72
+ @command ? evaluate_command : evaluate_block
73
+ end
74
+
75
+ def evaluate_command
76
+ shell_out(@command, @command_opts).status.success?
77
+ end
78
+
79
+ def evaluate_block
80
+ @block.call
81
+ end
82
+
83
+ def description
84
+ cmd_or_block = @command ? "command `#{@command}`" : "ruby block"
85
+ "#{@positivity} #{cmd_or_block}"
86
+ end
87
+
88
+ end
89
+ end
90
+ end
@@ -167,6 +167,10 @@ class Chef
167
167
  # Will return the body of the response on success.
168
168
  def run_request(method, url, headers={}, data=false, limit=nil, raw=false)
169
169
  json_body = data ? Chef::JSONCompat.to_json(data) : nil
170
+ # Force encoding to binary to fix SSL related EOFErrors
171
+ # cf. http://tickets.opscode.com/browse/CHEF-2363
172
+ # http://redmine.ruby-lang.org/issues/5233
173
+ json_body.force_encoding(Encoding::BINARY) if json_body.respond_to?(:force_encoding)
170
174
  headers = build_headers(method, url, headers, json_body, raw)
171
175
 
172
176
  tf = nil
@@ -213,6 +217,10 @@ class Chef
213
217
  # Runs an HTTP request to a JSON API. File Download not supported.
214
218
  def api_request(method, url, headers={}, data=false)
215
219
  json_body = data ? Chef::JSONCompat.to_json(data) : nil
220
+ # Force encoding to binary to fix SSL related EOFErrors
221
+ # cf. http://tickets.opscode.com/browse/CHEF-2363
222
+ # http://redmine.ruby-lang.org/issues/5233
223
+ json_body.force_encoding(Encoding::BINARY) if json_body.respond_to?(:force_encoding)
216
224
  headers = build_headers(method, url, headers, json_body)
217
225
 
218
226
  retriable_rest_request(method, url, json_body, headers) do |rest_request|
@@ -17,7 +17,7 @@
17
17
 
18
18
  class Chef
19
19
  CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__)))
20
- VERSION = '0.10.6.beta.2'
20
+ VERSION = '0.10.6.beta.3'
21
21
  end
22
22
 
23
23
  # NOTE: the Chef::Version class is defined in version_class.rb
@@ -21,7 +21,7 @@ class Chef
21
21
  attr_reader :major, :minor, :patch
22
22
 
23
23
  def initialize(str="")
24
- @major, @minor, @patch = parse(str)
24
+ parse(str)
25
25
  end
26
26
 
27
27
  def inspect
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.6.beta.2
4
+ version: 0.10.6.beta.3
5
5
  prerelease: 7
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-01 00:00:00.000000000 Z
12
+ date: 2011-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mixlib-config
16
- requirement: &70340395936060 !ruby/object:Gem::Requirement
16
+ requirement: &70321173274180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.1.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70340395936060
24
+ version_requirements: *70321173274180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mixlib-cli
27
- requirement: &70340395935520 !ruby/object:Gem::Requirement
27
+ requirement: &70321173273600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.1.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70340395935520
35
+ version_requirements: *70321173273600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mixlib-log
38
- requirement: &70340395935040 !ruby/object:Gem::Requirement
38
+ requirement: &70321173272540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70340395935040
46
+ version_requirements: *70321173272540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mixlib-authentication
49
- requirement: &70340395934560 !ruby/object:Gem::Requirement
49
+ requirement: &70321173271420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.1.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70340395934560
57
+ version_requirements: *70321173271420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: ohai
60
- requirement: &70340395934080 !ruby/object:Gem::Requirement
60
+ requirement: &70321173270620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.6.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70340395934080
68
+ version_requirements: *70321173270620
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rest-client
71
- requirement: &70340395933520 !ruby/object:Gem::Requirement
71
+ requirement: &70321173269660 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: 1.7.0
80
80
  type: :runtime
81
81
  prerelease: false
82
- version_requirements: *70340395933520
82
+ version_requirements: *70321173269660
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bunny
85
- requirement: &70340395932760 !ruby/object:Gem::Requirement
85
+ requirement: &70321173268900 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ! '>='
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: 0.6.0
91
91
  type: :runtime
92
92
  prerelease: false
93
- version_requirements: *70340395932760
93
+ version_requirements: *70321173268900
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: json
96
- requirement: &70340395932240 !ruby/object:Gem::Requirement
96
+ requirement: &70321173268400 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ! '>='
@@ -104,10 +104,10 @@ dependencies:
104
104
  version: 1.6.1
105
105
  type: :runtime
106
106
  prerelease: false
107
- version_requirements: *70340395932240
107
+ version_requirements: *70321173268400
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: treetop
110
- requirement: &70340395931520 !ruby/object:Gem::Requirement
110
+ requirement: &70321173267660 !ruby/object:Gem::Requirement
111
111
  none: false
112
112
  requirements:
113
113
  - - ~>
@@ -115,10 +115,10 @@ dependencies:
115
115
  version: 1.4.9
116
116
  type: :runtime
117
117
  prerelease: false
118
- version_requirements: *70340395931520
118
+ version_requirements: *70321173267660
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: net-ssh
121
- requirement: &70340395931060 !ruby/object:Gem::Requirement
121
+ requirement: &70321173267200 !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements:
124
124
  - - ~>
@@ -126,10 +126,10 @@ dependencies:
126
126
  version: 2.1.3
127
127
  type: :runtime
128
128
  prerelease: false
129
- version_requirements: *70340395931060
129
+ version_requirements: *70321173267200
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: net-ssh-multi
132
- requirement: &70340395930600 !ruby/object:Gem::Requirement
132
+ requirement: &70321173266740 !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements:
135
135
  - - ~>
@@ -137,10 +137,10 @@ dependencies:
137
137
  version: 1.1.0
138
138
  type: :runtime
139
139
  prerelease: false
140
- version_requirements: *70340395930600
140
+ version_requirements: *70321173266740
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: erubis
143
- requirement: &70340395930100 !ruby/object:Gem::Requirement
143
+ requirement: &70321173266280 !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements:
146
146
  - - ! '>='
@@ -148,10 +148,10 @@ dependencies:
148
148
  version: '0'
149
149
  type: :runtime
150
150
  prerelease: false
151
- version_requirements: *70340395930100
151
+ version_requirements: *70321173266280
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: moneta
154
- requirement: &70340395929660 !ruby/object:Gem::Requirement
154
+ requirement: &70321173265840 !ruby/object:Gem::Requirement
155
155
  none: false
156
156
  requirements:
157
157
  - - ! '>='
@@ -159,10 +159,10 @@ dependencies:
159
159
  version: '0'
160
160
  type: :runtime
161
161
  prerelease: false
162
- version_requirements: *70340395929660
162
+ version_requirements: *70321173265840
163
163
  - !ruby/object:Gem::Dependency
164
164
  name: highline
165
- requirement: &70340395929260 !ruby/object:Gem::Requirement
165
+ requirement: &70321173265400 !ruby/object:Gem::Requirement
166
166
  none: false
167
167
  requirements:
168
168
  - - ! '>='
@@ -170,10 +170,10 @@ dependencies:
170
170
  version: '0'
171
171
  type: :runtime
172
172
  prerelease: false
173
- version_requirements: *70340395929260
173
+ version_requirements: *70321173265400
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: uuidtools
176
- requirement: &70340395928780 !ruby/object:Gem::Requirement
176
+ requirement: &70321173265000 !ruby/object:Gem::Requirement
177
177
  none: false
178
178
  requirements:
179
179
  - - ! '>='
@@ -181,10 +181,54 @@ dependencies:
181
181
  version: '0'
182
182
  type: :runtime
183
183
  prerelease: false
184
- version_requirements: *70340395928780
184
+ version_requirements: *70321173265000
185
+ - !ruby/object:Gem::Dependency
186
+ name: rdoc
187
+ requirement: &70321173264400 !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: *70321173264400
196
+ - !ruby/object:Gem::Dependency
197
+ name: sdoc
198
+ requirement: &70321173264000 !ruby/object:Gem::Requirement
199
+ none: false
200
+ requirements:
201
+ - - ! '>='
202
+ - !ruby/object:Gem::Version
203
+ version: '0'
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: *70321173264000
207
+ - !ruby/object:Gem::Dependency
208
+ name: ronn
209
+ requirement: &70321173263600 !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: *70321173263600
218
+ - !ruby/object:Gem::Dependency
219
+ name: rake
220
+ requirement: &70321173263180 !ruby/object:Gem::Requirement
221
+ none: false
222
+ requirements:
223
+ - - ! '>='
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: *70321173263180
185
229
  - !ruby/object:Gem::Dependency
186
230
  name: dep_selector
187
- requirement: &70340395928220 !ruby/object:Gem::Requirement
231
+ requirement: &70321173262780 !ruby/object:Gem::Requirement
188
232
  none: false
189
233
  requirements:
190
234
  - - ! '>='
@@ -192,10 +236,10 @@ dependencies:
192
236
  version: '0'
193
237
  type: :development
194
238
  prerelease: false
195
- version_requirements: *70340395928220
239
+ version_requirements: *70321173262780
196
240
  - !ruby/object:Gem::Dependency
197
241
  name: rspec-core
198
- requirement: &70340395927800 !ruby/object:Gem::Requirement
242
+ requirement: &70321173262380 !ruby/object:Gem::Requirement
199
243
  none: false
200
244
  requirements:
201
245
  - - ! '>='
@@ -203,10 +247,10 @@ dependencies:
203
247
  version: '0'
204
248
  type: :development
205
249
  prerelease: false
206
- version_requirements: *70340395927800
250
+ version_requirements: *70321173262380
207
251
  - !ruby/object:Gem::Dependency
208
252
  name: rspec-expectations
209
- requirement: &70340395927400 !ruby/object:Gem::Requirement
253
+ requirement: &70321173261980 !ruby/object:Gem::Requirement
210
254
  none: false
211
255
  requirements:
212
256
  - - ! '>='
@@ -214,10 +258,10 @@ dependencies:
214
258
  version: '0'
215
259
  type: :development
216
260
  prerelease: false
217
- version_requirements: *70340395927400
261
+ version_requirements: *70321173261980
218
262
  - !ruby/object:Gem::Dependency
219
263
  name: rspec-mocks
220
- requirement: &70340395927000 !ruby/object:Gem::Requirement
264
+ requirement: &70321173261580 !ruby/object:Gem::Requirement
221
265
  none: false
222
266
  requirements:
223
267
  - - ! '>='
@@ -225,7 +269,7 @@ dependencies:
225
269
  version: '0'
226
270
  type: :development
227
271
  prerelease: false
228
- version_requirements: *70340395927000
272
+ version_requirements: *70321173261580
229
273
  description: A systems integration framework, built to bring the benefits of configuration
230
274
  management to your entire infrastructure.
231
275
  email: adam@opscode.com
@@ -593,6 +637,7 @@ files:
593
637
  - lib/chef/resource/apt_package.rb
594
638
  - lib/chef/resource/bash.rb
595
639
  - lib/chef/resource/breakpoint.rb
640
+ - lib/chef/resource/conditional.rb
596
641
  - lib/chef/resource/cookbook_file.rb
597
642
  - lib/chef/resource/cron.rb
598
643
  - lib/chef/resource/csh.rb