tylerrick-chef 0.10.8
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 +171 -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/arch/etc/conf.d/chef-client.conf +5 -0
- data/distro/arch/etc/conf.d/chef-expander.conf +8 -0
- data/distro/arch/etc/conf.d/chef-server-webui.conf +10 -0
- data/distro/arch/etc/conf.d/chef-server.conf +10 -0
- data/distro/arch/etc/conf.d/chef-solr.conf +8 -0
- data/distro/arch/etc/rc.d/chef-client +76 -0
- data/distro/arch/etc/rc.d/chef-expander +78 -0
- data/distro/arch/etc/rc.d/chef-server +78 -0
- data/distro/arch/etc/rc.d/chef-server-webui +78 -0
- data/distro/arch/etc/rc.d/chef-solr +78 -0
- data/distro/common/html/chef-client.8.html +146 -0
- data/distro/common/html/chef-expander.8.html +164 -0
- data/distro/common/html/chef-expanderctl.8.html +146 -0
- data/distro/common/html/chef-server-webui.8.html +185 -0
- data/distro/common/html/chef-server.8.html +182 -0
- data/distro/common/html/chef-solo.8.html +191 -0
- data/distro/common/html/chef-solr.8.html +165 -0
- data/distro/common/html/knife-bootstrap.1.html +243 -0
- data/distro/common/html/knife-client.1.html +219 -0
- data/distro/common/html/knife-configure.1.html +170 -0
- data/distro/common/html/knife-cookbook-site.1.html +241 -0
- data/distro/common/html/knife-cookbook.1.html +384 -0
- data/distro/common/html/knife-data-bag.1.html +234 -0
- data/distro/common/html/knife-environment.1.html +267 -0
- data/distro/common/html/knife-exec.1.html +134 -0
- data/distro/common/html/knife-index.1.html +125 -0
- data/distro/common/html/knife-node.1.html +250 -0
- data/distro/common/html/knife-recipe.1.html +92 -0
- data/distro/common/html/knife-role.1.html +200 -0
- data/distro/common/html/knife-search.1.html +288 -0
- data/distro/common/html/knife-ssh.1.html +157 -0
- data/distro/common/html/knife-status.1.html +128 -0
- data/distro/common/html/knife-tag.1.html +137 -0
- data/distro/common/html/knife.1.html +321 -0
- data/distro/common/html/shef.1.html +283 -0
- data/distro/common/man/man1/knife-bootstrap.1 +197 -0
- data/distro/common/man/man1/knife-client.1 +99 -0
- data/distro/common/man/man1/knife-configure.1 +88 -0
- data/distro/common/man/man1/knife-cookbook-site.1 +145 -0
- data/distro/common/man/man1/knife-cookbook.1 +345 -0
- data/distro/common/man/man1/knife-data-bag.1 +130 -0
- data/distro/common/man/man1/knife-environment.1 +178 -0
- data/distro/common/man/man1/knife-exec.1 +46 -0
- data/distro/common/man/man1/knife-index.1 +29 -0
- data/distro/common/man/man1/knife-node.1 +134 -0
- data/distro/common/man/man1/knife-role.1 +88 -0
- data/distro/common/man/man1/knife-search.1 +280 -0
- data/distro/common/man/man1/knife-ssh.1 +83 -0
- data/distro/common/man/man1/knife-status.1 +29 -0
- data/distro/common/man/man1/knife-tag.1 +43 -0
- data/distro/common/man/man1/knife.1 +292 -0
- data/distro/common/man/man1/shef.1 +256 -0
- data/distro/common/man/man8/chef-client.8 +104 -0
- data/distro/common/man/man8/chef-expander.8 +97 -0
- data/distro/common/man/man8/chef-expanderctl.8 +62 -0
- data/distro/common/man/man8/chef-server-webui.8 +155 -0
- data/distro/common/man/man8/chef-server.8 +147 -0
- data/distro/common/man/man8/chef-solo.8 +158 -0
- data/distro/common/man/man8/chef-solr.8 +122 -0
- data/distro/common/markdown/README +3 -0
- data/distro/common/markdown/man1/knife-bootstrap.mkd +142 -0
- data/distro/common/markdown/man1/knife-client.mkd +103 -0
- data/distro/common/markdown/man1/knife-configure.mkd +70 -0
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +123 -0
- data/distro/common/markdown/man1/knife-cookbook.mkd +263 -0
- data/distro/common/markdown/man1/knife-data-bag.mkd +117 -0
- data/distro/common/markdown/man1/knife-environment.mkd +151 -0
- data/distro/common/markdown/man1/knife-exec.mkd +37 -0
- data/distro/common/markdown/man1/knife-index.mkd +30 -0
- data/distro/common/markdown/man1/knife-node.mkd +130 -0
- data/distro/common/markdown/man1/knife-role.mkd +85 -0
- data/distro/common/markdown/man1/knife-search.mkd +180 -0
- data/distro/common/markdown/man1/knife-ssh.mkd +72 -0
- data/distro/common/markdown/man1/knife-status.mkd +36 -0
- data/distro/common/markdown/man1/knife-tag.mkd +39 -0
- data/distro/common/markdown/man1/knife.mkd +220 -0
- data/distro/common/markdown/man1/shef.mkd +189 -0
- data/distro/common/markdown/man8/chef-client.mkd +75 -0
- data/distro/common/markdown/man8/chef-expander.mkd +82 -0
- data/distro/common/markdown/man8/chef-expanderctl.mkd +58 -0
- data/distro/common/markdown/man8/chef-server-webui.mkd +121 -0
- data/distro/common/markdown/man8/chef-server.mkd +121 -0
- data/distro/common/markdown/man8/chef-solo.mkd +107 -0
- data/distro/common/markdown/man8/chef-solr.mkd +89 -0
- data/distro/debian/etc/default/chef-client +4 -0
- data/distro/debian/etc/default/chef-expander +8 -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 +8 -0
- data/distro/debian/etc/init.d/chef-client +185 -0
- data/distro/debian/etc/init.d/chef-expander +176 -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 +176 -0
- data/distro/debian/etc/init/chef-client.conf +17 -0
- data/distro/debian/etc/init/chef-expander.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.conf +17 -0
- data/distro/redhat/etc/init.d/chef-client +110 -0
- data/distro/redhat/etc/init.d/chef-expander +104 -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/logrotate.d/chef-client +8 -0
- data/distro/redhat/etc/logrotate.d/chef-expander +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/sysconfig/chef-client +15 -0
- data/distro/redhat/etc/sysconfig/chef-expander +7 -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/lib/chef.rb +41 -0
- data/lib/chef/api_client.rb +271 -0
- data/lib/chef/application.rb +152 -0
- data/lib/chef/application/agent.rb +18 -0
- data/lib/chef/application/client.rb +285 -0
- data/lib/chef/application/knife.rb +188 -0
- data/lib/chef/application/solo.rb +218 -0
- data/lib/chef/applications.rb +4 -0
- data/lib/chef/certificate.rb +194 -0
- data/lib/chef/checksum.rb +167 -0
- data/lib/chef/checksum/storage.rb +18 -0
- data/lib/chef/checksum/storage/filesystem.rb +56 -0
- data/lib/chef/checksum_cache.rb +189 -0
- data/lib/chef/client.rb +366 -0
- data/lib/chef/config.rb +248 -0
- data/lib/chef/cookbook/chefignore.rb +66 -0
- data/lib/chef/cookbook/cookbook_collection.rb +45 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +173 -0
- data/lib/chef/cookbook/file_system_file_vendor.rb +56 -0
- data/lib/chef/cookbook/file_vendor.rb +48 -0
- data/lib/chef/cookbook/metadata.rb +629 -0
- data/lib/chef/cookbook/remote_file_vendor.rb +88 -0
- data/lib/chef/cookbook/syntax_check.rb +136 -0
- data/lib/chef/cookbook_loader.rb +121 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
- data/lib/chef/cookbook_uploader.rb +154 -0
- data/lib/chef/cookbook_version.rb +1096 -0
- data/lib/chef/cookbook_version_selector.rb +168 -0
- data/lib/chef/couchdb.rb +246 -0
- data/lib/chef/daemon.rb +172 -0
- data/lib/chef/data_bag.rb +235 -0
- data/lib/chef/data_bag_item.rb +273 -0
- data/lib/chef/encrypted_data_bag_item.rb +139 -0
- data/lib/chef/environment.rb +455 -0
- data/lib/chef/exceptions.rb +154 -0
- data/lib/chef/file_access_control.rb +144 -0
- data/lib/chef/file_cache.rb +218 -0
- data/lib/chef/handler.rb +227 -0
- data/lib/chef/handler/error_report.rb +33 -0
- data/lib/chef/handler/json_file.rb +58 -0
- data/lib/chef/index_queue.rb +29 -0
- data/lib/chef/index_queue/amqp_client.rb +116 -0
- data/lib/chef/index_queue/consumer.rb +76 -0
- data/lib/chef/index_queue/indexable.rb +109 -0
- data/lib/chef/json_compat.rb +52 -0
- data/lib/chef/knife.rb +520 -0
- data/lib/chef/knife/bootstrap.rb +207 -0
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +60 -0
- data/lib/chef/knife/bootstrap/centos5-gems.erb +56 -0
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +43 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +49 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +50 -0
- data/lib/chef/knife/client_bulk_delete.rb +65 -0
- data/lib/chef/knife/client_create.rb +79 -0
- data/lib/chef/knife/client_delete.rb +46 -0
- data/lib/chef/knife/client_edit.rb +45 -0
- data/lib/chef/knife/client_list.rb +42 -0
- data/lib/chef/knife/client_reregister.rb +58 -0
- data/lib/chef/knife/client_show.rb +52 -0
- data/lib/chef/knife/configure.rb +149 -0
- data/lib/chef/knife/configure_client.rb +50 -0
- data/lib/chef/knife/cookbook_bulk_delete.rb +72 -0
- data/lib/chef/knife/cookbook_create.rb +274 -0
- data/lib/chef/knife/cookbook_delete.rb +151 -0
- data/lib/chef/knife/cookbook_download.rb +137 -0
- data/lib/chef/knife/cookbook_list.rb +47 -0
- data/lib/chef/knife/cookbook_metadata.rb +107 -0
- data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -0
- data/lib/chef/knife/cookbook_show.rb +102 -0
- data/lib/chef/knife/cookbook_site_download.rb +70 -0
- data/lib/chef/knife/cookbook_site_install.rb +148 -0
- data/lib/chef/knife/cookbook_site_list.rb +62 -0
- data/lib/chef/knife/cookbook_site_search.rb +51 -0
- data/lib/chef/knife/cookbook_site_share.rb +114 -0
- data/lib/chef/knife/cookbook_site_show.rb +57 -0
- data/lib/chef/knife/cookbook_site_unshare.rb +56 -0
- data/lib/chef/knife/cookbook_site_vendor.rb +46 -0
- data/lib/chef/knife/cookbook_test.rb +93 -0
- data/lib/chef/knife/cookbook_upload.rb +240 -0
- data/lib/chef/knife/core/bootstrap_context.rb +100 -0
- data/lib/chef/knife/core/cookbook_scm_repo.rb +148 -0
- data/lib/chef/knife/core/generic_presenter.rb +191 -0
- data/lib/chef/knife/core/node_editor.rb +127 -0
- data/lib/chef/knife/core/node_presenter.rb +136 -0
- data/lib/chef/knife/core/object_loader.rb +75 -0
- data/lib/chef/knife/core/subcommand_loader.rb +112 -0
- data/lib/chef/knife/core/text_formatter.rb +100 -0
- data/lib/chef/knife/core/ui.rb +216 -0
- data/lib/chef/knife/data_bag_create.rb +93 -0
- data/lib/chef/knife/data_bag_delete.rb +51 -0
- data/lib/chef/knife/data_bag_edit.rb +94 -0
- data/lib/chef/knife/data_bag_from_file.rb +87 -0
- data/lib/chef/knife/data_bag_list.rb +46 -0
- data/lib/chef/knife/data_bag_show.rb +81 -0
- data/lib/chef/knife/environment_create.rb +53 -0
- data/lib/chef/knife/environment_delete.rb +45 -0
- data/lib/chef/knife/environment_edit.rb +45 -0
- data/lib/chef/knife/environment_from_file.rb +50 -0
- data/lib/chef/knife/environment_list.rb +42 -0
- data/lib/chef/knife/environment_show.rb +46 -0
- data/lib/chef/knife/exec.rb +51 -0
- data/lib/chef/knife/help.rb +103 -0
- data/lib/chef/knife/help_topics.rb +4 -0
- data/lib/chef/knife/index_rebuild.rb +50 -0
- data/lib/chef/knife/node_bulk_delete.rb +80 -0
- data/lib/chef/knife/node_create.rb +50 -0
- data/lib/chef/knife/node_delete.rb +47 -0
- data/lib/chef/knife/node_edit.rb +72 -0
- data/lib/chef/knife/node_from_file.rb +50 -0
- data/lib/chef/knife/node_list.rb +46 -0
- data/lib/chef/knife/node_run_list_add.rb +67 -0
- data/lib/chef/knife/node_run_list_remove.rb +48 -0
- data/lib/chef/knife/node_show.rb +73 -0
- data/lib/chef/knife/recipe_list.rb +32 -0
- data/lib/chef/knife/role_bulk_delete.rb +70 -0
- data/lib/chef/knife/role_create.rb +55 -0
- data/lib/chef/knife/role_delete.rb +47 -0
- data/lib/chef/knife/role_edit.rb +48 -0
- data/lib/chef/knife/role_from_file.rb +56 -0
- data/lib/chef/knife/role_list.rb +43 -0
- data/lib/chef/knife/role_show.rb +54 -0
- data/lib/chef/knife/search.rb +141 -0
- data/lib/chef/knife/ssh.rb +367 -0
- data/lib/chef/knife/status.rb +104 -0
- data/lib/chef/knife/tag_create.rb +52 -0
- data/lib/chef/knife/tag_delete.rb +60 -0
- data/lib/chef/knife/tag_list.rb +47 -0
- data/lib/chef/log.rb +39 -0
- data/lib/chef/mash.rb +211 -0
- data/lib/chef/mixin/check_helper.rb +31 -0
- data/lib/chef/mixin/checksum.rb +32 -0
- data/lib/chef/mixin/command.rb +163 -0
- data/lib/chef/mixin/command/unix.rb +215 -0
- data/lib/chef/mixin/command/windows.rb +76 -0
- data/lib/chef/mixin/convert_to_class_name.rb +63 -0
- data/lib/chef/mixin/create_path.rb +57 -0
- data/lib/chef/mixin/deep_merge.rb +225 -0
- data/lib/chef/mixin/deprecation.rb +65 -0
- data/lib/chef/mixin/from_file.rb +50 -0
- data/lib/chef/mixin/get_source_from_package.rb +42 -0
- data/lib/chef/mixin/language.rb +163 -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 +78 -0
- data/lib/chef/mixin/shell_out.rb +41 -0
- data/lib/chef/mixin/template.rb +95 -0
- data/lib/chef/mixin/xml_escape.rb +140 -0
- data/lib/chef/mixins.rb +15 -0
- data/lib/chef/monkey_patches/dir.rb +36 -0
- data/lib/chef/monkey_patches/numeric.rb +15 -0
- data/lib/chef/monkey_patches/object.rb +9 -0
- data/lib/chef/monkey_patches/regexp.rb +34 -0
- data/lib/chef/monkey_patches/string.rb +49 -0
- data/lib/chef/monkey_patches/tempfile.rb +64 -0
- data/lib/chef/nil_argument.rb +3 -0
- data/lib/chef/node.rb +677 -0
- data/lib/chef/node/attribute.rb +487 -0
- data/lib/chef/openid_registration.rb +187 -0
- data/lib/chef/platform.rb +434 -0
- data/lib/chef/provider.rb +124 -0
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cookbook_file.rb +100 -0
- data/lib/chef/provider/cron.rb +186 -0
- data/lib/chef/provider/cron/solaris.rb +195 -0
- data/lib/chef/provider/deploy.rb +418 -0
- data/lib/chef/provider/deploy/revision.rb +80 -0
- data/lib/chef/provider/deploy/timestamped.rb +33 -0
- data/lib/chef/provider/directory.rb +72 -0
- data/lib/chef/provider/env.rb +152 -0
- data/lib/chef/provider/env/windows.rb +75 -0
- data/lib/chef/provider/erl_call.rb +101 -0
- data/lib/chef/provider/execute.rb +65 -0
- data/lib/chef/provider/file.rb +226 -0
- data/lib/chef/provider/git.rb +243 -0
- data/lib/chef/provider/group.rb +133 -0
- data/lib/chef/provider/group/aix.rb +70 -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 +91 -0
- data/lib/chef/provider/group/pw.rb +84 -0
- data/lib/chef/provider/group/suse.rb +53 -0
- data/lib/chef/provider/group/usermod.rb +57 -0
- data/lib/chef/provider/group/windows.rb +79 -0
- data/lib/chef/provider/http_request.rb +122 -0
- data/lib/chef/provider/ifconfig.rb +195 -0
- data/lib/chef/provider/link.rb +164 -0
- data/lib/chef/provider/log.rb +54 -0
- data/lib/chef/provider/mdadm.rb +91 -0
- data/lib/chef/provider/mount.rb +114 -0
- data/lib/chef/provider/mount/mount.rb +240 -0
- data/lib/chef/provider/mount/windows.rb +81 -0
- data/lib/chef/provider/ohai.rb +42 -0
- data/lib/chef/provider/package.rb +200 -0
- data/lib/chef/provider/package/apt.rb +145 -0
- data/lib/chef/provider/package/dpkg.rb +115 -0
- data/lib/chef/provider/package/easy_install.rb +136 -0
- data/lib/chef/provider/package/freebsd.rb +125 -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 +135 -0
- data/lib/chef/provider/package/rpm.rb +104 -0
- data/lib/chef/provider/package/rubygems.rb +465 -0
- data/lib/chef/provider/package/solaris.rb +130 -0
- data/lib/chef/provider/package/yum-dump.py +286 -0
- data/lib/chef/provider/package/yum.rb +1173 -0
- data/lib/chef/provider/package/zypper.rb +144 -0
- data/lib/chef/provider/remote_directory.rb +137 -0
- data/lib/chef/provider/remote_file.rb +118 -0
- data/lib/chef/provider/route.rb +193 -0
- data/lib/chef/provider/ruby_block.rb +34 -0
- data/lib/chef/provider/script.rb +55 -0
- data/lib/chef/provider/service.rb +122 -0
- data/lib/chef/provider/service/arch.rb +116 -0
- data/lib/chef/provider/service/debian.rb +130 -0
- data/lib/chef/provider/service/freebsd.rb +154 -0
- data/lib/chef/provider/service/gentoo.rb +53 -0
- data/lib/chef/provider/service/init.rb +71 -0
- data/lib/chef/provider/service/insserv.rb +52 -0
- data/lib/chef/provider/service/invokercd.rb +35 -0
- data/lib/chef/provider/service/redhat.rb +60 -0
- data/lib/chef/provider/service/simple.rb +120 -0
- data/lib/chef/provider/service/solaris.rb +85 -0
- data/lib/chef/provider/service/systemd.rb +102 -0
- data/lib/chef/provider/service/upstart.rb +198 -0
- data/lib/chef/provider/service/windows.rb +155 -0
- data/lib/chef/provider/subversion.rb +197 -0
- data/lib/chef/provider/template.rb +104 -0
- data/lib/chef/provider/user.rb +186 -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/providers.rb +95 -0
- data/lib/chef/recipe.rb +129 -0
- data/lib/chef/resource.rb +609 -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/conditional.rb +90 -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 +389 -0
- data/lib/chef/resource/deploy_revision.rb +40 -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 +57 -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 +99 -0
- data/lib/chef/resource/freebsd_package.rb +35 -0
- data/lib/chef/resource/gem_package.rb +53 -0
- data/lib/chef/resource/git.rb +46 -0
- data/lib/chef/resource/group.rb +78 -0
- data/lib/chef/resource/http_request.rb +61 -0
- data/lib/chef/resource/ifconfig.rb +144 -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 +134 -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 +147 -0
- data/lib/chef/resource/script.rb +60 -0
- data/lib/chef/resource/service.rb +151 -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 +63 -0
- data/lib/chef/resource_collection.rb +217 -0
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -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.rb +400 -0
- data/lib/chef/rest/auth_credentials.rb +71 -0
- data/lib/chef/rest/cookie_jar.rb +31 -0
- data/lib/chef/rest/rest_request.rb +213 -0
- data/lib/chef/role.rb +343 -0
- data/lib/chef/run_context.rb +126 -0
- data/lib/chef/run_list.rb +165 -0
- data/lib/chef/run_list/run_list_expansion.rb +193 -0
- data/lib/chef/run_list/run_list_item.rb +92 -0
- data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
- data/lib/chef/run_status.rb +121 -0
- data/lib/chef/runner.rb +105 -0
- data/lib/chef/sandbox.rb +153 -0
- data/lib/chef/search/query.rb +65 -0
- data/lib/chef/shef.rb +327 -0
- data/lib/chef/shef/ext.rb +569 -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 +285 -0
- data/lib/chef/shell_out.rb +249 -0
- data/lib/chef/shell_out/unix.rb +223 -0
- data/lib/chef/shell_out/windows.rb +588 -0
- data/lib/chef/solr_query.rb +187 -0
- data/lib/chef/solr_query/lucene.treetop +150 -0
- data/lib/chef/solr_query/lucene_nodes.rb +285 -0
- data/lib/chef/solr_query/query_transform.rb +65 -0
- data/lib/chef/solr_query/solr_http_request.rb +132 -0
- data/lib/chef/streaming_cookbook_uploader.rb +201 -0
- data/lib/chef/tasks/chef_repo.rake +334 -0
- data/lib/chef/util/file_edit.rb +122 -0
- data/lib/chef/util/windows.rb +56 -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/version.rb +23 -0
- data/lib/chef/version_class.rb +70 -0
- data/lib/chef/version_constraint.rb +116 -0
- data/lib/chef/webui_user.rb +231 -0
- metadata +764 -0
|
@@ -0,0 +1,152 @@
|
|
|
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
|
+
require 'socket'
|
|
19
|
+
require 'chef/config'
|
|
20
|
+
require 'chef/exceptions'
|
|
21
|
+
require 'chef/log'
|
|
22
|
+
require 'mixlib/cli'
|
|
23
|
+
require 'tmpdir'
|
|
24
|
+
|
|
25
|
+
class Chef::Application
|
|
26
|
+
include Mixlib::CLI
|
|
27
|
+
|
|
28
|
+
class Wakeup < Exception
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def initialize
|
|
32
|
+
super
|
|
33
|
+
|
|
34
|
+
trap("TERM") do
|
|
35
|
+
Chef::Application.fatal!("SIGTERM received, stopping", 1)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
trap("INT") do
|
|
39
|
+
Chef::Application.fatal!("SIGINT received, stopping", 2)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
unless RUBY_PLATFORM =~ /mswin|mingw32|windows/
|
|
43
|
+
trap("QUIT") do
|
|
44
|
+
Chef::Log.info("SIGQUIT received, call stack:\n " + caller.join("\n "))
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
trap("HUP") do
|
|
48
|
+
Chef::Log.info("SIGHUP received, reconfiguring")
|
|
49
|
+
reconfigure
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Always switch to a readable directory. Keeps subsequent Dir.chdir() {}
|
|
54
|
+
# from failing due to permissions when launched as a less privileged user.
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Reconfigure the application. You'll want to override and super this method.
|
|
58
|
+
def reconfigure
|
|
59
|
+
configure_chef
|
|
60
|
+
configure_logging
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Get this party started
|
|
64
|
+
def run
|
|
65
|
+
reconfigure
|
|
66
|
+
setup_application
|
|
67
|
+
run_application
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Parse the configuration file
|
|
71
|
+
def configure_chef
|
|
72
|
+
parse_options
|
|
73
|
+
|
|
74
|
+
begin
|
|
75
|
+
case config[:config_file]
|
|
76
|
+
when /^(http|https):\/\//
|
|
77
|
+
Chef::REST.new("", nil, nil).fetch(config[:config_file]) { |f| apply_config(f.path) }
|
|
78
|
+
else
|
|
79
|
+
::File::open(config[:config_file]) { |f| apply_config(f.path) }
|
|
80
|
+
end
|
|
81
|
+
rescue SocketError => error
|
|
82
|
+
Chef::Application.fatal!("Error getting config file #{Chef::Config[:config_file]}", 2)
|
|
83
|
+
rescue Exception => error
|
|
84
|
+
Chef::Log.warn("*****************************************")
|
|
85
|
+
Chef::Log.warn("Can not find config file: #{config[:config_file]}, using defaults.")
|
|
86
|
+
Chef::Log.warn("#{error.message}")
|
|
87
|
+
Chef::Log.warn("*****************************************")
|
|
88
|
+
|
|
89
|
+
Chef::Config.merge!(config)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Initialize and configure the logger. If the configured log location is not
|
|
95
|
+
# STDOUT, but stdout is a TTY and we're not daemonizing, we set up a secondary
|
|
96
|
+
# logger with output to stdout. This way, we magically do the right thing when
|
|
97
|
+
# the user has configured logging to a file but they're running chef in the
|
|
98
|
+
# shell to debug something.
|
|
99
|
+
def configure_logging
|
|
100
|
+
Chef::Log.init(Chef::Config[:log_location])
|
|
101
|
+
if ( Chef::Config[:log_location] != STDOUT ) && STDOUT.tty? && (!Chef::Config[:daemonize])
|
|
102
|
+
stdout_logger = Logger.new(STDOUT)
|
|
103
|
+
STDOUT.sync = true
|
|
104
|
+
stdout_logger.formatter = Chef::Log.logger.formatter
|
|
105
|
+
Chef::Log.loggers << stdout_logger
|
|
106
|
+
end
|
|
107
|
+
Chef::Log.level = Chef::Config[:log_level]
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Called prior to starting the application, by the run method
|
|
111
|
+
def setup_application
|
|
112
|
+
raise Chef::Exceptions::Application, "#{self.to_s}: you must override setup_application"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Actually run the application
|
|
116
|
+
def run_application
|
|
117
|
+
raise Chef::Exceptions::Application, "#{self.to_s}: you must override run_application"
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
private
|
|
121
|
+
|
|
122
|
+
def apply_config(config_file_path)
|
|
123
|
+
Chef::Config.from_file(config_file_path)
|
|
124
|
+
Chef::Config.merge!(config)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class << self
|
|
129
|
+
def debug_stacktrace(e)
|
|
130
|
+
message = "#{e.class}: #{e}\n#{e.backtrace.join("\n")}"
|
|
131
|
+
chef_stacktrace_out = "Generated at #{Time.now.to_s}\n"
|
|
132
|
+
chef_stacktrace_out += message
|
|
133
|
+
|
|
134
|
+
Chef::FileCache.store("chef-stacktrace.out", chef_stacktrace_out)
|
|
135
|
+
Chef::Log.fatal("Stacktrace dumped to #{Chef::FileCache.load("chef-stacktrace.out", false)}")
|
|
136
|
+
Chef::Log.fatal(message)
|
|
137
|
+
true
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Log a fatal error message to both STDERR and the Logger, exit the application
|
|
141
|
+
def fatal!(msg, err = -1)
|
|
142
|
+
Chef::Log.fatal(msg)
|
|
143
|
+
Process.exit err
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def exit!(msg, err = -1)
|
|
147
|
+
Chef::Log.debug(msg)
|
|
148
|
+
Process.exit err
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: AJ Christensen (<aj@opscode.comz>)
|
|
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
|
+
require 'chef/application'
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: AJ Christensen (<aj@opscode.com)
|
|
3
|
+
# Author:: Christopher Brown (<cb@opscode.com>)
|
|
4
|
+
# Copyright:: Copyright (c) 2008 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
|
+
require 'chef/application'
|
|
20
|
+
require 'chef/client'
|
|
21
|
+
require 'chef/config'
|
|
22
|
+
require 'chef/daemon'
|
|
23
|
+
require 'chef/log'
|
|
24
|
+
require 'chef/rest'
|
|
25
|
+
require 'chef/handler/error_report'
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Chef::Application::Client < Chef::Application
|
|
29
|
+
|
|
30
|
+
# Mimic self_pipe sleep from Unicorn to capture signals safely
|
|
31
|
+
SELF_PIPE = []
|
|
32
|
+
|
|
33
|
+
option :config_file,
|
|
34
|
+
:short => "-c CONFIG",
|
|
35
|
+
:long => "--config CONFIG",
|
|
36
|
+
:default => "/etc/chef/client.rb",
|
|
37
|
+
:description => "The configuration file to use"
|
|
38
|
+
|
|
39
|
+
option :log_level,
|
|
40
|
+
:short => "-l LEVEL",
|
|
41
|
+
:long => "--log_level LEVEL",
|
|
42
|
+
:description => "Set the log level (debug, info, warn, error, fatal)",
|
|
43
|
+
:proc => lambda { |l| l.to_sym }
|
|
44
|
+
|
|
45
|
+
option :log_location,
|
|
46
|
+
:short => "-L LOGLOCATION",
|
|
47
|
+
:long => "--logfile LOGLOCATION",
|
|
48
|
+
:description => "Set the log file location, defaults to STDOUT - recommended for daemonizing",
|
|
49
|
+
:proc => nil
|
|
50
|
+
|
|
51
|
+
option :help,
|
|
52
|
+
:short => "-h",
|
|
53
|
+
:long => "--help",
|
|
54
|
+
:description => "Show this message",
|
|
55
|
+
:on => :tail,
|
|
56
|
+
:boolean => true,
|
|
57
|
+
:show_options => true,
|
|
58
|
+
:exit => 0
|
|
59
|
+
|
|
60
|
+
option :user,
|
|
61
|
+
:short => "-u USER",
|
|
62
|
+
:long => "--user USER",
|
|
63
|
+
:description => "User to set privilege to",
|
|
64
|
+
:proc => nil
|
|
65
|
+
|
|
66
|
+
option :group,
|
|
67
|
+
:short => "-g GROUP",
|
|
68
|
+
:long => "--group GROUP",
|
|
69
|
+
:description => "Group to set privilege to",
|
|
70
|
+
:proc => nil
|
|
71
|
+
|
|
72
|
+
option :daemonize,
|
|
73
|
+
:short => "-d",
|
|
74
|
+
:long => "--daemonize",
|
|
75
|
+
:description => "Daemonize the process",
|
|
76
|
+
:proc => lambda { |p| true }
|
|
77
|
+
|
|
78
|
+
option :pid_file,
|
|
79
|
+
:short => "-P PID_FILE",
|
|
80
|
+
:long => "--pid PIDFILE",
|
|
81
|
+
:description => "Set the PID file location, defaults to /tmp/chef-client.pid",
|
|
82
|
+
:proc => nil
|
|
83
|
+
|
|
84
|
+
option :interval,
|
|
85
|
+
:short => "-i SECONDS",
|
|
86
|
+
:long => "--interval SECONDS",
|
|
87
|
+
:description => "Run chef-client periodically, in seconds",
|
|
88
|
+
:proc => lambda { |s| s.to_i }
|
|
89
|
+
|
|
90
|
+
option :once,
|
|
91
|
+
:long => "--once",
|
|
92
|
+
:description => "Cancel any interval or splay options, run chef once and exit",
|
|
93
|
+
:boolean => true
|
|
94
|
+
|
|
95
|
+
option :json_attribs,
|
|
96
|
+
:short => "-j JSON_ATTRIBS",
|
|
97
|
+
:long => "--json-attributes JSON_ATTRIBS",
|
|
98
|
+
:description => "Load attributes from a JSON file or URL",
|
|
99
|
+
:proc => nil
|
|
100
|
+
|
|
101
|
+
option :node_name,
|
|
102
|
+
:short => "-N NODE_NAME",
|
|
103
|
+
:long => "--node-name NODE_NAME",
|
|
104
|
+
:description => "The node name for this client",
|
|
105
|
+
:proc => nil
|
|
106
|
+
|
|
107
|
+
option :splay,
|
|
108
|
+
:short => "-s SECONDS",
|
|
109
|
+
:long => "--splay SECONDS",
|
|
110
|
+
:description => "The splay time for running at intervals, in seconds",
|
|
111
|
+
:proc => lambda { |s| s.to_i }
|
|
112
|
+
|
|
113
|
+
option :chef_server_url,
|
|
114
|
+
:short => "-S CHEFSERVERURL",
|
|
115
|
+
:long => "--server CHEFSERVERURL",
|
|
116
|
+
:description => "The chef server URL",
|
|
117
|
+
:proc => nil
|
|
118
|
+
|
|
119
|
+
option :validation_key,
|
|
120
|
+
:short => "-K KEY_FILE",
|
|
121
|
+
:long => "--validation_key KEY_FILE",
|
|
122
|
+
:description => "Set the validation key file location, used for registering new clients",
|
|
123
|
+
:proc => nil
|
|
124
|
+
|
|
125
|
+
option :client_key,
|
|
126
|
+
:short => "-k KEY_FILE",
|
|
127
|
+
:long => "--client_key KEY_FILE",
|
|
128
|
+
:description => "Set the client key file location",
|
|
129
|
+
:proc => nil
|
|
130
|
+
|
|
131
|
+
option :environment,
|
|
132
|
+
:short => '-E ENVIRONMENT',
|
|
133
|
+
:long => '--environment ENVIRONMENT',
|
|
134
|
+
:description => 'Set the Chef Environment on the node'
|
|
135
|
+
|
|
136
|
+
option :version,
|
|
137
|
+
:short => "-v",
|
|
138
|
+
:long => "--version",
|
|
139
|
+
:description => "Show chef version",
|
|
140
|
+
:boolean => true,
|
|
141
|
+
:proc => lambda {|v| puts "Chef: #{::Chef::VERSION}"},
|
|
142
|
+
:exit => 0
|
|
143
|
+
|
|
144
|
+
attr_reader :chef_client_json
|
|
145
|
+
|
|
146
|
+
def initialize
|
|
147
|
+
super
|
|
148
|
+
|
|
149
|
+
@chef_client = nil
|
|
150
|
+
@chef_client_json = nil
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# Reconfigure the chef client
|
|
154
|
+
# Re-open the JSON attributes and load them into the node
|
|
155
|
+
def reconfigure
|
|
156
|
+
super
|
|
157
|
+
|
|
158
|
+
Chef::Config[:chef_server_url] = config[:chef_server_url] if config.has_key? :chef_server_url
|
|
159
|
+
unless Chef::Config[:exception_handlers].any? {|h| Chef::Handler::ErrorReport === h}
|
|
160
|
+
Chef::Config[:exception_handlers] << Chef::Handler::ErrorReport.new
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
if Chef::Config[:daemonize]
|
|
164
|
+
Chef::Config[:interval] ||= 1800
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
if Chef::Config[:once]
|
|
168
|
+
Chef::Config[:interval] = nil
|
|
169
|
+
Chef::Config[:splay] = nil
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
if Chef::Config[:json_attribs]
|
|
173
|
+
begin
|
|
174
|
+
json_io = case Chef::Config[:json_attribs]
|
|
175
|
+
when /^(http|https):\/\//
|
|
176
|
+
@rest = Chef::REST.new(Chef::Config[:json_attribs], nil, nil)
|
|
177
|
+
@rest.get_rest(Chef::Config[:json_attribs], true).open
|
|
178
|
+
else
|
|
179
|
+
open(Chef::Config[:json_attribs])
|
|
180
|
+
end
|
|
181
|
+
rescue SocketError => error
|
|
182
|
+
Chef::Application.fatal!("I cannot connect to #{Chef::Config[:json_attribs]}", 2)
|
|
183
|
+
rescue Errno::ENOENT => error
|
|
184
|
+
Chef::Application.fatal!("I cannot find #{Chef::Config[:json_attribs]}", 2)
|
|
185
|
+
rescue Errno::EACCES => error
|
|
186
|
+
Chef::Application.fatal!("Permissions are incorrect on #{Chef::Config[:json_attribs]}. Please chmod a+r #{Chef::Config[:json_attribs]}", 2)
|
|
187
|
+
rescue Exception => error
|
|
188
|
+
Chef::Application.fatal!("Got an unexpected error reading #{Chef::Config[:json_attribs]}: #{error.message}", 2)
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
begin
|
|
192
|
+
@chef_client_json = Chef::JSONCompat.from_json(json_io.read)
|
|
193
|
+
json_io.close unless json_io.closed?
|
|
194
|
+
rescue JSON::ParserError => error
|
|
195
|
+
Chef::Application.fatal!("Could not parse the provided JSON file (#{Chef::Config[:json_attribs]})!: " + error.message, 2)
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def configure_logging
|
|
201
|
+
super
|
|
202
|
+
Mixlib::Authentication::Log.use_log_devices( Chef::Log )
|
|
203
|
+
Ohai::Log.use_log_devices( Chef::Log )
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def setup_application
|
|
207
|
+
Chef::Daemon.change_privilege
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
# Run the chef client, optionally daemonizing or looping at intervals.
|
|
211
|
+
def run_application
|
|
212
|
+
unless RUBY_PLATFORM =~ /mswin|mingw32|windows/
|
|
213
|
+
SELF_PIPE.replace IO.pipe
|
|
214
|
+
|
|
215
|
+
trap("USR1") do
|
|
216
|
+
Chef::Log.info("SIGUSR1 received, waking up")
|
|
217
|
+
SELF_PIPE[1].putc('.') # wakeup master process from select
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
if Chef::Config[:version]
|
|
222
|
+
puts "Chef version: #{::Chef::VERSION}"
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
if Chef::Config[:daemonize]
|
|
226
|
+
Chef::Daemon.daemonize("chef-client")
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
loop do
|
|
230
|
+
begin
|
|
231
|
+
if Chef::Config[:splay]
|
|
232
|
+
splay = rand Chef::Config[:splay]
|
|
233
|
+
Chef::Log.debug("Splay sleep #{splay} seconds")
|
|
234
|
+
sleep splay
|
|
235
|
+
end
|
|
236
|
+
@chef_client = Chef::Client.new(@chef_client_json)
|
|
237
|
+
@chef_client_json = nil
|
|
238
|
+
|
|
239
|
+
@chef_client.run
|
|
240
|
+
@chef_client = nil
|
|
241
|
+
if Chef::Config[:interval]
|
|
242
|
+
Chef::Log.debug("Sleeping for #{Chef::Config[:interval]} seconds")
|
|
243
|
+
unless SELF_PIPE.empty?
|
|
244
|
+
client_sleep Chef::Config[:interval]
|
|
245
|
+
else
|
|
246
|
+
# Windows
|
|
247
|
+
sleep Chef::Config[:interval]
|
|
248
|
+
end
|
|
249
|
+
else
|
|
250
|
+
Chef::Application.exit! "Exiting", 0
|
|
251
|
+
end
|
|
252
|
+
rescue Chef::Application::Wakeup => e
|
|
253
|
+
Chef::Log.debug("Received Wakeup signal. Starting run.")
|
|
254
|
+
next
|
|
255
|
+
rescue SystemExit => e
|
|
256
|
+
raise
|
|
257
|
+
rescue Exception => e
|
|
258
|
+
if Chef::Config[:interval]
|
|
259
|
+
Chef::Log.error("#{e.class}: #{e}")
|
|
260
|
+
Chef::Application.debug_stacktrace(e)
|
|
261
|
+
Chef::Log.error("Sleeping for #{Chef::Config[:interval]} seconds before trying again")
|
|
262
|
+
unless SELF_PIPE.empty?
|
|
263
|
+
client_sleep Chef::Config[:interval]
|
|
264
|
+
else
|
|
265
|
+
# Windows
|
|
266
|
+
sleep Chef::Config[:interval]
|
|
267
|
+
end
|
|
268
|
+
retry
|
|
269
|
+
else
|
|
270
|
+
Chef::Application.debug_stacktrace(e)
|
|
271
|
+
Chef::Application.fatal!("#{e.class}: #{e.message}", 1)
|
|
272
|
+
end
|
|
273
|
+
ensure
|
|
274
|
+
GC.start
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
private
|
|
280
|
+
|
|
281
|
+
def client_sleep(sec)
|
|
282
|
+
IO.select([ SELF_PIPE[0] ], nil, nil, sec) or return
|
|
283
|
+
SELF_PIPE[0].getc
|
|
284
|
+
end
|
|
285
|
+
end
|