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

Sign up to get free protection for your applications and to get access to all the features.
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