chef 11.4.4 → 11.6.0.hotfix.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/README.md +1 -1
- data/Rakefile +18 -1
- data/bin/chef-service-manager +37 -0
- data/distro/common/html/chef-client.8.html +4 -4
- data/distro/common/html/chef-expander.8.html +4 -4
- data/distro/common/html/chef-expanderctl.8.html +4 -4
- data/distro/common/html/chef-server-webui.8.html +4 -4
- data/distro/common/html/chef-server.8.html +4 -4
- data/distro/common/html/chef-shell.1.html +4 -4
- data/distro/common/html/chef-solo.8.html +12 -18
- data/distro/common/html/chef-solr.8.html +4 -4
- data/distro/common/html/knife-bootstrap.1.html +4 -4
- data/distro/common/html/knife-client.1.html +4 -4
- data/distro/common/html/knife-configure.1.html +4 -4
- data/distro/common/html/knife-cookbook-site.1.html +4 -4
- data/distro/common/html/knife-cookbook.1.html +7 -10
- data/distro/common/html/knife-data-bag.1.html +7 -10
- data/distro/common/html/knife-environment.1.html +6 -8
- data/distro/common/html/knife-exec.1.html +4 -4
- data/distro/common/html/knife-index.1.html +4 -4
- data/distro/common/html/knife-node.1.html +4 -4
- data/distro/common/html/knife-role.1.html +4 -4
- data/distro/common/html/knife-search.1.html +4 -4
- data/distro/common/html/knife-ssh.1.html +4 -4
- data/distro/common/html/knife-status.1.html +4 -4
- data/distro/common/html/knife-tag.1.html +4 -4
- data/distro/common/html/knife.1.html +4 -4
- data/distro/common/man/man1/chef-shell.1 +1 -1
- data/distro/common/man/man1/knife-bootstrap.1 +1 -1
- data/distro/common/man/man1/knife-client.1 +1 -1
- data/distro/common/man/man1/knife-configure.1 +1 -1
- data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
- data/distro/common/man/man1/knife-cookbook.1 +2 -15
- data/distro/common/man/man1/knife-data-bag.1 +2 -15
- data/distro/common/man/man1/knife-environment.1 +2 -12
- data/distro/common/man/man1/knife-exec.1 +1 -1
- data/distro/common/man/man1/knife-index.1 +1 -1
- data/distro/common/man/man1/knife-node.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +1 -1
- data/distro/common/man/man1/knife-search.1 +1 -1
- data/distro/common/man/man1/knife-ssh.1 +1 -1
- data/distro/common/man/man1/knife-status.1 +1 -1
- data/distro/common/man/man1/knife-tag.1 +1 -1
- data/distro/common/man/man1/knife.1 +1 -1
- data/distro/common/man/man8/chef-client.8 +1 -1
- data/distro/common/man/man8/chef-expander.8 +1 -1
- data/distro/common/man/man8/chef-expanderctl.8 +1 -1
- data/distro/common/man/man8/chef-server-webui.8 +1 -1
- data/distro/common/man/man8/chef-server.8 +1 -1
- data/distro/common/man/man8/chef-solo.8 +4 -36
- data/distro/common/man/man8/chef-solr.8 +1 -1
- data/distro/debian/etc/init.d/chef-client +4 -2
- data/distro/windows/service_manager.rb +2 -146
- data/lib/chef.rb +1 -1
- data/lib/chef/application.rb +5 -12
- data/lib/chef/application/apply.rb +2 -0
- data/lib/chef/application/client.rb +12 -12
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +4 -5
- data/lib/chef/application/windows_service.rb +113 -56
- data/lib/chef/application/windows_service_manager.rb +179 -0
- data/lib/chef/chef_fs.rb +2 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
- data/lib/chef/chef_fs/command_line.rb +145 -93
- data/lib/chef/chef_fs/config.rb +205 -0
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -0
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +29 -0
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +56 -0
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +128 -0
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +51 -0
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -0
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +27 -0
- data/lib/chef/chef_fs/file_system.rb +195 -127
- data/lib/chef/chef_fs/file_system/acl_dir.rb +64 -0
- data/lib/chef/chef_fs/file_system/acl_entry.rb +58 -0
- data/lib/chef/chef_fs/file_system/acls_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/already_exists_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +98 -39
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +85 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +71 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_data_bags_dir.rb +36 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +14 -63
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +93 -3
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +35 -9
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +67 -32
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +13 -6
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +102 -21
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +12 -21
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +14 -8
- data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +36 -0
- data/lib/chef/chef_fs/file_system/environments_dir.rb +60 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/file_system_error.rb +3 -1
- data/lib/chef/chef_fs/file_system/memory_dir.rb +52 -0
- data/lib/chef/chef_fs/file_system/memory_file.rb +17 -0
- data/lib/chef/chef_fs/file_system/memory_root.rb +21 -0
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +48 -0
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +2 -2
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +17 -9
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +0 -4
- data/lib/chef/chef_fs/file_system/not_found_error.rb +2 -2
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +34 -0
- data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +48 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +42 -13
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +81 -27
- data/lib/chef/chef_fs/knife.rb +68 -29
- data/lib/chef/chef_fs/parallelizer.rb +129 -0
- data/lib/chef/chef_fs/path_utils.rb +29 -3
- data/lib/chef/chef_fs/raw_request.rb +79 -0
- data/lib/chef/client.rb +46 -20
- data/lib/chef/config.rb +59 -61
- data/lib/chef/cookbook/chefignore.rb +2 -1
- data/lib/chef/cookbook/synchronizer.rb +8 -6
- data/lib/chef/cookbook/syntax_check.rb +17 -2
- data/lib/chef/cookbook_uploader.rb +10 -1
- data/lib/chef/cookbook_version.rb +0 -109
- data/lib/chef/data_bag.rb +15 -6
- data/lib/chef/deprecation/mixin/template.rb +49 -0
- data/lib/chef/deprecation/provider/cookbook_file.rb +55 -0
- data/lib/chef/deprecation/provider/file.rb +197 -0
- data/lib/chef/deprecation/provider/remote_file.rb +86 -0
- data/lib/chef/deprecation/provider/template.rb +63 -0
- data/lib/chef/deprecation/warnings.rb +38 -0
- data/lib/chef/encrypted_data_bag_item.rb +153 -61
- data/lib/chef/environment.rb +34 -3
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +27 -2
- data/lib/chef/file_access_control/unix.rb +64 -7
- data/lib/chef/file_access_control/windows.rb +22 -11
- data/lib/chef/file_content_management/content_base.rb +56 -0
- data/lib/chef/file_content_management/deploy.rb +38 -0
- data/lib/chef/file_content_management/deploy/cp.rb +48 -0
- data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -0
- data/lib/chef/file_content_management/deploy/mv_windows.rb +95 -0
- data/lib/chef/file_content_management/tempfile.rb +61 -0
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_descriptor.rb +5 -4
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +23 -3
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +4 -0
- data/lib/chef/json_compat.rb +3 -0
- data/lib/chef/knife.rb +12 -3
- data/lib/chef/knife/bootstrap.rb +46 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/centos5-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/chef-full.erb +4 -4
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +3 -3
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +3 -3
- data/lib/chef/knife/client_show.rb +2 -5
- data/lib/chef/knife/configure.rb +3 -3
- data/lib/chef/knife/cookbook_create.rb +6 -5
- data/lib/chef/knife/cookbook_download.rb +13 -5
- data/lib/chef/knife/cookbook_site_share.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +1 -0
- data/lib/chef/knife/cookbook_upload.rb +4 -9
- data/lib/chef/knife/core/bootstrap_context.rb +10 -4
- data/lib/chef/knife/core/generic_presenter.rb +16 -0
- data/lib/chef/knife/core/node_editor.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +43 -12
- data/lib/chef/knife/core/ui.rb +19 -4
- data/lib/chef/knife/delete.rb +76 -9
- data/lib/chef/knife/deps.rb +139 -0
- data/lib/chef/knife/diff.rb +22 -5
- data/lib/chef/knife/download.rb +16 -3
- data/lib/chef/knife/edit.rb +76 -0
- data/lib/chef/knife/environment_show.rb +2 -7
- data/lib/chef/knife/list.rb +91 -47
- data/lib/chef/knife/node_run_list_set.rb +66 -0
- data/lib/chef/knife/node_show.rb +1 -7
- data/lib/chef/knife/raw.rb +20 -64
- data/lib/chef/knife/role_show.rb +2 -4
- data/lib/chef/knife/search.rb +5 -6
- data/lib/chef/knife/show.rb +34 -11
- data/lib/chef/knife/ssh.rb +8 -0
- data/lib/chef/knife/upload.rb +23 -4
- data/lib/chef/knife/user_show.rb +2 -5
- data/lib/chef/knife/xargs.rb +265 -0
- data/lib/chef/log.rb +2 -2
- data/lib/chef/mixin/file_class.rb +0 -9
- data/lib/chef/mixin/language_include_recipe.rb +1 -1
- data/lib/chef/mixin/params_validate.rb +19 -9
- data/lib/chef/mixin/template.rb +126 -36
- data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
- data/lib/chef/monkey_patches/file.rb +26 -0
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
- data/lib/chef/monkey_patches/securerandom.rb +44 -0
- data/lib/chef/monologger.rb +93 -0
- data/lib/chef/node.rb +4 -0
- data/lib/chef/platform.rb +4 -490
- data/lib/chef/platform/provider_mapping.rb +529 -0
- data/lib/chef/{monkey_patches/dir.rb → platform/query_helpers.rb} +25 -19
- data/lib/chef/provider.rb +12 -9
- data/lib/chef/provider/batch.rb +35 -0
- data/lib/chef/provider/cookbook_file.rb +9 -78
- data/lib/chef/provider/cookbook_file/content.rb +49 -0
- data/lib/chef/provider/deploy.rb +24 -20
- data/lib/chef/provider/deploy/revision.rb +27 -0
- data/lib/chef/provider/directory.rb +19 -22
- data/lib/chef/provider/execute.rb +22 -5
- data/lib/chef/provider/file.rb +299 -217
- data/lib/chef/provider/file/content.rb +39 -0
- data/lib/chef/provider/git.rb +76 -43
- data/lib/chef/provider/group/usermod.rb +2 -2
- data/lib/chef/provider/ifconfig.rb +25 -35
- data/lib/chef/provider/ifconfig/debian.rb +71 -0
- data/lib/chef/provider/ifconfig/redhat.rb +47 -0
- data/lib/chef/provider/link.rb +10 -3
- data/lib/chef/provider/mount.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +8 -3
- data/lib/chef/provider/mount/windows.rb +4 -1
- data/lib/chef/provider/package/portage.rb +9 -4
- data/lib/chef/provider/package/rubygems.rb +45 -10
- data/lib/chef/provider/package/smartos.rb +47 -36
- data/lib/chef/provider/package/yum.rb +19 -12
- data/lib/chef/provider/package/zypper.rb +45 -55
- data/lib/chef/provider/powershell_script.rb +77 -0
- data/lib/chef/provider/remote_directory.rb +5 -6
- data/lib/chef/provider/remote_file.rb +12 -108
- data/lib/chef/provider/remote_file/cache_control_data.rb +165 -0
- data/lib/chef/provider/remote_file/content.rb +75 -0
- data/lib/chef/provider/remote_file/fetcher.rb +43 -0
- data/lib/chef/provider/remote_file/ftp.rb +183 -0
- data/lib/chef/provider/remote_file/http.rb +124 -0
- data/lib/chef/provider/remote_file/local_file.rb +47 -0
- data/lib/chef/provider/route.rb +6 -2
- data/lib/chef/provider/script.rb +14 -2
- data/lib/chef/provider/service/macosx.rb +16 -10
- data/lib/chef/provider/service/solaris.rb +6 -5
- data/lib/chef/provider/template.rb +16 -78
- data/lib/chef/provider/template/content.rb +61 -0
- data/lib/chef/provider/user/solaris.rb +90 -0
- data/lib/chef/provider/user/useradd.rb +76 -63
- data/lib/chef/provider/windows_script.rb +73 -0
- data/lib/chef/providers.rb +16 -0
- data/lib/chef/resource.rb +23 -2
- data/lib/chef/resource/batch.rb +31 -0
- data/lib/chef/resource/conditional.rb +4 -0
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -0
- data/lib/chef/resource/file.rb +31 -3
- data/lib/chef/resource/link.rb +17 -0
- data/lib/chef/resource/lwrp_base.rb +1 -1
- data/lib/chef/resource/mount.rb +29 -2
- data/lib/chef/resource/powershell_script.rb +31 -0
- data/lib/chef/resource/remote_file.rb +47 -1
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/template.rb +145 -0
- data/lib/chef/resource/windows_script.rb +62 -0
- data/lib/chef/resource_collection.rb +45 -11
- data/lib/chef/resource_reporter.rb +81 -52
- data/lib/chef/resources.rb +2 -0
- data/lib/chef/rest.rb +13 -4
- data/lib/chef/rest/rest_request.rb +5 -1
- data/lib/chef/run_context/cookbook_compiler.rb +3 -3
- data/lib/chef/run_list/run_list_expansion.rb +1 -1
- data/lib/chef/run_lock.rb +7 -1
- data/lib/chef/runner.rb +0 -1
- data/lib/chef/scan_access_control.rb +6 -1
- data/lib/chef/search/query.rb +2 -2
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/util/backup.rb +84 -0
- data/lib/chef/util/diff.rb +145 -0
- data/lib/chef/util/file_edit.rb +1 -1
- data/lib/chef/util/selinux.rb +100 -0
- data/lib/chef/util/windows/net_user.rb +14 -1
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version/platform.rb +42 -0
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/version_constraint.rb +6 -5
- data/lib/chef/version_constraint/platform.rb +26 -0
- data/lib/chef/win32/api/file.rb +8 -2
- data/lib/chef/win32/version.rb +25 -8
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
- data/spec/data/apt/var/www/apt/conf/distributions +7 -0
- data/spec/data/apt/var/www/apt/conf/incoming +4 -0
- data/spec/data/apt/var/www/apt/conf/pulls +3 -0
- data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
- data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
- data/spec/data/apt/var/www/apt/db/packages.db +0 -0
- data/spec/data/apt/var/www/apt/db/references.db +0 -0
- data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
- data/spec/data/apt/var/www/apt/db/version +4 -0
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -0
- data/spec/data/bootstrap/secret.erb +9 -0
- data/spec/data/cookbooks/ignorken/recipes/default.rb +1 -0
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +2 -0
- data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -0
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -0
- data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -0
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -0
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -0
- data/spec/data/git_bundles/example-repo.gitbundle +0 -0
- data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
- data/spec/data/knife_subcommand/test_yourself.rb +8 -0
- data/spec/data/null_config.rb +1 -0
- data/spec/data/partial_one.erb +1 -1
- data/spec/data/remote_file/nyan_cat.png.gz +0 -0
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
- data/spec/functional/knife/exec_spec.rb +2 -2
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +101 -0
- data/spec/functional/resource/batch_spec.rb +64 -0
- data/spec/functional/resource/cookbook_file_spec.rb +2 -3
- data/spec/functional/resource/deploy_revision_spec.rb +180 -0
- data/spec/functional/resource/directory_spec.rb +2 -2
- data/spec/functional/resource/file_spec.rb +17 -1
- data/spec/functional/resource/git_spec.rb +259 -0
- data/spec/functional/resource/link_spec.rb +422 -388
- data/spec/functional/resource/package_spec.rb +297 -0
- data/spec/functional/resource/powershell_spec.rb +188 -0
- data/spec/functional/resource/registry_spec.rb +8 -4
- data/spec/functional/resource/remote_directory_spec.rb +2 -2
- data/spec/functional/resource/remote_file_spec.rb +97 -29
- data/spec/functional/resource/template_spec.rb +173 -17
- data/spec/functional/resource/user_spec.rb +547 -0
- data/spec/functional/run_lock_spec.rb +5 -0
- data/spec/functional/shell_spec.rb +2 -1
- data/spec/functional/win32/service_manager_spec.rb +269 -0
- data/spec/functional/win32/versions_spec.rb +78 -0
- data/spec/integration/knife/chef_repo_path_spec.rb +805 -0
- data/spec/integration/knife/chef_repository_file_system_spec.rb +276 -0
- data/spec/integration/knife/chefignore_spec.rb +271 -0
- data/spec/integration/knife/delete_spec.rb +944 -0
- data/spec/integration/knife/deps_spec.rb +648 -0
- data/spec/integration/knife/diff_spec.rb +536 -0
- data/spec/integration/knife/download_spec.rb +962 -0
- data/spec/integration/knife/list_spec.rb +633 -0
- data/spec/integration/knife/raw_spec.rb +166 -0
- data/spec/integration/knife/redirection_spec.rb +57 -0
- data/spec/integration/knife/show_spec.rb +158 -0
- data/spec/integration/knife/upload_spec.rb +1060 -0
- data/spec/integration/solo/solo_spec.rb +41 -0
- data/spec/spec_helper.rb +55 -1
- data/spec/support/chef_helpers.rb +32 -0
- data/spec/support/platform_helpers.rb +40 -0
- data/spec/support/platforms/win32/spec_service.rb +59 -0
- data/spec/support/shared/functional/directory_resource.rb +43 -16
- data/spec/support/shared/functional/file_resource.rb +661 -20
- data/spec/support/shared/functional/securable_resource.rb +109 -8
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +39 -31
- data/spec/support/shared/integration/integration_helper.rb +166 -0
- data/spec/support/shared/integration/knife_support.rb +171 -0
- data/spec/support/shared/unit/execute_resource.rb +125 -0
- data/spec/support/shared/unit/file_system_support.rb +8 -48
- data/spec/support/shared/unit/provider/file.rb +609 -0
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +407 -0
- data/spec/support/shared/unit/script_resource.rb +52 -0
- data/spec/support/shared/unit/windows_script_resource.rb +48 -0
- data/spec/tiny_server.rb +13 -11
- data/spec/unit/application/client_spec.rb +39 -1
- data/spec/unit/application/knife_spec.rb +12 -0
- data/spec/unit/application/solo_spec.rb +1 -1
- data/spec/unit/application_spec.rb +57 -2
- data/spec/unit/chef_fs/diff_spec.rb +30 -31
- data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
- data/spec/unit/chef_fs/file_system_spec.rb +2 -3
- data/spec/unit/client_spec.rb +20 -1
- data/spec/unit/config_spec.rb +70 -52
- data/spec/unit/cookbook/synchronizer_spec.rb +49 -1
- data/spec/unit/cookbook/syntax_check_spec.rb +28 -3
- data/spec/unit/cookbook_loader_spec.rb +3 -2
- data/spec/unit/daemon_spec.rb +7 -7
- data/spec/unit/data_bag_spec.rb +7 -0
- data/spec/unit/deprecation_spec.rb +86 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +183 -88
- data/spec/unit/environment_spec.rb +98 -0
- data/spec/unit/exceptions_spec.rb +6 -1
- data/spec/unit/file_access_control_spec.rb +21 -1
- data/spec/unit/file_content_management/deploy/cp_spec.rb +46 -0
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +103 -0
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +179 -0
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +38 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -2
- data/spec/unit/knife/bootstrap_spec.rb +128 -29
- data/spec/unit/knife/configure_spec.rb +42 -26
- data/spec/unit/knife/cookbook_download_spec.rb +24 -3
- data/spec/unit/knife/cookbook_upload_spec.rb +8 -4
- data/spec/unit/knife/core/bootstrap_context_spec.rb +78 -61
- data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
- data/spec/unit/knife/core/ui_spec.rb +41 -0
- data/spec/unit/knife/node_run_list_set_spec.rb +140 -0
- data/spec/unit/knife_spec.rb +21 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +1 -0
- data/spec/unit/mixin/params_validate_spec.rb +35 -0
- data/spec/unit/mixin/template_spec.rb +69 -57
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
- data/spec/unit/node_spec.rb +7 -0
- data/spec/unit/platform_spec.rb +15 -1
- data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
- data/spec/unit/provider/cookbook_file_spec.rb +26 -183
- data/spec/unit/provider/cron/solaris_spec.rb +1 -1
- data/spec/unit/provider/deploy/revision_spec.rb +19 -11
- data/spec/unit/provider/deploy_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +23 -23
- data/spec/unit/provider/execute_spec.rb +27 -1
- data/spec/unit/provider/file/content_spec.rb +101 -0
- data/spec/unit/provider/file_spec.rb +25 -484
- data/spec/unit/provider/git_spec.rb +224 -28
- data/spec/unit/provider/group/usermod_spec.rb +3 -1
- data/spec/unit/provider/ifconfig/debian_spec.rb +89 -0
- data/spec/unit/provider/ifconfig/redhat_spec.rb +71 -0
- data/spec/unit/provider/ifconfig_spec.rb +0 -33
- data/spec/unit/provider/mount/mount_spec.rb +33 -2
- data/spec/unit/provider/mount/windows_spec.rb +4 -1
- data/spec/unit/provider/mount_spec.rb +16 -6
- data/spec/unit/provider/package/portage_spec.rb +44 -0
- data/spec/unit/provider/package/rubygems_spec.rb +44 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -2
- data/spec/unit/provider/package/yum_spec.rb +36 -39
- data/spec/unit/provider/package/zypper_spec.rb +84 -22
- data/spec/unit/provider/package_spec.rb +0 -4
- data/spec/unit/provider/powershell_spec.rb +38 -0
- data/spec/unit/provider/remote_directory_spec.rb +0 -4
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +211 -0
- data/spec/unit/provider/remote_file/content_spec.rb +230 -0
- data/spec/unit/provider/remote_file/fetcher_spec.rb +75 -0
- data/spec/unit/provider/remote_file/ftp_spec.rb +224 -0
- data/spec/unit/provider/remote_file/http_spec.rb +319 -0
- data/spec/unit/provider/remote_file/local_file_spec.rb +60 -0
- data/spec/unit/provider/remote_file_spec.rb +33 -295
- data/spec/unit/provider/route_spec.rb +25 -9
- data/spec/unit/provider/service/macosx_spec.rb +176 -152
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +21 -18
- data/spec/unit/provider/service/systemd_service_spec.rb +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +2 -2
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/template/content_spec.rb +78 -0
- data/spec/unit/provider/template_spec.rb +52 -184
- data/spec/unit/provider/user/solaris_spec.rb +80 -0
- data/spec/unit/provider/user/useradd_spec.rb +12 -358
- data/spec/unit/resource/batch_spec.rb +48 -0
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -0
- data/spec/unit/resource/execute_spec.rb +3 -101
- data/spec/unit/resource/file_spec.rb +0 -5
- data/spec/unit/resource/group_spec.rb +9 -0
- data/spec/unit/resource/ifconfig_spec.rb +60 -1
- data/spec/unit/resource/link_spec.rb +1 -0
- data/spec/unit/resource/mount_spec.rb +37 -0
- data/spec/unit/resource/powershell_spec.rb +48 -0
- data/spec/unit/resource/remote_file_spec.rb +44 -4
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/script_spec.rb +13 -36
- data/spec/unit/resource/template_spec.rb +111 -8
- data/spec/unit/resource/user_spec.rb +7 -0
- data/spec/unit/resource_collection_spec.rb +61 -32
- data/spec/unit/resource_reporter_spec.rb +115 -102
- data/spec/unit/resource_spec.rb +170 -1
- data/spec/unit/rest/auth_credentials_spec.rb +2 -2
- data/spec/unit/rest_spec.rb +6 -2
- data/spec/unit/run_context/cookbook_compiler_spec.rb +9 -0
- data/spec/unit/runner_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +4 -2
- data/spec/unit/shell/shell_session_spec.rb +15 -2
- data/spec/unit/util/backup_spec.rb +149 -0
- data/spec/unit/util/diff_spec.rb +596 -0
- data/spec/unit/util/selinux_spec.rb +172 -0
- data/spec/unit/version/platform_spec.rb +61 -0
- data/spec/unit/version_constraint/platform_spec.rb +46 -0
- data/spec/unit/version_constraint_spec.rb +5 -0
- metadata +233 -10
- data/lib/chef/chef_fs/file_system/data_bag_item.rb +0 -59
- data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +0 -237
- data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +0 -568
- data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +0 -220
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-INDEX" "1" "
|
|
4
|
+
.TH "KNIFE\-INDEX" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-index\fR \- Rebuild the search index on a Chef Server
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-NODE" "1" "
|
|
4
|
+
.TH "KNIFE\-NODE" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-node\fR \- Manage the hosts in your infrastructure
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-ROLE" "1" "
|
|
4
|
+
.TH "KNIFE\-ROLE" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-role\fR \- Group common configuration settings
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-SEARCH" "1" "
|
|
4
|
+
.TH "KNIFE\-SEARCH" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-search\fR \- Find objects on a Chef Server by query
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-SSH" "1" "
|
|
4
|
+
.TH "KNIFE\-SSH" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-ssh\fR \- Run a command or interactive session on multiple remote hosts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-STATUS" "1" "
|
|
4
|
+
.TH "KNIFE\-STATUS" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-status\fR \- Display status information for the nodes in your infrastructure
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE\-TAG" "1" "
|
|
4
|
+
.TH "KNIFE\-TAG" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\-tag\fR \- Apply tags to nodes on a Chef Server
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "KNIFE" "1" "
|
|
4
|
+
.TH "KNIFE" "1" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBknife\fR \- Chef Server API client utility
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-CLIENT" "8" "
|
|
4
|
+
.TH "CHEF\-CLIENT" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-client\fR \- Runs a client node connecting to a chef\-server\.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-EXPANDER" "8" "
|
|
4
|
+
.TH "CHEF\-EXPANDER" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-expander\fR \- fetches messages from RabbitMQ, processes, and loads into chef\-solr
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-EXPANDERCTL" "8" "
|
|
4
|
+
.TH "CHEF\-EXPANDERCTL" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-expanderctl\fR \- management program for chef\-expander
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-SERVER\-WEBUI" "8" "
|
|
4
|
+
.TH "CHEF\-SERVER\-WEBUI" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-server\-webui\fR \- Start the Chef Server merb application slice providing Web User Interface (Management Console)\.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-SERVER" "8" "
|
|
4
|
+
.TH "CHEF\-SERVER" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-server\fR \- Start the Chef Server merb application slice\.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-SOLO" "8" "
|
|
4
|
+
.TH "CHEF\-SOLO" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-solo\fR \- Runs chef in solo mode against a specified cookbook location\.
|
|
@@ -68,18 +68,7 @@ Chef Solo allows you to run Chef Cookbooks in the absence of a Chef Server\. To
|
|
|
68
68
|
By default Chef Solo will look in /etc/chef/solo\.rb for its configuration\. This configuration file has two required variables: file_cache_path and cookbook_path\.
|
|
69
69
|
.
|
|
70
70
|
.P
|
|
71
|
-
For example:
|
|
72
|
-
.
|
|
73
|
-
.IP "" 4
|
|
74
|
-
.
|
|
75
|
-
.nf
|
|
76
|
-
|
|
77
|
-
file_cache_path "/var/chef\-solo"
|
|
78
|
-
cookbook_path "/var/chef\-solo/cookbooks"
|
|
79
|
-
.
|
|
80
|
-
.fi
|
|
81
|
-
.
|
|
82
|
-
.IP "" 0
|
|
71
|
+
For example: file_cache_path "/var/chef\-solo" cookbook_path "/var/chef\-solo/cookbooks"
|
|
83
72
|
.
|
|
84
73
|
.P
|
|
85
74
|
For your own systems, you can change this to reflect any directory you like, but you\'ll need to specify absolute paths and the cookbook_path directory should be a subdirectory of the file_cache_path\.
|
|
@@ -88,18 +77,7 @@ For your own systems, you can change this to reflect any directory you like, but
|
|
|
88
77
|
You can also specify cookbook_path as an array, passing multiple locations to search for cookbooks\.
|
|
89
78
|
.
|
|
90
79
|
.P
|
|
91
|
-
For example:
|
|
92
|
-
.
|
|
93
|
-
.IP "" 4
|
|
94
|
-
.
|
|
95
|
-
.nf
|
|
96
|
-
|
|
97
|
-
file_cache_path "/var/chef\-solo"
|
|
98
|
-
cookbook_path ["/var/chef\-solo/cookbooks", "/var/chef\-solo/site\-cookbooks"]
|
|
99
|
-
.
|
|
100
|
-
.fi
|
|
101
|
-
.
|
|
102
|
-
.IP "" 0
|
|
80
|
+
For example: file_cache_path "/var/chef\-solo" cookbook_path ["/var/chef\-solo/cookbooks", "/var/chef\-solo/site\-cookbooks"]
|
|
103
81
|
.
|
|
104
82
|
.P
|
|
105
83
|
Note that earlier entries are now overridden by later ones\.
|
|
@@ -133,17 +111,7 @@ Then you can run chef\-solo with \-j to specify the JSON file\. It will look for
|
|
|
133
111
|
You can use \-c to specify the path to the configuration file (if you don\'t want chef\-solo to use the default)\. You can also specify \-r for a cookbook tarball\.
|
|
134
112
|
.
|
|
135
113
|
.P
|
|
136
|
-
For example:
|
|
137
|
-
.
|
|
138
|
-
.IP "" 4
|
|
139
|
-
.
|
|
140
|
-
.nf
|
|
141
|
-
|
|
142
|
-
chef\-solo \-c ~/solo\.rb \-j ~/node\.json \-r http://www\.example\.com/chef\-solo\.tar\.gz
|
|
143
|
-
.
|
|
144
|
-
.fi
|
|
145
|
-
.
|
|
146
|
-
.IP "" 0
|
|
114
|
+
For example: chef\-solo \-c ~/solo\.rb \-j ~/node\.json \-r http://www\.example\.com/chef\-solo\.tar\.gz
|
|
147
115
|
.
|
|
148
116
|
.P
|
|
149
117
|
In the above case, chef\-solo would extract the tarball to your specified cookbook_path, use ~/solo\.rb as the configuration file, and apply attributes and use the run_list from ~/node\.json\.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "CHEF\-SOLR" "8" "
|
|
4
|
+
.TH "CHEF\-SOLR" "8" "August 2013" "Chef 11.6.0.hotfix.1" "Chef Manual"
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBchef\-solr\fR \- Runs as Chef\'s search server
|
|
@@ -165,8 +165,10 @@ case "$1" in
|
|
|
165
165
|
restart|force-reload)
|
|
166
166
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
167
167
|
errcode=0
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
if running ; then
|
|
169
|
+
stop_server || errcode=$?
|
|
170
|
+
[ -n "$DIETIME" ] && sleep $DIETIME
|
|
171
|
+
fi
|
|
170
172
|
start_server || errcode=$?
|
|
171
173
|
[ -n "$STARTTIME" ] && sleep $STARTTIME
|
|
172
174
|
running || errcode=$?
|
|
@@ -16,149 +16,5 @@
|
|
|
16
16
|
# limitations under the License.
|
|
17
17
|
#
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
require 'mixlib/cli'
|
|
22
|
-
|
|
23
|
-
class Chef
|
|
24
|
-
class Windows
|
|
25
|
-
class ServiceManager
|
|
26
|
-
include Config
|
|
27
|
-
include Mixlib::CLI
|
|
28
|
-
|
|
29
|
-
option :action,
|
|
30
|
-
:short => "-a ACTION",
|
|
31
|
-
:long => "--action ACTION",
|
|
32
|
-
:default => "start",
|
|
33
|
-
:description => "Action to carry out on the resource; one of 'install', 'uninstall', 'start', 'stop', 'pause', or 'resume'"
|
|
34
|
-
|
|
35
|
-
option :name,
|
|
36
|
-
:short => "-n NAME",
|
|
37
|
-
:long => "--name NAME",
|
|
38
|
-
:default => "chef-client",
|
|
39
|
-
:description => "The service name to use."
|
|
40
|
-
|
|
41
|
-
option :display_name,
|
|
42
|
-
:long => "--display_name NAME",
|
|
43
|
-
:default => "chef-client",
|
|
44
|
-
:description => "The display name to use for the service."
|
|
45
|
-
|
|
46
|
-
option :description,
|
|
47
|
-
:short => "-d DESCRIPTION",
|
|
48
|
-
:long => "--description DESCRIPTION",
|
|
49
|
-
:default => "chef-client",
|
|
50
|
-
:description => "The description for the service."
|
|
51
|
-
|
|
52
|
-
option :config_file,
|
|
53
|
-
:short => "-c CONFIG",
|
|
54
|
-
:long => "--config CONFIG",
|
|
55
|
-
:default => "#{ENV['SYSTEMDRIVE']}/chef/client.rb",
|
|
56
|
-
:description => "The configuration file to use"
|
|
57
|
-
|
|
58
|
-
option :log_location,
|
|
59
|
-
:short => "-L LOGLOCATION",
|
|
60
|
-
:long => "--logfile LOGLOCATION",
|
|
61
|
-
:description => "Set the log file location",
|
|
62
|
-
:default => "#{ENV['SYSTEMDRIVE']}/chef/client.log"
|
|
63
|
-
|
|
64
|
-
option :splay,
|
|
65
|
-
:short => "-s SECONDS",
|
|
66
|
-
:long => "--splay SECONDS",
|
|
67
|
-
:description => "The splay time for running at intervals, in seconds",
|
|
68
|
-
:proc => lambda { |s| s.to_i }
|
|
69
|
-
|
|
70
|
-
option :interval,
|
|
71
|
-
:short => "-i SECONDS",
|
|
72
|
-
:long => "--interval SECONDS",
|
|
73
|
-
:description => "Set the number of seconds to wait between chef-client runs",
|
|
74
|
-
:proc => lambda { |s| s.to_i }
|
|
75
|
-
|
|
76
|
-
option :help,
|
|
77
|
-
:short => "-h",
|
|
78
|
-
:long => "--help",
|
|
79
|
-
:description => "Show this message",
|
|
80
|
-
:on => :tail,
|
|
81
|
-
:boolean => true,
|
|
82
|
-
:show_options => true,
|
|
83
|
-
:exit => 0
|
|
84
|
-
|
|
85
|
-
def run
|
|
86
|
-
parse_options
|
|
87
|
-
|
|
88
|
-
case config[:action]
|
|
89
|
-
when 'install'
|
|
90
|
-
ruby = File.join(RbConfig::CONFIG['bindir'], 'ruby')
|
|
91
|
-
path = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'chef', 'application', 'windows_service.rb'))
|
|
92
|
-
|
|
93
|
-
opts = ""
|
|
94
|
-
opts << " -c #{config[:config_file]}" if config[:config_file]
|
|
95
|
-
opts << " -L #{config[:log_location]}" if config[:log_location]
|
|
96
|
-
opts << " -i #{config[:interval]}" if config[:interval]
|
|
97
|
-
opts << " -s #{config[:splay]}" if config[:splay]
|
|
98
|
-
|
|
99
|
-
# Quote the full paths to deal with possible spaces in the path name.
|
|
100
|
-
# Also ensure all forward slashes are backslashes
|
|
101
|
-
cmd = "\"#{ruby}\" \"#{path}\" #{opts}".gsub(File::SEPARATOR, File::ALT_SEPARATOR)
|
|
102
|
-
|
|
103
|
-
Win32::Service.new(
|
|
104
|
-
:service_name => config[:name],
|
|
105
|
-
:display_name => config[:display_name],
|
|
106
|
-
:description => config[:description],
|
|
107
|
-
:binary_path_name => cmd)
|
|
108
|
-
puts "Service '#{config[:name]}' has successfully been 'installed'."
|
|
109
|
-
when 'start'
|
|
110
|
-
# TODO: allow override of startup parameters here?
|
|
111
|
-
take_action('start', RUNNING) if Win32::Service.exists?(config[:name])
|
|
112
|
-
when 'stop'
|
|
113
|
-
take_action('stop', STOPPED) if Win32::Service.exists?(config[:name])
|
|
114
|
-
when 'uninstall', 'delete'
|
|
115
|
-
take_action('stop', STOPPED)
|
|
116
|
-
if Win32::Service.exists?(config[:name])
|
|
117
|
-
Win32::Service.delete(config[:name])
|
|
118
|
-
puts "Service #{config[:name]} deleted"
|
|
119
|
-
end
|
|
120
|
-
when 'pause'
|
|
121
|
-
take_action('pause', PAUSED)
|
|
122
|
-
when 'resume'
|
|
123
|
-
take_action('resume', RUNNING)
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
private
|
|
128
|
-
|
|
129
|
-
# Just some state constants
|
|
130
|
-
STOPPED = "stopped"
|
|
131
|
-
RUNNING = "running"
|
|
132
|
-
PAUSED = "paused"
|
|
133
|
-
|
|
134
|
-
def take_action(action=nil, desired_state=nil)
|
|
135
|
-
if Win32::Service.exists?(config[:name])
|
|
136
|
-
if current_state != desired_state
|
|
137
|
-
Win32::Service.send(action, config[:name])
|
|
138
|
-
wait_for_state(desired_state)
|
|
139
|
-
puts "Service '#{config[:name]}' is now '#{current_state}'."
|
|
140
|
-
else
|
|
141
|
-
puts "Service '#{config[:name]}' is already '#{desired_state}'."
|
|
142
|
-
end
|
|
143
|
-
else
|
|
144
|
-
puts "Cannot '#{action}' service '#{config[:name]}', service does not exist."
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def current_state
|
|
149
|
-
Win32::Service.status(config[:name]).current_state
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
# Helper method that waits for a status to change its state since state
|
|
153
|
-
# changes aren't usually instantaneous.
|
|
154
|
-
def wait_for_state(desired_state)
|
|
155
|
-
while current_state != desired_state
|
|
156
|
-
puts "One moment... #{current_state}"
|
|
157
|
-
sleep 1
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
Chef::Windows::ServiceManager.new.run
|
|
19
|
+
$stderr.puts "WARNING: service_manager.rb is changed to: chef-service-manager"
|
|
20
|
+
$stderr.puts "Please use chef-service-manager instead of service_manager.rb to install and manage chef-client as a windows service."
|
data/lib/chef.rb
CHANGED
|
@@ -33,7 +33,7 @@ require 'chef/handler'
|
|
|
33
33
|
require 'chef/handler/json_file'
|
|
34
34
|
|
|
35
35
|
require 'chef/monkey_patches/tempfile'
|
|
36
|
-
require 'chef/monkey_patches/dir'
|
|
37
36
|
require 'chef/monkey_patches/string'
|
|
38
37
|
require 'chef/monkey_patches/numeric'
|
|
39
38
|
require 'chef/monkey_patches/object'
|
|
39
|
+
require 'chef/monkey_patches/file'
|
data/lib/chef/application.rb
CHANGED
|
@@ -29,18 +29,11 @@ require 'rbconfig'
|
|
|
29
29
|
class Chef::Application
|
|
30
30
|
include Mixlib::CLI
|
|
31
31
|
|
|
32
|
-
class Wakeup < Exception
|
|
33
|
-
end
|
|
34
|
-
|
|
35
32
|
def initialize
|
|
36
33
|
super
|
|
37
34
|
|
|
38
35
|
@chef_client = nil
|
|
39
36
|
@chef_client_json = nil
|
|
40
|
-
trap("TERM") do
|
|
41
|
-
Chef::Application.fatal!("SIGTERM received, stopping", 1)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
37
|
trap("INT") do
|
|
45
38
|
Chef::Application.fatal!("SIGINT received, stopping", 2)
|
|
46
39
|
end
|
|
@@ -91,11 +84,11 @@ class Chef::Application
|
|
|
91
84
|
|
|
92
85
|
Chef::Config.merge!(config)
|
|
93
86
|
rescue SocketError => error
|
|
94
|
-
Chef::Application.fatal!("Error getting config file #{
|
|
87
|
+
Chef::Application.fatal!("Error getting config file #{config[:config_file]}", 2)
|
|
95
88
|
rescue Chef::Exceptions::ConfigurationError => error
|
|
96
|
-
Chef::Application.fatal!("Error processing config file #{
|
|
89
|
+
Chef::Application.fatal!("Error processing config file #{config[:config_file]} with error #{error.message}", 2)
|
|
97
90
|
rescue Exception => error
|
|
98
|
-
Chef::Application.fatal!("Unknown error processing config file #{
|
|
91
|
+
Chef::Application.fatal!("Unknown error processing config file #{config[:config_file]} with error #{error.message}", 2)
|
|
99
92
|
end
|
|
100
93
|
|
|
101
94
|
end
|
|
@@ -125,7 +118,7 @@ class Chef::Application
|
|
|
125
118
|
# that a user has configured a log_location in client.rb, but is running
|
|
126
119
|
# chef-client by hand to troubleshoot a problem.
|
|
127
120
|
def configure_logging
|
|
128
|
-
Chef::Log.init(Chef::Config[:log_location])
|
|
121
|
+
Chef::Log.init(MonoLogger.new(Chef::Config[:log_location]))
|
|
129
122
|
if want_additional_logger?
|
|
130
123
|
configure_stdout_logger
|
|
131
124
|
end
|
|
@@ -133,7 +126,7 @@ class Chef::Application
|
|
|
133
126
|
end
|
|
134
127
|
|
|
135
128
|
def configure_stdout_logger
|
|
136
|
-
stdout_logger =
|
|
129
|
+
stdout_logger = MonoLogger.new(STDOUT)
|
|
137
130
|
STDOUT.sync = true
|
|
138
131
|
stdout_logger.formatter = Chef::Log.logger.formatter
|
|
139
132
|
Chef::Log.loggers << stdout_logger
|
|
@@ -58,8 +58,8 @@ class Chef::Application::Client < Chef::Application
|
|
|
58
58
|
option :color,
|
|
59
59
|
:long => '--[no-]color',
|
|
60
60
|
:boolean => true,
|
|
61
|
-
:default =>
|
|
62
|
-
:description => "Use colored output, defaults to
|
|
61
|
+
:default => !Chef::Platform.windows?,
|
|
62
|
+
:description => "Use colored output, defaults to false on Windows, true otherwise"
|
|
63
63
|
|
|
64
64
|
option :log_level,
|
|
65
65
|
:short => "-l LEVEL",
|
|
@@ -184,10 +184,10 @@ class Chef::Application::Client < Chef::Application
|
|
|
184
184
|
:long => '--why-run',
|
|
185
185
|
:description => 'Enable whyrun mode',
|
|
186
186
|
:boolean => true
|
|
187
|
-
|
|
187
|
+
|
|
188
188
|
option :client_fork,
|
|
189
189
|
:short => "-f",
|
|
190
|
-
:long => "--fork",
|
|
190
|
+
:long => "--[no-]fork",
|
|
191
191
|
:description => "Fork client",
|
|
192
192
|
:boolean => true
|
|
193
193
|
|
|
@@ -209,6 +209,7 @@ class Chef::Application::Client < Chef::Application
|
|
|
209
209
|
|
|
210
210
|
def initialize
|
|
211
211
|
super
|
|
212
|
+
@exit_gracefully = false
|
|
212
213
|
end
|
|
213
214
|
|
|
214
215
|
# Reconfigure the chef client
|
|
@@ -217,9 +218,6 @@ class Chef::Application::Client < Chef::Application
|
|
|
217
218
|
super
|
|
218
219
|
|
|
219
220
|
Chef::Config[:chef_server_url] = config[:chef_server_url] if config.has_key? :chef_server_url
|
|
220
|
-
unless Chef::Config[:exception_handlers].any? {|h| Chef::Handler::ErrorReport === h}
|
|
221
|
-
Chef::Config[:exception_handlers] << Chef::Handler::ErrorReport.new
|
|
222
|
-
end
|
|
223
221
|
|
|
224
222
|
if Chef::Config[:daemonize]
|
|
225
223
|
Chef::Config[:interval] ||= 1800
|
|
@@ -277,6 +275,12 @@ class Chef::Application::Client < Chef::Application
|
|
|
277
275
|
Chef::Log.info("SIGUSR1 received, waking up")
|
|
278
276
|
SELF_PIPE[1].putc('.') # wakeup master process from select
|
|
279
277
|
end
|
|
278
|
+
|
|
279
|
+
trap("TERM") do
|
|
280
|
+
Chef::Log.info("SIGTERM received, exiting gracefully")
|
|
281
|
+
@exit_gracefully = true
|
|
282
|
+
SELF_PIPE[1].putc('.')
|
|
283
|
+
end
|
|
280
284
|
end
|
|
281
285
|
|
|
282
286
|
if Chef::Config[:version]
|
|
@@ -289,6 +293,7 @@ class Chef::Application::Client < Chef::Application
|
|
|
289
293
|
|
|
290
294
|
loop do
|
|
291
295
|
begin
|
|
296
|
+
Chef::Application.exit!("Exiting", 0) if @exit_gracefully
|
|
292
297
|
if Chef::Config[:splay]
|
|
293
298
|
splay = rand Chef::Config[:splay]
|
|
294
299
|
Chef::Log.debug("Splay sleep #{splay} seconds")
|
|
@@ -306,15 +311,11 @@ class Chef::Application::Client < Chef::Application
|
|
|
306
311
|
else
|
|
307
312
|
Chef::Application.exit! "Exiting", 0
|
|
308
313
|
end
|
|
309
|
-
rescue Chef::Application::Wakeup => e
|
|
310
|
-
Chef::Log.debug("Received Wakeup signal. Starting run.")
|
|
311
|
-
next
|
|
312
314
|
rescue SystemExit => e
|
|
313
315
|
raise
|
|
314
316
|
rescue Exception => e
|
|
315
317
|
if Chef::Config[:interval]
|
|
316
318
|
Chef::Log.error("#{e.class}: #{e}")
|
|
317
|
-
Chef::Application.debug_stacktrace(e)
|
|
318
319
|
Chef::Log.error("Sleeping for #{Chef::Config[:interval]} seconds before trying again")
|
|
319
320
|
unless SELF_PIPE.empty?
|
|
320
321
|
client_sleep Chef::Config[:interval]
|
|
@@ -324,7 +325,6 @@ class Chef::Application::Client < Chef::Application
|
|
|
324
325
|
end
|
|
325
326
|
retry
|
|
326
327
|
else
|
|
327
|
-
Chef::Application.debug_stacktrace(e)
|
|
328
328
|
Chef::Application.fatal!("#{e.class}: #{e.message}", 1)
|
|
329
329
|
end
|
|
330
330
|
end
|