mbailey-chef 0.9.12.1
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.
- data/LICENSE +201 -0
- data/README.rdoc +172 -0
- data/bin/chef-client +26 -0
- data/bin/chef-solo +25 -0
- data/bin/knife +26 -0
- data/bin/shef +34 -0
- data/distro/README +2 -0
- data/distro/common/man/man1/chef-indexer.1 +42 -0
- data/distro/common/man/man1/chef-server-webui.1 +106 -0
- data/distro/common/man/man1/chef-server.1 +107 -0
- data/distro/common/man/man1/chef-solr-indexer.1 +55 -0
- data/distro/common/man/man1/chef-solr.1 +55 -0
- data/distro/common/man/man8/chef-client.8 +63 -0
- data/distro/common/man/man8/chef-solo.8 +57 -0
- data/distro/common/man/man8/chef-solr-rebuild.8 +37 -0
- data/distro/common/man/man8/knife.8 +1349 -0
- data/distro/common/man/man8/shef.8 +45 -0
- data/distro/common/markdown/README +3 -0
- data/distro/common/markdown/knife.mkd +832 -0
- data/distro/debian/etc/default/chef-client +4 -0
- data/distro/debian/etc/default/chef-server +9 -0
- data/distro/debian/etc/default/chef-server-webui +9 -0
- data/distro/debian/etc/default/chef-solr +7 -0
- data/distro/debian/etc/default/chef-solr-indexer +7 -0
- data/distro/debian/etc/init/chef-client.conf +17 -0
- data/distro/debian/etc/init/chef-server-webui.conf +17 -0
- data/distro/debian/etc/init/chef-server.conf +17 -0
- data/distro/debian/etc/init/chef-solr-indexer.conf +17 -0
- data/distro/debian/etc/init/chef-solr.conf +17 -0
- data/distro/debian/etc/init.d/chef-client +175 -0
- data/distro/debian/etc/init.d/chef-server +122 -0
- data/distro/debian/etc/init.d/chef-server-webui +123 -0
- data/distro/debian/etc/init.d/chef-solr +177 -0
- data/distro/debian/etc/init.d/chef-solr-indexer +176 -0
- data/distro/redhat/etc/init.d/chef-client +106 -0
- data/distro/redhat/etc/init.d/chef-server +112 -0
- data/distro/redhat/etc/init.d/chef-server-webui +112 -0
- data/distro/redhat/etc/init.d/chef-solr +104 -0
- data/distro/redhat/etc/init.d/chef-solr-indexer +104 -0
- data/distro/redhat/etc/logrotate.d/chef-client +8 -0
- data/distro/redhat/etc/logrotate.d/chef-server +8 -0
- data/distro/redhat/etc/logrotate.d/chef-server-webui +8 -0
- data/distro/redhat/etc/logrotate.d/chef-solr +8 -0
- data/distro/redhat/etc/logrotate.d/chef-solr-indexer +8 -0
- data/distro/redhat/etc/sysconfig/chef-client +15 -0
- data/distro/redhat/etc/sysconfig/chef-server +14 -0
- data/distro/redhat/etc/sysconfig/chef-server-webui +14 -0
- data/distro/redhat/etc/sysconfig/chef-solr +8 -0
- data/distro/redhat/etc/sysconfig/chef-solr-indexer +7 -0
- data/lib/chef/api_client.rb +264 -0
- data/lib/chef/application/agent.rb +18 -0
- data/lib/chef/application/client.rb +246 -0
- data/lib/chef/application/knife.rb +171 -0
- data/lib/chef/application/solo.rb +215 -0
- data/lib/chef/application.rb +127 -0
- data/lib/chef/applications.rb +4 -0
- data/lib/chef/certificate.rb +194 -0
- data/lib/chef/checksum.rb +182 -0
- data/lib/chef/checksum_cache.rb +173 -0
- data/lib/chef/client.rb +304 -0
- data/lib/chef/config.rb +240 -0
- data/lib/chef/cookbook/cookbook_collection.rb +44 -0
- data/lib/chef/cookbook/file_system_file_vendor.rb +54 -0
- data/lib/chef/cookbook/file_vendor.rb +48 -0
- data/lib/chef/cookbook/metadata/version.rb +87 -0
- data/lib/chef/cookbook/metadata.rb +500 -0
- data/lib/chef/cookbook/remote_file_vendor.rb +87 -0
- data/lib/chef/cookbook/syntax_check.rb +136 -0
- data/lib/chef/cookbook_loader.rb +227 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
- data/lib/chef/cookbook_uploader.rb +103 -0
- data/lib/chef/cookbook_version.rb +930 -0
- data/lib/chef/couchdb.rb +239 -0
- data/lib/chef/daemon.rb +172 -0
- data/lib/chef/data_bag.rb +215 -0
- data/lib/chef/data_bag_item.rb +228 -0
- data/lib/chef/exceptions.rb +66 -0
- data/lib/chef/file_access_control.rb +140 -0
- data/lib/chef/file_cache.rb +218 -0
- data/lib/chef/handler/json_file.rb +58 -0
- data/lib/chef/handler.rb +206 -0
- data/lib/chef/index_queue/amqp_client.rb +113 -0
- data/lib/chef/index_queue/consumer.rb +76 -0
- data/lib/chef/index_queue/indexable.rb +76 -0
- data/lib/chef/index_queue.rb +29 -0
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +44 -0
- data/lib/chef/knife/bootstrap/centos5-gems.erb +41 -0
- data/lib/chef/knife/bootstrap/client-install.vbs +80 -0
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +38 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +32 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +43 -0
- data/lib/chef/knife/bootstrap/windows-gems.erb +34 -0
- data/lib/chef/knife/bootstrap.rb +181 -0
- data/lib/chef/knife/client_bulk_delete.rb +40 -0
- data/lib/chef/knife/client_create.rb +70 -0
- data/lib/chef/knife/client_delete.rb +45 -0
- data/lib/chef/knife/client_edit.rb +45 -0
- data/lib/chef/knife/client_list.rb +40 -0
- data/lib/chef/knife/client_reregister.rb +56 -0
- data/lib/chef/knife/client_show.rb +50 -0
- data/lib/chef/knife/configure.rb +140 -0
- data/lib/chef/knife/configure_client.rb +52 -0
- data/lib/chef/knife/cookbook_bulk_delete.rb +58 -0
- data/lib/chef/knife/cookbook_create.rb +209 -0
- data/lib/chef/knife/cookbook_delete.rb +143 -0
- data/lib/chef/knife/cookbook_download.rb +130 -0
- data/lib/chef/knife/cookbook_list.rb +41 -0
- data/lib/chef/knife/cookbook_metadata.rb +82 -0
- data/lib/chef/knife/cookbook_metadata_from_file.rb +40 -0
- data/lib/chef/knife/cookbook_show.rb +98 -0
- data/lib/chef/knife/cookbook_site_download.rb +58 -0
- data/lib/chef/knife/cookbook_site_list.rb +56 -0
- data/lib/chef/knife/cookbook_site_search.rb +51 -0
- data/lib/chef/knife/cookbook_site_share.rb +109 -0
- data/lib/chef/knife/cookbook_site_show.rb +57 -0
- data/lib/chef/knife/cookbook_site_unshare.rb +52 -0
- data/lib/chef/knife/cookbook_site_vendor.rb +133 -0
- data/lib/chef/knife/cookbook_test.rb +82 -0
- data/lib/chef/knife/cookbook_upload.rb +95 -0
- data/lib/chef/knife/data_bag_create.rb +59 -0
- data/lib/chef/knife/data_bag_delete.rb +48 -0
- data/lib/chef/knife/data_bag_edit.rb +50 -0
- data/lib/chef/knife/data_bag_from_file.rb +44 -0
- data/lib/chef/knife/data_bag_list.rb +43 -0
- data/lib/chef/knife/data_bag_show.rb +41 -0
- data/lib/chef/knife/ec2_instance_data.rb +46 -0
- data/lib/chef/knife/ec2_server_create.rb +216 -0
- data/lib/chef/knife/ec2_server_delete.rb +90 -0
- data/lib/chef/knife/ec2_server_list.rb +88 -0
- data/lib/chef/knife/exec.rb +52 -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 +47 -0
- data/lib/chef/knife/node_delete.rb +44 -0
- data/lib/chef/knife/node_edit.rb +44 -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 +54 -0
- data/lib/chef/knife/rackspace_server_create.rb +156 -0
- data/lib/chef/knife/rackspace_server_delete.rb +57 -0
- data/lib/chef/knife/rackspace_server_list.rb +59 -0
- data/lib/chef/knife/recipe_list.rb +32 -0
- data/lib/chef/knife/role_bulk_delete.rb +44 -0
- data/lib/chef/knife/role_create.rb +52 -0
- data/lib/chef/knife/role_delete.rb +44 -0
- data/lib/chef/knife/role_edit.rb +45 -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 +51 -0
- data/lib/chef/knife/search.rb +94 -0
- data/lib/chef/knife/slicehost_images_list.rb +53 -0
- data/lib/chef/knife/slicehost_server_create.rb +103 -0
- data/lib/chef/knife/slicehost_server_delete.rb +61 -0
- data/lib/chef/knife/slicehost_server_list.rb +64 -0
- data/lib/chef/knife/ssh.rb +328 -0
- data/lib/chef/knife/status.rb +87 -0
- data/lib/chef/knife/terremark_server_create.rb +152 -0
- data/lib/chef/knife/terremark_server_delete.rb +87 -0
- data/lib/chef/knife/terremark_server_list.rb +77 -0
- data/lib/chef/knife/windows_bootstrap.rb +154 -0
- data/lib/chef/knife.rb +522 -0
- data/lib/chef/log.rb +61 -0
- data/lib/chef/mixin/check_helper.rb +31 -0
- data/lib/chef/mixin/checksum.rb +32 -0
- data/lib/chef/mixin/command/unix.rb +215 -0
- data/lib/chef/mixin/command/windows.rb +72 -0
- data/lib/chef/mixin/command.rb +220 -0
- data/lib/chef/mixin/convert_to_class_name.rb +63 -0
- data/lib/chef/mixin/create_path.rb +56 -0
- data/lib/chef/mixin/deep_merge.rb +225 -0
- data/lib/chef/mixin/deprecation.rb +65 -0
- data/lib/chef/mixin/find_preferred_file.rb +92 -0
- data/lib/chef/mixin/from_file.rb +50 -0
- data/lib/chef/mixin/language.rb +156 -0
- data/lib/chef/mixin/language_include_attribute.rb +61 -0
- data/lib/chef/mixin/language_include_recipe.rb +52 -0
- data/lib/chef/mixin/params_validate.rb +225 -0
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +81 -0
- data/lib/chef/mixin/shell_out.rb +38 -0
- data/lib/chef/mixin/template.rb +95 -0
- data/lib/chef/mixin/xml_escape.rb +140 -0
- data/lib/chef/mixins.rb +16 -0
- data/lib/chef/monkey_patches/dir.rb +36 -0
- data/lib/chef/monkey_patches/string.rb +28 -0
- data/lib/chef/monkey_patches/tempfile.rb +64 -0
- data/lib/chef/node/attribute.rb +465 -0
- data/lib/chef/node.rb +601 -0
- data/lib/chef/openid_registration.rb +187 -0
- data/lib/chef/platform.rb +371 -0
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cookbook_file.rb +100 -0
- data/lib/chef/provider/cron/solaris.rb +195 -0
- data/lib/chef/provider/cron.rb +186 -0
- data/lib/chef/provider/deploy/revision.rb +73 -0
- data/lib/chef/provider/deploy/timestamped.rb +33 -0
- data/lib/chef/provider/deploy.rb +319 -0
- data/lib/chef/provider/directory.rb +72 -0
- data/lib/chef/provider/env/windows.rb +75 -0
- data/lib/chef/provider/env.rb +152 -0
- data/lib/chef/provider/erl_call.rb +72 -0
- data/lib/chef/provider/execute.rb +58 -0
- data/lib/chef/provider/file.rb +213 -0
- data/lib/chef/provider/git.rb +211 -0
- data/lib/chef/provider/group/dscl.rb +121 -0
- data/lib/chef/provider/group/gpasswd.rb +53 -0
- data/lib/chef/provider/group/groupadd.rb +78 -0
- data/lib/chef/provider/group/pw.rb +84 -0
- data/lib/chef/provider/group/usermod.rb +57 -0
- data/lib/chef/provider/group/windows.rb +79 -0
- data/lib/chef/provider/group.rb +133 -0
- data/lib/chef/provider/http_request.rb +122 -0
- data/lib/chef/provider/ifconfig.rb +132 -0
- data/lib/chef/provider/link.rb +161 -0
- data/lib/chef/provider/log.rb +54 -0
- data/lib/chef/provider/mdadm.rb +91 -0
- data/lib/chef/provider/mount/mount.rb +232 -0
- data/lib/chef/provider/mount/windows.rb +80 -0
- data/lib/chef/provider/mount.rb +117 -0
- data/lib/chef/provider/ohai.rb +41 -0
- data/lib/chef/provider/package/apt.rb +110 -0
- data/lib/chef/provider/package/dpkg.rb +112 -0
- data/lib/chef/provider/package/easy_install.rb +114 -0
- data/lib/chef/provider/package/freebsd.rb +123 -0
- data/lib/chef/provider/package/macports.rb +105 -0
- data/lib/chef/provider/package/pacman.rb +101 -0
- data/lib/chef/provider/package/portage.rb +124 -0
- data/lib/chef/provider/package/rpm.rb +101 -0
- data/lib/chef/provider/package/rubygems.rb +462 -0
- data/lib/chef/provider/package/solaris.rb +127 -0
- data/lib/chef/provider/package/yum-dump.py +128 -0
- data/lib/chef/provider/package/yum.rb +222 -0
- data/lib/chef/provider/package/zypper.rb +133 -0
- data/lib/chef/provider/package.rb +160 -0
- data/lib/chef/provider/remote_directory.rb +140 -0
- data/lib/chef/provider/remote_file.rb +120 -0
- data/lib/chef/provider/route.rb +195 -0
- data/lib/chef/provider/ruby_block.rb +33 -0
- data/lib/chef/provider/script.rb +55 -0
- data/lib/chef/provider/service/arch.rb +109 -0
- data/lib/chef/provider/service/debian.rb +105 -0
- data/lib/chef/provider/service/freebsd.rb +156 -0
- data/lib/chef/provider/service/gentoo.rb +54 -0
- data/lib/chef/provider/service/init.rb +71 -0
- data/lib/chef/provider/service/redhat.rb +60 -0
- data/lib/chef/provider/service/simple.rb +118 -0
- data/lib/chef/provider/service/solaris.rb +85 -0
- data/lib/chef/provider/service/upstart.rb +192 -0
- data/lib/chef/provider/service/windows.rb +129 -0
- data/lib/chef/provider/service.rb +128 -0
- data/lib/chef/provider/subversion.rb +159 -0
- data/lib/chef/provider/template.rb +105 -0
- data/lib/chef/provider/user/dscl.rb +280 -0
- data/lib/chef/provider/user/pw.rb +113 -0
- data/lib/chef/provider/user/useradd.rb +137 -0
- data/lib/chef/provider/user/windows.rb +124 -0
- data/lib/chef/provider/user.rb +187 -0
- data/lib/chef/provider.rb +124 -0
- data/lib/chef/providers.rb +91 -0
- data/lib/chef/recipe.rb +130 -0
- data/lib/chef/resource/apt_package.rb +34 -0
- data/lib/chef/resource/bash.rb +33 -0
- data/lib/chef/resource/breakpoint.rb +35 -0
- data/lib/chef/resource/cookbook_file.rb +45 -0
- data/lib/chef/resource/cron.rb +188 -0
- data/lib/chef/resource/csh.rb +33 -0
- data/lib/chef/resource/deploy.rb +371 -0
- data/lib/chef/resource/deploy_revision.rb +35 -0
- data/lib/chef/resource/directory.rb +76 -0
- data/lib/chef/resource/dpkg_package.rb +34 -0
- data/lib/chef/resource/easy_install_package.rb +41 -0
- data/lib/chef/resource/env.rb +58 -0
- data/lib/chef/resource/erl_call.rb +83 -0
- data/lib/chef/resource/execute.rb +127 -0
- data/lib/chef/resource/file.rb +92 -0
- data/lib/chef/resource/freebsd_package.rb +35 -0
- data/lib/chef/resource/gem_package.rb +49 -0
- data/lib/chef/resource/git.rb +36 -0
- data/lib/chef/resource/group.rb +70 -0
- data/lib/chef/resource/http_request.rb +61 -0
- data/lib/chef/resource/ifconfig.rb +134 -0
- data/lib/chef/resource/link.rb +78 -0
- data/lib/chef/resource/log.rb +62 -0
- data/lib/chef/resource/macports_package.rb +29 -0
- data/lib/chef/resource/mdadm.rb +82 -0
- data/lib/chef/resource/mount.rb +135 -0
- data/lib/chef/resource/ohai.rb +40 -0
- data/lib/chef/resource/package.rb +80 -0
- data/lib/chef/resource/pacman_package.rb +33 -0
- data/lib/chef/resource/perl.rb +33 -0
- data/lib/chef/resource/portage_package.rb +33 -0
- data/lib/chef/resource/python.rb +33 -0
- data/lib/chef/resource/remote_directory.rb +109 -0
- data/lib/chef/resource/remote_file.rb +83 -0
- data/lib/chef/resource/route.rb +135 -0
- data/lib/chef/resource/rpm_package.rb +34 -0
- data/lib/chef/resource/ruby.rb +33 -0
- data/lib/chef/resource/ruby_block.rb +40 -0
- data/lib/chef/resource/scm.rb +146 -0
- data/lib/chef/resource/script.rb +60 -0
- data/lib/chef/resource/service.rb +160 -0
- data/lib/chef/resource/solaris_package.rb +36 -0
- data/lib/chef/resource/subversion.rb +36 -0
- data/lib/chef/resource/template.rb +69 -0
- data/lib/chef/resource/timestamped_deploy.rb +31 -0
- data/lib/chef/resource/user.rb +130 -0
- data/lib/chef/resource/yum_package.rb +43 -0
- data/lib/chef/resource.rb +523 -0
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
- data/lib/chef/resource_collection.rb +217 -0
- data/lib/chef/resource_definition.rb +67 -0
- data/lib/chef/resource_definition_list.rb +38 -0
- data/lib/chef/resources.rb +64 -0
- data/lib/chef/rest/auth_credentials.rb +78 -0
- data/lib/chef/rest/cookie_jar.rb +31 -0
- data/lib/chef/rest/rest_request.rb +188 -0
- data/lib/chef/rest.rb +394 -0
- data/lib/chef/role.rb +287 -0
- data/lib/chef/run_context.rb +110 -0
- data/lib/chef/run_list/run_list_expansion.rb +172 -0
- data/lib/chef/run_list/run_list_item.rb +78 -0
- data/lib/chef/run_list.rb +150 -0
- data/lib/chef/run_status.rb +121 -0
- data/lib/chef/runner.rb +107 -0
- data/lib/chef/sandbox.rb +153 -0
- data/lib/chef/search/query.rb +60 -0
- data/lib/chef/shef/ext.rb +568 -0
- data/lib/chef/shef/model_wrapper.rb +120 -0
- data/lib/chef/shef/shef_rest.rb +28 -0
- data/lib/chef/shef/shef_session.rb +271 -0
- data/lib/chef/shef.rb +325 -0
- data/lib/chef/shell_out.rb +413 -0
- data/lib/chef/streaming_cookbook_uploader.rb +201 -0
- data/lib/chef/tasks/chef_repo.rake +256 -0
- data/lib/chef/util/file_edit.rb +122 -0
- data/lib/chef/util/windows/net_group.rb +101 -0
- data/lib/chef/util/windows/net_use.rb +121 -0
- data/lib/chef/util/windows/net_user.rb +198 -0
- data/lib/chef/util/windows/volume.rb +59 -0
- data/lib/chef/util/windows.rb +56 -0
- data/lib/chef/version.rb +21 -0
- data/lib/chef/webui_user.rb +231 -0
- data/lib/chef.rb +39 -0
- metadata +533 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Author:: Christopher Walters (<cw@opscode.com>)
|
|
4
|
+
# Copyright:: Copyright (c) 2008, 2009 Opscode, Inc.
|
|
5
|
+
# License:: Apache License, Version 2.0
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require 'chef/mixin/from_file'
|
|
21
|
+
require 'chef/mixin/convert_to_class_name'
|
|
22
|
+
require 'chef/mixin/recipe_definition_dsl_core'
|
|
23
|
+
|
|
24
|
+
class Chef
|
|
25
|
+
class Provider
|
|
26
|
+
|
|
27
|
+
include Chef::Mixin::RecipeDefinitionDSLCore
|
|
28
|
+
|
|
29
|
+
attr_accessor :new_resource, :current_resource, :run_context
|
|
30
|
+
|
|
31
|
+
def initialize(new_resource, run_context)
|
|
32
|
+
@new_resource = new_resource
|
|
33
|
+
@current_resource = nil
|
|
34
|
+
@run_context = run_context
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def node
|
|
38
|
+
run_context && run_context.node
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Used by providers supporting embedded recipes
|
|
42
|
+
def resource_collection
|
|
43
|
+
run_context && run_context.resource_collection
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def cookbook_name
|
|
47
|
+
new_resource.cookbook_name
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def load_current_resource
|
|
51
|
+
raise Chef::Exceptions::Override, "You must override load_current_resource in #{self.to_s}"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def action_nothing
|
|
55
|
+
Chef::Log.debug("Doing nothing for #{@new_resource.to_s}")
|
|
56
|
+
true
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
protected
|
|
60
|
+
|
|
61
|
+
def recipe_eval(&block)
|
|
62
|
+
# This block has new resource definitions within it, which
|
|
63
|
+
# essentially makes it an in-line Chef run. Save our current
|
|
64
|
+
# run_context and create one anew, so the new Chef run only
|
|
65
|
+
# executes the embedded resources.
|
|
66
|
+
#
|
|
67
|
+
# TODO: timh,cw: 2010-5-14: This means that the resources within
|
|
68
|
+
# this block cannot interact with resources outside, e.g.,
|
|
69
|
+
# manipulating notifies.
|
|
70
|
+
saved_run_context = @run_context
|
|
71
|
+
@run_context = @run_context.dup
|
|
72
|
+
@run_context.resource_collection = Chef::ResourceCollection.new
|
|
73
|
+
instance_eval(&block)
|
|
74
|
+
Chef::Runner.new(@run_context).converge
|
|
75
|
+
|
|
76
|
+
@run_context = saved_run_context
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
public
|
|
80
|
+
|
|
81
|
+
class << self
|
|
82
|
+
include Chef::Mixin::ConvertToClassName
|
|
83
|
+
|
|
84
|
+
def build_from_file(cookbook_name, filename)
|
|
85
|
+
pname = filename_to_qualified_string(cookbook_name, filename)
|
|
86
|
+
|
|
87
|
+
# Add log entry if we override an existing light-weight provider.
|
|
88
|
+
class_name = convert_to_class_name(pname)
|
|
89
|
+
overriding = Chef::Provider.const_defined?(class_name)
|
|
90
|
+
Chef::Log.info("#{class_name} light-weight provider already initialized -- overriding!") if overriding
|
|
91
|
+
|
|
92
|
+
new_provider_class = Class.new self do |cls|
|
|
93
|
+
|
|
94
|
+
def load_current_resource
|
|
95
|
+
# silence Chef::Exceptions::Override exception
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
class << cls
|
|
99
|
+
include Chef::Mixin::FromFile
|
|
100
|
+
|
|
101
|
+
# setup DSL's shortcut methods
|
|
102
|
+
def action(name, &block)
|
|
103
|
+
define_method("action_#{name.to_s}") do
|
|
104
|
+
instance_eval(&block)
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# load provider definition from file
|
|
110
|
+
cls.class_from_file(filename)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# register new class as a Chef::Provider
|
|
114
|
+
pname = filename_to_qualified_string(cookbook_name, filename)
|
|
115
|
+
class_name = convert_to_class_name(pname)
|
|
116
|
+
Chef::Provider.const_set(class_name, new_provider_class)
|
|
117
|
+
Chef::Log.debug("Loaded contents of #{filename} into a provider named #{pname} defined in Chef::Provider::#{class_name}")
|
|
118
|
+
|
|
119
|
+
new_provider_class
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
end
|
|
124
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Daniel DeLeo (<dan@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2010 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/provider/breakpoint'
|
|
20
|
+
require 'chef/provider/cookbook_file'
|
|
21
|
+
require 'chef/provider/cron'
|
|
22
|
+
require 'chef/provider/cron/solaris'
|
|
23
|
+
require 'chef/provider/deploy'
|
|
24
|
+
require 'chef/provider/directory'
|
|
25
|
+
require 'chef/provider/env'
|
|
26
|
+
require 'chef/provider/erl_call'
|
|
27
|
+
require 'chef/provider/execute'
|
|
28
|
+
require 'chef/provider/file'
|
|
29
|
+
require 'chef/provider/git'
|
|
30
|
+
require 'chef/provider/group'
|
|
31
|
+
require 'chef/provider/http_request'
|
|
32
|
+
require 'chef/provider/ifconfig'
|
|
33
|
+
require 'chef/provider/link'
|
|
34
|
+
require 'chef/provider/log'
|
|
35
|
+
require 'chef/provider/ohai'
|
|
36
|
+
require 'chef/provider/mdadm'
|
|
37
|
+
require 'chef/provider/mount'
|
|
38
|
+
require 'chef/provider/package'
|
|
39
|
+
require 'chef/provider/remote_directory'
|
|
40
|
+
require 'chef/provider/remote_file'
|
|
41
|
+
require 'chef/provider/route'
|
|
42
|
+
require 'chef/provider/ruby_block'
|
|
43
|
+
require 'chef/provider/script'
|
|
44
|
+
require 'chef/provider/service'
|
|
45
|
+
require 'chef/provider/subversion'
|
|
46
|
+
require 'chef/provider/template'
|
|
47
|
+
require 'chef/provider/user'
|
|
48
|
+
|
|
49
|
+
require 'chef/provider/env/windows'
|
|
50
|
+
|
|
51
|
+
require 'chef/provider/package/apt'
|
|
52
|
+
require 'chef/provider/package/dpkg'
|
|
53
|
+
require 'chef/provider/package/easy_install'
|
|
54
|
+
require 'chef/provider/package/freebsd'
|
|
55
|
+
require 'chef/provider/package/macports'
|
|
56
|
+
require 'chef/provider/package/pacman'
|
|
57
|
+
require 'chef/provider/package/portage'
|
|
58
|
+
require 'chef/provider/package/rpm'
|
|
59
|
+
require 'chef/provider/package/rubygems'
|
|
60
|
+
require 'chef/provider/package/yum'
|
|
61
|
+
require 'chef/provider/package/zypper'
|
|
62
|
+
require 'chef/provider/package/solaris'
|
|
63
|
+
|
|
64
|
+
require 'chef/provider/service/arch'
|
|
65
|
+
require 'chef/provider/service/debian'
|
|
66
|
+
require 'chef/provider/service/freebsd'
|
|
67
|
+
require 'chef/provider/service/gentoo'
|
|
68
|
+
require 'chef/provider/service/init'
|
|
69
|
+
require 'chef/provider/service/redhat'
|
|
70
|
+
require 'chef/provider/service/simple'
|
|
71
|
+
require 'chef/provider/service/upstart'
|
|
72
|
+
require 'chef/provider/service/windows'
|
|
73
|
+
require 'chef/provider/service/solaris'
|
|
74
|
+
|
|
75
|
+
require 'chef/provider/user/dscl'
|
|
76
|
+
require 'chef/provider/user/pw'
|
|
77
|
+
require 'chef/provider/user/useradd'
|
|
78
|
+
require 'chef/provider/user/windows'
|
|
79
|
+
|
|
80
|
+
require 'chef/provider/group/dscl'
|
|
81
|
+
require 'chef/provider/group/gpasswd'
|
|
82
|
+
require 'chef/provider/group/groupadd'
|
|
83
|
+
require 'chef/provider/group/pw'
|
|
84
|
+
require 'chef/provider/group/usermod'
|
|
85
|
+
require 'chef/provider/group/windows'
|
|
86
|
+
|
|
87
|
+
require 'chef/provider/mount/mount'
|
|
88
|
+
require 'chef/provider/mount/windows'
|
|
89
|
+
|
|
90
|
+
require 'chef/provider/deploy/revision'
|
|
91
|
+
require 'chef/provider/deploy/timestamped'
|
data/lib/chef/recipe.rb
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Author:: Christopher Walters (<cw@opscode.com>)
|
|
4
|
+
# Copyright:: Copyright (c) 2008, 2009 Opscode, Inc.
|
|
5
|
+
# License:: Apache License, Version 2.0
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
require 'chef/mixin/recipe_definition_dsl_core'
|
|
22
|
+
require 'chef/mixin/from_file'
|
|
23
|
+
require 'chef/mixin/language'
|
|
24
|
+
require 'chef/mixin/language_include_recipe'
|
|
25
|
+
|
|
26
|
+
require 'chef/mixin/deprecation'
|
|
27
|
+
|
|
28
|
+
class Chef
|
|
29
|
+
# == Chef::Recipe
|
|
30
|
+
# A Recipe object is the context in which Chef recipes are evaluated.
|
|
31
|
+
class Recipe
|
|
32
|
+
|
|
33
|
+
include Chef::Mixin::FromFile
|
|
34
|
+
include Chef::Mixin::Language
|
|
35
|
+
include Chef::Mixin::LanguageIncludeRecipe
|
|
36
|
+
include Chef::Mixin::RecipeDefinitionDSLCore
|
|
37
|
+
include Chef::Mixin::Deprecation
|
|
38
|
+
|
|
39
|
+
attr_accessor :cookbook_name, :recipe_name, :recipe, :params, :run_context
|
|
40
|
+
|
|
41
|
+
# Parses a potentially fully-qualified recipe name into its
|
|
42
|
+
# cookbook name and recipe short name.
|
|
43
|
+
#
|
|
44
|
+
# For example:
|
|
45
|
+
# "aws::elastic_ip" returns [:aws, "elastic_ip"]
|
|
46
|
+
# "aws" returns [:aws, "default"]
|
|
47
|
+
#--
|
|
48
|
+
# TODO: Duplicates functionality of RunListItem
|
|
49
|
+
def self.parse_recipe_name(recipe_name)
|
|
50
|
+
rmatch = recipe_name.match(/(.+?)::(.+)/)
|
|
51
|
+
if rmatch
|
|
52
|
+
[ rmatch[1].to_sym, rmatch[2] ]
|
|
53
|
+
else
|
|
54
|
+
[ recipe_name.to_sym, "default" ]
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def initialize(cookbook_name, recipe_name, run_context)
|
|
59
|
+
@cookbook_name = cookbook_name
|
|
60
|
+
@recipe_name = recipe_name
|
|
61
|
+
@run_context = run_context
|
|
62
|
+
# TODO: 5/19/2010 cw/tim: determine whether this can be removed
|
|
63
|
+
@params = Hash.new
|
|
64
|
+
@node = deprecated_ivar(run_context.node, :node, :warn)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Used in DSL mixins
|
|
68
|
+
def node
|
|
69
|
+
run_context.node
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Used by the DSL to look up resources when executing in the context of a
|
|
73
|
+
# recipe.
|
|
74
|
+
#--
|
|
75
|
+
# what does this do? and what is args? TODO 5-14-2010.
|
|
76
|
+
def resources(*args)
|
|
77
|
+
run_context.resource_collection.find(*args)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Sets a tag, or list of tags, for this node. Syntactic sugar for
|
|
81
|
+
# run_context.node[:tags].
|
|
82
|
+
#
|
|
83
|
+
# With no arguments, returns the list of tags.
|
|
84
|
+
#
|
|
85
|
+
# === Parameters
|
|
86
|
+
# tags<Array>:: A list of tags to add - can be a single string
|
|
87
|
+
#
|
|
88
|
+
# === Returns
|
|
89
|
+
# tags<Array>:: The contents of run_context.node[:tags]
|
|
90
|
+
def tag(*tags)
|
|
91
|
+
if tags.length > 0
|
|
92
|
+
tags.each do |tag|
|
|
93
|
+
run_context.node[:tags] << tag unless run_context.node[:tags].include?(tag)
|
|
94
|
+
end
|
|
95
|
+
run_context.node[:tags]
|
|
96
|
+
else
|
|
97
|
+
run_context.node[:tags]
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Returns true if the node is tagged with *all* of the supplied +tags+.
|
|
102
|
+
#
|
|
103
|
+
# === Parameters
|
|
104
|
+
# tags<Array>:: A list of tags
|
|
105
|
+
#
|
|
106
|
+
# === Returns
|
|
107
|
+
# true<TrueClass>:: If all the parameters are present
|
|
108
|
+
# false<FalseClass>:: If any of the parameters are missing
|
|
109
|
+
def tagged?(*tags)
|
|
110
|
+
tags.each do |tag|
|
|
111
|
+
return false unless run_context.node[:tags].include?(tag)
|
|
112
|
+
end
|
|
113
|
+
true
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Removes the list of tags from the node.
|
|
117
|
+
#
|
|
118
|
+
# === Parameters
|
|
119
|
+
# tags<Array>:: A list of tags
|
|
120
|
+
#
|
|
121
|
+
# === Returns
|
|
122
|
+
# tags<Array>:: The current list of run_context.node[:tags]
|
|
123
|
+
def untag(*tags)
|
|
124
|
+
tags.each do |tag|
|
|
125
|
+
run_context.node[:tags].delete(tag)
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@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/apt'
|
|
21
|
+
|
|
22
|
+
class Chef
|
|
23
|
+
class Resource
|
|
24
|
+
class AptPackage < Chef::Resource::Package
|
|
25
|
+
|
|
26
|
+
def initialize(name, run_context=nil)
|
|
27
|
+
super
|
|
28
|
+
@resource_name = :apt_package
|
|
29
|
+
@provider = Chef::Provider::Package::Apt
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@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/script'
|
|
20
|
+
|
|
21
|
+
class Chef
|
|
22
|
+
class Resource
|
|
23
|
+
class Bash < Chef::Resource::Script
|
|
24
|
+
|
|
25
|
+
def initialize(name, run_context=nil)
|
|
26
|
+
super
|
|
27
|
+
@resource_name = :bash
|
|
28
|
+
@interpreter = "bash"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
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
|