chef 0.7.16 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of chef might be problematic. Click here for more details.
- data/README.rdoc +11 -10
- data/bin/chef-client +2 -2
- data/bin/chef-solo +1 -1
- data/bin/knife +27 -0
- data/bin/shef +49 -0
- data/distro/README +2 -0
- data/distro/{debian → common}/man/man1/chef-indexer.1 +0 -0
- data/distro/{debian → common}/man/man1/chef-server.1 +0 -0
- data/distro/{debian → common}/man/man8/chef-client.8 +0 -0
- data/distro/{debian → common}/man/man8/chef-solo.8 +0 -0
- data/distro/common/man/man8/knife.8 +375 -0
- data/distro/redhat/etc/init.d/chef-client +8 -4
- data/distro/redhat/etc/init.d/chef-server +16 -15
- data/distro/redhat/etc/init.d/chef-server-webui +78 -0
- data/distro/redhat/etc/init.d/chef-solr +76 -0
- data/distro/redhat/etc/init.d/chef-solr-indexer +75 -0
- data/distro/redhat/etc/sysconfig/chef-client +10 -0
- data/distro/redhat/etc/sysconfig/chef-server +10 -0
- data/distro/redhat/etc/sysconfig/chef-server-webui +10 -0
- data/distro/redhat/etc/sysconfig/chef-solr +9 -0
- data/distro/redhat/etc/sysconfig/chef-solr-indexer +7 -0
- data/distro/suse/etc/init.d/chef-client +121 -0
- data/lib/chef.rb +1 -1
- data/lib/chef/api_client.rb +263 -0
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/client.rb +21 -3
- data/lib/chef/application/knife.rb +144 -0
- data/lib/chef/application/server.rb +2 -1
- data/lib/chef/application/solo.rb +9 -2
- data/lib/chef/cache.rb +61 -0
- data/lib/chef/cache/checksum.rb +70 -0
- data/lib/chef/certificate.rb +154 -0
- data/lib/chef/client.rb +123 -220
- data/lib/chef/compile.rb +9 -21
- data/lib/chef/config.rb +67 -10
- data/lib/chef/cookbook.rb +49 -22
- data/lib/chef/cookbook/metadata.rb +85 -5
- data/lib/chef/cookbook_loader.rb +4 -4
- data/lib/chef/couchdb.rb +99 -30
- data/lib/chef/daemon.rb +1 -1
- data/lib/chef/data_bag.rb +215 -0
- data/lib/chef/data_bag_item.rb +219 -0
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/index_queue.rb +29 -0
- data/lib/chef/index_queue/amqp_client.rb +106 -0
- data/lib/chef/index_queue/consumer.rb +76 -0
- data/lib/chef/index_queue/indexable.rb +74 -0
- data/lib/chef/knife.rb +309 -0
- data/lib/chef/knife/client_bulk_delete.rb +40 -0
- data/lib/chef/knife/client_create.rb +62 -0
- data/lib/chef/knife/client_delete.rb +37 -0
- data/lib/chef/knife/client_edit.rb +37 -0
- data/lib/chef/knife/client_list.rb +40 -0
- data/lib/chef/knife/client_reregister.rb +48 -0
- data/lib/chef/knife/client_show.rb +42 -0
- data/lib/chef/knife/configure.rb +123 -0
- data/lib/chef/knife/cookbook_bulk_delete.rb +46 -0
- data/lib/chef/knife/cookbook_delete.rb +41 -0
- data/lib/chef/knife/cookbook_download.rb +57 -0
- data/lib/chef/knife/cookbook_list.rb +41 -0
- data/lib/chef/knife/cookbook_metadata.rb +87 -0
- data/lib/chef/knife/cookbook_show.rb +75 -0
- data/lib/chef/knife/cookbook_upload.rb +179 -0
- data/lib/chef/knife/data_bag_create.rb +43 -0
- data/lib/chef/knife/data_bag_delete.rb +43 -0
- data/lib/chef/knife/data_bag_edit.rb +49 -0
- data/lib/chef/knife/data_bag_list.rb +42 -0
- data/lib/chef/knife/data_bag_show.rb +40 -0
- data/lib/chef/knife/ec2_instance_data.rb +46 -0
- data/lib/chef/knife/index_rebuild.rb +51 -0
- data/lib/chef/knife/node_bulk_delete.rb +43 -0
- data/lib/chef/knife/node_create.rb +39 -0
- data/lib/chef/knife/node_delete.rb +36 -0
- data/lib/chef/knife/node_edit.rb +36 -0
- data/lib/chef/knife/node_from_file.rb +42 -0
- data/lib/chef/knife/node_list.rb +41 -0
- data/lib/chef/knife/node_run_list_add.rb +64 -0
- data/lib/chef/knife/node_run_list_remove.rb +45 -0
- data/lib/chef/knife/node_show.rb +46 -0
- data/lib/chef/knife/role_bulk_delete.rb +44 -0
- data/lib/chef/knife/role_create.rb +44 -0
- data/lib/chef/knife/role_delete.rb +36 -0
- data/lib/chef/knife/role_edit.rb +37 -0
- data/lib/chef/knife/role_from_file.rb +46 -0
- data/lib/chef/knife/role_list.rb +40 -0
- data/lib/chef/knife/role_show.rb +43 -0
- data/lib/chef/knife/search.rb +94 -0
- data/lib/chef/knife/ssh.rb +170 -0
- data/lib/chef/log.rb +30 -8
- data/lib/chef/mixin/checksum.rb +2 -7
- data/lib/chef/mixin/command.rb +32 -13
- data/lib/chef/mixin/convert_to_class_name.rb +15 -0
- data/lib/chef/mixin/deep_merge.rb +199 -11
- data/lib/chef/mixin/generate_url.rb +18 -9
- data/lib/chef/mixin/language.rb +29 -1
- data/lib/chef/mixin/language_include_attribute.rb +56 -0
- data/lib/chef/mixin/language_include_recipe.rb +53 -0
- data/lib/chef/mixin/params_validate.rb +25 -12
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +2 -0
- data/lib/chef/mixin/template.rb +11 -1
- data/lib/chef/mixin/xml_escape.rb +87 -0
- data/lib/chef/node.rb +144 -122
- data/lib/chef/openid_registration.rb +12 -5
- data/lib/chef/platform.rb +89 -47
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cron.rb +5 -6
- data/lib/chef/provider/deploy.rb +43 -10
- data/lib/chef/provider/deploy/revision.rb +2 -3
- data/lib/chef/provider/erl_call.rb +72 -0
- data/lib/chef/provider/file.rb +8 -4
- data/lib/chef/provider/git.rb +10 -5
- data/lib/chef/provider/group/dscl.rb +128 -0
- data/lib/chef/provider/http_request.rb +6 -2
- data/lib/chef/provider/ifconfig.rb +1 -0
- data/lib/chef/provider/link.rb +1 -1
- data/lib/chef/provider/log.rb +53 -0
- data/lib/chef/provider/mdadm.rb +88 -0
- data/lib/chef/provider/mount/mount.rb +1 -1
- data/lib/chef/provider/package.rb +1 -1
- data/lib/chef/provider/package/easy_install.rb +106 -0
- data/lib/chef/provider/package/pacman.rb +101 -0
- data/lib/chef/provider/package/portage.rb +1 -1
- data/lib/chef/provider/package/rpm.rb +10 -8
- data/lib/chef/provider/package/yum-dump.py +22 -3
- data/lib/chef/provider/package/yum.rb +32 -8
- data/lib/chef/provider/package/zypper.rb +132 -0
- data/lib/chef/provider/remote_directory.rb +58 -49
- data/lib/chef/provider/remote_file.rb +1 -1
- data/lib/chef/provider/route.rb +136 -80
- data/lib/chef/provider/ruby_block.rb +18 -1
- data/lib/chef/provider/service/arch.rb +109 -0
- data/lib/chef/provider/service/freebsd.rb +0 -1
- data/lib/chef/provider/service/simple.rb +2 -3
- data/lib/chef/provider/service/upstart.rb +191 -0
- data/lib/chef/provider/subversion.rb +12 -4
- data/lib/chef/provider/template.rb +85 -53
- data/lib/chef/provider/user.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +277 -0
- data/lib/chef/provider/user/useradd.rb +1 -0
- data/lib/chef/recipe.rb +2 -41
- data/lib/chef/resource.rb +9 -3
- data/lib/chef/resource/breakpoint.rb +35 -0
- data/lib/chef/resource/deploy.rb +16 -2
- data/lib/chef/resource/easy_install_package.rb +41 -0
- data/lib/chef/resource/erl_call.rb +83 -0
- data/lib/chef/resource/freebsd_package.rb +35 -0
- data/lib/chef/resource/log.rb +62 -0
- data/lib/chef/resource/mdadm.rb +82 -0
- data/lib/chef/resource/pacman_package.rb +33 -0
- data/lib/chef/resource/ruby_block.rb +21 -2
- data/lib/chef/resource/scm.rb +8 -0
- data/lib/chef/resource/subversion.rb +1 -0
- data/lib/chef/resource/user.rb +5 -2
- data/lib/chef/resource/yum_package.rb +36 -0
- data/lib/chef/resource_collection.rb +17 -9
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
- data/lib/chef/rest.rb +166 -81
- data/lib/chef/role.rb +114 -38
- data/lib/chef/run_list.rb +15 -6
- data/lib/chef/runner.rb +13 -11
- data/lib/chef/search/query.rb +60 -0
- data/lib/chef/shef.rb +220 -0
- data/lib/chef/shef/ext.rb +297 -0
- data/lib/chef/shef/shef_session.rb +175 -0
- data/lib/chef/streaming_cookbook_uploader.rb +187 -0
- data/lib/chef/tasks/chef_repo.rake +53 -155
- data/lib/chef/util/file_edit.rb +94 -96
- data/lib/chef/webui_user.rb +233 -0
- metadata +219 -63
- data/distro/debian/etc/init.d/chef-indexer +0 -175
- data/distro/redhat/etc/chef/client.rb +0 -16
- data/distro/redhat/etc/chef/indexer.rb +0 -10
- data/distro/redhat/etc/chef/server.rb +0 -22
- data/distro/redhat/etc/init.d/chef-indexer +0 -76
- data/lib/chef/application/indexer.rb +0 -141
- data/lib/chef/queue.rb +0 -145
- data/lib/chef/search.rb +0 -88
- data/lib/chef/search/result.rb +0 -64
- data/lib/chef/search_index.rb +0 -77
- data/lib/chef/util/fileedit.rb +0 -121
data/lib/chef/recipe.rb
CHANGED
@@ -21,17 +21,18 @@ require 'chef/resource'
|
|
21
21
|
Dir[File.join(File.dirname(__FILE__), 'resource/**/*.rb')].sort.each { |lib| require lib }
|
22
22
|
require 'chef/mixin/from_file'
|
23
23
|
require 'chef/mixin/language'
|
24
|
+
require 'chef/mixin/language_include_recipe'
|
24
25
|
require 'chef/mixin/recipe_definition_dsl_core'
|
25
26
|
require 'chef/resource_collection'
|
26
27
|
require 'chef/cookbook_loader'
|
27
28
|
require 'chef/rest'
|
28
|
-
require 'chef/search/result'
|
29
29
|
|
30
30
|
class Chef
|
31
31
|
class Recipe
|
32
32
|
|
33
33
|
include Chef::Mixin::FromFile
|
34
34
|
include Chef::Mixin::Language
|
35
|
+
include Chef::Mixin::LanguageIncludeRecipe
|
35
36
|
include Chef::Mixin::RecipeDefinitionDSLCore
|
36
37
|
|
37
38
|
attr_accessor :cookbook_name, :recipe_name, :recipe, :node, :collection,
|
@@ -47,50 +48,10 @@ class Chef
|
|
47
48
|
@params = Hash.new
|
48
49
|
end
|
49
50
|
|
50
|
-
def include_recipe(*args)
|
51
|
-
args.flatten.each do |recipe|
|
52
|
-
if @node.run_state[:seen_recipes].has_key?(recipe)
|
53
|
-
Chef::Log.debug("I am not loading #{recipe}, because I have already seen it.")
|
54
|
-
next
|
55
|
-
end
|
56
|
-
|
57
|
-
Chef::Log.debug("Loading Recipe #{recipe} via include_recipe")
|
58
|
-
@node.run_state[:seen_recipes][recipe] = true
|
59
|
-
|
60
|
-
rmatch = recipe.match(/(.+?)::(.+)/)
|
61
|
-
if rmatch
|
62
|
-
cookbook = @cookbook_loader[rmatch[1]]
|
63
|
-
cookbook.load_recipe(rmatch[2], @node, @collection, @definitions, @cookbook_loader)
|
64
|
-
else
|
65
|
-
cookbook = @cookbook_loader[recipe]
|
66
|
-
cookbook.load_recipe("default", @node, @collection, @definitions, @cookbook_loader)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def require_recipe(*args)
|
72
|
-
include_recipe(*args)
|
73
|
-
end
|
74
|
-
|
75
51
|
def resources(*args)
|
76
52
|
@collection.resources(*args)
|
77
53
|
end
|
78
54
|
|
79
|
-
def search(type, query, attributes=[], &block)
|
80
|
-
Chef::Log.debug("Searching #{type} index with #{query}")
|
81
|
-
r = Chef::REST.new(Chef::Config[:search_url])
|
82
|
-
|
83
|
-
results = r.get_rest("search/#{type}?q=#{query}&a=#{attributes.join(',')}")
|
84
|
-
Chef::Log.debug("Searching #{type} index with #{query} returned #{results.length} entries")
|
85
|
-
if block
|
86
|
-
results.each do |sr|
|
87
|
-
block.call(sr)
|
88
|
-
end
|
89
|
-
else
|
90
|
-
results
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
55
|
# Sets a tag, or list of tags, for this node. Syntactic sugar for
|
95
56
|
# @node[:tags].
|
96
57
|
#
|
data/lib/chef/resource.rb
CHANGED
@@ -33,7 +33,7 @@ class Chef
|
|
33
33
|
include Chef::Mixin::ConvertToClassName
|
34
34
|
|
35
35
|
attr_accessor :actions, :params, :provider, :updated, :allowed_actions, :collection, :cookbook_name, :recipe_name, :enclosing_provider
|
36
|
-
attr_reader :resource_name, :source_line, :node
|
36
|
+
attr_reader :resource_name, :source_line, :node, :not_if_args, :only_if_args
|
37
37
|
|
38
38
|
def initialize(name, collection=nil, node=nil)
|
39
39
|
@name = name
|
@@ -54,7 +54,9 @@ class Chef
|
|
54
54
|
@supports = {}
|
55
55
|
@ignore_failure = false
|
56
56
|
@not_if = nil
|
57
|
+
@not_if_args = {}
|
57
58
|
@only_if = nil
|
59
|
+
@only_if_args = {}
|
58
60
|
sline = caller(4).shift
|
59
61
|
if sline
|
60
62
|
@source_line = sline.gsub!(/^(.+):(.+):.+$/, '\1 line \2')
|
@@ -219,20 +221,24 @@ class Chef
|
|
219
221
|
instance_vars
|
220
222
|
end
|
221
223
|
|
222
|
-
def only_if(arg=nil, &blk)
|
224
|
+
def only_if(arg=nil, args = {}, &blk)
|
223
225
|
if Kernel.block_given?
|
224
226
|
@only_if = blk
|
227
|
+
@only_if_args = args
|
225
228
|
else
|
226
229
|
@only_if = arg if arg
|
230
|
+
@only_if_args = args if arg
|
227
231
|
end
|
228
232
|
@only_if
|
229
233
|
end
|
230
234
|
|
231
|
-
def not_if(arg=nil, &blk)
|
235
|
+
def not_if(arg=nil, args = {}, &blk)
|
232
236
|
if Kernel.block_given?
|
233
237
|
@not_if = blk
|
238
|
+
@not_if_args = args
|
234
239
|
else
|
235
240
|
@not_if = arg if arg
|
241
|
+
@not_if_args = args if arg
|
236
242
|
end
|
237
243
|
@not_if
|
238
244
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
3
|
+
# Copyright:: Copyright (c) 2008 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
|
+
|
20
|
+
require 'chef/resource'
|
21
|
+
|
22
|
+
class Chef
|
23
|
+
class Resource
|
24
|
+
class Breakpoint < Chef::Resource
|
25
|
+
|
26
|
+
def initialize(action="break", *args)
|
27
|
+
@name = caller.first
|
28
|
+
super(@name, *args)
|
29
|
+
@action = "break"
|
30
|
+
@allowed_actions << :break
|
31
|
+
@provider = Chef::Provider::Breakpoint
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/chef/resource/deploy.rb
CHANGED
@@ -70,13 +70,14 @@ class Chef
|
|
70
70
|
@enable_submodules = false
|
71
71
|
@shallow_clone = false
|
72
72
|
@scm_provider = Chef::Provider::Git
|
73
|
+
@svn_force_export = false
|
73
74
|
@provider = Chef::Provider::Deploy::Timestamped
|
74
75
|
@allowed_actions.push(:force_deploy, :deploy, :rollback)
|
75
76
|
end
|
76
77
|
|
77
78
|
# where the checked out/cloned code goes
|
78
79
|
def destination
|
79
|
-
@destination ||= shared_path + "/#{@repository_cache}
|
80
|
+
@destination ||= shared_path + "/#{@repository_cache}"
|
80
81
|
end
|
81
82
|
|
82
83
|
# where shared stuff goes, i.e., logs, tmp, etc. goes here
|
@@ -244,13 +245,26 @@ class Chef
|
|
244
245
|
end
|
245
246
|
|
246
247
|
def scm_provider(arg=nil)
|
248
|
+
klass = if arg.kind_of?(String) || arg.kind_of?(Symbol)
|
249
|
+
lookup_provider_constant(arg)
|
250
|
+
else
|
251
|
+
arg
|
252
|
+
end
|
247
253
|
set_or_return(
|
248
254
|
:scm_provider,
|
249
|
-
|
255
|
+
klass,
|
250
256
|
:kind_of => [ Class ]
|
251
257
|
)
|
252
258
|
end
|
253
259
|
|
260
|
+
def svn_force_export(arg=nil)
|
261
|
+
set_or_return(
|
262
|
+
:svn_force_export,
|
263
|
+
arg,
|
264
|
+
:kind_of => [ TrueClass, FalseClass ]
|
265
|
+
)
|
266
|
+
end
|
267
|
+
|
254
268
|
def environment(arg=nil)
|
255
269
|
if arg.is_a?(String)
|
256
270
|
Chef::Log.info "Setting RAILS_ENV, RACK_ENV, and MERB_ENV to `#{arg}'"
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Joe Williams (<joe@joetify.com>)
|
3
|
+
# Copyright:: Copyright (c) 2009 Joe Williams
|
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/resource/package'
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Resource
|
23
|
+
class EasyInstallPackage < Chef::Resource::Package
|
24
|
+
|
25
|
+
def initialize(name, collection=nil, node=nil)
|
26
|
+
super(name, collection, node)
|
27
|
+
@resource_name = :easy_install_package
|
28
|
+
@provider = Chef::Provider::Package::EasyInstall
|
29
|
+
end
|
30
|
+
|
31
|
+
def easy_install_binary(arg=nil)
|
32
|
+
set_or_return(
|
33
|
+
:easy_install_binary,
|
34
|
+
arg,
|
35
|
+
:kind_of => [ String ]
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Joe Williams (<joe@joetify.com>)
|
3
|
+
# Copyright:: Copyright (c) 2009 Joe Williams
|
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/resource'
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Resource
|
23
|
+
class ErlCall < Chef::Resource
|
24
|
+
|
25
|
+
# erl_call : http://erlang.org/doc/man/erl_call.html
|
26
|
+
|
27
|
+
def initialize(name, collection=nil, node=nil)
|
28
|
+
super(name, collection, node)
|
29
|
+
@resource_name = :erl_call
|
30
|
+
|
31
|
+
@code = "q()." # your erlang code goes here
|
32
|
+
@cookie = nil # cookie of the erlang node
|
33
|
+
@distributed = false # if you want to have a distributed erlang node
|
34
|
+
@name_type = "sname" # type of erlang hostname name or sname
|
35
|
+
@node_name = "chef@localhost" # the erlang node hostname
|
36
|
+
|
37
|
+
@action = "run"
|
38
|
+
@allowed_actions.push(:run)
|
39
|
+
end
|
40
|
+
|
41
|
+
def code(arg=nil)
|
42
|
+
set_or_return(
|
43
|
+
:code,
|
44
|
+
arg,
|
45
|
+
:kind_of => [ String ]
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def cookie(arg=nil)
|
50
|
+
set_or_return(
|
51
|
+
:cookie,
|
52
|
+
arg,
|
53
|
+
:kind_of => [ String ]
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
def distributed(arg=nil)
|
58
|
+
set_or_return(
|
59
|
+
:distributed,
|
60
|
+
arg,
|
61
|
+
:kind_of => [ TrueClass, FalseClass ]
|
62
|
+
)
|
63
|
+
end
|
64
|
+
|
65
|
+
def name_type(arg=nil)
|
66
|
+
set_or_return(
|
67
|
+
:name_type,
|
68
|
+
arg,
|
69
|
+
:kind_of => [ String ]
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
def node_name(arg=nil)
|
74
|
+
set_or_return(
|
75
|
+
:node_name,
|
76
|
+
arg,
|
77
|
+
:kind_of => [ String ]
|
78
|
+
)
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#
|
2
|
+
# Author:: AJ Christensen (<aj@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2008 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/resource/package'
|
20
|
+
require 'chef/provider/package/freebsd'
|
21
|
+
|
22
|
+
class Chef
|
23
|
+
class Resource
|
24
|
+
class FreebsdPackage < Chef::Resource::Package
|
25
|
+
|
26
|
+
def initialize(name, collection=nil, node=nil)
|
27
|
+
super(name, collection, node)
|
28
|
+
@resource_name = :freebsd_package
|
29
|
+
@provider = Chef::Provider::Package::Freebsd
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Cary Penniman (<cary@rightscale.com>)
|
3
|
+
# Copyright:: Copyright (c) 2008 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
|
+
class Chef
|
19
|
+
class Resource
|
20
|
+
|
21
|
+
# Sends a string from a recipe to a log provider
|
22
|
+
#
|
23
|
+
# log "some string to log" do
|
24
|
+
# level :info # (default) also supports :warn, :debug, and :error
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# === Example
|
28
|
+
# log "your string to log"
|
29
|
+
#
|
30
|
+
# or
|
31
|
+
#
|
32
|
+
# log "a debug string" { level :debug }
|
33
|
+
#
|
34
|
+
class Log < Chef::Resource
|
35
|
+
|
36
|
+
# Initialize log resource with a name as the string to log
|
37
|
+
#
|
38
|
+
# === Parameters
|
39
|
+
# name<String>:: Message to log
|
40
|
+
# collection<Array>:: Collection of included recipes
|
41
|
+
# node<Chef::Node>:: Node where resource will be used
|
42
|
+
def initialize(name, collection=nil, node=nil)
|
43
|
+
super(name, collection, node)
|
44
|
+
@resource_name = :log
|
45
|
+
@level = :info
|
46
|
+
@action = :write
|
47
|
+
end
|
48
|
+
|
49
|
+
# <Symbol> Log level, one of :debug, :info, :warn, :error or :fatal
|
50
|
+
def level(arg=nil)
|
51
|
+
set_or_return(
|
52
|
+
:level,
|
53
|
+
arg,
|
54
|
+
:equal_to => [ :debug, :info, :warn, :error, :fatal ]
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Joe Williams (<joe@joetify.com>)
|
3
|
+
# Copyright:: Copyright (c) 2009 Joe Williams
|
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/resource'
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Resource
|
23
|
+
class Mdadm < Chef::Resource
|
24
|
+
|
25
|
+
def initialize(name, collection=nil, node=nil)
|
26
|
+
super(name, collection, node)
|
27
|
+
@resource_name = :mdadm
|
28
|
+
|
29
|
+
@chunk = 16
|
30
|
+
@devices = []
|
31
|
+
@exists = false
|
32
|
+
@level = 1
|
33
|
+
@raid_device = name
|
34
|
+
|
35
|
+
@action = :create
|
36
|
+
@allowed_actions.push(:create, :assemble, :stop)
|
37
|
+
end
|
38
|
+
|
39
|
+
def chunk(arg=nil)
|
40
|
+
set_or_return(
|
41
|
+
:chunk,
|
42
|
+
arg,
|
43
|
+
:kind_of => [ Integer ]
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
47
|
+
def devices(arg=nil)
|
48
|
+
set_or_return(
|
49
|
+
:devices,
|
50
|
+
arg,
|
51
|
+
:kind_of => [ Array ]
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
def exists(arg=nil)
|
56
|
+
set_or_return(
|
57
|
+
:exists,
|
58
|
+
arg,
|
59
|
+
:kind_of => [ TrueClass, FalseClass ]
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
def level(arg=nil)
|
64
|
+
set_or_return(
|
65
|
+
:level,
|
66
|
+
arg,
|
67
|
+
:kind_of => [ Integer ]
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def raid_device(arg=nil)
|
72
|
+
set_or_return(
|
73
|
+
:raid_device,
|
74
|
+
arg,
|
75
|
+
:kind_of => [ String ]
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|