chef 10.34.6 → 11.0.0.beta.0
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/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +4 -12
- data/bin/chef-apply +25 -0
- data/bin/chef-shell +34 -0
- data/bin/shef +6 -5
- 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/{shef.1.html → chef-shell.1.html} +49 -46
- data/distro/common/html/chef-solo.8.html +18 -12
- 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 +10 -7
- data/distro/common/html/knife-data-bag.1.html +10 -7
- data/distro/common/html/knife-environment.1.html +8 -6
- data/distro/common/html/knife-exec.1.html +9 -9
- 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 +8 -13
- data/distro/common/man/man1/{shef.1 → chef-shell.1} +21 -57
- 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 +15 -2
- data/distro/common/man/man1/knife-data-bag.1 +15 -2
- data/distro/common/man/man1/knife-environment.1 +12 -2
- data/distro/common/man/man1/knife-exec.1 +4 -7
- 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 +3 -6
- 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 +36 -4
- data/distro/common/man/man8/chef-solr.8 +1 -1
- data/distro/common/markdown/man1/{shef.mkd → chef-shell.mkd} +49 -43
- data/distro/common/markdown/man1/knife-exec.mkd +11 -6
- data/distro/common/markdown/man1/knife.mkd +4 -9
- data/distro/debian/etc/default/chef-client +0 -1
- data/distro/debian/etc/init.d/chef-client +2 -2
- data/lib/chef.rb +2 -5
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +71 -14
- data/lib/chef/application/apply.rb +160 -0
- data/lib/chef/application/client.rb +25 -18
- data/lib/chef/application/knife.rb +0 -2
- data/lib/chef/application/solo.rb +23 -8
- data/lib/chef/application/windows_service.rb +5 -2
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +11 -0
- data/lib/chef/chef_fs/command_line.rb +232 -0
- data/lib/chef/chef_fs/file_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +358 -0
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -0
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +121 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +109 -0
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb} +12 -15
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +84 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +188 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +78 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +78 -0
- data/lib/chef/chef_fs/file_system/data_bag_item.rb +59 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +66 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
- data/lib/chef/{index_queue.rb → chef_fs/file_system/file_system_error.rb} +14 -12
- data/lib/chef/{resource/whyrun_safe_ruby_block.rb → chef_fs/file_system/file_system_root_dir.rb} +10 -10
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +47 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → chef_fs/file_system/nonexistent_fs_object.rb} +19 -9
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +84 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +123 -0
- data/lib/chef/chef_fs/knife.rb +77 -0
- data/lib/chef/chef_fs/path_utils.rb +64 -0
- data/lib/chef/client.rb +44 -21
- data/lib/chef/config.rb +52 -43
- data/lib/chef/cookbook/synchronizer.rb +6 -8
- data/lib/chef/cookbook/syntax_check.rb +61 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +17 -19
- data/lib/chef/cookbook_version.rb +3 -302
- data/lib/chef/daemon.rb +3 -18
- data/lib/chef/data_bag.rb +4 -97
- data/lib/chef/data_bag_item.rb +2 -65
- data/lib/chef/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +66 -0
- data/lib/chef/dsl/include_attribute.rb +60 -0
- data/lib/chef/dsl/include_recipe.rb +42 -0
- data/lib/chef/dsl/platform_introspection.rb +213 -0
- data/lib/chef/dsl/recipe.rb +84 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +74 -19
- data/lib/chef/environment.rb +9 -180
- data/lib/chef/exceptions.rb +87 -14
- data/lib/chef/formatters/base.rb +4 -1
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +0 -4
- data/lib/chef/json_compat.rb +1 -97
- data/lib/chef/knife.rb +90 -41
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-full.erb +3 -3
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
- data/lib/chef/knife/configure.rb +1 -2
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +3 -2
- data/lib/chef/knife/cookbook_upload.rb +12 -7
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +26 -13
- data/lib/chef/knife/core/node_editor.rb +36 -16
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +15 -9
- data/lib/chef/knife/delete.rb +39 -0
- data/lib/chef/knife/diff.rb +46 -0
- data/lib/chef/knife/download.rb +50 -0
- data/lib/chef/knife/environment_show.rb +7 -0
- data/lib/chef/knife/exec.rb +5 -5
- data/lib/chef/knife/help_topics.rb +1 -1
- data/lib/chef/knife/index_rebuild.rb +91 -7
- data/lib/chef/knife/list.rb +109 -0
- data/lib/chef/knife/raw.rb +108 -0
- data/lib/chef/knife/search.rb +40 -22
- data/lib/chef/knife/show.rb +32 -0
- data/lib/chef/knife/ssh.rb +6 -2
- data/lib/chef/knife/upload.rb +50 -0
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +55 -197
- data/lib/chef/mixin/language.rb +9 -222
- data/lib/chef/mixin/language_include_attribute.rb +6 -38
- data/lib/chef/mixin/language_include_recipe.rb +3 -35
- data/lib/chef/mixin/params_validate.rb +6 -19
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +8 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +40 -0
- data/lib/chef/mixins.rb +0 -4
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/node.rb +133 -309
- data/lib/chef/node/attribute.rb +333 -473
- data/lib/chef/node/attribute_collections.rb +199 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +7 -22
- data/lib/chef/provider.rb +2 -49
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +5 -33
- data/lib/chef/provider/deploy.rb +2 -1
- data/lib/chef/provider/directory.rb +14 -17
- data/lib/chef/provider/file.rb +19 -52
- data/lib/chef/provider/group.rb +31 -51
- data/lib/chef/provider/group/dscl.rb +13 -53
- data/lib/chef/provider/group/gpasswd.rb +19 -14
- data/lib/chef/provider/group/groupadd.rb +1 -41
- data/lib/chef/provider/group/groupmod.rb +36 -46
- data/lib/chef/provider/group/pw.rb +16 -59
- data/lib/chef/provider/group/suse.rb +13 -16
- data/lib/chef/provider/group/usermod.rb +18 -40
- data/lib/chef/provider/group/windows.rb +6 -13
- data/lib/chef/provider/http_request.rb +25 -42
- data/lib/chef/provider/link.rb +2 -0
- data/lib/chef/provider/lwrp_base.rb +150 -0
- data/lib/chef/provider/package/portage.rb +4 -9
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +9 -41
- data/lib/chef/provider/package/yum.rb +12 -19
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +2 -0
- data/lib/chef/provider/remote_file.rb +21 -12
- data/lib/chef/provider/ruby_block.rb +5 -2
- data/lib/chef/provider/service.rb +15 -0
- data/lib/chef/provider/service/init.rb +9 -7
- data/lib/chef/provider/service/macosx.rb +15 -73
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +3 -3
- data/lib/chef/provider/template.rb +22 -25
- data/lib/chef/provider/template_finder.rb +61 -0
- data/lib/chef/provider/user.rb +0 -1
- data/lib/chef/provider/user/dscl.rb +175 -568
- data/lib/chef/provider/user/useradd.rb +30 -47
- data/lib/chef/providers.rb +3 -2
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +13 -154
- data/lib/chef/resource/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/lwrp_base.rb +127 -0
- data/lib/chef/resource/mount.rb +10 -11
- data/lib/chef/resource/registry_key.rb +86 -0
- data/lib/chef/resource/remote_directory.rb +6 -5
- data/lib/chef/resource/remote_file.rb +22 -31
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource_collection.rb +25 -21
- data/lib/chef/resources.rb +2 -1
- data/lib/chef/rest.rb +50 -131
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +2 -7
- data/lib/chef/role.rb +1 -97
- data/lib/chef/run_context.rb +108 -130
- data/lib/chef/run_context/cookbook_compiler.rb +280 -0
- data/lib/chef/run_list.rb +0 -2
- data/lib/chef/run_list/run_list_expansion.rb +0 -15
- data/lib/chef/run_lock.rb +90 -0
- data/lib/chef/runner.rb +28 -5
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +2 -4
- data/lib/chef/shef/ext.rb +3 -575
- data/lib/chef/{shef.rb → shell.rb} +35 -40
- data/lib/chef/shell/ext.rb +593 -0
- data/lib/chef/{shef → shell}/model_wrapper.rb +3 -3
- data/lib/chef/{shef/shef_rest.rb → shell/shell_rest.rb} +4 -4
- data/lib/chef/{shef/shef_session.rb → shell/shell_session.rb} +17 -15
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/util/windows/net_group.rb +1 -5
- data/lib/chef/version.rb +3 -3
- data/lib/chef/win32/api/process.rb +0 -1
- data/lib/chef/win32/handle.rb +1 -8
- data/lib/chef/win32/registry.rb +371 -0
- data/spec/data/big_json.json +1 -2
- data/spec/data/big_json_plus_one.json +1 -2
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -0
- data/spec/data/nodes/default.rb +3 -3
- data/spec/data/nodes/test.example.com.rb +3 -3
- data/spec/data/nodes/test.rb +3 -3
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -0
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -0
- data/spec/data/{knife-home/.chef/plugins/knife/example_home_subcommand.rb → run_context/cookbooks/circular-dep1/recipes/default.rb} +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -0
- data/spec/data/{lwrp_const_scoping/resources/conflict.rb → run_context/cookbooks/circular-dep2/recipes/default.rb} +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -0
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -0
- data/spec/data/shef-config.rb +7 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +2 -2
- data/spec/functional/knife/ssh_spec.rb +5 -1
- data/spec/functional/resource/cookbook_file_spec.rb +7 -19
- data/spec/functional/resource/directory_spec.rb +4 -0
- data/spec/functional/resource/file_spec.rb +56 -22
- data/spec/functional/resource/link_spec.rb +2 -0
- data/spec/functional/resource/registry_spec.rb +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +142 -36
- data/spec/functional/resource/remote_file_spec.rb +18 -0
- data/spec/functional/resource/template_spec.rb +23 -2
- data/spec/functional/run_lock_spec.rb +106 -0
- data/spec/functional/shell_spec.rb +100 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/spec_helper.rb +5 -29
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +0 -2
- data/spec/support/platform_helpers.rb +8 -15
- data/spec/support/shared/functional/directory_resource.rb +84 -22
- data/spec/support/shared/functional/file_resource.rb +169 -71
- data/spec/support/shared/functional/securable_resource.rb +143 -119
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +375 -0
- data/spec/support/shared/unit/file_system_support.rb +110 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/unit/api_client/registration_spec.rb +175 -0
- data/spec/unit/api_client_spec.rb +78 -156
- data/spec/unit/application/apply.rb +84 -0
- data/spec/unit/application/client_spec.rb +1 -37
- data/spec/unit/application/knife_spec.rb +5 -0
- data/spec/unit/application_spec.rb +57 -2
- data/spec/unit/checksum/storage/filesystem_spec.rb +1 -1
- data/spec/unit/chef_fs/diff_spec.rb +328 -0
- data/spec/unit/chef_fs/file_pattern_spec.rb +526 -0
- data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +237 -0
- data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +568 -0
- data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +220 -0
- data/spec/unit/chef_fs/file_system_spec.rb +136 -0
- data/spec/unit/client_spec.rb +124 -33
- data/spec/unit/config_spec.rb +46 -13
- data/spec/unit/cookbook/synchronizer_spec.rb +1 -49
- data/spec/unit/cookbook/syntax_check_spec.rb +48 -109
- data/spec/unit/cookbook_loader_spec.rb +153 -91
- data/spec/unit/cookbook_manifest_spec.rb +81 -81
- data/spec/unit/cookbook_spec.rb +3 -20
- data/spec/unit/cookbook_version_spec.rb +23 -122
- data/spec/unit/daemon_spec.rb +3 -24
- data/spec/unit/data_bag_spec.rb +6 -4
- data/spec/unit/digester_spec.rb +50 -0
- data/spec/unit/dsl/data_query_spec.rb +66 -0
- data/spec/unit/dsl/platform_introspection_spec.rb +130 -0
- data/spec/unit/dsl/regsitry_helper_spec.rb +55 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +50 -105
- data/spec/unit/environment_spec.rb +0 -130
- data/spec/unit/exceptions_spec.rb +2 -3
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
- data/spec/unit/json_compat_spec.rb +15 -7
- data/spec/unit/knife/bootstrap_spec.rb +2 -0
- data/spec/unit/knife/configure_spec.rb +20 -14
- data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
- data/spec/unit/knife/cookbook_test_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +43 -8
- data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +156 -125
- data/spec/unit/knife/data_bag_create_spec.rb +9 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -4
- data/spec/unit/knife/data_bag_from_file_spec.rb +4 -6
- data/spec/unit/knife/data_bag_show_spec.rb +11 -4
- data/spec/unit/knife/index_rebuild_spec.rb +96 -33
- data/spec/unit/knife/knife_help.rb +7 -7
- data/spec/unit/knife/node_edit_spec.rb +6 -33
- data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
- data/spec/unit/knife/ssh_spec.rb +12 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife_spec.rb +53 -0
- data/spec/unit/lwrp_spec.rb +59 -42
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +101 -799
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +6 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -37
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +119 -0
- data/spec/unit/node/attribute_spec.rb +195 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +366 -370
- data/spec/unit/platform_spec.rb +9 -10
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file_spec.rb +4 -8
- data/spec/unit/provider/directory_spec.rb +96 -64
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/file_spec.rb +48 -39
- data/spec/unit/provider/group/dscl_spec.rb +0 -36
- data/spec/unit/provider/group/gpasswd_spec.rb +9 -16
- data/spec/unit/provider/group/groupadd_spec.rb +4 -3
- data/spec/unit/provider/group/groupmod_spec.rb +1 -0
- data/spec/unit/provider/group/pw_spec.rb +15 -12
- data/spec/unit/provider/group/usermod_spec.rb +6 -21
- data/spec/unit/provider/group/windows_spec.rb +8 -0
- data/spec/unit/provider/group_spec.rb +6 -28
- data/spec/unit/provider/http_request_spec.rb +28 -69
- data/spec/unit/provider/ifconfig_spec.rb +2 -2
- data/spec/unit/provider/ohai_spec.rb +4 -4
- data/spec/unit/provider/package/apt_spec.rb +0 -1
- data/spec/unit/provider/package/ips_spec.rb +0 -1
- data/spec/unit/provider/package/portage_spec.rb +0 -44
- data/spec/unit/provider/package/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -44
- data/spec/unit/provider/package/yum_spec.rb +39 -36
- data/spec/unit/provider/package_spec.rb +7 -5
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +7 -3
- data/spec/unit/provider/remote_file_spec.rb +36 -0
- data/spec/unit/provider/route_spec.rb +4 -3
- data/spec/unit/provider/ruby_block_spec.rb +8 -0
- data/spec/unit/provider/service/arch_service_spec.rb +5 -5
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +5 -5
- data/spec/unit/provider/service/init_service_spec.rb +27 -4
- data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
- data/spec/unit/provider/service/invokercd_service_spec.rb +4 -4
- data/spec/unit/provider/service/macosx_spec.rb +11 -66
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/simple_service_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +9 -9
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template_spec.rb +35 -11
- data/spec/unit/provider/user/dscl_spec.rb +285 -681
- data/spec/unit/provider/user/useradd_spec.rb +1 -22
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +374 -0
- data/spec/unit/resource/mount_spec.rb +0 -11
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +21 -23
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource_spec.rb +4 -19
- data/spec/unit/rest/auth_credentials_spec.rb +2 -19
- data/spec/unit/rest_spec.rb +130 -284
- data/spec/unit/run_context/cookbook_compiler_spec.rb +181 -0
- data/spec/unit/run_context_spec.rb +18 -4
- data/spec/unit/run_list_spec.rb +0 -209
- data/spec/unit/run_lock_spec.rb +37 -0
- data/spec/unit/runner_spec.rb +101 -2
- data/spec/unit/scan_access_control_spec.rb +4 -4
- data/spec/unit/{shef → shell}/model_wrapper_spec.rb +5 -5
- data/spec/unit/{shef/shef_ext_spec.rb → shell/shell_ext_spec.rb} +21 -21
- data/spec/unit/{shef/shef_session_spec.rb → shell/shell_session_spec.rb} +14 -69
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- metadata +275 -234
- checksums.yaml +0 -15
- data/README.rdoc +0 -177
- data/distro/common/html/knife-recipe.1.html +0 -92
- data/lib/chef/certificate.rb +0 -161
- data/lib/chef/checksum.rb +0 -167
- data/lib/chef/checksum_cache.rb +0 -190
- data/lib/chef/cookbook_version_selector.rb +0 -168
- data/lib/chef/couchdb.rb +0 -246
- data/lib/chef/index_queue/amqp_client.rb +0 -116
- data/lib/chef/index_queue/consumer.rb +0 -76
- data/lib/chef/index_queue/indexable.rb +0 -109
- data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +0 -60
- data/lib/chef/monkey_patches/moneta.rb +0 -50
- data/lib/chef/monkey_patches/uri.rb +0 -70
- data/lib/chef/openid_registration.rb +0 -187
- data/lib/chef/provider/user/solaris.rb +0 -90
- data/lib/chef/solr_query.rb +0 -187
- data/lib/chef/solr_query/lucene.treetop +0 -150
- data/lib/chef/solr_query/lucene_nodes.rb +0 -285
- data/lib/chef/solr_query/query_transform.rb +0 -65
- data/lib/chef/solr_query/solr_http_request.rb +0 -132
- data/lib/chef/webui_user.rb +0 -231
- data/spec/data/cookbooks/openldap/files/default/.dotfile +0 -1
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +0 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +0 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +0 -1
- data/spec/data/mac_users/10.7-8.plist.xml +0 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
- data/spec/data/mac_users/10.7.plist.xml +0 -559
- data/spec/data/mac_users/10.7.shadow.xml +0 -11
- data/spec/data/mac_users/10.8.plist.xml +0 -559
- data/spec/data/mac_users/10.8.shadow.xml +0 -21
- data/spec/data/mac_users/10.9.plist.xml +0 -560
- data/spec/data/mac_users/10.9.shadow.xml +0 -21
- data/spec/functional/resource/base.rb +0 -40
- data/spec/functional/resource/group_spec.rb +0 -343
- data/spec/functional/resource/user/dscl_spec.rb +0 -199
- data/spec/unit/certificate_spec.rb +0 -76
- data/spec/unit/checksum_cache_spec.rb +0 -209
- data/spec/unit/checksum_spec.rb +0 -94
- data/spec/unit/couchdb_spec.rb +0 -274
- data/spec/unit/index_queue_spec.rb +0 -391
- data/spec/unit/mixin/language_spec.rb +0 -305
- data/spec/unit/openid_registration_spec.rb +0 -153
- data/spec/unit/provider/user/solaris_spec.rb +0 -414
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -47
- data/spec/unit/solr_query/query_transform_spec.rb +0 -454
- data/spec/unit/solr_query/solr_http_request_spec.rb +0 -244
- data/spec/unit/solr_query_spec.rb +0 -203
- data/spec/unit/webui_user_spec.rb +0 -238
data/lib/chef/application.rb
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
# See the License for the specific language governing permissions and
|
|
17
17
|
# limitations under the License.
|
|
18
18
|
|
|
19
|
+
require 'pp'
|
|
19
20
|
require 'socket'
|
|
20
21
|
require 'chef/config'
|
|
21
22
|
require 'chef/exceptions'
|
|
@@ -28,11 +29,18 @@ require 'rbconfig'
|
|
|
28
29
|
class Chef::Application
|
|
29
30
|
include Mixlib::CLI
|
|
30
31
|
|
|
32
|
+
class Wakeup < Exception
|
|
33
|
+
end
|
|
34
|
+
|
|
31
35
|
def initialize
|
|
32
36
|
super
|
|
33
37
|
|
|
34
38
|
@chef_client = nil
|
|
35
39
|
@chef_client_json = nil
|
|
40
|
+
trap("TERM") do
|
|
41
|
+
Chef::Application.fatal!("SIGTERM received, stopping", 1)
|
|
42
|
+
end
|
|
43
|
+
|
|
36
44
|
trap("INT") do
|
|
37
45
|
Chef::Application.fatal!("SIGINT received, stopping", 2)
|
|
38
46
|
end
|
|
@@ -92,24 +100,73 @@ class Chef::Application
|
|
|
92
100
|
|
|
93
101
|
end
|
|
94
102
|
|
|
95
|
-
# Initialize and configure the logger.
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
# the user
|
|
99
|
-
#
|
|
103
|
+
# Initialize and configure the logger.
|
|
104
|
+
# === Loggers and Formatters
|
|
105
|
+
# In Chef 10.x and previous, the Logger was the primary/only way that Chef
|
|
106
|
+
# communicated information to the user. In Chef 10.14, a new system, "output
|
|
107
|
+
# formatters" was added, and in Chef 11.0+ it is the default when running
|
|
108
|
+
# chef in a console (detected by `STDOUT.tty?`). Because output formatters
|
|
109
|
+
# are more complex than the logger system and users have less experience with
|
|
110
|
+
# them, the config option `force_logger` is provided to restore the Chef 10.x
|
|
111
|
+
# behavior.
|
|
112
|
+
#
|
|
113
|
+
# Conversely, for users who want formatter output even when chef is running
|
|
114
|
+
# unattended, the `force_formatter` option is provided.
|
|
100
115
|
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
116
|
+
# === Auto Log Level
|
|
117
|
+
# When `log_level` is set to `:auto` (default), the log level will be `:warn`
|
|
118
|
+
# when the primary output mode is an output formatter (see
|
|
119
|
+
# +using_output_formatter?+) and `:info` otherwise.
|
|
120
|
+
#
|
|
121
|
+
# === Automatic STDOUT Logging
|
|
122
|
+
# When `force_logger` is configured (e.g., Chef 10 mode), a second logger
|
|
123
|
+
# with output on STDOUT is added when running in a console (STDOUT is a tty)
|
|
124
|
+
# and the configured log_location isn't STDOUT. This accounts for the case
|
|
125
|
+
# that a user has configured a log_location in client.rb, but is running
|
|
126
|
+
# chef-client by hand to troubleshoot a problem.
|
|
103
127
|
def configure_logging
|
|
104
|
-
require 'pp'
|
|
105
128
|
Chef::Log.init(Chef::Config[:log_location])
|
|
106
|
-
if
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
if want_additional_logger?
|
|
130
|
+
configure_stdout_logger
|
|
131
|
+
end
|
|
132
|
+
Chef::Log.level = resolve_log_level
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def configure_stdout_logger
|
|
136
|
+
stdout_logger = Logger.new(STDOUT)
|
|
137
|
+
STDOUT.sync = true
|
|
138
|
+
stdout_logger.formatter = Chef::Log.logger.formatter
|
|
139
|
+
Chef::Log.loggers << stdout_logger
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Based on config and whether or not STDOUT is a tty, should we setup a
|
|
143
|
+
# secondary logger for stdout?
|
|
144
|
+
def want_additional_logger?
|
|
145
|
+
( Chef::Config[:log_location] != STDOUT ) && STDOUT.tty? && (!Chef::Config[:daemonize]) && (Chef::Config[:force_logger])
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Use of output formatters is assumed if `force_formatter` is set or if
|
|
149
|
+
# `force_logger` is not set and STDOUT is to a console (tty)
|
|
150
|
+
def using_output_formatter?
|
|
151
|
+
Chef::Config[:force_formatter] || (!Chef::Config[:force_logger] && STDOUT.tty?)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def auto_log_level?
|
|
155
|
+
Chef::Config[:log_level] == :auto
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# if log_level is `:auto`, convert it to :warn (when using output formatter)
|
|
159
|
+
# or :info (no output formatter). See also +using_output_formatter?+
|
|
160
|
+
def resolve_log_level
|
|
161
|
+
if auto_log_level?
|
|
162
|
+
if using_output_formatter?
|
|
163
|
+
:warn
|
|
164
|
+
else
|
|
165
|
+
:info
|
|
166
|
+
end
|
|
167
|
+
else
|
|
168
|
+
Chef::Config[:log_level]
|
|
111
169
|
end
|
|
112
|
-
Chef::Log.level = Chef::Config[:log_level]
|
|
113
170
|
end
|
|
114
171
|
|
|
115
172
|
# Called prior to starting the application, by the run method
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Bryan W. Berry (<bryan.berry@gmail.com>)
|
|
3
|
+
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
|
4
|
+
# Copyright:: Copyright (c) 2012 Bryan W. Berry
|
|
5
|
+
# Copyright:: Copyright (c) 2012 Daniel DeLeo
|
|
6
|
+
# License:: Apache License, Version 2.0
|
|
7
|
+
#
|
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
# you may not use this file except in compliance with the License.
|
|
10
|
+
# You may obtain a copy of the License at
|
|
11
|
+
#
|
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
#
|
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
|
|
20
|
+
require 'chef'
|
|
21
|
+
require 'chef/application'
|
|
22
|
+
require 'chef/client'
|
|
23
|
+
require 'chef/config'
|
|
24
|
+
require 'chef/log'
|
|
25
|
+
require 'fileutils'
|
|
26
|
+
require 'tempfile'
|
|
27
|
+
require 'chef/providers'
|
|
28
|
+
require 'chef/resources'
|
|
29
|
+
|
|
30
|
+
class Chef::Application::Apply < Chef::Application
|
|
31
|
+
|
|
32
|
+
banner "Usage: chef-recipe [RECIPE_FILE] [-e RECIPE_TEXT] [-s]"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
option :execute,
|
|
36
|
+
:short => "-e RECIPE_TEXT",
|
|
37
|
+
:long => "--execute RECIPE_TEXT",
|
|
38
|
+
:description => "Execute resources supplied in a string",
|
|
39
|
+
:proc => nil
|
|
40
|
+
|
|
41
|
+
option :stdin,
|
|
42
|
+
:short => "-s",
|
|
43
|
+
:long => "--stdin",
|
|
44
|
+
:description => "Execute resources read from STDIN",
|
|
45
|
+
:boolean => true
|
|
46
|
+
|
|
47
|
+
option :log_level,
|
|
48
|
+
:short => "-l LEVEL",
|
|
49
|
+
:long => "--log_level LEVEL",
|
|
50
|
+
:description => "Set the log level (debug, info, warn, error, fatal)",
|
|
51
|
+
:proc => lambda { |l| l.to_sym }
|
|
52
|
+
|
|
53
|
+
option :help,
|
|
54
|
+
:short => "-h",
|
|
55
|
+
:long => "--help",
|
|
56
|
+
:description => "Show this message",
|
|
57
|
+
:on => :tail,
|
|
58
|
+
:boolean => true,
|
|
59
|
+
:show_options => true,
|
|
60
|
+
:exit => 0
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
option :version,
|
|
64
|
+
:short => "-v",
|
|
65
|
+
:long => "--version",
|
|
66
|
+
:description => "Show chef version",
|
|
67
|
+
:boolean => true,
|
|
68
|
+
:proc => lambda {|v| puts "Chef: #{::Chef::VERSION}"},
|
|
69
|
+
:exit => 0
|
|
70
|
+
|
|
71
|
+
option :why_run,
|
|
72
|
+
:short => '-W',
|
|
73
|
+
:long => '--why-run',
|
|
74
|
+
:description => 'Enable whyrun mode',
|
|
75
|
+
:boolean => true
|
|
76
|
+
|
|
77
|
+
def initialize
|
|
78
|
+
super
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def reconfigure
|
|
82
|
+
configure_logging
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def read_recipe_file(file_name)
|
|
86
|
+
recipe_path = file_name
|
|
87
|
+
unless File.exist?(recipe_path)
|
|
88
|
+
Chef::Application.fatal!("No file exists at #{recipe_path}", 1)
|
|
89
|
+
end
|
|
90
|
+
recipe_path = File.expand_path(recipe_path)
|
|
91
|
+
recipe_fh = open(recipe_path)
|
|
92
|
+
recipe_text = recipe_fh.read
|
|
93
|
+
[recipe_text, recipe_fh]
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def get_recipe_and_run_context
|
|
97
|
+
Chef::Config[:solo] = true
|
|
98
|
+
@chef_client = Chef::Client.new
|
|
99
|
+
@chef_client.run_ohai
|
|
100
|
+
@chef_client.load_node
|
|
101
|
+
@chef_client.build_node
|
|
102
|
+
run_context = if @chef_client.events.nil?
|
|
103
|
+
Chef::RunContext.new(@chef_client.node, {})
|
|
104
|
+
else
|
|
105
|
+
Chef::RunContext.new(@chef_client.node, {}, @chef_client.events)
|
|
106
|
+
end
|
|
107
|
+
recipe = Chef::Recipe.new("(chef-recipe cookbook)", "(chef-recipe recipe)", run_context)
|
|
108
|
+
[recipe, run_context]
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# write recipe to temp file, so in case of error,
|
|
112
|
+
# user gets error w/ context
|
|
113
|
+
def temp_recipe_file
|
|
114
|
+
@recipe_fh = Tempfile.open('recipe-temporary-file')
|
|
115
|
+
@recipe_fh.write(@recipe_text)
|
|
116
|
+
@recipe_fh.rewind
|
|
117
|
+
@recipe_filename = @recipe_fh.path
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def run_chef_recipe
|
|
121
|
+
if config[:execute]
|
|
122
|
+
@recipe_text = config[:execute]
|
|
123
|
+
temp_recipe_file
|
|
124
|
+
elsif config[:stdin]
|
|
125
|
+
@recipe_text = STDIN.read
|
|
126
|
+
temp_recipe_file
|
|
127
|
+
else
|
|
128
|
+
@recipe_filename = ARGV[0]
|
|
129
|
+
@recipe_text,@recipe_fh = read_recipe_file @recipe_filename
|
|
130
|
+
end
|
|
131
|
+
recipe,run_context = get_recipe_and_run_context
|
|
132
|
+
recipe.instance_eval(@recipe_text, @recipe_filename, 1)
|
|
133
|
+
runner = Chef::Runner.new(run_context)
|
|
134
|
+
begin
|
|
135
|
+
runner.converge
|
|
136
|
+
ensure
|
|
137
|
+
@recipe_fh.close
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def run_application
|
|
142
|
+
begin
|
|
143
|
+
parse_options
|
|
144
|
+
run_chef_recipe
|
|
145
|
+
Chef::Application.exit! "Exiting", 0
|
|
146
|
+
rescue SystemExit => e
|
|
147
|
+
raise
|
|
148
|
+
rescue Exception => e
|
|
149
|
+
Chef::Application.debug_stacktrace(e)
|
|
150
|
+
Chef::Application.fatal!("#{e.class}: #{e.message}", 1)
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Get this party started
|
|
155
|
+
def run
|
|
156
|
+
reconfigure
|
|
157
|
+
run_application
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
end
|
|
@@ -40,12 +40,25 @@ class Chef::Application::Client < Chef::Application
|
|
|
40
40
|
option :formatter,
|
|
41
41
|
:short => "-F FORMATTER",
|
|
42
42
|
:long => "--format FORMATTER",
|
|
43
|
-
:description => "output format to use"
|
|
43
|
+
:description => "output format to use",
|
|
44
|
+
:proc => lambda { |format| Chef::Config.add_formatter(format) }
|
|
45
|
+
|
|
46
|
+
option :force_logger,
|
|
47
|
+
:long => "--force-logger",
|
|
48
|
+
:description => "Use logger output instead of formatter output",
|
|
49
|
+
:boolean => true,
|
|
50
|
+
:default => false
|
|
51
|
+
|
|
52
|
+
option :force_formatter,
|
|
53
|
+
:long => "--force-formatter",
|
|
54
|
+
:description => "Use formatter output instead of logger output",
|
|
55
|
+
:boolean => true,
|
|
56
|
+
:default => false
|
|
44
57
|
|
|
45
58
|
option :color,
|
|
46
59
|
:long => '--[no-]color',
|
|
47
60
|
:boolean => true,
|
|
48
|
-
:default =>
|
|
61
|
+
:default => true,
|
|
49
62
|
:description => "Use colored output, defaults to enabled"
|
|
50
63
|
|
|
51
64
|
option :log_level,
|
|
@@ -81,11 +94,13 @@ class Chef::Application::Client < Chef::Application
|
|
|
81
94
|
:description => "Group to set privilege to",
|
|
82
95
|
:proc => nil
|
|
83
96
|
|
|
84
|
-
|
|
85
|
-
:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
97
|
+
unless Chef::Platform.windows?
|
|
98
|
+
option :daemonize,
|
|
99
|
+
:short => "-d",
|
|
100
|
+
:long => "--daemonize",
|
|
101
|
+
:description => "Daemonize the process",
|
|
102
|
+
:proc => lambda { |p| true }
|
|
103
|
+
end
|
|
89
104
|
|
|
90
105
|
option :pid_file,
|
|
91
106
|
:short => "-P PID_FILE",
|
|
@@ -186,7 +201,6 @@ class Chef::Application::Client < Chef::Application
|
|
|
186
201
|
|
|
187
202
|
def initialize
|
|
188
203
|
super
|
|
189
|
-
@exit_gracefully = false
|
|
190
204
|
end
|
|
191
205
|
|
|
192
206
|
# Reconfigure the chef client
|
|
@@ -255,15 +269,6 @@ class Chef::Application::Client < Chef::Application
|
|
|
255
269
|
Chef::Log.info("SIGUSR1 received, waking up")
|
|
256
270
|
SELF_PIPE[1].putc('.') # wakeup master process from select
|
|
257
271
|
end
|
|
258
|
-
|
|
259
|
-
# see CHEF-5172
|
|
260
|
-
if Chef::Config[:daemonize] || Chef::Config[:interval]
|
|
261
|
-
trap("TERM") do
|
|
262
|
-
Chef::Log.info("SIGTERM received, exiting gracefully")
|
|
263
|
-
@exit_gracefully = true
|
|
264
|
-
SELF_PIPE[1].putc('.')
|
|
265
|
-
end
|
|
266
|
-
end
|
|
267
272
|
end
|
|
268
273
|
|
|
269
274
|
if Chef::Config[:version]
|
|
@@ -276,7 +281,6 @@ class Chef::Application::Client < Chef::Application
|
|
|
276
281
|
|
|
277
282
|
loop do
|
|
278
283
|
begin
|
|
279
|
-
Chef::Application.exit!("Exiting", 0) if @exit_gracefully
|
|
280
284
|
if Chef::Config[:splay]
|
|
281
285
|
splay = rand Chef::Config[:splay]
|
|
282
286
|
Chef::Log.debug("Splay sleep #{splay} seconds")
|
|
@@ -294,6 +298,9 @@ class Chef::Application::Client < Chef::Application
|
|
|
294
298
|
else
|
|
295
299
|
Chef::Application.exit! "Exiting", 0
|
|
296
300
|
end
|
|
301
|
+
rescue Chef::Application::Wakeup => e
|
|
302
|
+
Chef::Log.debug("Received Wakeup signal. Starting run.")
|
|
303
|
+
next
|
|
297
304
|
rescue SystemExit => e
|
|
298
305
|
raise
|
|
299
306
|
rescue Exception => e
|
|
@@ -37,13 +37,26 @@ class Chef::Application::Solo < Chef::Application
|
|
|
37
37
|
option :formatter,
|
|
38
38
|
:short => "-F FORMATTER",
|
|
39
39
|
:long => "--format FORMATTER",
|
|
40
|
-
:description => "output format to use"
|
|
40
|
+
:description => "output format to use",
|
|
41
|
+
:proc => lambda { |format| Chef::Config.add_formatter(format) }
|
|
42
|
+
|
|
43
|
+
option :force_logger,
|
|
44
|
+
:long => "--force-logger",
|
|
45
|
+
:description => "Use logger output instead of formatter output",
|
|
46
|
+
:boolean => true,
|
|
47
|
+
:default => false
|
|
48
|
+
|
|
49
|
+
option :force_formatter,
|
|
50
|
+
:long => "--force-formatter",
|
|
51
|
+
:description => "Use formatter output instead of logger output",
|
|
52
|
+
:boolean => true,
|
|
53
|
+
:default => false
|
|
41
54
|
|
|
42
55
|
option :color,
|
|
43
56
|
:long => '--[no-]color',
|
|
44
57
|
:boolean => true,
|
|
45
|
-
:default =>
|
|
46
|
-
:description => "Use colored output, defaults to
|
|
58
|
+
:default => true,
|
|
59
|
+
:description => "Use colored output, defaults to enabled"
|
|
47
60
|
|
|
48
61
|
option :log_level,
|
|
49
62
|
:short => "-l LEVEL",
|
|
@@ -78,11 +91,13 @@ class Chef::Application::Solo < Chef::Application
|
|
|
78
91
|
:description => "Group to set privilege to",
|
|
79
92
|
:proc => nil
|
|
80
93
|
|
|
81
|
-
|
|
82
|
-
:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
94
|
+
unless Chef::Platform.windows?
|
|
95
|
+
option :daemonize,
|
|
96
|
+
:short => "-d",
|
|
97
|
+
:long => "--daemonize",
|
|
98
|
+
:description => "Daemonize the process",
|
|
99
|
+
:proc => lambda { |p| true }
|
|
100
|
+
end
|
|
86
101
|
|
|
87
102
|
option :interval,
|
|
88
103
|
:short => "-i SECONDS",
|
|
@@ -92,6 +92,9 @@ class Chef
|
|
|
92
92
|
|
|
93
93
|
Chef::Log.debug("Sleeping for #{Chef::Config[:interval]} seconds")
|
|
94
94
|
client_sleep Chef::Config[:interval]
|
|
95
|
+
rescue Chef::Application::Wakeup => e
|
|
96
|
+
Chef::Log.debug("Received Wakeup signal. Starting run.")
|
|
97
|
+
next
|
|
95
98
|
rescue SystemExit => e
|
|
96
99
|
raise
|
|
97
100
|
rescue Exception => e
|
|
@@ -167,7 +170,7 @@ class Chef
|
|
|
167
170
|
def configure_chef(startup_parameters)
|
|
168
171
|
# Bit of a hack ahead:
|
|
169
172
|
# It is possible to specify a service's binary_path_name with arguments, like "foo.exe -x argX".
|
|
170
|
-
# It is also possible to specify startup parameters separately, either via the Services manager
|
|
173
|
+
# It is also possible to specify startup parameters separately, either via the the Services manager
|
|
171
174
|
# or by using the registry (I think).
|
|
172
175
|
|
|
173
176
|
# In order to accommodate all possible sources of parameterization, we first parse any command line
|
|
@@ -215,7 +218,7 @@ class Chef
|
|
|
215
218
|
sleep chunk_length
|
|
216
219
|
end
|
|
217
220
|
end
|
|
218
|
-
|
|
221
|
+
|
|
219
222
|
end
|
|
220
223
|
end
|
|
221
224
|
end
|
data/lib/chef/applications.rb
CHANGED