chef 12.18.31 → 13.0.118
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 +4 -4
- data/Gemfile +15 -11
- data/README.md +13 -13
- data/Rakefile +1 -19
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
- data/acceptance/Gemfile +8 -5
- data/acceptance/Gemfile.lock +90 -81
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +8 -7
- data/lib/chef/api_client.rb +8 -15
- data/lib/chef/api_client_v1.rb +9 -11
- data/lib/chef/application/apply.rb +8 -10
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +11 -82
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +0 -1
- data/lib/chef/application/windows_service.rb +36 -37
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/application.rb +15 -25
- data/lib/chef/audit/audit_event_proxy.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +1 -1
- data/lib/chef/blacklist.rb +81 -0
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
- data/lib/chef/chef_fs/command_line.rb +15 -16
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_pattern.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/parallelizer.rb +9 -11
- data/lib/chef/client.rb +47 -11
- data/lib/chef/config_fetcher.rb +4 -4
- data/lib/chef/constants.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +10 -6
- data/lib/chef/cookbook/manifest_v0.rb +68 -0
- data/lib/chef/cookbook/manifest_v2.rb +41 -0
- data/lib/chef/cookbook/metadata.rb +25 -134
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +24 -21
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +91 -65
- data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +69 -157
- data/lib/chef/data_bag.rb +1 -7
- data/lib/chef/data_bag_item.rb +5 -10
- data/lib/chef/data_collector/messages.rb +2 -0
- data/lib/chef/data_collector/resource_report.rb +32 -4
- data/lib/chef/data_collector.rb +3 -4
- data/lib/chef/decorator/unchain.rb +0 -16
- data/lib/chef/decorator.rb +1 -1
- data/lib/chef/deprecated.rb +53 -19
- data/lib/chef/dsl/audit.rb +2 -2
- data/lib/chef/dsl/declare_resource.rb +11 -17
- data/lib/chef/dsl/platform_introspection.rb +29 -31
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -4
- data/lib/chef/dsl/resources.rb +4 -13
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/environment.rb +9 -16
- data/lib/chef/event_dispatch/base.rb +16 -0
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/exceptions.rb +6 -10
- data/lib/chef/file_access_control/unix.rb +14 -14
- data/lib/chef/file_access_control/windows.rb +1 -1
- data/lib/chef/formatters/error_description.rb +18 -1
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
- data/lib/chef/formatters/error_mapper.rb +6 -6
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
- data/lib/chef/http/api_versions.rb +54 -0
- data/lib/chef/http/authenticator.rb +15 -6
- data/lib/chef/http/json_output.rb +4 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/http.rb +39 -0
- data/lib/chef/json_compat.rb +7 -103
- data/lib/chef/key.rb +5 -10
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
- data/lib/chef/knife/bootstrap.rb +6 -0
- data/lib/chef/knife/configure.rb +1 -3
- data/lib/chef/knife/configure_client.rb +1 -3
- data/lib/chef/knife/cookbook_create.rb +1 -434
- data/lib/chef/knife/cookbook_download.rb +3 -4
- data/lib/chef/knife/cookbook_show.rb +7 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +8 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +2 -32
- data/lib/chef/knife/core/ui.rb +20 -27
- data/lib/chef/knife/data_bag_create.rb +6 -4
- data/lib/chef/knife/data_bag_secret_options.rb +1 -1
- data/lib/chef/knife/deps.rb +32 -34
- data/lib/chef/knife/edit.rb +1 -1
- data/lib/chef/knife/help.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/search.rb +9 -20
- data/lib/chef/knife/ssh.rb +62 -36
- data/lib/chef/knife/ssl_check.rb +1 -1
- data/lib/chef/knife/user_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +1 -1
- data/lib/chef/knife.rb +6 -7
- data/lib/chef/mash.rb +1 -1
- data/lib/chef/mixin/create_path.rb +3 -5
- data/lib/chef/mixin/from_file.rb +2 -2
- data/lib/chef/mixin/get_source_from_package.rb +2 -2
- data/lib/chef/mixin/notifying_block.rb +7 -9
- data/lib/chef/mixin/params_validate.rb +9 -8
- data/lib/chef/mixin/path_sanity.rb +17 -19
- data/lib/chef/mixin/securable.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +33 -29
- data/lib/chef/mixin/unformatter.rb +2 -2
- data/lib/chef/mixin/uris.rb +4 -6
- data/lib/chef/mixin/versioned_api.rb +84 -0
- data/lib/chef/mixin/which.rb +25 -8
- data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
- data/lib/chef/mixin/xml_escape.rb +3 -5
- data/lib/chef/mixins.rb +0 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
- data/lib/chef/node/attribute.rb +9 -32
- data/lib/chef/node/attribute_collections.rb +1 -19
- data/lib/chef/node/common_api.rb +5 -7
- data/lib/chef/node/immutable_collections.rb +42 -38
- data/lib/chef/node/mixin/immutablize_array.rb +1 -1
- data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
- data/lib/chef/node.rb +21 -20
- data/lib/chef/node_map.rb +2 -5
- data/lib/chef/org.rb +10 -17
- data/lib/chef/platform/provider_mapping.rb +2 -169
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/platform/rebooter.rb +1 -2
- data/lib/chef/policy_builder/expand_node_object.rb +3 -29
- data/lib/chef/policy_builder/policyfile.rb +8 -6
- data/lib/chef/property.rb +66 -80
- data/lib/chef/provider/apt_repository.rb +6 -10
- data/lib/chef/provider/apt_update.rb +1 -7
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/breakpoint.rb +2 -2
- data/lib/chef/provider/cookbook_file.rb +3 -9
- data/lib/chef/provider/cron.rb +42 -60
- data/lib/chef/provider/deploy/revision.rb +3 -5
- data/lib/chef/provider/deploy.rb +82 -88
- data/lib/chef/provider/directory.rb +33 -37
- data/lib/chef/provider/dsc_resource.rb +23 -11
- data/lib/chef/provider/dsc_script.rb +1 -5
- data/lib/chef/provider/env/windows.rb +5 -1
- data/lib/chef/provider/env.rb +32 -30
- data/lib/chef/provider/erl_call.rb +15 -47
- data/lib/chef/provider/execute.rb +7 -8
- data/lib/chef/provider/file.rb +49 -61
- data/lib/chef/provider/git.rb +56 -60
- data/lib/chef/provider/group.rb +1 -7
- data/lib/chef/provider/http_request.rb +37 -41
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +0 -6
- data/lib/chef/provider/launchd.rb +6 -2
- data/lib/chef/provider/link.rb +51 -55
- data/lib/chef/provider/log.rb +3 -7
- data/lib/chef/provider/lwrp_base.rb +0 -9
- data/lib/chef/provider/mdadm.rb +25 -33
- data/lib/chef/provider/mount/aix.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/mount.rb +1 -5
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/ohai.rb +1 -7
- data/lib/chef/provider/osx_profile.rb +24 -29
- data/lib/chef/provider/package/aix.rb +55 -53
- data/lib/chef/provider/package/apt.rb +15 -13
- data/lib/chef/provider/package/cab.rb +48 -20
- data/lib/chef/provider/package/chocolatey.rb +9 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
- data/lib/chef/provider/package/dnf/version.rb +1 -1
- data/lib/chef/provider/package/dnf.rb +21 -19
- data/lib/chef/provider/package/dpkg.rb +8 -9
- data/lib/chef/provider/package/freebsd/base.rb +10 -10
- data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
- data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
- data/lib/chef/provider/package/freebsd/port.rb +7 -7
- data/lib/chef/provider/package/homebrew.rb +11 -10
- data/lib/chef/provider/package/ips.rb +18 -24
- data/lib/chef/provider/package/macports.rb +23 -23
- data/lib/chef/provider/package/msu.rb +11 -12
- data/lib/chef/provider/package/openbsd.rb +25 -22
- data/lib/chef/provider/package/pacman.rb +16 -17
- data/lib/chef/provider/package/paludis.rb +26 -27
- data/lib/chef/provider/package/portage.rb +22 -23
- data/lib/chef/provider/package/powershell.rb +17 -17
- data/lib/chef/provider/package/rpm.rb +25 -26
- data/lib/chef/provider/package/rubygems.rb +64 -62
- data/lib/chef/provider/package/smartos.rb +16 -16
- data/lib/chef/provider/package/solaris.rb +44 -45
- data/lib/chef/provider/package/windows/exe.rb +6 -6
- data/lib/chef/provider/package/windows/msi.rb +7 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
- data/lib/chef/provider/package/windows.rb +3 -3
- data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
- data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
- data/lib/chef/provider/package/yum.rb +319 -269
- data/lib/chef/provider/package/zypper.rb +10 -20
- data/lib/chef/provider/package.rb +71 -63
- data/lib/chef/provider/powershell_script.rb +15 -7
- data/lib/chef/provider/reboot.rb +10 -14
- data/lib/chef/provider/registry_key.rb +39 -43
- data/lib/chef/provider/remote_directory.rb +3 -15
- data/lib/chef/provider/remote_file.rb +3 -9
- data/lib/chef/provider/route.rb +1 -7
- data/lib/chef/provider/ruby_block.rb +4 -8
- data/lib/chef/provider/script.rb +42 -6
- data/lib/chef/provider/service/aix.rb +1 -5
- data/lib/chef/provider/service/debian.rb +15 -21
- data/lib/chef/provider/service/freebsd.rb +0 -1
- data/lib/chef/provider/service/gentoo.rb +0 -1
- data/lib/chef/provider/service/init.rb +0 -1
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +0 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +0 -5
- data/lib/chef/provider/service/solaris.rb +5 -4
- data/lib/chef/provider/service/systemd.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +10 -12
- data/lib/chef/provider/service/windows.rb +1 -5
- data/lib/chef/provider/service.rb +51 -58
- data/lib/chef/provider/subversion.rb +40 -46
- data/lib/chef/provider/systemd_unit.rb +2 -0
- data/lib/chef/provider/template/content.rb +24 -1
- data/lib/chef/provider/template.rb +3 -9
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/linux.rb +6 -5
- data/lib/chef/provider/user/pw.rb +4 -10
- data/lib/chef/provider/user/solaris.rb +2 -2
- data/lib/chef/provider/user/useradd.rb +5 -5
- data/lib/chef/provider/user.rb +43 -59
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
- data/lib/chef/provider/windows_task.rb +418 -0
- data/lib/chef/provider/yum_repository.rb +3 -6
- data/lib/chef/provider.rb +63 -115
- data/lib/chef/provider_resolver.rb +8 -34
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +9 -1
- data/lib/chef/resource/action_class.rb +13 -17
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/apt_update.rb +3 -1
- data/lib/chef/resource/chef_gem.rb +4 -11
- data/lib/chef/resource/chocolatey_package.rb +4 -1
- data/lib/chef/resource/dnf_package.rb +6 -3
- data/lib/chef/resource/dsc_resource.rb +9 -1
- data/lib/chef/resource/execute.rb +66 -19
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
- data/lib/chef/resource/file/verification.rb +2 -7
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +16 -2
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +0 -2
- data/lib/chef/resource/mount.rb +5 -12
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/script.rb +8 -34
- data/lib/chef/resource/service.rb +15 -13
- data/lib/chef/resource/systemd_unit.rb +5 -0
- data/lib/chef/resource/user/aix_user.rb +1 -1
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +1 -10
- data/lib/chef/resource/user/pw_user.rb +1 -1
- data/lib/chef/resource/user/solaris_user.rb +1 -1
- data/lib/chef/resource/user/windows_user.rb +1 -1
- data/lib/chef/resource/user.rb +1 -19
- data/lib/chef/resource/windows_package.rb +4 -1
- data/lib/chef/resource/windows_task.rb +237 -0
- data/lib/chef/resource/yum_package.rb +13 -4
- data/lib/chef/resource/yum_repository.rb +0 -1
- data/lib/chef/resource/zypper_package.rb +2 -0
- data/lib/chef/resource.rb +90 -202
- data/lib/chef/resource_builder.rb +1 -65
- data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
- data/lib/chef/resource_collection/resource_list.rb +6 -0
- data/lib/chef/resource_collection/resource_set.rb +44 -17
- data/lib/chef/resource_collection.rb +10 -0
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resource_resolver.rb +1 -25
- data/lib/chef/resources.rb +1 -1
- data/lib/chef/role.rb +0 -6
- data/lib/chef/run_context/cookbook_compiler.rb +49 -5
- data/lib/chef/run_context.rb +4 -25
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
- data/lib/chef/search/query.rb +26 -31
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/shell/shell_session.rb +14 -4
- data/lib/chef/shell.rb +32 -7
- data/lib/chef/user.rb +9 -16
- data/lib/chef/user_v1.rb +9 -16
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/selinux.rb +1 -1
- data/lib/chef/util/windows/net_group.rb +18 -30
- data/lib/chef/util/windows/net_use.rb +7 -11
- data/lib/chef/util/windows/net_user.rb +12 -18
- data/lib/chef/util/windows/volume.rb +9 -15
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/win32/api/file.rb +25 -31
- data/lib/chef/win32/api/installer.rb +2 -2
- data/lib/chef/win32/api.rb +4 -6
- data/lib/chef/win32/file.rb +4 -6
- data/lib/chef/win32/registry.rb +9 -9
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/security/sid.rb +5 -0
- data/lib/chef/win32/security.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +1 -1
- data/lib/chef.rb +1 -2
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
- data/spec/data/lwrp/resources/buck_passer.rb +5 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
- data/spec/data/prefer_metadata_json/metadata.json +51 -0
- data/spec/data/prefer_metadata_json/metadata.rb +6 -0
- data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
- data/spec/data/shef-config.rb +11 -10
- data/spec/functional/knife/ssh_spec.rb +34 -6
- data/spec/functional/rebooter_spec.rb +1 -0
- data/spec/functional/resource/bash_spec.rb +11 -45
- data/spec/functional/resource/batch_spec.rb +5 -1
- data/spec/functional/resource/cron_spec.rb +2 -2
- data/spec/functional/resource/dsc_script_spec.rb +2 -4
- data/spec/functional/resource/execute_spec.rb +17 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/template_spec.rb +33 -0
- data/spec/functional/resource/user/dscl_spec.rb +2 -4
- data/spec/functional/root_alias_spec.rb +78 -0
- data/spec/functional/shell_spec.rb +38 -40
- data/spec/integration/client/client_spec.rb +109 -16
- data/spec/integration/client/exit_code_spec.rb +1 -105
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
- data/spec/integration/knife/cookbook_download_spec.rb +0 -24
- data/spec/integration/knife/cookbook_show_spec.rb +12 -23
- data/spec/integration/knife/deps_spec.rb +5 -9
- data/spec/integration/knife/search_node_spec.rb +39 -0
- data/spec/integration/knife/serve_spec.rb +58 -22
- data/spec/integration/knife/upload_spec.rb +3 -11
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
- data/spec/integration/recipes/notifies_spec.rb +60 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
- data/spec/integration/recipes/resource_action_spec.rb +37 -30
- data/spec/spec_helper.rb +7 -0
- data/spec/support/chef_helpers.rb +5 -7
- data/spec/support/platform_helpers.rb +10 -3
- data/spec/support/platforms/prof/gc.rb +4 -6
- data/spec/support/shared/context/client.rb +9 -2
- data/spec/support/shared/functional/execute_resource.rb +150 -0
- data/spec/support/shared/functional/windows_script.rb +74 -4
- data/spec/support/shared/integration/knife_support.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +37 -9
- data/spec/support/shared/unit/provider/file.rb +10 -0
- data/spec/support/shared/unit/script_resource.rb +1 -9
- data/spec/unit/application/exit_code_spec.rb +4 -89
- data/spec/unit/application_spec.rb +39 -29
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
- data/spec/unit/client_spec.rb +72 -31
- data/spec/unit/config_fetcher_spec.rb +2 -2
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
- data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
- data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
- data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
- data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
- data/spec/unit/cookbook/metadata_spec.rb +29 -108
- data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
- data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
- data/spec/unit/cookbook_loader_spec.rb +17 -19
- data/spec/unit/cookbook_manifest_spec.rb +12 -44
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
- data/spec/unit/cookbook_spec.rb +10 -14
- data/spec/unit/cookbook_uploader_spec.rb +1 -1
- data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
- data/spec/unit/cookbook_version_spec.rb +19 -128
- data/spec/unit/data_bag_item_spec.rb +4 -0
- data/spec/unit/data_collector/messages_spec.rb +137 -0
- data/spec/unit/data_collector/resource_report_spec.rb +145 -0
- data/spec/unit/deprecation_spec.rb +0 -14
- data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
- data/spec/unit/formatters/error_description_spec.rb +52 -7
- data/spec/unit/http/api_versions_spec.rb +79 -0
- data/spec/unit/http/authenticator_spec.rb +20 -0
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
- data/spec/unit/json_compat_spec.rb +0 -32
- data/spec/unit/knife/bootstrap_spec.rb +34 -0
- data/spec/unit/knife/configure_client_spec.rb +0 -2
- data/spec/unit/knife/cookbook_create_spec.rb +1 -220
- data/spec/unit/knife/cookbook_download_spec.rb +46 -28
- data/spec/unit/knife/cookbook_show_spec.rb +42 -9
- data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
- data/spec/unit/knife/core/ui_spec.rb +21 -11
- data/spec/unit/knife/data_bag_create_spec.rb +65 -45
- data/spec/unit/knife/ssh_spec.rb +34 -36
- data/spec/unit/knife_spec.rb +2 -2
- data/spec/unit/lwrp_spec.rb +38 -127
- data/spec/unit/mixin/path_sanity_spec.rb +7 -7
- data/spec/unit/mixin/shell_out_spec.rb +18 -84
- data/spec/unit/mixin/versioned_api_spec.rb +128 -0
- data/spec/unit/mixin/which.rb +160 -0
- data/spec/unit/node/attribute_spec.rb +65 -33
- data/spec/unit/node/immutable_collections_spec.rb +104 -1
- data/spec/unit/node_map_spec.rb +1 -23
- data/spec/unit/node_spec.rb +81 -98
- data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
- data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
- data/spec/unit/property/validation_spec.rb +51 -69
- data/spec/unit/property_spec.rb +105 -125
- data/spec/unit/provider/apt_repository_spec.rb +33 -27
- data/spec/unit/provider/cron_spec.rb +15 -39
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +10 -0
- data/spec/unit/provider/dsc_resource_spec.rb +175 -0
- data/spec/unit/provider/erl_call_spec.rb +5 -13
- data/spec/unit/provider/execute_spec.rb +3 -14
- data/spec/unit/provider/launchd_spec.rb +2 -2
- data/spec/unit/provider/package/aix_spec.rb +22 -22
- data/spec/unit/provider/package/apt_spec.rb +37 -27
- data/spec/unit/provider/package/cab_spec.rb +59 -5
- data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
- data/spec/unit/provider/package/dpkg_spec.rb +16 -16
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
- data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
- data/spec/unit/provider/package/homebrew_spec.rb +9 -9
- data/spec/unit/provider/package/ips_spec.rb +37 -31
- data/spec/unit/provider/package/macports_spec.rb +10 -10
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +6 -6
- data/spec/unit/provider/package/paludis_spec.rb +7 -7
- data/spec/unit/provider/package/portage_spec.rb +6 -7
- data/spec/unit/provider/package/rpm_spec.rb +23 -23
- data/spec/unit/provider/package/rubygems_spec.rb +135 -46
- data/spec/unit/provider/package/solaris_spec.rb +15 -15
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum_spec.rb +58 -50
- data/spec/unit/provider/package/zypper_spec.rb +54 -97
- data/spec/unit/provider/package_spec.rb +8 -0
- data/spec/unit/provider/powershell_script_spec.rb +14 -4
- data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +7 -1
- data/spec/unit/provider/script_spec.rb +49 -6
- data/spec/unit/provider/service/debian_service_spec.rb +14 -20
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +5 -43
- data/spec/unit/provider/user/pw_spec.rb +7 -27
- data/spec/unit/provider/windows_task_spec.rb +392 -0
- data/spec/unit/provider_resolver_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +10 -3
- data/spec/unit/recipe_spec.rb +3 -172
- data/spec/unit/resource/chef_gem_spec.rb +16 -62
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/cookbook_file_spec.rb +2 -2
- data/spec/unit/resource/cron_spec.rb +1 -1
- data/spec/unit/resource/deploy_spec.rb +4 -4
- data/spec/unit/resource/directory_spec.rb +2 -2
- data/spec/unit/resource/dsc_resource_spec.rb +6 -0
- data/spec/unit/resource/env_spec.rb +1 -1
- data/spec/unit/resource/execute_spec.rb +215 -1
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
- data/spec/unit/resource/file/verification_spec.rb +8 -14
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +2 -2
- data/spec/unit/resource/group_spec.rb +2 -2
- data/spec/unit/resource/ifconfig_spec.rb +1 -1
- data/spec/unit/resource/link_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +1 -1
- data/spec/unit/resource/mount_spec.rb +3 -3
- data/spec/unit/resource/ohai_spec.rb +1 -1
- data/spec/unit/resource/package_spec.rb +14 -4
- data/spec/unit/resource/registry_key_spec.rb +2 -2
- data/spec/unit/resource/remote_directory_spec.rb +2 -2
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/scm_spec.rb +2 -2
- data/spec/unit/resource/script_spec.rb +1 -1
- data/spec/unit/resource/service_spec.rb +25 -5
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +6 -6
- data/spec/unit/resource/windows_task_spec.rb +213 -0
- data/spec/unit/resource/yum_package_spec.rb +42 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
- data/spec/unit/resource_collection_spec.rb +4 -3
- data/spec/unit/resource_reporter_spec.rb +6 -6
- data/spec/unit/resource_spec.rb +55 -71
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
- data/spec/unit/runner_spec.rb +10 -28
- data/spec/unit/search/query_spec.rb +32 -34
- data/spec/unit/server_api_versions_spec.rb +44 -0
- data/spec/unit/shell/shell_session_spec.rb +33 -2
- data/spec/unit/util/selinux_spec.rb +3 -14
- data/spec/unit/win32/error_spec.rb +67 -0
- data/spec/unit/win32/security_spec.rb +66 -0
- data/tasks/bundle.rb +36 -52
- data/tasks/changelog.rb +1 -1
- data/tasks/dependencies.rb +54 -52
- data/tasks/version.rb +41 -0
- metadata +91 -76
- data/lib/chef/deprecation/mixin/template.rb +0 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
- data/lib/chef/deprecation/provider/file.rb +0 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
- data/lib/chef/deprecation/provider/remote_file.rb +0 -85
- data/lib/chef/deprecation/provider/template.rb +0 -63
- data/lib/chef/dsl/method_missing.rb +0 -75
- data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
- data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
- data/lib/chef/mixin/command/unix.rb +0 -220
- data/lib/chef/mixin/command/windows.rb +0 -71
- data/lib/chef/mixin/command.rb +0 -194
- data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
- data/lib/chef/provider/package/easy_install.rb +0 -135
- data/lib/chef/rest.rb +0 -210
- data/lib/chef/shell_out.rb +0 -13
- data/lib/chef/tasks/chef_repo.rake +0 -200
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
- data/spec/functional/rest_spec.rb +0 -95
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
- data/spec/unit/lib_backcompat_spec.rb +0 -34
- data/spec/unit/mixin/command_spec.rb +0 -107
- data/spec/unit/platform_spec.rb +0 -242
- data/spec/unit/provider/package/easy_install_spec.rb +0 -114
- data/spec/unit/resource/easy_install_package_spec.rb +0 -39
- data/spec/unit/rest/auth_credentials_spec.rb +0 -292
- data/spec/unit/rest_spec.rb +0 -753
- data/spec/unit/shell_out_spec.rb +0 -18
- data/tasks/bin/bundle-platform +0 -20
- data/tasks/bin/bundle-platform.bat +0 -2
- data/tasks/bin/bundler_patch.rb +0 -27
- data/tasks/bin/gem-version-diff +0 -37
- data/tasks/bundle_util.rb +0 -110
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Author:: Prajakta Purohit (<prajakta@chef.io>)
|
|
3
3
|
# Author:: Lamont Granquist (<lamont@chef.io>)
|
|
4
4
|
#
|
|
5
|
-
# Copyright:: Copyright 2011-
|
|
5
|
+
# Copyright:: Copyright 2011-2017, Chef Software Inc.
|
|
6
6
|
#
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
8
|
# you may not use this file except in compliance with the License.
|
|
@@ -35,10 +35,6 @@ class Chef
|
|
|
35
35
|
|
|
36
36
|
include Chef::Mixin::Checksum
|
|
37
37
|
|
|
38
|
-
def whyrun_supported?
|
|
39
|
-
true
|
|
40
|
-
end
|
|
41
|
-
|
|
42
38
|
def running_on_windows!
|
|
43
39
|
unless Chef::Platform.windows?
|
|
44
40
|
raise Chef::Exceptions::Win32NotWindows, "Attempt to manipulate the windows registry on a non-windows node"
|
|
@@ -47,19 +43,19 @@ class Chef
|
|
|
47
43
|
|
|
48
44
|
def load_current_resource
|
|
49
45
|
running_on_windows!
|
|
50
|
-
@current_resource ||= Chef::Resource::RegistryKey.new(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if registry.key_exists?(
|
|
55
|
-
|
|
56
|
-
end
|
|
57
|
-
values_to_hash(
|
|
58
|
-
|
|
46
|
+
@current_resource ||= Chef::Resource::RegistryKey.new(new_resource.key, run_context)
|
|
47
|
+
current_resource.key(new_resource.key)
|
|
48
|
+
current_resource.architecture(new_resource.architecture)
|
|
49
|
+
current_resource.recursive(new_resource.recursive)
|
|
50
|
+
if registry.key_exists?(new_resource.key)
|
|
51
|
+
current_resource.values(registry.get_values(new_resource.key))
|
|
52
|
+
end
|
|
53
|
+
values_to_hash(current_resource.unscrubbed_values)
|
|
54
|
+
current_resource
|
|
59
55
|
end
|
|
60
56
|
|
|
61
57
|
def registry
|
|
62
|
-
@registry ||= Chef::Win32::Registry.new(@run_context,
|
|
58
|
+
@registry ||= Chef::Win32::Registry.new(@run_context, new_resource.architecture)
|
|
63
59
|
end
|
|
64
60
|
|
|
65
61
|
def values_to_hash(values)
|
|
@@ -79,51 +75,51 @@ class Chef
|
|
|
79
75
|
|
|
80
76
|
def define_resource_requirements
|
|
81
77
|
requirements.assert(:create, :create_if_missing, :delete, :delete_key) do |a|
|
|
82
|
-
a.assertion { registry.hive_exists?(
|
|
83
|
-
a.failure_message(Chef::Exceptions::Win32RegHiveMissing, "Hive #{
|
|
78
|
+
a.assertion { registry.hive_exists?(new_resource.key) }
|
|
79
|
+
a.failure_message(Chef::Exceptions::Win32RegHiveMissing, "Hive #{new_resource.key.split("\\").shift} does not exist")
|
|
84
80
|
end
|
|
85
81
|
|
|
86
82
|
requirements.assert(:create) do |a|
|
|
87
|
-
a.assertion { registry.key_exists?(
|
|
88
|
-
a.whyrun("Key #{
|
|
83
|
+
a.assertion { registry.key_exists?(new_resource.key) }
|
|
84
|
+
a.whyrun("Key #{new_resource.key} does not exist. Unless it would have been created before, attempt to modify its values would fail.")
|
|
89
85
|
end
|
|
90
86
|
|
|
91
87
|
requirements.assert(:create, :create_if_missing) do |a|
|
|
92
88
|
# If keys missing in the path and recursive == false
|
|
93
|
-
a.assertion { !registry.keys_missing?(
|
|
89
|
+
a.assertion { !registry.keys_missing?(current_resource.key) || new_resource.recursive }
|
|
94
90
|
a.failure_message(Chef::Exceptions::Win32RegNoRecursive, "Intermediate keys missing but recursive is set to false")
|
|
95
|
-
a.whyrun("Intermediate keys in #{
|
|
91
|
+
a.whyrun("Intermediate keys in #{new_resource.key} do not exist. Unless they would have been created earlier, attempt to modify them would fail.")
|
|
96
92
|
end
|
|
97
93
|
|
|
98
94
|
requirements.assert(:delete_key) do |a|
|
|
99
95
|
# If key to be deleted has subkeys but recurssive == false
|
|
100
|
-
a.assertion { !registry.key_exists?(
|
|
101
|
-
a.failure_message(Chef::Exceptions::Win32RegNoRecursive, "#{
|
|
102
|
-
a.whyrun("#{
|
|
96
|
+
a.assertion { !registry.key_exists?(new_resource.key) || !registry.has_subkeys?(new_resource.key) || new_resource.recursive }
|
|
97
|
+
a.failure_message(Chef::Exceptions::Win32RegNoRecursive, "#{new_resource.key} has subkeys but recursive is set to false.")
|
|
98
|
+
a.whyrun("#{current_resource.key} has subkeys, but recursive is set to false. attempt to delete would fails unless subkeys were deleted prior to this action.")
|
|
103
99
|
end
|
|
104
100
|
|
|
105
101
|
requirements.assert(:create, :create_if_missing) do |a|
|
|
106
102
|
# If type key missing in the RegistryKey values hash
|
|
107
|
-
a.assertion { !key_missing?(
|
|
103
|
+
a.assertion { !key_missing?(new_resource.values, :type) }
|
|
108
104
|
a.failure_message(Chef::Exceptions::RegKeyValuesTypeMissing, "Missing type key in RegistryKey values hash")
|
|
109
105
|
a.whyrun("Type key does not exist. Attempt would fail unless the complete values hash containing all the keys does not exist for registry_key resource's create action.")
|
|
110
106
|
end
|
|
111
107
|
|
|
112
108
|
requirements.assert(:create, :create_if_missing) do |a|
|
|
113
109
|
# If data key missing in the RegistryKey values hash
|
|
114
|
-
a.assertion { !key_missing?(
|
|
110
|
+
a.assertion { !key_missing?(new_resource.values, :data) }
|
|
115
111
|
a.failure_message(Chef::Exceptions::RegKeyValuesDataMissing, "Missing data key in RegistryKey values hash")
|
|
116
112
|
a.whyrun("Data key does not exist. Attempt would fail unless the complete values hash containing all the keys does not exist for registry_key resource's create action.")
|
|
117
113
|
end
|
|
118
114
|
end
|
|
119
115
|
|
|
120
116
|
def action_create
|
|
121
|
-
unless registry.key_exists?(
|
|
122
|
-
converge_by("create key #{
|
|
123
|
-
registry.create_key(
|
|
117
|
+
unless registry.key_exists?(current_resource.key)
|
|
118
|
+
converge_by("create key #{new_resource.key}") do
|
|
119
|
+
registry.create_key(new_resource.key, new_resource.recursive)
|
|
124
120
|
end
|
|
125
121
|
end
|
|
126
|
-
|
|
122
|
+
new_resource.unscrubbed_values.each do |value|
|
|
127
123
|
if @name_hash.has_key?(value[:name].downcase)
|
|
128
124
|
current_value = @name_hash[value[:name].downcase]
|
|
129
125
|
if [:dword, :dword_big_endian, :qword].include? value[:type]
|
|
@@ -131,38 +127,38 @@ class Chef
|
|
|
131
127
|
end
|
|
132
128
|
unless current_value[:type] == value[:type] && current_value[:data] == value[:data]
|
|
133
129
|
converge_by("set value #{value}") do
|
|
134
|
-
registry.set_value(
|
|
130
|
+
registry.set_value(new_resource.key, value)
|
|
135
131
|
end
|
|
136
132
|
end
|
|
137
133
|
else
|
|
138
134
|
converge_by("set value #{value}") do
|
|
139
|
-
registry.set_value(
|
|
135
|
+
registry.set_value(new_resource.key, value)
|
|
140
136
|
end
|
|
141
137
|
end
|
|
142
138
|
end
|
|
143
139
|
end
|
|
144
140
|
|
|
145
141
|
def action_create_if_missing
|
|
146
|
-
unless registry.key_exists?(
|
|
147
|
-
converge_by("create key #{
|
|
148
|
-
registry.create_key(
|
|
142
|
+
unless registry.key_exists?(new_resource.key)
|
|
143
|
+
converge_by("create key #{new_resource.key}") do
|
|
144
|
+
registry.create_key(new_resource.key, new_resource.recursive)
|
|
149
145
|
end
|
|
150
146
|
end
|
|
151
|
-
|
|
147
|
+
new_resource.unscrubbed_values.each do |value|
|
|
152
148
|
unless @name_hash.has_key?(value[:name].downcase)
|
|
153
149
|
converge_by("create value #{value}") do
|
|
154
|
-
registry.set_value(
|
|
150
|
+
registry.set_value(new_resource.key, value)
|
|
155
151
|
end
|
|
156
152
|
end
|
|
157
153
|
end
|
|
158
154
|
end
|
|
159
155
|
|
|
160
156
|
def action_delete
|
|
161
|
-
if registry.key_exists?(
|
|
162
|
-
|
|
157
|
+
if registry.key_exists?(new_resource.key)
|
|
158
|
+
new_resource.unscrubbed_values.each do |value|
|
|
163
159
|
if @name_hash.has_key?(value[:name].downcase)
|
|
164
160
|
converge_by("delete value #{value}") do
|
|
165
|
-
registry.delete_value(
|
|
161
|
+
registry.delete_value(new_resource.key, value)
|
|
166
162
|
end
|
|
167
163
|
end
|
|
168
164
|
end
|
|
@@ -170,9 +166,9 @@ class Chef
|
|
|
170
166
|
end
|
|
171
167
|
|
|
172
168
|
def action_delete_key
|
|
173
|
-
if registry.key_exists?(
|
|
174
|
-
converge_by("delete key #{
|
|
175
|
-
registry.delete_key(
|
|
169
|
+
if registry.key_exists?(new_resource.key)
|
|
170
|
+
converge_by("delete key #{new_resource.key}") do
|
|
171
|
+
registry.delete_key(new_resource.key, new_resource.recursive)
|
|
176
172
|
end
|
|
177
173
|
end
|
|
178
174
|
end
|
|
@@ -23,8 +23,6 @@ require "chef/resource/cookbook_file"
|
|
|
23
23
|
require "chef/mixin/file_class"
|
|
24
24
|
require "chef/platform/query_helpers"
|
|
25
25
|
require "chef/util/path_helper"
|
|
26
|
-
require "chef/deprecation/warnings"
|
|
27
|
-
require "chef/deprecation/provider/remote_directory"
|
|
28
26
|
|
|
29
27
|
require "forwardable"
|
|
30
28
|
|
|
@@ -36,9 +34,9 @@ class Chef
|
|
|
36
34
|
|
|
37
35
|
provides :remote_directory
|
|
38
36
|
|
|
39
|
-
def_delegators
|
|
40
|
-
def_delegators
|
|
41
|
-
def_delegators
|
|
37
|
+
def_delegators :new_resource, :purge, :path, :source, :cookbook, :cookbook_name
|
|
38
|
+
def_delegators :new_resource, :files_rights, :files_mode, :files_group, :files_owner, :files_backup
|
|
39
|
+
def_delegators :new_resource, :rights, :mode, :group, :owner
|
|
42
40
|
|
|
43
41
|
# The overwrite property on the resource. Delegates to new_resource but can be mutated.
|
|
44
42
|
#
|
|
@@ -268,16 +266,6 @@ class Chef
|
|
|
268
266
|
res
|
|
269
267
|
end
|
|
270
268
|
|
|
271
|
-
#
|
|
272
|
-
# Add back deprecated methods and aliases that are internally unused and should be removed in Chef-13
|
|
273
|
-
#
|
|
274
|
-
extend Chef::Deprecation::Warnings
|
|
275
|
-
include Chef::Deprecation::Provider::RemoteDirectory
|
|
276
|
-
add_deprecation_warnings_for(Chef::Deprecation::Provider::RemoteDirectory.instance_methods)
|
|
277
|
-
|
|
278
|
-
alias_method :resource_for_directory, :directory_resource
|
|
279
|
-
add_deprecation_warnings_for([:resource_for_directory])
|
|
280
|
-
|
|
281
269
|
end
|
|
282
270
|
end
|
|
283
271
|
end
|
|
@@ -18,33 +18,27 @@
|
|
|
18
18
|
#
|
|
19
19
|
|
|
20
20
|
require "chef/provider/file"
|
|
21
|
-
require "chef/deprecation/provider/remote_file"
|
|
22
|
-
require "chef/deprecation/warnings"
|
|
23
21
|
|
|
24
22
|
class Chef
|
|
25
23
|
class Provider
|
|
26
24
|
class RemoteFile < Chef::Provider::File
|
|
27
25
|
provides :remote_file
|
|
28
26
|
|
|
29
|
-
extend Chef::Deprecation::Warnings
|
|
30
|
-
include Chef::Deprecation::Provider::RemoteFile
|
|
31
|
-
add_deprecation_warnings_for(Chef::Deprecation::Provider::RemoteFile.instance_methods)
|
|
32
|
-
|
|
33
27
|
def initialize(new_resource, run_context)
|
|
34
28
|
@content_class = Chef::Provider::RemoteFile::Content
|
|
35
29
|
super
|
|
36
30
|
end
|
|
37
31
|
|
|
38
32
|
def load_current_resource
|
|
39
|
-
@current_resource = Chef::Resource::RemoteFile.new(
|
|
33
|
+
@current_resource = Chef::Resource::RemoteFile.new(new_resource.name)
|
|
40
34
|
super
|
|
41
35
|
end
|
|
42
36
|
|
|
43
37
|
private
|
|
44
38
|
|
|
45
39
|
def managing_content?
|
|
46
|
-
return true if
|
|
47
|
-
return true if
|
|
40
|
+
return true if new_resource.checksum
|
|
41
|
+
return true if !new_resource.source.nil? && @action != :create_if_missing
|
|
48
42
|
false
|
|
49
43
|
end
|
|
50
44
|
|
data/lib/chef/provider/route.rb
CHANGED
|
@@ -17,14 +17,12 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require "chef/log"
|
|
20
|
-
require "chef/mixin/command"
|
|
21
20
|
require "chef/provider"
|
|
22
21
|
require "ipaddr"
|
|
23
22
|
|
|
24
23
|
class Chef
|
|
25
24
|
class Provider
|
|
26
25
|
class Route < Chef::Provider
|
|
27
|
-
include Chef::Mixin::Command
|
|
28
26
|
|
|
29
27
|
provides :route
|
|
30
28
|
|
|
@@ -84,10 +82,6 @@ class Chef
|
|
|
84
82
|
end
|
|
85
83
|
end
|
|
86
84
|
|
|
87
|
-
def whyrun_supported?
|
|
88
|
-
true
|
|
89
|
-
end
|
|
90
|
-
|
|
91
85
|
def load_current_resource
|
|
92
86
|
self.is_running = false
|
|
93
87
|
|
|
@@ -219,7 +213,7 @@ class Chef
|
|
|
219
213
|
case action
|
|
220
214
|
when :add
|
|
221
215
|
content << (options[:target]).to_s
|
|
222
|
-
content << "/#{options[:netmask]}" if options[:netmask]
|
|
216
|
+
content << "/#{MASK[options[:netmask].to_s]}" if options[:netmask]
|
|
223
217
|
content << " via #{options[:gateway]}" if options[:gateway]
|
|
224
218
|
content << "\n"
|
|
225
219
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
3
|
# Author:: AJ Christensen (<aj@chef.io>)
|
|
4
|
-
# Copyright:: Copyright 2009-
|
|
4
|
+
# Copyright:: Copyright 2009-2017, Chef Software Inc.
|
|
5
5
|
# License:: Apache License, Version 2.0
|
|
6
6
|
#
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -22,18 +22,14 @@ class Chef
|
|
|
22
22
|
class RubyBlock < Chef::Provider
|
|
23
23
|
provides :ruby_block
|
|
24
24
|
|
|
25
|
-
def whyrun_supported?
|
|
26
|
-
true
|
|
27
|
-
end
|
|
28
|
-
|
|
29
25
|
def load_current_resource
|
|
30
26
|
true
|
|
31
27
|
end
|
|
32
28
|
|
|
33
29
|
def action_run
|
|
34
|
-
converge_by("execute the ruby block #{
|
|
35
|
-
|
|
36
|
-
Chef::Log.info("#{
|
|
30
|
+
converge_by("execute the ruby block #{new_resource.name}") do
|
|
31
|
+
new_resource.block.call
|
|
32
|
+
Chef::Log.info("#{new_resource} called")
|
|
37
33
|
end
|
|
38
34
|
end
|
|
39
35
|
|
data/lib/chef/provider/script.rb
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
require "tempfile"
|
|
20
20
|
require "chef/provider/execute"
|
|
21
|
+
require "chef/win32/security" if Chef::Platform.windows?
|
|
21
22
|
require "forwardable"
|
|
22
23
|
|
|
23
24
|
class Chef
|
|
@@ -33,7 +34,7 @@ class Chef
|
|
|
33
34
|
provides :ruby
|
|
34
35
|
provides :script
|
|
35
36
|
|
|
36
|
-
def_delegators
|
|
37
|
+
def_delegators :new_resource, :interpreter, :flags
|
|
37
38
|
|
|
38
39
|
attr_accessor :code
|
|
39
40
|
|
|
@@ -50,7 +51,7 @@ class Chef
|
|
|
50
51
|
super
|
|
51
52
|
# @todo Chef-13: change this to an exception
|
|
52
53
|
if code.nil?
|
|
53
|
-
Chef::Log.warn "#{
|
|
54
|
+
Chef::Log.warn "#{new_resource}: No code attribute was given, resource does nothing, this behavior is deprecated and will be removed in Chef-13"
|
|
54
55
|
end
|
|
55
56
|
end
|
|
56
57
|
|
|
@@ -66,10 +67,45 @@ class Chef
|
|
|
66
67
|
end
|
|
67
68
|
|
|
68
69
|
def set_owner_and_group
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
if Chef::Platform.windows?
|
|
71
|
+
# And on Windows also this is a no-op if there is no user specified.
|
|
72
|
+
grant_alternate_user_read_access
|
|
73
|
+
else
|
|
74
|
+
# FileUtils itself implements a no-op if +user+ or +group+ are nil
|
|
75
|
+
# You can prove this by running FileUtils.chown(nil,nil,'/tmp/file')
|
|
76
|
+
# as an unprivileged user.
|
|
77
|
+
FileUtils.chown(new_resource.user, new_resource.group, script_file.path)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def grant_alternate_user_read_access
|
|
82
|
+
# Do nothing if an alternate user isn't specified -- the file
|
|
83
|
+
# will already have the correct permissions for the user as part
|
|
84
|
+
# of the default ACL behavior on Windows.
|
|
85
|
+
return if new_resource.user.nil?
|
|
86
|
+
|
|
87
|
+
# Duplicate the script file's existing DACL
|
|
88
|
+
# so we can add an ACE later
|
|
89
|
+
securable_object = Chef::ReservedNames::Win32::Security::SecurableObject.new(script_file.path)
|
|
90
|
+
aces = securable_object.security_descriptor.dacl.reduce([]) { |result, current| result.push(current) }
|
|
91
|
+
|
|
92
|
+
username = new_resource.user
|
|
93
|
+
|
|
94
|
+
if new_resource.domain
|
|
95
|
+
username = new_resource.domain + '\\' + new_resource.user
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Create an ACE that allows the alternate user read access to the script
|
|
99
|
+
# file so it can be read and executed.
|
|
100
|
+
user_sid = Chef::ReservedNames::Win32::Security::SID.from_account(username)
|
|
101
|
+
read_ace = Chef::ReservedNames::Win32::Security::ACE.access_allowed(user_sid, Chef::ReservedNames::Win32::API::Security::GENERIC_READ | Chef::ReservedNames::Win32::API::Security::GENERIC_EXECUTE, 0)
|
|
102
|
+
aces.push(read_ace)
|
|
103
|
+
acl = Chef::ReservedNames::Win32::Security::ACL.create(aces)
|
|
104
|
+
|
|
105
|
+
# This actually applies the modified DACL to the file
|
|
106
|
+
# Use parentheses to bypass RuboCop / ChefStyle warning
|
|
107
|
+
# about useless setter
|
|
108
|
+
(securable_object.dacl = acl)
|
|
73
109
|
end
|
|
74
110
|
|
|
75
111
|
def script_file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: kaustubh (<kaustubh@clogeny.com>)
|
|
3
|
-
# Copyright:: Copyright 2014-
|
|
3
|
+
# Copyright:: Copyright 2014-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -43,10 +43,6 @@ class Chef
|
|
|
43
43
|
@current_resource
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
def whyrun_supported?
|
|
47
|
-
true
|
|
48
|
-
end
|
|
49
|
-
|
|
50
46
|
def start_service
|
|
51
47
|
if @is_resource_group
|
|
52
48
|
shell_out!("startsrc -g #{@new_resource.service_name}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: AJ Christensen (<aj@hjksolutions.com>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -35,8 +35,6 @@ class Chef
|
|
|
35
35
|
|
|
36
36
|
def load_current_resource
|
|
37
37
|
super
|
|
38
|
-
@priority_success = true
|
|
39
|
-
@rcd_status = nil
|
|
40
38
|
current_resource.priority(get_priority)
|
|
41
39
|
current_resource.enabled(service_currently_enabled?(current_resource.priority))
|
|
42
40
|
current_resource
|
|
@@ -54,8 +52,8 @@ class Chef
|
|
|
54
52
|
end
|
|
55
53
|
|
|
56
54
|
requirements.assert(:all_actions) do |a|
|
|
57
|
-
a.assertion { @
|
|
58
|
-
a.failure_message Chef::Exceptions::Service, "/usr/sbin/update-rc.d -n -f #{current_resource.service_name} failed - #{@
|
|
55
|
+
a.assertion { @so_priority.exitstatus == 0 }
|
|
56
|
+
a.failure_message Chef::Exceptions::Service, "/usr/sbin/update-rc.d -n -f #{current_resource.service_name} failed - #{@so_priority.inspect}"
|
|
59
57
|
# This can happen if the service is not yet installed,so we'll fake it.
|
|
60
58
|
a.whyrun ["Unable to determine priority of service, assuming service would have been correctly installed earlier in the run.",
|
|
61
59
|
"Assigning temporary priorities to continue.",
|
|
@@ -75,19 +73,18 @@ class Chef
|
|
|
75
73
|
def get_priority
|
|
76
74
|
priority = {}
|
|
77
75
|
|
|
78
|
-
@
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
end
|
|
76
|
+
@so_priority = shell_out!("/usr/sbin/update-rc.d -n -f #{current_resource.service_name} remove")
|
|
77
|
+
|
|
78
|
+
[@so_priority.stdout, @so_priority.stderr].each do |iop|
|
|
79
|
+
iop.each_line do |line|
|
|
80
|
+
if UPDATE_RC_D_PRIORITIES =~ line
|
|
81
|
+
# priority[runlevel] = [ S|K, priority ]
|
|
82
|
+
# S = Start, K = Kill
|
|
83
|
+
# debian runlevels: 0 Halt, 1 Singleuser, 2 Multiuser, 3-5 == 2, 6 Reboot
|
|
84
|
+
priority[$1] = [($2 == "S" ? :start : :stop), $3]
|
|
85
|
+
end
|
|
86
|
+
if line =~ UPDATE_RC_D_ENABLED_MATCHES
|
|
87
|
+
enabled = true
|
|
91
88
|
end
|
|
92
89
|
end
|
|
93
90
|
end
|
|
@@ -98,9 +95,6 @@ class Chef
|
|
|
98
95
|
priority = priority[2].last
|
|
99
96
|
end
|
|
100
97
|
|
|
101
|
-
unless @rcd_status.exitstatus == 0
|
|
102
|
-
@priority_success = false
|
|
103
|
-
end
|
|
104
98
|
priority
|
|
105
99
|
end
|
|
106
100
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Bryan McLellan <btm@loftninjas.org>
|
|
3
|
-
# Copyright:: Copyright 2011-
|
|
3
|
+
# Copyright:: Copyright 2011-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -24,7 +24,7 @@ class Chef
|
|
|
24
24
|
class Service
|
|
25
25
|
class Insserv < Chef::Provider::Service::Init
|
|
26
26
|
|
|
27
|
-
provides :service, platform_family: %w{debian rhel fedora suse} do |node|
|
|
27
|
+
provides :service, platform_family: %w{debian rhel fedora suse amazon} do |node|
|
|
28
28
|
Chef::Platform::ServiceHelpers.service_resource_providers.include?(:insserv)
|
|
29
29
|
end
|
|
30
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: AJ Christensen (<aj@hjksolutions.com>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -28,7 +28,7 @@ class Chef
|
|
|
28
28
|
# @api private
|
|
29
29
|
attr_accessor :current_run_levels
|
|
30
30
|
|
|
31
|
-
provides :service, platform_family: %w{rhel fedora suse} do |node|
|
|
31
|
+
provides :service, platform_family: %w{rhel fedora suse amazon} do |node|
|
|
32
32
|
Chef::Platform::ServiceHelpers.service_resource_providers.include?(:redhat)
|
|
33
33
|
end
|
|
34
34
|
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
require "chef/provider/service"
|
|
20
20
|
require "chef/resource/service"
|
|
21
|
-
require "chef/mixin/command"
|
|
22
21
|
|
|
23
22
|
class Chef
|
|
24
23
|
class Provider
|
|
@@ -41,10 +40,6 @@ class Chef
|
|
|
41
40
|
@current_resource
|
|
42
41
|
end
|
|
43
42
|
|
|
44
|
-
def whyrun_supported?
|
|
45
|
-
true
|
|
46
|
-
end
|
|
47
|
-
|
|
48
43
|
def shared_resource_requirements
|
|
49
44
|
super
|
|
50
45
|
requirements.assert(:all_actions) do |a|
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
require "chef/provider/service"
|
|
20
20
|
require "chef/resource/service"
|
|
21
|
-
require "chef/mixin/command"
|
|
22
21
|
|
|
23
22
|
class Chef
|
|
24
23
|
class Provider
|
|
@@ -56,11 +55,13 @@ class Chef
|
|
|
56
55
|
|
|
57
56
|
def enable_service
|
|
58
57
|
shell_out!(default_init_command, "clear", @new_resource.service_name) if @maintenance
|
|
59
|
-
|
|
58
|
+
enable_flags = [ "-s", @new_resource.options ].flatten.compact
|
|
59
|
+
shell_out!(default_init_command, "enable", *enable_flags, @new_resource.service_name)
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def disable_service
|
|
63
|
-
|
|
63
|
+
disable_flags = [ "-s", @new_resource.options ].flatten.compact
|
|
64
|
+
shell_out!(default_init_command, "disable", *disable_flags, @new_resource.service_name)
|
|
64
65
|
end
|
|
65
66
|
|
|
66
67
|
alias_method :stop_service, :disable_service
|
|
@@ -73,7 +74,7 @@ class Chef
|
|
|
73
74
|
def restart_service
|
|
74
75
|
## svcadm restart doesn't supports sync(-s) option
|
|
75
76
|
disable_service
|
|
76
|
-
|
|
77
|
+
enable_service
|
|
77
78
|
end
|
|
78
79
|
|
|
79
80
|
def service_status
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
require "chef/resource/service"
|
|
20
20
|
require "chef/provider/service/simple"
|
|
21
|
-
require "chef/mixin/command"
|
|
22
21
|
require "chef/util/file_edit"
|
|
23
22
|
|
|
24
23
|
class Chef
|
|
@@ -241,17 +240,16 @@ class Chef
|
|
|
241
240
|
|
|
242
241
|
def upstart_goal_state
|
|
243
242
|
command = "/sbin/status #{@job}"
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
end
|
|
243
|
+
so = shell_out(command)
|
|
244
|
+
so.stdout.each_line do |line|
|
|
245
|
+
# service goal/state
|
|
246
|
+
# OR
|
|
247
|
+
# service (instance) goal/state
|
|
248
|
+
# OR
|
|
249
|
+
# service (goal) state
|
|
250
|
+
line =~ UPSTART_STATE_FORMAT
|
|
251
|
+
data = Regexp.last_match
|
|
252
|
+
return data[1]
|
|
255
253
|
end
|
|
256
254
|
end
|
|
257
255
|
|