chef 10.34.6-x86-mingw32 → 11.6.2-x86-mingw32
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.
- checksums.yaml +5 -13
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +18 -1
- data/bin/chef-apply +25 -0
- data/bin/chef-service-manager +37 -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 +4 -4
- data/distro/common/html/chef-solr.8.html +5 -5
- 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 +4 -4
- data/distro/common/html/knife-data-bag.1.html +4 -4
- data/distro/common/html/knife-environment.1.html +4 -4
- 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 +0 -99
- 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 +1 -1
- data/distro/common/man/man1/knife-data-bag.1 +1 -1
- data/distro/common/man/man1/knife-environment.1 +0 -168
- 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 +1 -1
- 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 +6 -4
- data/distro/windows/service_manager.rb +2 -146
- data/lib/chef.rb +3 -6
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +68 -18
- data/lib/chef/application/apply.rb +162 -0
- data/lib/chef/application/client.rb +37 -22
- data/lib/chef/application/knife.rb +2 -4
- data/lib/chef/application/solo.rb +27 -13
- data/lib/chef/application/windows_service.rb +114 -54
- data/lib/chef/application/windows_service_manager.rb +179 -0
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +9 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
- data/lib/chef/chef_fs/command_line.rb +284 -0
- 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_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +426 -0
- 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_dir.rb +47 -0
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +180 -0
- 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 +60 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +121 -0
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +110 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +223 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +85 -0
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +149 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +69 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +72 -0
- 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 +90 -0
- data/lib/chef/chef_fs/file_system/file_system_error.rb +33 -0
- data/lib/chef/chef_fs/file_system/file_system_root_dir.rb +31 -0
- 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 +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +36 -0
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- 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 +113 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +177 -0
- data/lib/chef/chef_fs/knife.rb +116 -0
- data/lib/chef/chef_fs/parallelizer.rb +129 -0
- data/lib/chef/chef_fs/path_utils.rb +90 -0
- data/lib/chef/chef_fs/raw_request.rb +79 -0
- data/lib/chef/client.rb +111 -34
- data/lib/chef/config.rb +111 -102
- data/lib/chef/cookbook/chefignore.rb +2 -1
- data/lib/chef/cookbook/metadata.rb +0 -2
- data/lib/chef/cookbook/syntax_check.rb +76 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +16 -9
- data/lib/chef/cookbook_version.rb +2 -410
- data/lib/chef/daemon.rb +24 -19
- data/lib/chef/data_bag.rb +20 -104
- data/lib/chef/data_bag_item.rb +2 -65
- 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/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +71 -0
- data/lib/chef/dsl/include_attribute.rb +63 -0
- data/lib/chef/dsl/include_recipe.rb +45 -0
- data/lib/chef/dsl/platform_introspection.rb +218 -0
- data/lib/chef/dsl/recipe.rb +87 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +171 -24
- data/lib/chef/environment.rb +39 -179
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +107 -8
- 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/base.rb +4 -1
- 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/resource_failure_inspector.rb +8 -0
- data/lib/chef/json_compat.rb +15 -14
- data/lib/chef/knife.rb +99 -41
- data/lib/chef/knife/bootstrap.rb +46 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/centos5-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/chef-full.erb +1 -1
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +1 -1
- data/lib/chef/knife/client_show.rb +2 -5
- data/lib/chef/knife/configure.rb +19 -17
- data/lib/chef/knife/cookbook_create.rb +6 -5
- data/lib/chef/knife/cookbook_download.rb +13 -5
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_site_share.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +4 -2
- data/lib/chef/knife/cookbook_upload.rb +4 -4
- data/lib/chef/knife/core/bootstrap_context.rb +11 -5
- data/lib/chef/knife/core/generic_presenter.rb +42 -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/subcommand_loader.rb +43 -12
- data/lib/chef/knife/core/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +34 -13
- data/lib/chef/knife/delete.rb +106 -0
- data/lib/chef/knife/deps.rb +139 -0
- data/lib/chef/knife/diff.rb +63 -0
- data/lib/chef/knife/download.rb +63 -0
- data/lib/chef/knife/edit.rb +76 -0
- data/lib/chef/knife/environment_show.rb +2 -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 +153 -0
- 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 +64 -0
- data/lib/chef/knife/role_show.rb +2 -4
- data/lib/chef/knife/search.rb +45 -28
- data/lib/chef/knife/show.rb +55 -0
- data/lib/chef/knife/ssh.rb +14 -2
- data/lib/chef/knife/upload.rb +69 -0
- data/lib/chef/knife/user_create.rb +93 -0
- data/lib/chef/knife/user_delete.rb +46 -0
- data/lib/chef/knife/user_edit.rb +53 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → knife/user_list.rb} +21 -9
- data/lib/chef/knife/user_reregister.rb +59 -0
- data/lib/chef/knife/user_show.rb +49 -0
- data/lib/chef/knife/xargs.rb +265 -0
- data/lib/chef/log.rb +2 -2
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +78 -194
- data/lib/chef/mixin/deprecation.rb +35 -0
- data/lib/chef/mixin/file_class.rb +0 -9
- data/lib/chef/mixin/language.rb +22 -223
- data/lib/chef/mixin/language_include_attribute.rb +10 -36
- data/lib/chef/mixin/language_include_recipe.rb +7 -33
- data/lib/chef/mixin/params_validate.rb +0 -3
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +10 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +156 -26
- data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
- data/lib/chef/mixins.rb +1 -5
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/monkey_patches/file.rb} +6 -14
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/monkey_patches/securerandom.rb +44 -0
- data/lib/chef/monologger.rb +93 -0
- data/lib/chef/node.rb +139 -308
- data/lib/chef/node/attribute.rb +367 -473
- data/lib/chef/node/attribute_collections.rb +206 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +4 -496
- data/lib/chef/platform/provider_mapping.rb +529 -0
- data/lib/chef/{mixin/check_helper.rb → platform/query_helpers.rb} +20 -9
- data/lib/chef/provider.rb +14 -58
- data/lib/chef/provider/batch.rb +35 -0
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +11 -80
- data/lib/chef/provider/cookbook_file/content.rb +49 -0
- data/lib/chef/provider/deploy.rb +26 -21
- data/lib/chef/provider/deploy/revision.rb +27 -0
- data/lib/chef/provider/directory.rb +12 -18
- data/lib/chef/provider/execute.rb +22 -5
- data/lib/chef/provider/file.rb +297 -248
- data/lib/chef/provider/file/content.rb +39 -0
- data/lib/chef/provider/git.rb +76 -43
- 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/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 +12 -3
- data/lib/chef/provider/lwrp_base.rb +150 -0
- 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/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +4 -1
- data/lib/chef/provider/package/smartos.rb +47 -36
- data/lib/chef/provider/package/zypper.rb +45 -55
- data/lib/chef/provider/powershell_script.rb +77 -0
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +6 -5
- data/lib/chef/provider/remote_file.rb +13 -100
- 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/ruby_block.rb +5 -2
- data/lib/chef/provider/script.rb +14 -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 +29 -81
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +6 -5
- data/lib/chef/provider/template.rb +16 -81
- data/lib/chef/provider/template/content.rb +61 -0
- 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 +50 -54
- data/lib/chef/provider/windows_script.rb +73 -0
- data/lib/chef/providers.rb +18 -1
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +52 -146
- data/lib/chef/resource/{whyrun_safe_ruby_block.rb → batch.rb} +10 -10
- 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/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/link.rb +17 -0
- data/lib/chef/resource/lwrp_base.rb +132 -0
- data/lib/chef/resource/mount.rb +39 -13
- data/lib/chef/resource/powershell_script.rb +31 -0
- 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 +62 -25
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/template.rb +145 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource/windows_script.rb +62 -0
- data/lib/chef/resource_collection.rb +69 -31
- data/lib/chef/resource_reporter.rb +81 -52
- data/lib/chef/resources.rb +4 -1
- data/lib/chef/rest.rb +55 -127
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +7 -8
- 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 +1 -16
- data/lib/chef/run_lock.rb +96 -0
- data/lib/chef/runner.rb +28 -6
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +8 -5
- data/lib/chef/search/query.rb +2 -2
- 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} +15 -13
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/user.rb +182 -0
- 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_group.rb +1 -5
- 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/{index_queue.rb → version_constraint/platform.rb} +11 -14
- data/lib/chef/win32/api/file.rb +8 -2
- data/lib/chef/win32/api/security.rb +45 -1
- data/lib/chef/win32/registry.rb +382 -0
- data/lib/chef/win32/security.rb +19 -0
- 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/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- 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_subcommand/test_yourself.rb +8 -0
- 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/null_config.rb +1 -0
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/remote_file/nyan_cat.png.gz +0 -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/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/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 +10 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +3 -3
- data/spec/functional/knife/smoke_test.rb +34 -0
- data/spec/functional/knife/ssh_spec.rb +5 -1
- 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 +15 -9
- data/spec/functional/resource/deploy_revision_spec.rb +180 -0
- data/spec/functional/resource/directory_spec.rb +5 -1
- data/spec/functional/resource/file_spec.rb +71 -21
- data/spec/functional/resource/git_spec.rb +259 -0
- data/spec/functional/resource/link_spec.rb +424 -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 +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +143 -37
- data/spec/functional/resource/remote_file_spec.rb +99 -13
- data/spec/functional/resource/template_spec.rb +180 -3
- data/spec/functional/resource/user_spec.rb +547 -0
- data/spec/functional/run_lock_spec.rb +243 -0
- data/spec/functional/shell_spec.rb +102 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/functional/win32/security_spec.rb +37 -0
- 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 +49 -13
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +33 -3
- data/spec/support/lib/chef/resource/cat.rb +3 -5
- data/spec/support/lib/chef/resource/one_two_three_four.rb +8 -10
- data/spec/support/lib/chef/resource/zen_master.rb +8 -10
- data/spec/support/platform_helpers.rb +46 -13
- data/spec/support/platforms/win32/spec_service.rb +59 -0
- data/spec/support/shared/functional/diff_disabled.rb +10 -0
- data/spec/support/shared/functional/directory_resource.rb +129 -38
- data/spec/support/shared/functional/file_resource.rb +837 -71
- data/spec/support/shared/functional/securable_resource.rb +189 -58
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +385 -0
- 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 +70 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- 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/api_client/registration_spec.rb +172 -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 +16 -14
- data/spec/unit/application/knife_spec.rb +17 -0
- data/spec/unit/application/solo_spec.rb +1 -1
- data/spec/unit/application_spec.rb +113 -3
- 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_spec.rb +135 -0
- data/spec/unit/client_spec.rb +195 -23
- data/spec/unit/config_spec.rb +102 -51
- data/spec/unit/cookbook/syntax_check_spec.rb +75 -111
- data/spec/unit/cookbook_loader_spec.rb +154 -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 +24 -19
- data/spec/unit/data_bag_spec.rb +13 -4
- data/spec/unit/deprecation_spec.rb +86 -0
- 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 +197 -157
- data/spec/unit/environment_spec.rb +94 -126
- data/spec/unit/exceptions_spec.rb +8 -4
- 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 +6 -5
- data/spec/unit/json_compat_spec.rb +8 -0
- data/spec/unit/knife/bootstrap_spec.rb +130 -29
- data/spec/unit/knife/configure_spec.rb +64 -45
- data/spec/unit/knife/cookbook_download_spec.rb +24 -3
- 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 +39 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +79 -62
- data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
- data/spec/unit/knife/core/ui_spec.rb +196 -124
- 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/node_run_list_set_spec.rb +140 -0
- data/spec/unit/knife/ssh_spec.rb +12 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife/user_create_spec.rb +86 -0
- data/spec/unit/knife/user_delete_spec.rb +39 -0
- data/spec/unit/knife/user_edit_spec.rb +42 -0
- data/spec/unit/knife/user_list_spec.rb +32 -0
- data/spec/unit/knife/user_reregister_spec.rb +53 -0
- data/spec/unit/knife/user_show_spec.rb +41 -0
- data/spec/unit/knife_spec.rb +74 -0
- data/spec/unit/lwrp_spec.rb +102 -60
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +130 -791
- data/spec/unit/mixin/deprecation_spec.rb +23 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +7 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -2
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +145 -14
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
- data/spec/unit/node/attribute_spec.rb +273 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +418 -370
- data/spec/unit/platform_spec.rb +21 -8
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
- data/spec/unit/provider/cookbook_file_spec.rb +26 -187
- 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 +99 -67
- data/spec/unit/provider/env_spec.rb +2 -2
- 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 -475
- data/spec/unit/provider/git_spec.rb +224 -28
- 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 +9 -22
- 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/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/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/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -2
- data/spec/unit/provider/package/zypper_spec.rb +84 -22
- data/spec/unit/provider/package_spec.rb +7 -9
- data/spec/unit/provider/powershell_spec.rb +38 -0
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +7 -7
- 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 -259
- data/spec/unit/provider/route_spec.rb +29 -12
- 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 +176 -207
- 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/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 +11 -11
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template/content_spec.rb +78 -0
- data/spec/unit/provider/template_spec.rb +52 -160
- data/spec/unit/provider/user/dscl_spec.rb +285 -681
- data/spec/unit/provider/user/solaris_spec.rb +39 -373
- data/spec/unit/provider/user/useradd_spec.rb +12 -379
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +376 -0
- 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 -11
- data/spec/unit/resource/powershell_spec.rb +48 -0
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +63 -25
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/script_spec.rb +13 -36
- data/spec/unit/resource/service_spec.rb +11 -0
- 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 +197 -5
- data/spec/unit/rest/auth_credentials_spec.rb +4 -21
- data/spec/unit/rest_spec.rb +134 -284
- data/spec/unit/run_context/cookbook_compiler_spec.rb +190 -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 +102 -3
- data/spec/unit/scan_access_control_spec.rb +8 -6
- 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} +16 -58
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- data/spec/unit/user_spec.rb +255 -0
- 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 +493 -264
- 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/dir.rb +0 -36
- 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/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/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/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
@@ -0,0 +1,79 @@
|
|
1
|
+
class Chef
|
2
|
+
module ChefFS
|
3
|
+
module RawRequest
|
4
|
+
def self.raw_json(chef_rest, api_path)
|
5
|
+
JSON.parse(raw_request(chef_rest, api_path), :create_additions => false)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.raw_request(chef_rest, api_path)
|
9
|
+
api_request(chef_rest, :GET, chef_rest.create_url(api_path), {}, false)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.api_request(chef_rest, method, url, headers={}, data=false)
|
13
|
+
json_body = data
|
14
|
+
# json_body = data ? Chef::JSONCompat.to_json(data) : nil
|
15
|
+
# Force encoding to binary to fix SSL related EOFErrors
|
16
|
+
# cf. http://tickets.opscode.com/browse/CHEF-2363
|
17
|
+
# http://redmine.ruby-lang.org/issues/5233
|
18
|
+
# json_body.force_encoding(Encoding::BINARY) if json_body.respond_to?(:force_encoding)
|
19
|
+
headers = build_headers(chef_rest, method, url, headers, json_body)
|
20
|
+
|
21
|
+
chef_rest.retriable_rest_request(method, url, json_body, headers) do |rest_request|
|
22
|
+
response = rest_request.call {|r| r.read_body}
|
23
|
+
|
24
|
+
response_body = chef_rest.decompress_body(response)
|
25
|
+
|
26
|
+
if response.kind_of?(Net::HTTPSuccess)
|
27
|
+
response_body
|
28
|
+
elsif redirect_location = redirected_to(response)
|
29
|
+
if [:GET, :HEAD].include?(method)
|
30
|
+
chef_rest.follow_redirect do
|
31
|
+
api_request(chef_rest, method, chef_rest.create_url(redirect_location))
|
32
|
+
end
|
33
|
+
else
|
34
|
+
raise Exceptions::InvalidRedirect, "#{method} request was redirected from #{url} to #{redirect_location}. Only GET and HEAD support redirects."
|
35
|
+
end
|
36
|
+
else
|
37
|
+
# have to decompress the body before making an exception for it. But the body could be nil.
|
38
|
+
response.body.replace(chef_rest.decompress_body(response)) if response.body.respond_to?(:replace)
|
39
|
+
|
40
|
+
if response['content-type'] =~ /json/
|
41
|
+
exception = response_body
|
42
|
+
msg = "HTTP Request Returned #{response.code} #{response.message}: "
|
43
|
+
msg << (exception["error"].respond_to?(:join) ? exception["error"].join(", ") : exception["error"].to_s)
|
44
|
+
Chef::Log.info(msg)
|
45
|
+
end
|
46
|
+
response.error!
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
# Copied so that it does not automatically inflate an object
|
54
|
+
# This is also used by knife raw_essentials
|
55
|
+
|
56
|
+
ACCEPT_ENCODING = "Accept-Encoding".freeze
|
57
|
+
ENCODING_GZIP_DEFLATE = "gzip;q=1.0,deflate;q=0.6,identity;q=0.3".freeze
|
58
|
+
|
59
|
+
def self.redirected_to(response)
|
60
|
+
return nil unless response.kind_of?(Net::HTTPRedirection)
|
61
|
+
# Net::HTTPNotModified is undesired subclass of Net::HTTPRedirection so test for this
|
62
|
+
return nil if response.kind_of?(Net::HTTPNotModified)
|
63
|
+
response['location']
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.build_headers(chef_rest, method, url, headers={}, json_body=false, raw=false)
|
67
|
+
# headers = @default_headers.merge(headers)
|
68
|
+
#headers['Accept'] = "application/json" unless raw
|
69
|
+
headers['Accept'] = "application/json" unless raw
|
70
|
+
headers["Content-Type"] = 'application/json' if json_body
|
71
|
+
headers['Content-Length'] = json_body.bytesize.to_s if json_body
|
72
|
+
headers[Chef::REST::RESTRequest::ACCEPT_ENCODING] = Chef::REST::RESTRequest::ENCODING_GZIP_DEFLATE
|
73
|
+
headers.merge!(chef_rest.authentication_headers(method, url, json_body)) if chef_rest.sign_requests?
|
74
|
+
headers.merge!(Chef::Config[:custom_http_headers]) if Chef::Config[:custom_http_headers]
|
75
|
+
headers
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
data/lib/chef/client.rb
CHANGED
@@ -24,7 +24,8 @@ require 'chef/mixin/path_sanity'
|
|
24
24
|
require 'chef/log'
|
25
25
|
require 'chef/rest'
|
26
26
|
require 'chef/api_client'
|
27
|
-
require 'chef/
|
27
|
+
require 'chef/api_client/registration'
|
28
|
+
require 'chef/platform/query_helpers'
|
28
29
|
require 'chef/node'
|
29
30
|
require 'chef/role'
|
30
31
|
require 'chef/file_cache'
|
@@ -41,6 +42,7 @@ require 'chef/formatters/doc'
|
|
41
42
|
require 'chef/formatters/minimal'
|
42
43
|
require 'chef/version'
|
43
44
|
require 'chef/resource_reporter'
|
45
|
+
require 'chef/run_lock'
|
44
46
|
require 'ohai'
|
45
47
|
require 'rbconfig'
|
46
48
|
|
@@ -101,6 +103,7 @@ class Chef
|
|
101
103
|
self.class.run_start_notifications.each do |notification|
|
102
104
|
notification.call(run_status)
|
103
105
|
end
|
106
|
+
@events.run_started(run_status)
|
104
107
|
end
|
105
108
|
|
106
109
|
# Callback to fire notifications that the run completed successfully
|
@@ -127,8 +130,8 @@ class Chef
|
|
127
130
|
#--
|
128
131
|
# TODO: timh/cw: 5-19-2010: json_attribs should be moved to RunContext?
|
129
132
|
attr_reader :json_attribs
|
130
|
-
|
131
133
|
attr_reader :run_status
|
134
|
+
attr_reader :events
|
132
135
|
|
133
136
|
# Creates a new Chef::Client.
|
134
137
|
def initialize(json_attribs=nil, args={})
|
@@ -138,15 +141,6 @@ class Chef
|
|
138
141
|
@runner = nil
|
139
142
|
@ohai = Ohai::System.new
|
140
143
|
|
141
|
-
# If we want why-run output and user hasn't explicitly specified a format
|
142
|
-
# we need to use a formatter that will render whyrun output.
|
143
|
-
if Chef::Config.why_run
|
144
|
-
if Chef::Config.formatter == "null"
|
145
|
-
Chef::Log.warn("Forcing formatter of 'doc' to capture whyrun output.")
|
146
|
-
Chef::Config[:formatter] = 'doc'
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
144
|
event_handlers = configure_formatters
|
151
145
|
event_handlers += Array(Chef::Config[:event_handlers])
|
152
146
|
|
@@ -156,7 +150,31 @@ class Chef
|
|
156
150
|
end
|
157
151
|
|
158
152
|
def configure_formatters
|
159
|
-
|
153
|
+
formatters_for_run.map do |formatter_name, output_path|
|
154
|
+
if output_path.nil?
|
155
|
+
Chef::Formatters.new(formatter_name, STDOUT, STDERR)
|
156
|
+
else
|
157
|
+
io = File.open(output_path, "a+")
|
158
|
+
io.sync = true
|
159
|
+
Chef::Formatters.new(formatter_name, io, io)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def formatters_for_run
|
165
|
+
if Chef::Config.formatters.empty?
|
166
|
+
[default_formatter]
|
167
|
+
else
|
168
|
+
Chef::Config.formatters
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def default_formatter
|
173
|
+
if (STDOUT.tty? && !Chef::Config[:force_logger]) || Chef::Config[:force_formatter]
|
174
|
+
[:doc]
|
175
|
+
else
|
176
|
+
[:null]
|
177
|
+
end
|
160
178
|
end
|
161
179
|
|
162
180
|
# Do a full run for this Chef::Client. Calls:
|
@@ -167,23 +185,47 @@ class Chef
|
|
167
185
|
# === Returns
|
168
186
|
# boolean:: Return value from #do_run. Should always returns true.
|
169
187
|
def run
|
188
|
+
# win32-process gem exposes some form of :fork for Process
|
189
|
+
# class. So we are seperately ensuring that the platform we're
|
190
|
+
# running on is not windows before forking.
|
170
191
|
if(Chef::Config[:client_fork] && Process.respond_to?(:fork) && !Chef::Platform.windows?)
|
171
192
|
Chef::Log.info "Forking chef instance to converge..."
|
172
193
|
pid = fork do
|
173
|
-
|
174
|
-
|
175
|
-
|
194
|
+
[:INT, :TERM].each {|s| trap(s, "EXIT") }
|
195
|
+
client_solo = Chef::Config[:solo] ? "chef-solo" : "chef-client"
|
196
|
+
$0 = "#{client_solo} worker: ppid=#{Process.ppid};start=#{Time.new.strftime("%R:%S")};"
|
197
|
+
begin
|
198
|
+
Chef::Log.debug "Forked instance now converging"
|
199
|
+
do_run
|
200
|
+
rescue Exception
|
201
|
+
exit 1
|
202
|
+
else
|
203
|
+
exit 0
|
204
|
+
end
|
176
205
|
end
|
177
|
-
Chef::Log.
|
206
|
+
Chef::Log.debug "Fork successful. Waiting for new chef pid: #{pid}"
|
178
207
|
result = Process.waitpid2(pid)
|
179
|
-
|
180
|
-
Chef::Log.
|
208
|
+
handle_child_exit(result)
|
209
|
+
Chef::Log.debug "Forked child successfully reaped (pid: #{pid})"
|
181
210
|
true
|
182
211
|
else
|
183
212
|
do_run
|
184
213
|
end
|
185
214
|
end
|
186
215
|
|
216
|
+
def handle_child_exit(pid_and_status)
|
217
|
+
status = pid_and_status[1]
|
218
|
+
return true if status.success?
|
219
|
+
message = if status.signaled?
|
220
|
+
"Chef run process terminated by signal #{status.termsig} (#{Signal.list.invert[status.termsig]})"
|
221
|
+
else
|
222
|
+
"Chef run process exited unsuccessfully (exit code #{status.exitstatus})"
|
223
|
+
end
|
224
|
+
raise Exceptions::ChildConvergeError, message
|
225
|
+
end
|
226
|
+
|
227
|
+
|
228
|
+
|
187
229
|
# Configures the Chef::Cookbook::FileVendor class to fetch file from the
|
188
230
|
# server or disk as appropriate, creates the run context for this run, and
|
189
231
|
# sanity checks the cookbook collection.
|
@@ -192,7 +234,9 @@ class Chef
|
|
192
234
|
def setup_run_context
|
193
235
|
if Chef::Config[:solo]
|
194
236
|
Chef::Cookbook::FileVendor.on_create { |manifest| Chef::Cookbook::FileSystemFileVendor.new(manifest, Chef::Config[:cookbook_path]) }
|
195
|
-
|
237
|
+
cl = Chef::CookbookLoader.new(Chef::Config[:cookbook_path])
|
238
|
+
cl.load_cookbooks
|
239
|
+
cookbook_collection = Chef::CookbookCollection.new(cl)
|
196
240
|
run_context = Chef::RunContext.new(node, cookbook_collection, @events)
|
197
241
|
else
|
198
242
|
Chef::Cookbook::FileVendor.on_create { |manifest| Chef::Cookbook::RemoteFileVendor.new(manifest, rest) }
|
@@ -212,7 +256,7 @@ class Chef
|
|
212
256
|
Chef::Log.debug("Saving the current state of node #{node_name}")
|
213
257
|
if(@original_runlist)
|
214
258
|
@node.run_list(*@original_runlist)
|
215
|
-
@node.
|
259
|
+
@node.automatic_attrs[:runlist_override_history] = {Time.now.to_i => @override_runlist.inspect}
|
216
260
|
end
|
217
261
|
@node.save
|
218
262
|
end
|
@@ -248,7 +292,7 @@ class Chef
|
|
248
292
|
def build_node
|
249
293
|
# Allow user to override the environment of a node by specifying
|
250
294
|
# a config parameter.
|
251
|
-
if Chef::Config[:environment] && !Chef::Config[:environment].
|
295
|
+
if Chef::Config[:environment] && !Chef::Config[:environment].chop.empty?
|
252
296
|
@node.chef_environment(Chef::Config[:environment])
|
253
297
|
end
|
254
298
|
|
@@ -329,7 +373,7 @@ class Chef
|
|
329
373
|
else
|
330
374
|
@events.registration_start(node_name, config)
|
331
375
|
Chef::Log.info("Client key #{config[:client_key]} is not present - registering")
|
332
|
-
Chef::
|
376
|
+
Chef::ApiClient::Registration.new(node_name, config[:client_key]).run
|
333
377
|
@events.registration_completed
|
334
378
|
end
|
335
379
|
# We now have the client key, and should use it from now on.
|
@@ -385,12 +429,31 @@ class Chef
|
|
385
429
|
runner.converge
|
386
430
|
@events.converge_complete
|
387
431
|
true
|
388
|
-
rescue Exception
|
432
|
+
rescue Exception
|
389
433
|
# TODO: should this be a separate #converge_failed(exception) method?
|
390
434
|
@events.converge_complete
|
391
435
|
raise
|
392
436
|
end
|
393
437
|
|
438
|
+
def do_windows_admin_check
|
439
|
+
if Chef::Platform.windows?
|
440
|
+
Chef::Log.debug("Checking for administrator privileges....")
|
441
|
+
|
442
|
+
if !has_admin_privileges?
|
443
|
+
message = "chef-client doesn't have administrator privileges on node #{node_name}."
|
444
|
+
if Chef::Config[:fatal_windows_admin_check]
|
445
|
+
Chef::Log.fatal(message)
|
446
|
+
Chef::Log.fatal("fatal_windows_admin_check is set to TRUE.")
|
447
|
+
raise Chef::Exceptions::WindowsNotAdmin, message
|
448
|
+
else
|
449
|
+
Chef::Log.warn("#{message} This might cause unexpected resource failures.")
|
450
|
+
end
|
451
|
+
else
|
452
|
+
Chef::Log.debug("chef-client has administrator privileges on node #{node_name}.")
|
453
|
+
end
|
454
|
+
end
|
455
|
+
end
|
456
|
+
|
394
457
|
private
|
395
458
|
|
396
459
|
# Do a full run for this Chef::Client. Calls:
|
@@ -404,24 +467,28 @@ class Chef
|
|
404
467
|
# === Returns
|
405
468
|
# true:: Always returns true.
|
406
469
|
def do_run
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
470
|
+
runlock = RunLock.new(Chef::Config)
|
471
|
+
runlock.acquire
|
472
|
+
# don't add code that may fail before entering this section to be sure to release lock
|
473
|
+
begin
|
474
|
+
run_context = nil
|
475
|
+
@events.run_start(Chef::VERSION)
|
476
|
+
Chef::Log.info("*** Chef #{Chef::VERSION} ***")
|
477
|
+
enforce_path_sanity
|
478
|
+
run_ohai
|
479
|
+
@events.ohai_completed(node)
|
480
|
+
register unless Chef::Config[:solo]
|
415
481
|
|
416
|
-
|
482
|
+
load_node
|
417
483
|
|
418
|
-
begin
|
419
484
|
build_node
|
420
485
|
|
421
486
|
run_status.start_clock
|
422
487
|
Chef::Log.info("Starting Chef Run for #{node.name}")
|
423
488
|
run_started
|
424
489
|
|
490
|
+
do_windows_admin_check
|
491
|
+
|
425
492
|
run_context = setup_run_context
|
426
493
|
|
427
494
|
converge(run_context)
|
@@ -442,11 +509,13 @@ class Chef
|
|
442
509
|
run_status.exception = e
|
443
510
|
run_failed
|
444
511
|
end
|
512
|
+
Chef::Application.debug_stacktrace(e)
|
445
513
|
@events.run_failed(e)
|
446
514
|
raise
|
447
515
|
ensure
|
448
|
-
run_status = nil
|
516
|
+
@run_status = nil
|
449
517
|
run_context = nil
|
518
|
+
runlock.release
|
450
519
|
GC.start
|
451
520
|
end
|
452
521
|
true
|
@@ -496,6 +565,13 @@ class Chef
|
|
496
565
|
end
|
497
566
|
|
498
567
|
end
|
568
|
+
|
569
|
+
def has_admin_privileges?
|
570
|
+
require 'chef/win32/security'
|
571
|
+
|
572
|
+
Chef::ReservedNames::Win32::Security.has_admin_privileges?
|
573
|
+
end
|
574
|
+
|
499
575
|
end
|
500
576
|
end
|
501
577
|
|
@@ -503,3 +579,4 @@ end
|
|
503
579
|
require 'chef/cookbook_loader'
|
504
580
|
require 'chef/cookbook_version'
|
505
581
|
require 'chef/cookbook/synchronizer'
|
582
|
+
|
data/lib/chef/config.rb
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
# Author:: Adam Jacob (<adam@opscode.com>)
|
3
3
|
# Author:: Christopher Brown (<cb@opscode.com>)
|
4
4
|
# Author:: AJ Christensen (<aj@opscode.com>)
|
5
|
-
# Author:: Mark Mzyk (mmzyk@opscode.com)
|
5
|
+
# Author:: Mark Mzyk (<mmzyk@opscode.com>)
|
6
|
+
# Author:: Kyle Goodwin (<kgoodwin@primerevenue.com>)
|
6
7
|
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
7
8
|
# License:: Apache License, Version 2.0
|
8
9
|
#
|
@@ -19,7 +20,9 @@
|
|
19
20
|
# limitations under the License.
|
20
21
|
|
21
22
|
require 'chef/log'
|
23
|
+
require 'chef/exceptions'
|
22
24
|
require 'mixlib/config'
|
25
|
+
require 'chef/util/selinux'
|
23
26
|
|
24
27
|
class Chef
|
25
28
|
class Config
|
@@ -48,9 +51,6 @@ class Chef
|
|
48
51
|
end
|
49
52
|
|
50
53
|
def self.platform_specific_path(path)
|
51
|
-
#10.times { puts "* " * 40}
|
52
|
-
#pp caller
|
53
|
-
|
54
54
|
if RUBY_PLATFORM =~ /mswin|mingw|windows/
|
55
55
|
# turns /etc/chef/client.rb into C:/chef/client.rb
|
56
56
|
system_drive = ENV['SYSTEMDRIVE'] ? ENV['SYSTEMDRIVE'] : ""
|
@@ -61,6 +61,14 @@ class Chef
|
|
61
61
|
path
|
62
62
|
end
|
63
63
|
|
64
|
+
def self.add_formatter(name, file_path=nil)
|
65
|
+
formatters << [name, file_path]
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.formatters
|
69
|
+
@formatters ||= []
|
70
|
+
end
|
71
|
+
|
64
72
|
# Override the config dispatch to set the value of multiple server options simultaneously
|
65
73
|
#
|
66
74
|
# === Parameters
|
@@ -69,14 +77,7 @@ class Chef
|
|
69
77
|
config_attr_writer :chef_server_url do |url|
|
70
78
|
url = url.strip
|
71
79
|
configure do |c|
|
72
|
-
[
|
73
|
-
:template_url,
|
74
|
-
:remotefile_url,
|
75
|
-
:search_url,
|
76
|
-
:chef_server_url,
|
77
|
-
:role_url ].each do |u|
|
78
|
-
c[u] = url
|
79
|
-
end
|
80
|
+
c[:chef_server_url] = url
|
80
81
|
end
|
81
82
|
url
|
82
83
|
end
|
@@ -104,35 +105,19 @@ class Chef
|
|
104
105
|
begin
|
105
106
|
f = File.new(location.to_str, "a")
|
106
107
|
f.sync = true
|
107
|
-
rescue Errno::ENOENT
|
108
|
-
raise Chef::Exceptions::ConfigurationError
|
108
|
+
rescue Errno::ENOENT
|
109
|
+
raise Chef::Exceptions::ConfigurationError, "Failed to open or create log file at #{location.to_str}"
|
109
110
|
end
|
110
111
|
f
|
111
112
|
end
|
112
113
|
end
|
113
114
|
|
114
|
-
# Override the config dispatch to set the value of authorized_openid_providers when openid_providers (deprecated) is used
|
115
|
-
#
|
116
|
-
# === Parameters
|
117
|
-
# providers<Array>:: An array of openid providers that are authorized to login to the chef server
|
118
|
-
#
|
119
|
-
config_attr_writer :openid_providers do |providers|
|
120
|
-
configure { |c| c[:authorized_openid_providers] = providers }
|
121
|
-
providers
|
122
|
-
end
|
123
|
-
|
124
115
|
# Turn on "path sanity" by default. See also: http://wiki.opscode.com/display/chef/User+Environment+PATH+Sanity
|
125
116
|
enforce_path_sanity(true)
|
126
117
|
|
127
118
|
# Formatted Chef Client output is a beta feature, disabled by default:
|
128
119
|
formatter "null"
|
129
120
|
|
130
|
-
# Used when OpenID authentication is enabled in the Web UI
|
131
|
-
authorized_openid_identifiers nil
|
132
|
-
authorized_openid_providers nil
|
133
|
-
openid_cstore_couchdb false
|
134
|
-
openid_cstore_path "/var/chef/openid/cstore"
|
135
|
-
|
136
121
|
# The number of times the client should retry when registering with the server
|
137
122
|
client_registration_retries 5
|
138
123
|
|
@@ -144,64 +129,72 @@ class Chef
|
|
144
129
|
# An array of paths to search for knife exec scripts if they aren't in the current directory
|
145
130
|
script_path []
|
146
131
|
|
147
|
-
# Where files are stored temporarily during uploads
|
148
|
-
sandbox_path "/var/chef/sandboxes"
|
149
|
-
|
150
132
|
# Where cookbook files are stored on the server (by content checksum)
|
151
133
|
checksum_path "/var/chef/checksums"
|
152
134
|
|
153
|
-
# CouchDB database name to use
|
154
|
-
couchdb_database "chef"
|
155
|
-
|
156
|
-
couchdb_url "http://localhost:5984"
|
157
|
-
|
158
135
|
# Where chef's cache files should be stored
|
159
136
|
file_cache_path platform_specific_path("/var/chef/cache")
|
160
137
|
|
138
|
+
# By default, chef-client (or solo) creates a lockfile in
|
139
|
+
# `file_cache_path`/chef-client-running.pid
|
140
|
+
# If `lockfile` is explicitly set, this path will be used instead.
|
141
|
+
#
|
142
|
+
# If your `file_cache_path` resides on a NFS (or non-flock()-supporting
|
143
|
+
# fs), it's recommended to set this to something like
|
144
|
+
# '/tmp/chef-client-running.pid'
|
145
|
+
lockfile nil
|
146
|
+
|
161
147
|
# Where backups of chef-managed files should go
|
162
148
|
file_backup_path platform_specific_path("/var/chef/backup")
|
163
149
|
|
164
150
|
## Daemonization Settings ##
|
165
151
|
# What user should Chef run as?
|
166
152
|
user nil
|
167
|
-
# What group should the chef-server, -solr, -solr-indexer run as
|
168
153
|
group nil
|
169
154
|
umask 0022
|
170
155
|
|
156
|
+
# Valid log_levels are:
|
157
|
+
# * :debug
|
158
|
+
# * :info
|
159
|
+
# * :warn
|
160
|
+
# * :fatal
|
161
|
+
# These work as you'd expect. There is also a special `:auto` setting.
|
162
|
+
# When set to :auto, Chef will auto adjust the log verbosity based on
|
163
|
+
# context. When a tty is available (usually becase the user is running chef
|
164
|
+
# in a console), the log level is set to :warn, and output formatters are
|
165
|
+
# used as the primary mode of output. When a tty is not available, the
|
166
|
+
# logger is the primary mode of output, and the log level is set to :info
|
167
|
+
log_level :auto
|
168
|
+
|
169
|
+
# Using `force_formatter` causes chef to default to formatter output when STDOUT is not a tty
|
170
|
+
force_formatter false
|
171
|
+
|
172
|
+
# Using `force_logger` causes chef to default to logger output when STDOUT is a tty
|
173
|
+
force_logger false
|
174
|
+
|
171
175
|
http_retry_count 5
|
172
176
|
http_retry_delay 5
|
173
177
|
interval nil
|
174
178
|
json_attribs nil
|
175
|
-
log_level :info
|
176
179
|
log_location STDOUT
|
177
180
|
# toggle info level log items that can create a lot of output
|
178
181
|
verbose_logging true
|
179
182
|
node_name nil
|
180
|
-
|
181
|
-
diff_disable false
|
183
|
+
diff_disabled false
|
182
184
|
diff_filesize_threshold 10000000
|
183
185
|
diff_output_threshold 1000000
|
184
186
|
|
185
187
|
pid_file nil
|
186
188
|
|
187
|
-
chef_server_url "
|
188
|
-
registration_url "http://localhost:4000"
|
189
|
-
template_url "http://localhost:4000"
|
190
|
-
role_url "http://localhost:4000"
|
191
|
-
remotefile_url "http://localhost:4000"
|
192
|
-
search_url "http://localhost:4000"
|
193
|
-
|
194
|
-
client_url "http://localhost:4042"
|
189
|
+
chef_server_url "https://localhost:443"
|
195
190
|
|
196
191
|
rest_timeout 300
|
197
|
-
yum_timeout
|
198
|
-
run_command_stderr_timeout 120
|
199
|
-
run_command_stdout_timeout 120
|
192
|
+
yum_timeout 900
|
200
193
|
solo false
|
201
194
|
splay nil
|
202
195
|
why_run false
|
203
196
|
color false
|
204
|
-
client_fork
|
197
|
+
client_fork true
|
205
198
|
enable_reporting true
|
206
199
|
enable_reporting_url_fatals false
|
207
200
|
|
@@ -213,32 +206,16 @@ class Chef
|
|
213
206
|
ssl_ca_path nil
|
214
207
|
ssl_ca_file nil
|
215
208
|
|
216
|
-
|
217
209
|
# Where should chef-solo look for role files?
|
218
210
|
role_path platform_specific_path("/var/chef/roles")
|
219
211
|
|
220
212
|
data_bag_path platform_specific_path("/var/chef/data_bags")
|
221
213
|
|
214
|
+
environment_path platform_specific_path("/var/chef/environments")
|
215
|
+
|
222
216
|
# Where should chef-solo download recipes from?
|
223
217
|
recipe_url nil
|
224
218
|
|
225
|
-
solr_url "http://localhost:8983/solr"
|
226
|
-
solr_jetty_path "/var/chef/solr-jetty"
|
227
|
-
solr_data_path "/var/chef/solr/data"
|
228
|
-
solr_home_path "/var/chef/solr"
|
229
|
-
solr_heap_size "256M"
|
230
|
-
solr_java_opts nil
|
231
|
-
|
232
|
-
# Parameters for connecting to RabbitMQ
|
233
|
-
amqp_host '0.0.0.0'
|
234
|
-
amqp_port '5672'
|
235
|
-
amqp_user 'chef'
|
236
|
-
amqp_pass 'testing'
|
237
|
-
amqp_vhost '/chef'
|
238
|
-
# Setting this to a UUID string also makes the queue durable
|
239
|
-
# (persist across rabbitmq restarts)
|
240
|
-
amqp_consumer_id "default"
|
241
|
-
|
242
219
|
# Sets the version of the signed header authentication protocol to use (see
|
243
220
|
# the 'mixlib-authorization' project for more detail). Currently, versions
|
244
221
|
# 1.0 and 1.1 are available; however, the chef-server must first be
|
@@ -263,6 +240,32 @@ class Chef
|
|
263
240
|
# `node_name` of the client.
|
264
241
|
client_key platform_specific_path("/etc/chef/client.pem")
|
265
242
|
|
243
|
+
# This secret is used to decrypt encrypted data bag items.
|
244
|
+
encrypted_data_bag_secret platform_specific_path("/etc/chef/encrypted_data_bag_secret")
|
245
|
+
|
246
|
+
# We have to check for the existence of the default file before setting it
|
247
|
+
# since +Chef::Config[:encrypted_data_bag_secret]+ is read by older
|
248
|
+
# bootstrap templates to determine if the local secret should be uploaded to
|
249
|
+
# node being bootstrapped. This should be removed in Chef 12.
|
250
|
+
unless File.exist?(platform_specific_path("/etc/chef/encrypted_data_bag_secret"))
|
251
|
+
encrypted_data_bag_secret(nil)
|
252
|
+
end
|
253
|
+
|
254
|
+
# As of Chef 11.0, version "1" is the default encrypted data bag item
|
255
|
+
# format. Version "2" is available which adds encrypt-then-mac protection.
|
256
|
+
# To maintain compatibility, versions other than 1 must be opt-in.
|
257
|
+
#
|
258
|
+
# Set this to `2` if you have chef-client 11.6.0+ in your infrastructure:
|
259
|
+
data_bag_encrypt_version 1
|
260
|
+
|
261
|
+
# When reading data bag items, any supported version is accepted. However,
|
262
|
+
# if all encrypted data bags have been generated with the version 2 format,
|
263
|
+
# it is recommended to disable support for earlier formats to improve
|
264
|
+
# security. For example, the version 2 format is identical to version 1
|
265
|
+
# except for the addition of an HMAC, so an attacker with MITM capability
|
266
|
+
# could downgrade an encrypted data bag to version 1 as part of an attack.
|
267
|
+
data_bag_decrypt_minimum_version 0
|
268
|
+
|
266
269
|
# If there is no file in the location given by `client_key`, chef-client
|
267
270
|
# will temporarily use the "validator" identity to generate one. If the
|
268
271
|
# `client_key` is not present and the `validation_key` is also not present,
|
@@ -271,41 +274,35 @@ class Chef
|
|
271
274
|
# The `validation_key` is never used if the `client_key` exists.
|
272
275
|
validation_key platform_specific_path("/etc/chef/validation.pem")
|
273
276
|
validation_client_name "chef-validator"
|
274
|
-
web_ui_client_name "chef-webui"
|
275
|
-
web_ui_key "/etc/chef/webui.pem"
|
276
|
-
web_ui_admin_user_name "admin"
|
277
|
-
web_ui_admin_default_password "p@ssw0rd1"
|
278
277
|
|
279
|
-
#
|
280
|
-
#
|
281
|
-
#
|
282
|
-
|
283
|
-
|
284
|
-
signing_ca_user nil
|
285
|
-
signing_ca_group nil
|
286
|
-
signing_ca_country "US"
|
287
|
-
signing_ca_state "Washington"
|
288
|
-
signing_ca_location "Seattle"
|
289
|
-
signing_ca_org "Chef User"
|
290
|
-
signing_ca_domain "opensource.opscode.com"
|
291
|
-
signing_ca_email "opensource-cert@opscode.com"
|
278
|
+
# Zypper package provider gpg checks. Set to true to enable package
|
279
|
+
# gpg signature checking. This will be default in the
|
280
|
+
# future. Setting to false disables the warnings.
|
281
|
+
# Leaving this set to nil or false is a security hazard!
|
282
|
+
zypper_check_gpg nil
|
292
283
|
|
293
284
|
# Report Handlers
|
294
285
|
report_handlers []
|
295
286
|
|
296
|
-
# Event Handlers
|
297
|
-
event_handlers []
|
298
|
-
|
299
287
|
# Exception Handlers
|
300
288
|
exception_handlers []
|
301
289
|
|
302
290
|
# Start handlers
|
303
291
|
start_handlers []
|
304
292
|
|
305
|
-
#
|
306
|
-
#
|
307
|
-
|
308
|
-
|
293
|
+
# Syntax Check Cache. Knife keeps track of files that is has already syntax
|
294
|
+
# checked by storing files in this directory. `syntax_check_cache_path` is
|
295
|
+
# the new (and preferred) configuration setting. If not set, knife will
|
296
|
+
# fall back to using cache_options[:path].
|
297
|
+
#
|
298
|
+
# Because many users will have knife configs with cache_options (generated
|
299
|
+
# by `knife configure`), the default for now is to *not* set
|
300
|
+
# syntax_check_cache_path, and thus fallback to cache_options[:path]. We
|
301
|
+
# leave that value to the same default as was previously set.
|
302
|
+
syntax_check_cache_path nil
|
303
|
+
|
304
|
+
# Deprecated:
|
305
|
+
cache_options({ :path => platform_specific_path("/var/chef/cache/checksums") })
|
309
306
|
|
310
307
|
# Set to false to silence Chef 11 deprecation warnings:
|
311
308
|
chef11_deprecation_warnings true
|
@@ -321,17 +318,29 @@ class Chef
|
|
321
318
|
principal_valid_regex_part = '[^"\/\\\\\[\]\:;|=,+*?<>]+'
|
322
319
|
user_valid_regex [ /^(#{principal_valid_regex_part}\\)?#{principal_valid_regex_part}$/ ]
|
323
320
|
group_valid_regex [ /^(#{principal_valid_regex_part}\\)?#{principal_valid_regex_part}$/ ]
|
321
|
+
|
322
|
+
fatal_windows_admin_check false
|
324
323
|
else
|
325
|
-
user_valid_regex [ /^([-a-zA-Z0-9_.]+)$/, /^\d+$/ ]
|
326
|
-
group_valid_regex [ /^([-a-zA-Z0-9_
|
324
|
+
user_valid_regex [ /^([-a-zA-Z0-9_.]+[\\@]?[-a-zA-Z0-9_.]+)$/, /^\d+$/ ]
|
325
|
+
group_valid_regex [ /^([-a-zA-Z0-9_.\\@^ ]+)$/, /^\d+$/ ]
|
327
326
|
end
|
328
327
|
|
329
328
|
# returns a platform specific path to the user home dir
|
330
329
|
windows_home_path = ENV['SYSTEMDRIVE'] + ENV['HOMEPATH'] if ENV['SYSTEMDRIVE'] && ENV['HOMEPATH']
|
331
|
-
user_home
|
330
|
+
user_home(ENV['HOME'] || windows_home_path || ENV['USERPROFILE'])
|
331
|
+
|
332
|
+
# Enable file permission fixup for selinux. Fixup will be done
|
333
|
+
# only if selinux is enabled in the system.
|
334
|
+
enable_selinux_file_permission_fixup true
|
335
|
+
|
336
|
+
# Use atomic updates (i.e. move operation) while updating contents
|
337
|
+
# of the files resources. When set to false copy operation is
|
338
|
+
# used to update files.
|
339
|
+
file_atomic_update true
|
332
340
|
|
333
|
-
#
|
334
|
-
#
|
335
|
-
|
341
|
+
# If false file staging is will be done via tempfiles that are
|
342
|
+
# created under ENV['TMP'] otherwise tempfiles will be created in
|
343
|
+
# the directory that files are going to reside.
|
344
|
+
file_staging_uses_destdir false
|
336
345
|
end
|
337
346
|
end
|