chef 15.1.36-universal-mingw32 → 15.2.20-universal-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 +4 -4
- data/bin/knife +0 -0
- data/ext/win32-eventlog/Rakefile +1 -1
- data/lib/chef.rb +1 -2
- data/lib/chef/action_collection.rb +8 -0
- data/lib/chef/api_client.rb +2 -2
- data/lib/chef/api_client/registration.rb +8 -7
- data/lib/chef/api_client_v1.rb +2 -1
- data/lib/chef/application.rb +1 -0
- data/lib/chef/application/apply.rb +1 -1
- data/lib/chef/application/base.rb +440 -0
- data/lib/chef/application/client.rb +6 -389
- data/lib/chef/application/solo.rb +11 -258
- data/lib/chef/application/windows_service.rb +3 -3
- data/lib/chef/application/windows_service_manager.rb +3 -3
- data/lib/chef/blacklist.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +15 -7
- data/lib/chef/chef_fs/command_line.rb +6 -1
- data/lib/chef/chef_fs/config.rb +3 -2
- data/lib/chef/chef_fs/data_handler/container_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/data_handler_base.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +2 -2
- data/lib/chef/chef_fs/file_pattern.rb +13 -7
- data/lib/chef/chef_fs/file_system.rb +3 -2
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +13 -6
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +8 -5
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +3 -2
- data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +4 -2
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/memory/memory_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/acl.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +2 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +6 -4
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +6 -4
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +5 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +4 -2
- data/lib/chef/chef_fs/file_system_cache.rb +1 -0
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +2 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -0
- data/lib/chef/client.rb +4 -2
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +6 -3
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -0
- data/lib/chef/cookbook/file_vendor.rb +1 -0
- data/lib/chef/cookbook/gem_installer.rb +1 -0
- data/lib/chef/cookbook/manifest_v0.rb +1 -0
- data/lib/chef/cookbook/metadata.rb +11 -9
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -2
- data/lib/chef/cookbook/synchronizer.rb +6 -4
- data/lib/chef/cookbook/syntax_check.rb +4 -0
- data/lib/chef/cookbook_loader.rb +1 -0
- data/lib/chef/cookbook_manifest.rb +4 -2
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_uploader.rb +2 -2
- data/lib/chef/cookbook_version.rb +10 -9
- data/lib/chef/data_bag.rb +2 -1
- data/lib/chef/data_bag_item.rb +6 -3
- data/lib/chef/data_collector.rb +16 -8
- data/lib/chef/data_collector/run_end_message.rb +2 -0
- data/lib/chef/decorator.rb +5 -6
- data/lib/chef/deprecated.rb +1 -0
- data/lib/chef/dsl/data_query.rb +1 -1
- data/lib/chef/dsl/declare_resource.rb +2 -0
- data/lib/chef/dsl/platform_introspection.rb +3 -1
- data/lib/chef/encrypted_data_bag_item.rb +7 -4
- data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -0
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +4 -2
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -0
- data/lib/chef/environment.rb +7 -5
- data/lib/chef/event_dispatch/base.rb +86 -172
- data/lib/chef/event_dispatch/dispatcher.rb +2 -1
- data/lib/chef/event_loggers/base.rb +2 -1
- data/lib/chef/exceptions.rb +6 -7
- data/lib/chef/file_access_control/unix.rb +7 -4
- data/lib/chef/file_access_control/windows.rb +17 -8
- data/lib/chef/file_cache.rb +2 -1
- data/lib/chef/file_content_management/deploy.rb +2 -2
- data/lib/chef/formatters/base.rb +3 -4
- data/lib/chef/formatters/doc.rb +21 -33
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +3 -2
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -1
- data/lib/chef/formatters/indentable_output_stream.rb +3 -3
- data/lib/chef/formatters/minimal.rb +21 -42
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +1 -1
- data/lib/chef/handler.rb +1 -2
- data/lib/chef/http.rb +23 -18
- data/lib/chef/http/api_versions.rb +1 -2
- data/lib/chef/http/auth_credentials.rb +1 -0
- data/lib/chef/http/basic_client.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -0
- data/lib/chef/http/json_output.rb +2 -1
- data/lib/chef/http/json_to_model_output.rb +1 -1
- data/lib/chef/http/remote_request_id.rb +1 -2
- data/lib/chef/http/socketless_chef_zero_client.rb +3 -2
- data/lib/chef/http/ssl_policies.rb +3 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +8 -6
- data/lib/chef/knife.rb +6 -5
- data/lib/chef/knife/bootstrap.rb +19 -12
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -0
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -0
- data/lib/chef/knife/bootstrap/train_connector.rb +23 -17
- data/lib/chef/knife/client_bulk_delete.rb +4 -3
- data/lib/chef/knife/client_create.rb +13 -13
- data/lib/chef/knife/client_delete.rb +3 -3
- data/lib/chef/knife/config_get.rb +8 -8
- data/lib/chef/knife/config_list_profiles.rb +4 -4
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_download.rb +12 -12
- data/lib/chef/knife/cookbook_show.rb +10 -10
- data/lib/chef/knife/cookbook_upload.rb +5 -5
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +2 -2
- data/lib/chef/knife/core/generic_presenter.rb +4 -4
- data/lib/chef/knife/core/node_presenter.rb +17 -17
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +3 -2
- data/lib/chef/knife/core/text_formatter.rb +4 -4
- data/lib/chef/knife/core/ui.rb +9 -5
- data/lib/chef/knife/data_bag_create.rb +1 -0
- data/lib/chef/knife/data_bag_from_file.rb +1 -1
- data/lib/chef/knife/data_bag_secret_options.rb +13 -13
- data/lib/chef/knife/data_bag_show.rb +2 -2
- data/lib/chef/knife/deps.rb +6 -6
- data/lib/chef/knife/edit.rb +2 -2
- data/lib/chef/knife/environment_compare.rb +1 -0
- data/lib/chef/knife/environment_from_file.rb +3 -3
- data/lib/chef/knife/key_create_base.rb +12 -12
- data/lib/chef/knife/key_edit_base.rb +15 -15
- data/lib/chef/knife/key_list.rb +3 -1
- data/lib/chef/knife/key_list_base.rb +9 -9
- data/lib/chef/knife/list.rb +5 -5
- data/lib/chef/knife/node_bulk_delete.rb +1 -0
- data/lib/chef/knife/node_edit.rb +1 -1
- data/lib/chef/knife/node_environment_set.rb +1 -2
- data/lib/chef/knife/node_run_list_add.rb +2 -2
- data/lib/chef/knife/node_run_list_remove.rb +2 -2
- data/lib/chef/knife/node_run_list_set.rb +2 -2
- data/lib/chef/knife/null.rb +1 -2
- data/lib/chef/knife/role_bulk_delete.rb +1 -0
- data/lib/chef/knife/role_env_run_list_add.rb +2 -2
- data/lib/chef/knife/role_env_run_list_set.rb +2 -2
- data/lib/chef/knife/role_run_list_add.rb +2 -2
- data/lib/chef/knife/role_run_list_set.rb +2 -2
- data/lib/chef/knife/search.rb +4 -4
- data/lib/chef/knife/ssh.rb +13 -9
- data/lib/chef/knife/supermarket_download.rb +1 -1
- data/lib/chef/knife/supermarket_install.rb +5 -5
- data/lib/chef/knife/supermarket_list.rb +1 -1
- data/lib/chef/knife/supermarket_share.rb +3 -2
- data/lib/chef/knife/supermarket_show.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -0
- data/lib/chef/knife/tag_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +2 -2
- data/lib/chef/log/syslog.rb +2 -2
- data/lib/chef/log/winevt.rb +1 -2
- data/lib/chef/mash.rb +2 -2
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +1 -0
- data/lib/chef/mixin/convert_to_class_name.rb +2 -1
- data/lib/chef/mixin/create_path.rb +2 -2
- data/lib/chef/mixin/deep_merge.rb +5 -5
- data/lib/chef/mixin/get_source_from_package.rb +1 -0
- data/lib/chef/mixin/homebrew_user.rb +2 -1
- data/lib/chef/mixin/openssl_helper.rb +10 -6
- data/lib/chef/mixin/params_validate.rb +21 -13
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/powershell_type_coercions.rb +2 -2
- data/lib/chef/mixin/properties.rb +13 -10
- data/lib/chef/mixin/securable.rb +3 -3
- data/lib/chef/mixin/shell_out.rb +1 -0
- data/lib/chef/mixin/template.rb +2 -1
- data/lib/chef/mixin/user_context.rb +1 -1
- data/lib/chef/mixin/which.rb +1 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +4 -4
- data/lib/chef/mixin/windows_env_helper.rb +2 -2
- data/lib/chef/monkey_patches/net_http.rb +1 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +6 -4
- data/lib/chef/node.rb +24 -17
- data/lib/chef/node/attribute.rb +122 -113
- data/lib/chef/node/attribute_collections.rb +1 -1
- data/lib/chef/node/common_api.rb +8 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +142 -142
- data/lib/chef/node/mixin/immutablize_hash.rb +131 -131
- data/lib/chef/node_map.rb +18 -3
- data/lib/chef/null_logger.rb +8 -16
- data/lib/chef/org.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +3 -0
- data/lib/chef/platform/rebooter.rb +1 -1
- data/lib/chef/platform/service_helpers.rb +2 -2
- data/lib/chef/policy_builder/expand_node_object.rb +4 -4
- data/lib/chef/policy_builder/policyfile.rb +4 -4
- data/lib/chef/powershell.rb +2 -0
- data/lib/chef/property.rb +7 -4
- data/lib/chef/provider.rb +9 -12
- data/lib/chef/provider/apt_preference.rb +1 -2
- data/lib/chef/provider/apt_repository.rb +1 -2
- data/lib/chef/provider/apt_update.rb +2 -3
- data/lib/chef/provider/cookbook_file.rb +1 -0
- data/lib/chef/provider/cron.rb +6 -5
- data/lib/chef/provider/cron/unix.rb +1 -0
- data/lib/chef/provider/dsc_resource.rb +2 -3
- data/lib/chef/provider/dsc_script.rb +2 -2
- data/lib/chef/provider/execute.rb +1 -1
- data/lib/chef/provider/file.rb +5 -3
- data/lib/chef/provider/git.rb +4 -3
- data/lib/chef/provider/group.rb +7 -3
- data/lib/chef/provider/group/aix.rb +2 -0
- data/lib/chef/provider/group/dscl.rb +6 -3
- data/lib/chef/provider/group/groupadd.rb +1 -0
- data/lib/chef/provider/group/groupmod.rb +1 -1
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/group/suse.rb +2 -2
- data/lib/chef/provider/group/usermod.rb +1 -0
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/http_request.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +12 -6
- data/lib/chef/provider/ifconfig/aix.rb +1 -0
- data/lib/chef/provider/ifconfig/debian.rb +1 -0
- data/lib/chef/provider/launchd.rb +16 -13
- data/lib/chef/provider/lwrp_base.rb +1 -2
- data/lib/chef/provider/mount.rb +1 -0
- data/lib/chef/provider/mount/aix.rb +6 -6
- data/lib/chef/provider/mount/mount.rb +5 -4
- data/lib/chef/provider/mount/solaris.rb +4 -4
- data/lib/chef/provider/package.rb +9 -6
- data/lib/chef/provider/package/apt.rb +4 -3
- data/lib/chef/provider/package/bff.rb +1 -0
- data/lib/chef/provider/package/cab.rb +4 -2
- data/lib/chef/provider/package/chocolatey.rb +5 -2
- data/lib/chef/provider/package/dnf.rb +1 -1
- data/lib/chef/provider/package/dnf/dnf_helper.py +15 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +1 -0
- data/lib/chef/provider/package/dpkg.rb +4 -4
- data/lib/chef/provider/package/freebsd/base.rb +3 -2
- data/lib/chef/provider/package/freebsd/pkgng.rb +2 -2
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/macports.rb +1 -0
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/paludis.rb +1 -0
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +3 -2
- data/lib/chef/provider/package/rpm.rb +1 -0
- data/lib/chef/provider/package/rubygems.rb +5 -3
- data/lib/chef/provider/package/smartos.rb +1 -0
- data/lib/chef/provider/package/snap.rb +5 -1
- data/lib/chef/provider/package/solaris.rb +2 -0
- data/lib/chef/provider/package/windows/exe.rb +5 -5
- data/lib/chef/provider/package/windows/msi.rb +8 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -0
- data/lib/chef/provider/package/yum.rb +5 -2
- data/lib/chef/provider/package/yum/python_helper.rb +2 -1
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/reboot.rb +1 -1
- data/lib/chef/provider/registry_key.rb +2 -2
- data/lib/chef/provider/remote_directory.rb +1 -1
- data/lib/chef/provider/remote_file.rb +10 -9
- data/lib/chef/provider/remote_file/fetcher.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +1 -1
- data/lib/chef/provider/route.rb +4 -2
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -1
- data/lib/chef/provider/service/debian.rb +12 -11
- data/lib/chef/provider/service/freebsd.rb +1 -1
- data/lib/chef/provider/service/openbsd.rb +7 -7
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +2 -1
- data/lib/chef/provider/service/systemd.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +3 -2
- data/lib/chef/provider/service/windows.rb +7 -6
- data/lib/chef/provider/subversion.rb +4 -1
- data/lib/chef/provider/template.rb +1 -0
- data/lib/chef/provider/user.rb +5 -1
- data/lib/chef/provider/user/aix.rb +3 -0
- data/lib/chef/provider/user/dscl.rb +8 -3
- data/lib/chef/provider/user/linux.rb +1 -0
- data/lib/chef/provider/user/pw.rb +1 -0
- data/lib/chef/provider/user/solaris.rb +2 -0
- data/lib/chef/provider/user/windows.rb +2 -1
- data/lib/chef/provider/windows_env.rb +3 -0
- data/lib/chef/provider/windows_script.rb +1 -1
- data/lib/chef/provider/windows_task.rb +4 -3
- data/lib/chef/provider/yum_repository.rb +1 -2
- data/lib/chef/provider/zypper_repository.rb +2 -3
- data/lib/chef/recipe.rb +2 -1
- data/lib/chef/resource.rb +24 -15
- data/lib/chef/resource/apt_package.rb +9 -9
- data/lib/chef/resource/apt_preference.rb +9 -9
- data/lib/chef/resource/apt_repository.rb +86 -23
- data/lib/chef/resource/apt_update.rb +2 -2
- data/lib/chef/resource/archive_file.rb +13 -13
- data/lib/chef/resource/build_essential.rb +5 -4
- data/lib/chef/resource/cab_package.rb +9 -9
- data/lib/chef/resource/chef_gem.rb +4 -4
- data/lib/chef/resource/chef_handler.rb +8 -7
- data/lib/chef/resource/chocolatey_config.rb +3 -3
- data/lib/chef/resource/chocolatey_feature.rb +2 -2
- data/lib/chef/resource/chocolatey_package.rb +8 -8
- data/lib/chef/resource/chocolatey_source.rb +3 -3
- data/lib/chef/resource/cookbook_file.rb +4 -4
- data/lib/chef/resource/cron.rb +12 -12
- data/lib/chef/resource/cron_access.rb +2 -2
- data/lib/chef/resource/cron_d.rb +45 -38
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +26 -26
- data/lib/chef/resource/dnf_package.rb +20 -20
- data/lib/chef/resource/dpkg_package.rb +5 -5
- data/lib/chef/resource/dsc_resource.rb +7 -7
- data/lib/chef/resource/dsc_script.rb +9 -4
- data/lib/chef/resource/execute.rb +14 -14
- data/lib/chef/resource/file.rb +4 -4
- data/lib/chef/resource/file/verification.rb +2 -0
- data/lib/chef/resource/file/verification/systemd_unit.rb +1 -0
- data/lib/chef/resource/gem_package.rb +7 -7
- data/lib/chef/resource/git.rb +2 -2
- data/lib/chef/resource/group.rb +5 -5
- data/lib/chef/resource/homebrew_cask.rb +17 -17
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +18 -18
- data/lib/chef/resource/hostname.rb +11 -11
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +26 -26
- data/lib/chef/resource/ips_package.rb +2 -2
- data/lib/chef/resource/kernel_module.rb +25 -7
- data/lib/chef/resource/launchd.rb +105 -105
- data/lib/chef/resource/link.rb +10 -10
- data/lib/chef/resource/locale.rb +20 -20
- data/lib/chef/resource/log.rb +4 -4
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +17 -16
- data/lib/chef/resource/macosx_service.rb +1 -1
- data/lib/chef/resource/mdadm.rb +14 -14
- data/lib/chef/resource/mount.rb +24 -24
- data/lib/chef/resource/msu_package.rb +8 -8
- data/lib/chef/resource/ohai.rb +1 -1
- data/lib/chef/resource/ohai_hint.rb +7 -5
- data/lib/chef/resource/openssl_dhparam.rb +14 -14
- data/lib/chef/resource/openssl_ec_private_key.rb +16 -16
- data/lib/chef/resource/openssl_ec_public_key.rb +9 -9
- data/lib/chef/resource/openssl_rsa_private_key.rb +17 -17
- data/lib/chef/resource/openssl_rsa_public_key.rb +9 -9
- data/lib/chef/resource/openssl_x509_certificate.rb +34 -34
- data/lib/chef/resource/openssl_x509_crl.rb +17 -17
- data/lib/chef/resource/openssl_x509_request.rb +20 -20
- data/lib/chef/resource/osx_profile.rb +5 -5
- data/lib/chef/resource/package.rb +9 -9
- data/lib/chef/resource/paludis_package.rb +2 -2
- data/lib/chef/resource/powershell_package.rb +8 -8
- data/lib/chef/resource/powershell_package_source.rb +13 -13
- data/lib/chef/resource/reboot.rb +4 -4
- data/lib/chef/resource/registry_key.rb +5 -3
- data/lib/chef/resource/remote_directory.rb +20 -20
- data/lib/chef/resource/remote_file.rb +8 -7
- data/lib/chef/resource/resource_notification.rb +4 -3
- data/lib/chef/resource/rhsm_errata.rb +2 -2
- data/lib/chef/resource/rhsm_errata_level.rb +4 -4
- data/lib/chef/resource/rhsm_register.rb +14 -14
- data/lib/chef/resource/rhsm_repo.rb +3 -3
- data/lib/chef/resource/rhsm_subscription.rb +2 -2
- data/lib/chef/resource/route.rb +11 -11
- data/lib/chef/resource/scm.rb +18 -18
- data/lib/chef/resource/service.rb +27 -27
- data/lib/chef/resource/snap_package.rb +4 -4
- data/lib/chef/resource/ssh_known_hosts_entry.rb +19 -19
- data/lib/chef/resource/subversion.rb +10 -10
- data/lib/chef/resource/sudo.rb +38 -37
- data/lib/chef/resource/swap_file.rb +9 -9
- data/lib/chef/resource/sysctl.rb +20 -17
- data/lib/chef/resource/systemd_unit.rb +12 -12
- data/lib/chef/resource/template.rb +8 -8
- data/lib/chef/resource/timezone.rb +3 -2
- data/lib/chef/resource/user.rb +19 -19
- data/lib/chef/resource/user/dscl_user.rb +2 -2
- data/lib/chef/resource/user/windows_user.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +17 -16
- data/lib/chef/resource/windows_auto_run.rb +8 -8
- data/lib/chef/resource/windows_certificate.rb +13 -13
- data/lib/chef/resource/windows_dfs_folder.rb +13 -12
- data/lib/chef/resource/windows_dfs_namespace.rb +18 -18
- data/lib/chef/resource/windows_dfs_server.rb +12 -12
- data/lib/chef/resource/windows_dns_record.rb +8 -8
- data/lib/chef/resource/windows_dns_zone.rb +6 -6
- data/lib/chef/resource/windows_env.rb +6 -6
- data/lib/chef/resource/windows_feature.rb +12 -12
- data/lib/chef/resource/windows_feature_dism.rb +20 -19
- data/lib/chef/resource/windows_feature_powershell.rb +24 -22
- data/lib/chef/resource/windows_firewall_rule.rb +34 -34
- data/lib/chef/resource/windows_font.rb +4 -4
- data/lib/chef/resource/windows_package.rb +5 -5
- data/lib/chef/resource/windows_pagefile.rb +9 -8
- data/lib/chef/resource/windows_path.rb +2 -2
- data/lib/chef/resource/windows_printer.rb +15 -15
- data/lib/chef/resource/windows_printer_port.rb +14 -14
- data/lib/chef/resource/windows_script.rb +1 -1
- data/lib/chef/resource/windows_service.rb +16 -16
- data/lib/chef/resource/windows_share.rb +27 -24
- data/lib/chef/resource/windows_shortcut.rb +7 -7
- data/lib/chef/resource/windows_task.rb +53 -51
- data/lib/chef/resource/windows_uac.rb +15 -15
- data/lib/chef/resource/windows_workgroup.rb +15 -14
- data/lib/chef/resource/yum_package.rb +24 -24
- data/lib/chef/resource/yum_repository.rb +44 -44
- data/lib/chef/resource/zypper_package.rb +9 -9
- data/lib/chef/resource/zypper_repository.rb +30 -30
- data/lib/chef/resource_builder.rb +1 -0
- data/lib/chef/resource_collection.rb +6 -4
- data/lib/chef/resource_collection/resource_collection_serialization.rb +4 -3
- data/lib/chef/resource_collection/resource_list.rb +5 -3
- data/lib/chef/resource_collection/resource_set.rb +12 -8
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -0
- data/lib/chef/resource_definition.rb +5 -3
- data/lib/chef/resource_definition_list.rb +1 -1
- data/lib/chef/resource_inspector.rb +1 -1
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/role.rb +9 -7
- data/lib/chef/run_context.rb +5 -5
- data/lib/chef/run_context/cookbook_compiler.rb +5 -1
- data/lib/chef/run_list.rb +5 -4
- data/lib/chef/run_list/run_list_expansion.rb +3 -2
- data/lib/chef/run_list/run_list_item.rb +5 -5
- data/lib/chef/run_list/versioned_recipe_list.rb +1 -1
- data/lib/chef/run_status.rb +1 -1
- data/lib/chef/runner.rb +2 -4
- data/lib/chef/search/query.rb +3 -3
- data/lib/chef/shell/ext.rb +2 -2
- data/lib/chef/shell/model_wrapper.rb +2 -1
- data/lib/chef/shell/shell_session.rb +1 -1
- data/lib/chef/train_transport.rb +3 -3
- data/lib/chef/user.rb +6 -6
- data/lib/chef/user_v1.rb +13 -11
- data/lib/chef/util/diff.rb +5 -2
- data/lib/chef/util/dsc/configuration_generator.rb +6 -6
- data/lib/chef/util/dsc/lcm_output_parser.rb +2 -2
- data/lib/chef/util/dsc/local_configuration_manager.rb +2 -2
- data/lib/chef/util/dsc/resource_store.rb +2 -2
- data/lib/chef/util/file_edit.rb +1 -0
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/util/threaded_job_queue.rb +1 -1
- data/lib/chef/util/windows/logon_session.rb +5 -5
- data/lib/chef/util/windows/net_use.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +3 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/version_constraint.rb +1 -1
- data/lib/chef/whitelist.rb +1 -1
- data/lib/chef/win32/api/crypto.rb +11 -11
- data/lib/chef/win32/api/error.rb +4 -4
- data/lib/chef/win32/api/file.rb +38 -38
- data/lib/chef/win32/api/installer.rb +3 -3
- data/lib/chef/win32/api/memory.rb +4 -4
- data/lib/chef/win32/api/net.rb +38 -38
- data/lib/chef/win32/api/process.rb +2 -2
- data/lib/chef/win32/api/psapi.rb +1 -1
- data/lib/chef/win32/api/registry.rb +3 -3
- data/lib/chef/win32/api/security.rb +87 -87
- data/lib/chef/win32/api/synchronization.rb +5 -5
- data/lib/chef/win32/api/system.rb +7 -7
- data/lib/chef/win32/api/unicode.rb +3 -3
- data/lib/chef/win32/eventlog.rb +2 -2
- data/lib/chef/win32/file.rb +5 -2
- data/lib/chef/win32/file/info.rb +1 -0
- data/lib/chef/win32/file/version_info.rb +15 -14
- data/lib/chef/win32/memory.rb +1 -1
- data/lib/chef/win32/net.rb +8 -4
- data/lib/chef/win32/registry.rb +6 -1
- data/lib/chef/win32/security.rb +7 -2
- data/lib/chef/win32/security/acl.rb +2 -1
- data/lib/chef/win32/security/security_descriptor.rb +4 -2
- data/lib/chef/win32/security/sid.rb +11 -10
- data/lib/chef/win32/security/token.rb +3 -1
- data/lib/chef/win32/version.rb +3 -3
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
- data/spec/functional/assets/chefinittest +0 -0
- data/spec/functional/assets/testchefsubsys +0 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +2 -2
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -4
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +21 -21
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +3 -3
- data/spec/functional/mixin/user_context_spec.rb +3 -1
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -0
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -3
- data/spec/functional/resource/cron_spec.rb +1 -0
- data/spec/functional/resource/dnf_package_spec.rb +5 -5
- data/spec/functional/resource/dpkg_package_spec.rb +4 -4
- data/spec/functional/resource/dsc_resource_spec.rb +2 -1
- data/spec/functional/resource/dsc_script_spec.rb +7 -11
- data/spec/functional/resource/git_spec.rb +5 -5
- data/spec/functional/resource/group_spec.rb +15 -13
- data/spec/functional/resource/ifconfig_spec.rb +2 -2
- data/spec/functional/resource/link_spec.rb +2 -2
- data/spec/functional/resource/locale_spec.rb +4 -4
- data/spec/functional/resource/mount_spec.rb +3 -3
- data/spec/functional/resource/powershell_script_spec.rb +9 -8
- data/spec/functional/resource/reboot_spec.rb +1 -1
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/template_spec.rb +1 -1
- data/spec/functional/resource/user/windows_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_service_spec.rb +3 -3
- data/spec/functional/run_lock_spec.rb +3 -2
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/win32/security_spec.rb +12 -7
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +79 -81
- data/spec/integration/client/exit_code_spec.rb +2 -2
- data/spec/integration/client/ipv6_spec.rb +2 -2
- data/spec/integration/knife/chef_fs_data_store_spec.rb +25 -25
- data/spec/integration/knife/chef_repo_path_spec.rb +4 -4
- data/spec/integration/knife/config_get_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +2 -1
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/cookbook_download_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +2 -2
- data/spec/integration/knife/download_spec.rb +1 -1
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/upload_spec.rb +2 -2
- data/spec/integration/recipes/accumulator_spec.rb +4 -4
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +2 -2
- data/spec/integration/recipes/notifies_spec.rb +20 -20
- data/spec/integration/recipes/notifying_block_spec.rb +4 -4
- data/spec/integration/recipes/provider_choice.rb +1 -2
- data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
- data/spec/integration/recipes/remote_directory.rb +2 -2
- data/spec/integration/solo/solo_spec.rb +20 -20
- data/spec/spec_helper.rb +9 -11
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +1 -1
- data/spec/support/lib/chef/resource/zen_master.rb +1 -1
- data/spec/support/mock/platform.rb +2 -2
- data/spec/support/platform_helpers.rb +14 -0
- data/spec/support/platforms/win32/spec_service.rb +6 -10
- data/spec/support/shared/functional/execute_resource.rb +4 -4
- data/spec/support/shared/functional/file_resource.rb +1 -3
- data/spec/support/shared/functional/http.rb +15 -39
- data/spec/support/shared/functional/securable_resource.rb +4 -8
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +2 -1
- data/spec/support/shared/integration/app_server_support.rb +3 -4
- data/spec/support/shared/integration/integration_helper.rb +1 -0
- data/spec/support/shared/integration/knife_support.rb +5 -5
- data/spec/support/shared/unit/application_dot_d.rb +10 -4
- data/spec/support/shared/unit/file_system_support.rb +3 -2
- data/spec/support/shared/unit/platform_introspector.rb +12 -12
- data/spec/support/shared/unit/provider/file.rb +1 -1
- data/spec/support/shared/unit/script_resource.rb +1 -1
- data/spec/support/shared/unit/windows_script_resource.rb +1 -1
- data/spec/tiny_server.rb +1 -1
- data/spec/unit/api_client/registration_spec.rb +1 -1
- data/spec/unit/api_client_spec.rb +5 -5
- data/spec/unit/api_client_v1_spec.rb +6 -6
- data/spec/unit/application/client_spec.rb +8 -8
- data/spec/unit/application/exit_code_spec.rb +3 -2
- data/spec/unit/application/knife_spec.rb +1 -2
- data/spec/unit/chef_fs/config_spec.rb +3 -3
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/parallelizer.rb +1 -1
- data/spec/unit/client_spec.rb +1 -1
- data/spec/unit/config_fetcher_spec.rb +1 -1
- data/spec/unit/cookbook/metadata_spec.rb +4 -4
- data/spec/unit/cookbook/synchronizer_spec.rb +4 -4
- data/spec/unit/cookbook_loader_spec.rb +10 -10
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +1 -2
- data/spec/unit/cookbook_version_file_specificity_spec.rb +9 -9
- data/spec/unit/data_bag_item_spec.rb +8 -8
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +82 -0
- data/spec/unit/decorator_spec.rb +2 -2
- data/spec/unit/deprecated_spec.rb +2 -2
- data/spec/unit/dsl/data_query_spec.rb +3 -2
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +2 -2
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +2 -1
- data/spec/unit/encrypted_data_bag_item_spec.rb +2 -1
- data/spec/unit/environment_spec.rb +9 -9
- data/spec/unit/event_dispatch/dsl_spec.rb +1 -1
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/authenticator_spec.rb +3 -2
- data/spec/unit/http/json_input_spec.rb +1 -1
- data/spec/unit/key_spec.rb +7 -7
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +13 -8
- data/spec/unit/knife/bootstrap_spec.rb +22 -16
- data/spec/unit/knife/client_bulk_delete_spec.rb +4 -4
- data/spec/unit/knife/configure_client_spec.rb +1 -1
- data/spec/unit/knife/configure_spec.rb +1 -1
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_metadata_spec.rb +4 -4
- data/spec/unit/knife/cookbook_upload_spec.rb +4 -2
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +4 -4
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +4 -2
- data/spec/unit/knife/core/node_editor_spec.rb +8 -8
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +1 -2
- data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
- data/spec/unit/knife/data_bag_show_spec.rb +2 -1
- data/spec/unit/knife/key_create_spec.rb +1 -1
- data/spec/unit/knife/key_delete_spec.rb +3 -3
- data/spec/unit/knife/key_edit_spec.rb +4 -4
- data/spec/unit/knife/key_list_spec.rb +1 -1
- data/spec/unit/knife/key_show_spec.rb +3 -3
- data/spec/unit/knife/node_bulk_delete_spec.rb +3 -3
- data/spec/unit/knife/node_delete_spec.rb +2 -2
- data/spec/unit/knife/node_edit_spec.rb +1 -1
- data/spec/unit/knife/node_environment_set_spec.rb +6 -1
- data/spec/unit/knife/node_from_file_spec.rb +1 -1
- data/spec/unit/knife/node_policy_set_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/node_show_spec.rb +1 -1
- data/spec/unit/knife/raw_spec.rb +2 -2
- data/spec/unit/knife/role_bulk_delete_spec.rb +2 -2
- data/spec/unit/knife/role_create_spec.rb +1 -1
- data/spec/unit/knife/role_delete_spec.rb +1 -1
- data/spec/unit/knife/role_edit_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_from_file_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/status_spec.rb +2 -1
- data/spec/unit/knife/supermarket_install_spec.rb +5 -4
- data/spec/unit/knife/supermarket_share_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +35 -34
- data/spec/unit/lwrp_spec.rb +19 -19
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +10 -10
- data/spec/unit/mixin/properties_spec.rb +4 -4
- data/spec/unit/mixin/shell_out_spec.rb +3 -3
- data/spec/unit/mixin/template_spec.rb +4 -8
- data/spec/unit/mixin/unformatter_spec.rb +1 -2
- data/spec/unit/mixin/user_context_spec.rb +1 -2
- data/spec/unit/mixin/which.rb +2 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +3 -3
- data/spec/unit/node/attribute_spec.rb +12 -12
- data/spec/unit/node/immutable_collections_spec.rb +50 -50
- data/spec/unit/node/vivid_mash_spec.rb +4 -4
- data/spec/unit/node_spec.rb +12 -12
- data/spec/unit/org_spec.rb +3 -3
- data/spec/unit/policy_builder/policyfile_spec.rb +2 -2
- data/spec/unit/property/state_spec.rb +26 -25
- data/spec/unit/property/validation_spec.rb +14 -13
- data/spec/unit/property_spec.rb +11 -10
- data/spec/unit/provider/apt_update_spec.rb +6 -6
- data/spec/unit/provider/cron_spec.rb +1 -1
- data/spec/unit/provider/dsc_resource_spec.rb +6 -3
- data/spec/unit/provider/dsc_script_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +38 -38
- data/spec/unit/provider/group/dscl_spec.rb +1 -1
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/group_spec.rb +2 -3
- data/spec/unit/provider/launchd_spec.rb +16 -8
- data/spec/unit/provider/link_spec.rb +22 -11
- data/spec/unit/provider/mount/mount_spec.rb +31 -31
- data/spec/unit/provider/mount/solaris_spec.rb +11 -11
- data/spec/unit/provider/ohai_spec.rb +1 -1
- data/spec/unit/provider/osx_profile_spec.rb +5 -7
- data/spec/unit/provider/package/apt_spec.rb +5 -5
- data/spec/unit/provider/package/bff_spec.rb +1 -1
- data/spec/unit/provider/package/cab_spec.rb +1 -1
- data/spec/unit/provider/package/chocolatey_spec.rb +8 -8
- data/spec/unit/provider/package/msu_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +14 -10
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +2 -2
- data/spec/unit/provider/package/windows/exe_spec.rb +9 -9
- data/spec/unit/provider/package/windows/msi_spec.rb +7 -7
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum/yum_cache_spec.rb +1 -1
- data/spec/unit/provider/package/zypper_spec.rb +13 -4
- data/spec/unit/provider/powershell_script_spec.rb +12 -12
- data/spec/unit/provider/registry_key_spec.rb +1 -1
- data/spec/unit/provider/remote_directory_spec.rb +6 -6
- data/spec/unit/provider/route_spec.rb +11 -11
- data/spec/unit/provider/service/arch_service_spec.rb +11 -11
- data/spec/unit/provider/service/debian_service_spec.rb +2 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +23 -19
- data/spec/unit/provider/service/gentoo_service_spec.rb +2 -2
- data/spec/unit/provider/service/init_service_spec.rb +9 -9
- data/spec/unit/provider/service/invokercd_service_spec.rb +9 -9
- data/spec/unit/provider/service/macosx_spec.rb +1 -1
- data/spec/unit/provider/service/openbsd_service_spec.rb +15 -11
- data/spec/unit/provider/service/simple_service_spec.rb +5 -5
- data/spec/unit/provider/service/upstart_service_spec.rb +14 -14
- data/spec/unit/provider/service/windows_spec.rb +53 -35
- data/spec/unit/provider/subversion_spec.rb +8 -4
- data/spec/unit/provider/systemd_unit_spec.rb +146 -146
- data/spec/unit/provider/template/content_spec.rb +28 -28
- data/spec/unit/provider/windows_task_spec.rb +7 -2
- data/spec/unit/provider_resolver_spec.rb +2 -2
- data/spec/unit/provider_spec.rb +2 -4
- data/spec/unit/recipe_spec.rb +3 -3
- data/spec/unit/resource/batch_spec.rb +1 -1
- data/spec/unit/resource/cab_package_spec.rb +1 -1
- data/spec/unit/resource/chef_gem_spec.rb +1 -1
- data/spec/unit/resource/directory_spec.rb +1 -1
- data/spec/unit/resource/dnf_package_spec.rb +1 -1
- data/spec/unit/resource/dsc_resource_spec.rb +1 -1
- data/spec/unit/resource/file/verification_spec.rb +1 -2
- data/spec/unit/resource/file_spec.rb +1 -1
- data/spec/unit/resource/group_spec.rb +1 -1
- data/spec/unit/resource/kernel_module_spec.rb +1 -0
- data/spec/unit/resource/link_spec.rb +1 -1
- data/spec/unit/resource/locale_spec.rb +12 -12
- data/spec/unit/resource/osx_profile_spec.rb +2 -1
- data/spec/unit/resource/powershell_script_spec.rb +12 -7
- data/spec/unit/resource/registry_key_spec.rb +3 -3
- data/spec/unit/resource/rhsm_repo_spec.rb +6 -0
- data/spec/unit/resource/service_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/windows_env_spec.rb +1 -1
- data/spec/unit/resource/windows_service_spec.rb +7 -7
- data/spec/unit/resource/windows_task_spec.rb +2 -2
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_package_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_list_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +7 -7
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +2 -2
- data/spec/unit/resource_collection_spec.rb +4 -4
- data/spec/unit/resource_definition_spec.rb +2 -2
- data/spec/unit/resource_inspector_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +6 -4
- data/spec/unit/resource_spec.rb +21 -21
- data/spec/unit/role_spec.rb +2 -2
- data/spec/unit/run_context/cookbook_compiler_spec.rb +24 -24
- data/spec/unit/run_list/run_list_expansion_spec.rb +9 -6
- data/spec/unit/run_list_spec.rb +1 -1
- data/spec/unit/runner_spec.rb +3 -3
- data/spec/unit/search/query_spec.rb +3 -2
- data/spec/unit/shell/model_wrapper_spec.rb +1 -1
- data/spec/unit/shell/shell_session_spec.rb +8 -11
- data/spec/unit/shell_spec.rb +1 -2
- data/spec/unit/user_spec.rb +4 -4
- data/spec/unit/user_v1_spec.rb +3 -3
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/editor_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +3 -2
- data/spec/unit/util/threaded_job_queue_spec.rb +2 -2
- data/spec/unit/version_class_spec.rb +4 -4
- data/spec/unit/win32/registry_spec.rb +5 -5
- data/spec/unit/win32/security_spec.rb +2 -1
- data/tasks/bin/run_external_test +1 -1
- data/tasks/docs.rb +78 -61
- data/tasks/rspec.rb +1 -1
- metadata +5 -33
- data/lib/.DS_Store +0 -0
- data/lib/chef/.DS_Store +0 -0
- data/lib/chef/dsl/.DS_Store +0 -0
- data/lib/chef/knife/.DS_Store +0 -0
- data/lib/chef/mixin/.DS_Store +0 -0
- data/lib/chef/nil_argument.rb +0 -3
- data/lib/chef/provider/.DS_Store +0 -0
- data/lib/chef/provider/package/.DS_Store +0 -0
- data/lib/chef/provider/package/freebsd/.DS_Store +0 -0
- data/lib/chef/resource/.DS_Store +0 -0
- data/lib/chef/resource/file/.DS_Store +0 -0
- data/spec/.DS_Store +0 -0
- data/spec/data/.DS_Store +0 -0
- data/spec/data/cookbooks/.DS_Store +0 -0
- data/spec/data/cookbooks/java/.DS_Store +0 -0
- data/spec/data/cookbooks/java/files/.DS_Store +0 -0
- data/spec/data/mac_users/.DS_Store +0 -0
- data/spec/data/nodes/Tim.local.json +0 -3
- data/spec/data/nodes/Tims-MBP.local.json +0 -3
- data/spec/data/run_context/.DS_Store +0 -0
- data/spec/data/run_context/cookbooks/.DS_Store +0 -0
- data/spec/functional/.DS_Store +0 -0
- data/spec/functional/resource/.DS_Store +0 -0
- data/spec/functional/util/.DS_Store +0 -0
- data/spec/integration/.DS_Store +0 -0
- data/spec/stress/.DS_Store +0 -0
- data/spec/support/.DS_Store +0 -0
- data/spec/unit/.DS_Store +0 -0
- data/tasks/.DS_Store +0 -0
@@ -32,7 +32,7 @@ class Chef
|
|
32
32
|
Chef::Platform::ServiceHelpers.service_resource_providers.include?(:upstart)
|
33
33
|
end
|
34
34
|
|
35
|
-
UPSTART_STATE_FORMAT =
|
35
|
+
UPSTART_STATE_FORMAT = %r{\S+ \(?(start|stop)?\)? ?[/ ](\w+)}.freeze
|
36
36
|
|
37
37
|
# Returns true if the configs for the service name has upstart variable
|
38
38
|
def self.supports?(resource, action)
|
@@ -51,6 +51,7 @@ class Chef
|
|
51
51
|
def initialize(new_resource, run_context)
|
52
52
|
# TODO: re-evaluate if this is needed after integrating cookbook fix
|
53
53
|
raise ArgumentError, "run_context cannot be nil" unless run_context
|
54
|
+
|
54
55
|
super
|
55
56
|
|
56
57
|
run_context.node
|
@@ -82,7 +83,7 @@ class Chef
|
|
82
83
|
# Do not call super, only call shared requirements
|
83
84
|
shared_resource_requirements
|
84
85
|
requirements.assert(:all_actions) do |a|
|
85
|
-
|
86
|
+
unless @command_success
|
86
87
|
whyrun_msg = if @new_resource.status_command
|
87
88
|
"Provided status command #{@new_resource.status_command} failed."
|
88
89
|
else
|
@@ -103,7 +103,7 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
103
103
|
if ex.errno == ERROR_SERVICE_LOGON_FAILED
|
104
104
|
logger.error ex.message
|
105
105
|
raise Chef::Exceptions::Service,
|
106
|
-
|
106
|
+
"Service #{@new_resource} did not start due to a logon failure (error #{ERROR_SERVICE_LOGON_FAILED}): possibly the specified user '#{@new_resource.run_as_user}' does not have the 'log on as a service' privilege, or the password is incorrect."
|
107
107
|
else
|
108
108
|
raise ex
|
109
109
|
end
|
@@ -209,10 +209,10 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
209
209
|
end
|
210
210
|
|
211
211
|
converge_if_changed :service_type, :startup_type, :error_control,
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
212
|
+
:binary_path_name, :load_order_group, :dependencies,
|
213
|
+
:run_as_user, :display_name, :description do
|
214
|
+
Win32::Service.configure(windows_service_config(:configure))
|
215
|
+
end
|
216
216
|
|
217
217
|
converge_delayed_start
|
218
218
|
end
|
@@ -307,7 +307,7 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
307
307
|
|
308
308
|
# remove characters that make for broken or wonky filenames.
|
309
309
|
def clean_username_for_path(username)
|
310
|
-
username.gsub(
|
310
|
+
username.gsub(%r{[/\\. ]+}, "_")
|
311
311
|
end
|
312
312
|
|
313
313
|
def canonicalize_username(username)
|
@@ -330,6 +330,7 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
330
330
|
loop do
|
331
331
|
break if current_state == desired_state
|
332
332
|
raise Timeout::Error if ( retries += 1 ) > resource_timeout
|
333
|
+
|
333
334
|
sleep 1
|
334
335
|
end
|
335
336
|
end
|
@@ -36,7 +36,7 @@ class Chef
|
|
36
36
|
def load_current_resource
|
37
37
|
@current_resource = Chef::Resource::Subversion.new(new_resource.name)
|
38
38
|
|
39
|
-
unless
|
39
|
+
unless %i{export force_export}.include?(Array(new_resource.action).first)
|
40
40
|
if current_revision = find_current_revision
|
41
41
|
current_resource.revision current_revision
|
42
42
|
end
|
@@ -137,6 +137,7 @@ class Chef
|
|
137
137
|
|
138
138
|
def find_current_revision
|
139
139
|
return nil unless ::File.exist?(::File.join(new_resource.destination, ".svn"))
|
140
|
+
|
140
141
|
command = scm(:info)
|
141
142
|
svn_info = shell_out!(command, run_options(cwd: cwd, returns: [0, 1])).stdout
|
142
143
|
|
@@ -175,6 +176,7 @@ class Chef
|
|
175
176
|
rev = (repo_attrs["Last Changed Rev"] || repo_attrs["Revision"])
|
176
177
|
rev.strip! if rev
|
177
178
|
raise "Could not parse `svn info` data: #{svn_info}" if repo_attrs.empty?
|
179
|
+
|
178
180
|
logger.trace "#{new_resource} resolved revision #{new_resource.revision} to #{rev}"
|
179
181
|
rev
|
180
182
|
end
|
@@ -185,6 +187,7 @@ class Chef
|
|
185
187
|
# and will respond appropriately.
|
186
188
|
def authentication
|
187
189
|
return "" unless new_resource.svn_username
|
190
|
+
|
188
191
|
result = "--username #{new_resource.svn_username} "
|
189
192
|
result << "--password #{new_resource.svn_password} "
|
190
193
|
result
|
data/lib/chef/provider/user.rb
CHANGED
@@ -109,7 +109,7 @@ class Chef
|
|
109
109
|
def compare_user
|
110
110
|
return true if !new_resource.home.nil? && Pathname.new(new_resource.home).cleanpath != Pathname.new(current_resource.home).cleanpath
|
111
111
|
|
112
|
-
|
112
|
+
%i{comment shell password uid gid}.each do |user_attrib|
|
113
113
|
return true if !new_resource.send(user_attrib).nil? && new_resource.send(user_attrib).to_s != current_resource.send(user_attrib).to_s
|
114
114
|
end
|
115
115
|
|
@@ -132,6 +132,7 @@ class Chef
|
|
132
132
|
|
133
133
|
def action_remove
|
134
134
|
return unless @user_exists
|
135
|
+
|
135
136
|
converge_by("remove user #{new_resource.username}") do
|
136
137
|
remove_user
|
137
138
|
logger.info("#{new_resource} removed")
|
@@ -140,6 +141,7 @@ class Chef
|
|
140
141
|
|
141
142
|
def action_manage
|
142
143
|
return unless @user_exists && compare_user
|
144
|
+
|
143
145
|
converge_by("manage user #{new_resource.username}") do
|
144
146
|
manage_user
|
145
147
|
logger.info("#{new_resource} managed")
|
@@ -148,6 +150,7 @@ class Chef
|
|
148
150
|
|
149
151
|
def action_modify
|
150
152
|
return unless compare_user
|
153
|
+
|
151
154
|
converge_by("modify user #{new_resource.username}") do
|
152
155
|
manage_user
|
153
156
|
logger.info("#{new_resource} modified")
|
@@ -213,6 +216,7 @@ class Chef
|
|
213
216
|
def updating_home?
|
214
217
|
return false if new_resource.home.nil?
|
215
218
|
return true if current_resource.home.nil?
|
219
|
+
|
216
220
|
# Pathname#cleanpath matches more edge conditions than File.expand_path()
|
217
221
|
new_resource.home && Pathname.new(current_resource.home).cleanpath != Pathname.new(new_resource.home).cleanpath
|
218
222
|
end
|
@@ -32,6 +32,7 @@ class Chef
|
|
32
32
|
add_password
|
33
33
|
manage_home
|
34
34
|
return if universal_options.empty? && usermod_options.empty?
|
35
|
+
|
35
36
|
shell_out!("usermod", universal_options, usermod_options, new_resource.username)
|
36
37
|
end
|
37
38
|
|
@@ -107,6 +108,7 @@ class Chef
|
|
107
108
|
|
108
109
|
def add_password
|
109
110
|
return unless current_resource.password != new_resource.password && new_resource.password
|
111
|
+
|
110
112
|
logger.trace("#{new_resource.username} setting password to #{new_resource.password}")
|
111
113
|
command = "echo '#{new_resource.username}:#{new_resource.password}' | chpasswd -e"
|
112
114
|
shell_out!(command)
|
@@ -115,6 +117,7 @@ class Chef
|
|
115
117
|
# Aix specific handling to update users home directory.
|
116
118
|
def manage_home
|
117
119
|
return unless updating_home? && new_resource.manage_home
|
120
|
+
|
118
121
|
# -m option does not work on aix, so move dir.
|
119
122
|
if ::File.directory?(current_resource.home)
|
120
123
|
logger.trace("Changing users home directory from #{current_resource.home} to #{new_resource.home}")
|
@@ -128,7 +128,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
128
128
|
# Convert the salt from Base64 encoding to hex before consuming them
|
129
129
|
current_resource.salt(shadow_hash["SALTED-SHA512-PBKDF2"]["salt"].string.unpack("H*").first)
|
130
130
|
else
|
131
|
-
raise(Chef::Exceptions::User, "Unknown shadow_hash format: #{shadow_hash.keys.join(
|
131
|
+
raise(Chef::Exceptions::User, "Unknown shadow_hash format: #{shadow_hash.keys.join(" ")}")
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
@@ -230,6 +230,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
230
230
|
#
|
231
231
|
def uid_used?(uid)
|
232
232
|
return false unless uid
|
233
|
+
|
233
234
|
users_uids = run_dscl("list", "/Users", "uid").split("\n")
|
234
235
|
uid_map = users_uids.each_with_object({}) do |tuid, tmap|
|
235
236
|
x = tuid.split
|
@@ -290,7 +291,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
290
291
|
end
|
291
292
|
|
292
293
|
def validate_home_dir_specification!
|
293
|
-
unless new_resource.home =~
|
294
|
+
unless new_resource.home =~ %r{^/}
|
294
295
|
raise(Chef::Exceptions::InvalidHomeDirectory, "invalid path spec for User: '#{new_resource.username}', home directory: '#{new_resource.home}'")
|
295
296
|
end
|
296
297
|
end
|
@@ -343,7 +344,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
343
344
|
# Shadow info is saved as binary plist. Convert the info to binary plist.
|
344
345
|
shadow_info_binary = StringIO.new
|
345
346
|
shell_out("plutil", "-convert", "binary1", "-o", "-", "-",
|
346
|
-
|
347
|
+
input: shadow_info.to_plist, live_stream: shadow_info_binary)
|
347
348
|
|
348
349
|
if user_info.nil?
|
349
350
|
# User is just created. read_user_info() will read the fresh information
|
@@ -562,6 +563,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
562
563
|
#
|
563
564
|
def dscl_set(user_hash, key, value)
|
564
565
|
raise "Unknown dscl key #{key}" unless DSCL_PROPERTY_MAP.keys.include?(key)
|
566
|
+
|
565
567
|
user_hash[DSCL_PROPERTY_MAP[key]] = [ value ]
|
566
568
|
user_hash
|
567
569
|
end
|
@@ -571,6 +573,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
571
573
|
#
|
572
574
|
def dscl_get(user_hash, key)
|
573
575
|
raise "Unknown dscl key #{key}" unless DSCL_PROPERTY_MAP.keys.include?(key)
|
576
|
+
|
574
577
|
# DSCL values are set as arrays
|
575
578
|
value = user_hash[DSCL_PROPERTY_MAP[key]]
|
576
579
|
value.nil? ? value : value.first
|
@@ -585,12 +588,14 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
585
588
|
return "" if ( args.first =~ /^delete/ ) && ( result.exitstatus != 0 )
|
586
589
|
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") unless result.exitstatus == 0
|
587
590
|
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") if result.stdout =~ /No such key: /
|
591
|
+
|
588
592
|
result.stdout
|
589
593
|
end
|
590
594
|
|
591
595
|
def run_plutil(*args)
|
592
596
|
result = shell_out("plutil", "-#{args[0]}", args[1..-1])
|
593
597
|
raise(Chef::Exceptions::PlistUtilCommandFailed, "plutil error: #{result.inspect}") unless result.exitstatus == 0
|
598
|
+
|
594
599
|
if result.stdout.encoding == Encoding::ASCII_8BIT
|
595
600
|
result.stdout.encode("utf-8", "binary", undef: :replace, invalid: :replace, replace: "?")
|
596
601
|
else
|
@@ -93,6 +93,7 @@ class Chef
|
|
93
93
|
# checking "does not exist" has to come before exit code handling since centos and ubuntu differ in exit codes
|
94
94
|
if passwd_s.stderr =~ /does not exist/
|
95
95
|
return false if whyrun_mode?
|
96
|
+
|
96
97
|
raise Chef::Exceptions::User, "User #{new_resource.username} does not exist when checking lock status for #{new_resource}"
|
97
98
|
end
|
98
99
|
|
@@ -77,6 +77,7 @@ class Chef
|
|
77
77
|
field_list.sort_by { |a| a[0] }.each do |field, option|
|
78
78
|
field_symbol = field.to_sym
|
79
79
|
next unless current_resource.send(field_symbol) != new_resource.send(field_symbol)
|
80
|
+
|
80
81
|
if new_resource.send(field_symbol)
|
81
82
|
logger.trace("#{new_resource} setting #{field} to #{new_resource.send(field_symbol)}")
|
82
83
|
opts << option
|
@@ -37,6 +37,7 @@ class Chef
|
|
37
37
|
def manage_user
|
38
38
|
manage_password
|
39
39
|
return if universal_options.empty? && usermod_options.empty?
|
40
|
+
|
40
41
|
shell_out!("usermod", universal_options, usermod_options, new_resource.username)
|
41
42
|
end
|
42
43
|
|
@@ -112,6 +113,7 @@ class Chef
|
|
112
113
|
|
113
114
|
def manage_password
|
114
115
|
return unless current_resource.password != new_resource.password && new_resource.password
|
116
|
+
|
115
117
|
logger.trace("#{new_resource} setting password to #{new_resource.password}")
|
116
118
|
write_shadow_file
|
117
119
|
end
|
@@ -65,7 +65,7 @@ class Chef
|
|
65
65
|
logger.trace("#{new_resource} password has changed")
|
66
66
|
return true
|
67
67
|
end
|
68
|
-
|
68
|
+
%i{uid comment home shell full_name}.any? do |user_attrib|
|
69
69
|
!new_resource.send(user_attrib).nil? && new_resource.send(user_attrib) != current_resource.send(user_attrib)
|
70
70
|
end
|
71
71
|
end
|
@@ -110,6 +110,7 @@ class Chef
|
|
110
110
|
field_symbol = field.to_sym
|
111
111
|
next unless current_resource.send(field_symbol) != new_resource.send(field_symbol)
|
112
112
|
next unless new_resource.send(field_symbol)
|
113
|
+
|
113
114
|
unless field_symbol == :password
|
114
115
|
logger.trace("#{new_resource} setting #{field} to #{new_resource.send(field_symbol)}")
|
115
116
|
end
|
@@ -67,6 +67,7 @@ class Chef
|
|
67
67
|
new_values.inject(0) do |index, val|
|
68
68
|
next_index = current_values.find_index val
|
69
69
|
return true if next_index.nil? || next_index < index
|
70
|
+
|
70
71
|
next_index
|
71
72
|
end
|
72
73
|
false
|
@@ -99,6 +100,7 @@ class Chef
|
|
99
100
|
# after we removed the element.
|
100
101
|
def delete_element
|
101
102
|
return false unless new_resource.delim # no delim: delete the key
|
103
|
+
|
102
104
|
needs_delete = new_values.any? { |v| current_values.include?(v) }
|
103
105
|
if !needs_delete
|
104
106
|
logger.trace("#{new_resource} element '#{new_resource.value}' does not exist")
|
@@ -191,6 +193,7 @@ class Chef
|
|
191
193
|
|
192
194
|
def env_obj(key_name)
|
193
195
|
return @env_obj if @env_obj
|
196
|
+
|
194
197
|
wmi = WmiLite::Wmi.new
|
195
198
|
# Note that by design this query is case insensitive with regard to key_name
|
196
199
|
environment_variables = wmi.query("select * from Win32_Environment where name = '#{key_name}'")
|
@@ -446,7 +446,7 @@ class Chef
|
|
446
446
|
def days_of_month
|
447
447
|
days_of_month = []
|
448
448
|
if new_resource.day
|
449
|
-
days = new_resource.day.split(",")
|
449
|
+
days = new_resource.day.to_s.split(",")
|
450
450
|
days.map! { |day| day.to_s.strip.upcase }
|
451
451
|
days.delete("LAST") if days.include?("LAST")
|
452
452
|
days.delete("LASTDAY") if days.include?("LASTDAY")
|
@@ -466,7 +466,7 @@ class Chef
|
|
466
466
|
if new_resource.day
|
467
467
|
# this line of code is just to support backward compatibility of wild card *
|
468
468
|
new_resource.day = "mon, tue, wed, thu, fri, sat, sun" if new_resource.day == "*" && new_resource.frequency == :weekly
|
469
|
-
days = new_resource.day.split(",")
|
469
|
+
days = new_resource.day.to_s.split(",")
|
470
470
|
days.map! { |day| day.to_s.strip.upcase }
|
471
471
|
weeks_days = get_binary_values_from_constants(days, DAYS_OF_WEEK)
|
472
472
|
else
|
@@ -603,7 +603,8 @@ class Chef
|
|
603
603
|
validate << "Command" if new_resource.command.nil? || new_resource.command.empty?
|
604
604
|
validate << "Task Name" if new_resource.task_name.nil? || new_resource.task_name.empty?
|
605
605
|
return true if validate.empty?
|
606
|
-
|
606
|
+
|
607
|
+
raise Chef::Exceptions::ValidationFailed.new "Value for '#{validate.join(", ")}' option cannot be empty"
|
607
608
|
end
|
608
609
|
|
609
610
|
# rubocop:disable Style/StringLiteralsInInterpolation
|
@@ -28,8 +28,7 @@ class Chef
|
|
28
28
|
class ZypperRepository < Chef::Provider
|
29
29
|
provides :zypper_repository, platform_family: "suse"
|
30
30
|
|
31
|
-
def load_current_resource
|
32
|
-
end
|
31
|
+
def load_current_resource; end
|
33
32
|
|
34
33
|
action :create do
|
35
34
|
if new_resource.gpgautoimportkeys
|
@@ -135,7 +134,7 @@ class Chef
|
|
135
134
|
def key_fingerprint(key_path)
|
136
135
|
so = shell_out!("gpg --with-fingerprint #{key_path}")
|
137
136
|
# expected output and match: http://rubular.com/r/BpfMjxySQM
|
138
|
-
fingerprint =
|
137
|
+
fingerprint = %r{pub\s*\S*/(\S*)}.match(so.stdout)[1].downcase
|
139
138
|
logger.trace("GPG fingerprint of key at #{key_path} is #{fingerprint}")
|
140
139
|
fingerprint
|
141
140
|
end
|
data/lib/chef/recipe.rb
CHANGED
@@ -47,6 +47,7 @@ class Chef
|
|
47
47
|
[ $1.to_sym, $2 ]
|
48
48
|
when /^::(.+)/
|
49
49
|
raise "current_cookbook is nil, cannot resolve #{recipe_name}" if current_cookbook.nil?
|
50
|
+
|
50
51
|
[ current_cookbook.to_sym, $1 ]
|
51
52
|
else
|
52
53
|
[ recipe_name.to_sym, "default" ]
|
@@ -58,7 +59,7 @@ class Chef
|
|
58
59
|
@recipe_name = recipe_name
|
59
60
|
@run_context = run_context
|
60
61
|
# TODO: 5/19/2010 cw/tim: determine whether this can be removed
|
61
|
-
@params =
|
62
|
+
@params = {}
|
62
63
|
end
|
63
64
|
|
64
65
|
# Used in DSL mixins
|
data/lib/chef/resource.rb
CHANGED
@@ -121,7 +121,7 @@ class Chef
|
|
121
121
|
end
|
122
122
|
|
123
123
|
@before = nil
|
124
|
-
@params =
|
124
|
+
@params = {}
|
125
125
|
@provider = nil
|
126
126
|
@allowed_actions = self.class.allowed_actions.to_a
|
127
127
|
@action = self.class.default_action
|
@@ -516,6 +516,7 @@ class Chef
|
|
516
516
|
result[property.name] = send(property.name)
|
517
517
|
end
|
518
518
|
return result.values.first if identity_properties.size == 1
|
519
|
+
|
519
520
|
result
|
520
521
|
end
|
521
522
|
|
@@ -581,6 +582,7 @@ class Chef
|
|
581
582
|
|
582
583
|
begin
|
583
584
|
return if should_skip?(action)
|
585
|
+
|
584
586
|
provider_for_action(action).run_action
|
585
587
|
rescue StandardError => e
|
586
588
|
if ignore_failure
|
@@ -629,6 +631,7 @@ class Chef
|
|
629
631
|
|
630
632
|
def to_text
|
631
633
|
return "suppressed sensitive resource output" if sensitive
|
634
|
+
|
632
635
|
text = "# Declared in #{@source_line}\n\n"
|
633
636
|
text << "#{resource_name}(\"#{name}\") do\n"
|
634
637
|
|
@@ -641,7 +644,7 @@ class Chef
|
|
641
644
|
end
|
642
645
|
end
|
643
646
|
|
644
|
-
ivars = instance_variables.map
|
647
|
+
ivars = instance_variables.map(&:to_sym) - HIDDEN_IVARS
|
645
648
|
ivars.each do |ivar|
|
646
649
|
iv = ivar.to_s.sub(/^@/, "")
|
647
650
|
if all_props.keys.include?(iv)
|
@@ -662,7 +665,7 @@ class Chef
|
|
662
665
|
end
|
663
666
|
|
664
667
|
def inspect
|
665
|
-
ivars = instance_variables.map
|
668
|
+
ivars = instance_variables.map(&:to_sym) - FORBIDDEN_IVARS
|
666
669
|
ivars.inject("<#{self}") do |str, ivar|
|
667
670
|
str << " #{ivar}: #{instance_variable_get(ivar).inspect}"
|
668
671
|
end << ">"
|
@@ -672,8 +675,8 @@ class Chef
|
|
672
675
|
# is loaded. activesupport will call as_json and skip over to_json. This ensure
|
673
676
|
# json is encoded as expected
|
674
677
|
def as_json(*a)
|
675
|
-
safe_ivars = instance_variables.map
|
676
|
-
instance_vars =
|
678
|
+
safe_ivars = instance_variables.map(&:to_sym) - FORBIDDEN_IVARS
|
679
|
+
instance_vars = {}
|
677
680
|
safe_ivars.each do |iv|
|
678
681
|
instance_vars[iv.to_s.sub(/^@/, "")] = instance_variable_get(iv)
|
679
682
|
end
|
@@ -695,10 +698,11 @@ class Chef
|
|
695
698
|
self.class.state_properties.each do |p|
|
696
699
|
result[p.name] = p.get(self)
|
697
700
|
end
|
698
|
-
safe_ivars = instance_variables.map
|
701
|
+
safe_ivars = instance_variables.map(&:to_sym) - FORBIDDEN_IVARS
|
699
702
|
safe_ivars.each do |iv|
|
700
703
|
key = iv.to_s.sub(/^@/, "").to_sym
|
701
704
|
next if result.key?(key)
|
705
|
+
|
702
706
|
result[key] = instance_variable_get(iv)
|
703
707
|
end
|
704
708
|
result
|
@@ -746,7 +750,7 @@ class Chef
|
|
746
750
|
# @see Chef::Resource.action_class
|
747
751
|
#
|
748
752
|
def provider(arg = nil)
|
749
|
-
klass = if arg.
|
753
|
+
klass = if arg.is_a?(String) || arg.is_a?(Symbol)
|
750
754
|
lookup_provider_constant(arg)
|
751
755
|
else
|
752
756
|
arg
|
@@ -779,7 +783,7 @@ class Chef
|
|
779
783
|
# @return [Array<Symbol>] All property names with desired state.
|
780
784
|
#
|
781
785
|
def self.state_attrs(*names)
|
782
|
-
state_properties(*names).map
|
786
|
+
state_properties(*names).map(&:name)
|
783
787
|
end
|
784
788
|
|
785
789
|
#
|
@@ -809,8 +813,9 @@ class Chef
|
|
809
813
|
def self.identity_property(name = nil)
|
810
814
|
result = identity_properties(*Array(name))
|
811
815
|
if result.size > 1
|
812
|
-
raise Chef::Exceptions::MultipleIdentityError, "identity_property cannot be called on an object with more than one identity property (#{result.map
|
816
|
+
raise Chef::Exceptions::MultipleIdentityError, "identity_property cannot be called on an object with more than one identity property (#{result.map(&:name).join(", ")})."
|
813
817
|
end
|
818
|
+
|
814
819
|
result.first
|
815
820
|
end
|
816
821
|
|
@@ -830,7 +835,8 @@ class Chef
|
|
830
835
|
#
|
831
836
|
def self.identity_attr(name = nil)
|
832
837
|
property = identity_property(name)
|
833
|
-
return nil
|
838
|
+
return nil unless property
|
839
|
+
|
834
840
|
property.name
|
835
841
|
end
|
836
842
|
|
@@ -951,7 +957,7 @@ class Chef
|
|
951
957
|
if name
|
952
958
|
name = name.to_sym
|
953
959
|
# If our class is not already providing this name, provide it.
|
954
|
-
|
960
|
+
unless Chef::ResourceResolver.includes_handler?(name, self)
|
955
961
|
provides name, canonical: true
|
956
962
|
end
|
957
963
|
@resource_name = name
|
@@ -1104,6 +1110,7 @@ class Chef
|
|
1104
1110
|
if provider.whyrun_mode? && !provider.whyrun_supported?
|
1105
1111
|
raise "Cannot retrieve #{self.class.current_resource} in why-run mode: #{provider} does not support why-run"
|
1106
1112
|
end
|
1113
|
+
|
1107
1114
|
provider.load_current_resource
|
1108
1115
|
provider.current_resource
|
1109
1116
|
end
|
@@ -1190,9 +1197,9 @@ class Chef
|
|
1190
1197
|
#
|
1191
1198
|
|
1192
1199
|
# FORBIDDEN_IVARS do not show up when the resource is converted to JSON (ie. hidden from data_collector and sending to the chef server via #to_json/to_h/as_json/inspect)
|
1193
|
-
FORBIDDEN_IVARS =
|
1200
|
+
FORBIDDEN_IVARS = %i{@run_context @logger @not_if @only_if @enclosing_provider @description @introduced @examples @validation_message @deprecated @default_description @skip_docs @executed_by_runner}.freeze
|
1194
1201
|
# HIDDEN_IVARS do not show up when the resource is displayed to the user as text (ie. in the error inspector output via #to_text)
|
1195
|
-
HIDDEN_IVARS =
|
1202
|
+
HIDDEN_IVARS = %i{@allowed_actions @resource_name @source_line @run_context @logger @name @not_if @only_if @elapsed_time @enclosing_provider @description @introduced @examples @validation_message @deprecated @default_description @skip_docs @executed_by_runner}.freeze
|
1196
1203
|
|
1197
1204
|
include Chef::Mixin::ConvertToClassName
|
1198
1205
|
extend Chef::Mixin::ConvertToClassName
|
@@ -1289,7 +1296,7 @@ class Chef
|
|
1289
1296
|
# life as well.
|
1290
1297
|
@@sorted_descendants = nil
|
1291
1298
|
def self.sorted_descendants
|
1292
|
-
@@sorted_descendants ||= descendants.sort_by
|
1299
|
+
@@sorted_descendants ||= descendants.sort_by(&:to_s)
|
1293
1300
|
end
|
1294
1301
|
|
1295
1302
|
def self.inherited(child)
|
@@ -1376,6 +1383,7 @@ class Chef
|
|
1376
1383
|
# the declared key we want to fall back on the old to_s key.
|
1377
1384
|
def declared_key
|
1378
1385
|
return to_s if declared_type.nil?
|
1386
|
+
|
1379
1387
|
"#{declared_type}[#{@name}]"
|
1380
1388
|
end
|
1381
1389
|
|
@@ -1542,6 +1550,7 @@ class Chef
|
|
1542
1550
|
def self.resource_for_node(short_name, node)
|
1543
1551
|
klass = Chef::ResourceResolver.resolve(short_name, node: node)
|
1544
1552
|
raise Chef::Exceptions::NoSuchResourceType.new(short_name, node) if klass.nil?
|
1553
|
+
|
1545
1554
|
klass
|
1546
1555
|
end
|
1547
1556
|
|
@@ -1580,7 +1589,7 @@ class Chef
|
|
1580
1589
|
def self.remove_canonical_dsl
|
1581
1590
|
if @resource_name
|
1582
1591
|
remaining = Chef.resource_handler_map.delete_canonical(@resource_name, self)
|
1583
|
-
|
1592
|
+
unless remaining
|
1584
1593
|
Chef::DSL::Resources.remove_resource_dsl(@resource_name)
|
1585
1594
|
end
|
1586
1595
|
end
|