chef 15.17.4-universal-mingw32 → 16.0.257-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/Gemfile +14 -20
- data/README.md +6 -6
- data/Rakefile +18 -23
- data/chef-universal-mingw32.gemspec +4 -4
- data/chef.gemspec +10 -26
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +20 -3
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- data/lib/chef/cookbook_version.rb +40 -5
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/deprecated.rb +1 -9
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +2 -3
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -2
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/knife.rb +1 -3
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +93 -97
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -50
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +1 -2
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_recind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +3 -26
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +13 -1
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/template.rb +0 -1
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +7 -36
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +22 -4
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -8
- data/lib/chef/provider/file.rb +5 -5
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +36 -51
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/solaris.rb +1 -0
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +3 -4
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -1
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
- data/lib/chef/provider/package/homebrew.rb +106 -42
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/powershell.rb +2 -6
- data/lib/chef/provider/package/rubygems.rb +29 -2
- data/lib/chef/provider/package/snap.rb +27 -96
- data/lib/chef/provider/package/windows.rb +3 -2
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +0 -8
- data/lib/chef/provider/package/yum/yum_helper.py +0 -4
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +4 -10
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +3 -3
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +31 -29
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -12
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +3 -3
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +10 -9
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +7 -9
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +11 -31
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +41 -56
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +149 -0
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +69 -2
- data/lib/chef/resource/apt_repository.rb +337 -5
- data/lib/chef/resource/apt_update.rb +52 -1
- data/lib/chef/resource/archive_file.rb +9 -29
- data/lib/chef/resource/bash.rb +2 -0
- data/lib/chef/resource/bff_package.rb +9 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +42 -48
- data/lib/chef/resource/cab_package.rb +8 -1
- data/lib/chef/resource/chef_client_cron.rb +225 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
- data/lib/chef/resource/chef_gem.rb +9 -16
- data/lib/chef/resource/chef_handler.rb +2 -1
- data/lib/chef/resource/chef_sleep.rb +0 -1
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +3 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -1
- data/lib/chef/resource/chocolatey_package.rb +2 -1
- data/lib/chef/resource/chocolatey_source.rb +2 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron.rb +22 -68
- data/lib/chef/resource/cron_access.rb +8 -15
- data/lib/chef/resource/cron_d.rb +9 -75
- data/lib/chef/resource/csh.rb +2 -0
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +4 -4
- data/lib/chef/resource/dnf_package.rb +2 -3
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +13 -12
- data/lib/chef/resource/file.rb +3 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +14 -6
- data/lib/chef/resource/group.rb +4 -1
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +5 -4
- data/lib/chef/resource/homebrew_package.rb +4 -2
- data/lib/chef/resource/homebrew_tap.rb +2 -1
- data/lib/chef/resource/hostname.rb +41 -36
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +10 -2
- data/lib/chef/resource/kernel_module.rb +29 -29
- data/lib/chef/resource/ksh.rb +2 -0
- data/lib/chef/resource/launchd.rb +6 -6
- data/lib/chef/resource/link.rb +1 -23
- data/lib/chef/resource/locale.rb +58 -24
- data/lib/chef/resource/log.rb +12 -1
- data/lib/chef/resource/lwrp_base.rb +1 -8
- data/lib/chef/resource/macos_userdefaults.rb +9 -6
- data/lib/chef/resource/macosx_service.rb +2 -1
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +62 -2
- data/lib/chef/resource/mount.rb +3 -0
- data/lib/chef/resource/msu_package.rb +13 -1
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +19 -3
- data/lib/chef/resource/ohai_hint.rb +3 -12
- data/lib/chef/resource/openbsd_package.rb +9 -1
- data/lib/chef/resource/openssl_dhparam.rb +10 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
- data/lib/chef/resource/openssl_x509_crl.rb +12 -1
- data/lib/chef/resource/openssl_x509_request.rb +37 -1
- data/lib/chef/resource/osx_profile.rb +3 -2
- data/lib/chef/resource/package.rb +2 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +12 -3
- data/lib/chef/resource/perl.rb +2 -0
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +13 -3
- data/lib/chef/resource/powershell_package.rb +1 -3
- data/lib/chef/resource/powershell_package_source.rb +3 -1
- data/lib/chef/resource/powershell_script.rb +7 -17
- data/lib/chef/resource/python.rb +2 -0
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +1 -2
- data/lib/chef/resource/remote_directory.rb +2 -0
- data/lib/chef/resource/remote_file.rb +2 -0
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -1
- data/lib/chef/resource/rhsm_subscription.rb +4 -1
- data/lib/chef/resource/route.rb +5 -1
- data/lib/chef/resource/rpm_package.rb +9 -2
- data/lib/chef/resource/ruby.rb +2 -0
- data/lib/chef/resource/ruby_block.rb +1 -1
- data/lib/chef/resource/scm/_scm.rb +48 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
- data/lib/chef/resource/script.rb +6 -3
- data/lib/chef/resource/service.rb +6 -7
- data/lib/chef/resource/smartos_package.rb +9 -1
- data/lib/chef/resource/snap_package.rb +3 -1
- data/lib/chef/resource/solaris_package.rb +9 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +9 -9
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +5 -3
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/systemd_unit.rb +4 -2
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +7 -18
- data/lib/chef/resource/user.rb +1 -3
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +114 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +19 -6
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +2 -3
- data/lib/chef/resource/windows_feature.rb +2 -2
- data/lib/chef/resource/windows_feature_dism.rb +9 -22
- data/lib/chef/resource/windows_feature_powershell.rb +17 -82
- data/lib/chef/resource/windows_firewall_rule.rb +119 -10
- data/lib/chef/resource/windows_font.rb +1 -3
- data/lib/chef/resource/windows_package.rb +13 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -1
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +90 -0
- data/lib/chef/resource/windows_service.rb +45 -31
- data/lib/chef/resource/windows_share.rb +3 -7
- data/lib/chef/resource/windows_shortcut.rb +0 -1
- data/lib/chef/resource/windows_task.rb +14 -15
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +157 -0
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource/yum_repository.rb +2 -1
- data/lib/chef/resource/zypper_package.rb +3 -2
- data/lib/chef/resource/zypper_repository.rb +2 -1
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +6 -6
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/shell.rb +23 -32
- data/lib/chef/shell/shell_session.rb +0 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +1 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +3 -11
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/security.rb +40 -2
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +27 -23
- data/spec/functional/resource/aix_service_spec.rb +1 -0
- data/spec/functional/resource/aixinit_service_spec.rb +8 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -0
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +11 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +6 -5
- data/spec/functional/resource/link_spec.rb +17 -17
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/user/dscl_spec.rb +2 -2
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -2
- data/spec/functional/shell_spec.rb +6 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +30 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +50 -21
- data/spec/integration/recipes/notifying_block_spec.rb +9 -6
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
- data/spec/integration/recipes/resource_load_spec.rb +133 -13
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +44 -19
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -18
- data/spec/support/shared/integration/knife_support.rb +14 -8
- data/spec/unit/application/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -9
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +38 -17
- data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +36 -54
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/ssh_spec.rb +10 -113
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +3 -5
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/securable_spec.rb +1 -0
- data/spec/unit/mixin/user_context_spec.rb +9 -1
- data/spec/unit/node/attribute_spec.rb +2 -2
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +18 -15
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +9 -11
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +44 -4
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +221 -31
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +53 -30
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/arch_service_spec.rb +2 -3
- data/spec/unit/provider/service/debian_service_spec.rb +35 -14
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +6 -2
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/systemd_unit_spec.rb +24 -28
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +25 -75
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/provider_spec.rb +0 -1
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/archive_file_spec.rb +2 -11
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +4 -1
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -5
- data/spec/unit/resource_spec.rb +11 -4
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
- data/spec/unit/win32/security_spec.rb +3 -4
- data/tasks/rspec.rb +1 -1
- metadata +116 -87
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/functional/resource/windows_font_spec.rb +0 -49
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -24,7 +24,6 @@ class Chef
|
|
24
24
|
class HttpRequest < Chef::Resource
|
25
25
|
unified_mode true
|
26
26
|
|
27
|
-
resource_name :http_request
|
28
27
|
provides :http_request
|
29
28
|
|
30
29
|
description "Use the http_request resource to send an HTTP request (GET, PUT, POST, DELETE, HEAD, or OPTIONS) with an arbitrary message. This resource is often useful when custom callbacks are necessary."
|
@@ -22,14 +22,22 @@ require_relative "../provider/package/ips"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class IpsPackage < ::Chef::Resource::Package
|
25
|
-
|
26
|
-
|
25
|
+
unified_mode true
|
26
|
+
|
27
27
|
provides :ips_package
|
28
|
+
provides :package, os: "solaris2"
|
28
29
|
|
29
30
|
description "Use the ips_package resource to manage packages (using Image Packaging System (IPS)) on the Solaris 11 platform."
|
30
31
|
|
31
32
|
allowed_actions :install, :remove, :upgrade
|
32
33
|
|
34
|
+
property :package_name, String,
|
35
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
36
|
+
identity: true
|
37
|
+
|
38
|
+
property :version, String,
|
39
|
+
description: "The version of a package to be installed or upgraded."
|
40
|
+
|
33
41
|
property :accept_license, [TrueClass, FalseClass],
|
34
42
|
default: false, desired_state: false,
|
35
43
|
description: "Accept an end-user license agreement, automatically."
|
@@ -5,14 +5,15 @@
|
|
5
5
|
#
|
6
6
|
# Copyright:: 2016-2018, Shopify Inc.
|
7
7
|
# Copyright:: Copyright (c) Chef Software Inc.
|
8
|
-
#
|
9
8
|
|
10
9
|
require_relative "../resource"
|
11
10
|
|
12
11
|
class Chef
|
13
12
|
class Resource
|
14
13
|
class KernelModule < Chef::Resource
|
15
|
-
|
14
|
+
unified_mode true
|
15
|
+
|
16
|
+
provides :kernel_module
|
16
17
|
|
17
18
|
description "Use the kernel_module resource to manage kernel modules on Linux systems. This resource can load, unload, blacklist, disable, install, and uninstall modules."
|
18
19
|
introduced "14.3"
|
@@ -65,7 +66,7 @@ class Chef
|
|
65
66
|
|
66
67
|
property :modname, String,
|
67
68
|
description: "An optional property to set the kernel module name if it differs from the resource block's name.",
|
68
|
-
name_property: true
|
69
|
+
name_property: true
|
69
70
|
|
70
71
|
property :options, Array,
|
71
72
|
description: "An optional property to set options for the kernel module.",
|
@@ -82,15 +83,22 @@ class Chef
|
|
82
83
|
action :install do
|
83
84
|
description "Load kernel module, and ensure it loads on reboot."
|
84
85
|
|
86
|
+
with_run_context :root do
|
87
|
+
find_resource(:execute, "update initramfs") do
|
88
|
+
command initramfs_command
|
89
|
+
action :nothing
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
85
93
|
# create options file before loading the module
|
86
94
|
unless new_resource.options.nil?
|
87
95
|
file "#{new_resource.unload_dir}/options_#{new_resource.modname}.conf" do
|
88
96
|
content "options #{new_resource.modname} #{new_resource.options.join(" ")}\n"
|
89
|
-
end
|
97
|
+
end
|
90
98
|
end
|
91
99
|
|
92
100
|
# load the module first before installing
|
93
|
-
|
101
|
+
action_load
|
94
102
|
|
95
103
|
directory new_resource.load_dir do
|
96
104
|
recursive true
|
@@ -100,17 +108,16 @@ class Chef
|
|
100
108
|
content "#{new_resource.modname}\n"
|
101
109
|
notifies :run, "execute[update initramfs]", :delayed
|
102
110
|
end
|
111
|
+
end
|
103
112
|
|
113
|
+
action :uninstall do
|
114
|
+
description "Unload a kernel module and remove module config, so it doesn't load on reboot."
|
104
115
|
with_run_context :root do
|
105
116
|
find_resource(:execute, "update initramfs") do
|
106
117
|
command initramfs_command
|
107
118
|
action :nothing
|
108
119
|
end
|
109
120
|
end
|
110
|
-
end
|
111
|
-
|
112
|
-
action :uninstall do
|
113
|
-
description "Unload a kernel module and remove module config, so it doesn't load on reboot."
|
114
121
|
|
115
122
|
file "#{new_resource.load_dir}/#{new_resource.modname}.conf" do
|
116
123
|
action :delete
|
@@ -126,24 +133,12 @@ class Chef
|
|
126
133
|
action :delete
|
127
134
|
end
|
128
135
|
|
129
|
-
|
130
|
-
find_resource(:execute, "update initramfs") do
|
131
|
-
command initramfs_command
|
132
|
-
action :nothing
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
new_resource.run_action(:unload)
|
136
|
+
action_unload
|
137
137
|
end
|
138
138
|
|
139
139
|
action :blacklist do
|
140
140
|
description "Blacklist a kernel module."
|
141
141
|
|
142
|
-
file "#{new_resource.unload_dir}/blacklist_#{new_resource.modname}.conf" do
|
143
|
-
content "blacklist #{new_resource.modname}"
|
144
|
-
notifies :run, "execute[update initramfs]", :delayed
|
145
|
-
end
|
146
|
-
|
147
142
|
with_run_context :root do
|
148
143
|
find_resource(:execute, "update initramfs") do
|
149
144
|
command initramfs_command
|
@@ -151,17 +146,17 @@ class Chef
|
|
151
146
|
end
|
152
147
|
end
|
153
148
|
|
154
|
-
new_resource.
|
149
|
+
file "#{new_resource.unload_dir}/blacklist_#{new_resource.modname}.conf" do
|
150
|
+
content "blacklist #{new_resource.modname}"
|
151
|
+
notifies :run, "execute[update initramfs]", :delayed
|
152
|
+
end
|
153
|
+
|
154
|
+
action_unload
|
155
155
|
end
|
156
156
|
|
157
157
|
action :disable do
|
158
158
|
description "Disable a kernel module."
|
159
159
|
|
160
|
-
file "#{new_resource.unload_dir}/disable_#{new_resource.modname}.conf" do
|
161
|
-
content "install #{new_resource.modname} /bin/false"
|
162
|
-
notifies :run, "execute[update initramfs]", :delayed
|
163
|
-
end
|
164
|
-
|
165
160
|
with_run_context :root do
|
166
161
|
find_resource(:execute, "update initramfs") do
|
167
162
|
command initramfs_command
|
@@ -169,7 +164,12 @@ class Chef
|
|
169
164
|
end
|
170
165
|
end
|
171
166
|
|
172
|
-
new_resource.
|
167
|
+
file "#{new_resource.unload_dir}/disable_#{new_resource.modname}.conf" do
|
168
|
+
content "install #{new_resource.modname} /bin/false"
|
169
|
+
notifies :run, "execute[update initramfs]", :delayed
|
170
|
+
end
|
171
|
+
|
172
|
+
action_unload
|
173
173
|
end
|
174
174
|
|
175
175
|
action :load do
|
data/lib/chef/resource/ksh.rb
CHANGED
@@ -23,6 +23,8 @@ class Chef
|
|
23
23
|
class Ksh < Chef::Resource::Script
|
24
24
|
unified_mode true
|
25
25
|
|
26
|
+
provides :ksh
|
27
|
+
|
26
28
|
description "Use the ksh resource to execute scripts using the Korn shell (ksh)"\
|
27
29
|
" interpreter. This resource may also use any of the actions and properties"\
|
28
30
|
" that are available to the execute resource. Commands that are executed"\
|
@@ -21,7 +21,7 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class Launchd < Chef::Resource
|
24
|
-
|
24
|
+
unified_mode true
|
25
25
|
provides :launchd
|
26
26
|
|
27
27
|
description "Use the launchd resource to manage system-wide services (daemons) and per-user services (agents) on the macOS platform."
|
@@ -31,7 +31,7 @@ class Chef
|
|
31
31
|
allowed_actions :create, :create_if_missing, :delete, :enable, :disable, :restart
|
32
32
|
|
33
33
|
property :label, String,
|
34
|
-
|
34
|
+
name_property: true,
|
35
35
|
description: "The unique identifier for the job."
|
36
36
|
|
37
37
|
property :backup, [Integer, FalseClass],
|
@@ -76,20 +76,20 @@ class Chef
|
|
76
76
|
property :start_calendar_interval, [Hash, Array],
|
77
77
|
description: "A Hash (similar to crontab) that defines the calendar frequency at which a job is started or an Array.",
|
78
78
|
coerce: proc { |type|
|
79
|
-
|
79
|
+
# Coerce into an array of hashes to make validation easier
|
80
80
|
array = if type.is_a?(Array)
|
81
81
|
type
|
82
82
|
else
|
83
83
|
[type]
|
84
84
|
end
|
85
85
|
|
86
|
-
|
86
|
+
# Check to make sure that our array only has hashes
|
87
87
|
unless array.all? { |obj| obj.is_a?(Hash) }
|
88
88
|
error_msg = "start_calendar_interval must be a single hash or an array of hashes!"
|
89
89
|
raise Chef::Exceptions::ValidationFailed, error_msg
|
90
90
|
end
|
91
91
|
|
92
|
-
|
92
|
+
# Make sure the hashes don't have any incorrect keys/values
|
93
93
|
array.each do |entry|
|
94
94
|
allowed_keys = %w{Minute Hour Day Weekday Month}
|
95
95
|
unless entry.keys.all? { |key| allowed_keys.include?(key) }
|
@@ -105,7 +105,7 @@ class Chef
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
-
|
108
|
+
# Don't return array if we only have one entry
|
109
109
|
if array.size == 1
|
110
110
|
array.first
|
111
111
|
else
|
data/lib/chef/resource/link.rb
CHANGED
@@ -26,7 +26,6 @@ class Chef
|
|
26
26
|
include Chef::Mixin::Securable
|
27
27
|
unified_mode true
|
28
28
|
|
29
|
-
resource_name :link
|
30
29
|
provides :link
|
31
30
|
|
32
31
|
description "Use the link resource to create symbolic or hard links.\n\n"\
|
@@ -44,14 +43,9 @@ class Chef
|
|
44
43
|
default_action :create
|
45
44
|
allowed_actions :create, :delete
|
46
45
|
|
47
|
-
def initialize(name, run_context = nil)
|
48
|
-
verify_links_supported!
|
49
|
-
super
|
50
|
-
end
|
51
|
-
|
52
46
|
property :target_file, String,
|
53
47
|
description: "An optional property to set the target file if it differs from the resource block's name.",
|
54
|
-
name_property: true
|
48
|
+
name_property: true
|
55
49
|
|
56
50
|
property :to, String,
|
57
51
|
description: "The actual file to which the link is to be created."
|
@@ -73,22 +67,6 @@ class Chef
|
|
73
67
|
def path
|
74
68
|
target_file
|
75
69
|
end
|
76
|
-
|
77
|
-
private
|
78
|
-
|
79
|
-
# On certain versions of windows links are not supported. Make
|
80
|
-
# sure we are not on such a platform.
|
81
|
-
def verify_links_supported!
|
82
|
-
if ChefUtils.windows?
|
83
|
-
require_relative "../win32/file"
|
84
|
-
begin
|
85
|
-
Chef::ReservedNames::Win32::File.verify_links_supported!
|
86
|
-
rescue Chef::Exceptions::Win32APIFunctionNotImplemented => e
|
87
|
-
Chef::Log.fatal("Link resource is not supported on this version of Windows")
|
88
|
-
raise e
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
70
|
end
|
93
71
|
end
|
94
72
|
end
|
data/lib/chef/resource/locale.rb
CHANGED
@@ -21,15 +21,26 @@ require_relative "../dist"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class Locale < Chef::Resource
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
provides :locale
|
25
26
|
|
26
|
-
description "Use the locale resource to set the system's locale."
|
27
|
+
description "Use the locale resource to set the system's locale on Debian and Windows systems. Windows support was added in Chef Infra Client 16.0"
|
27
28
|
introduced "14.5"
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
examples <<~DOC
|
31
|
+
Set the lang to 'en_US.UTF-8'
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
locale 'set system locale' do
|
35
|
+
lang 'en_US.UTF-8'
|
36
|
+
end
|
37
|
+
```
|
38
|
+
DOC
|
39
|
+
|
40
|
+
LC_VARIABLES ||= %w{LC_ADDRESS LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME}.freeze
|
41
|
+
LOCALE_CONF ||= "/etc/locale.conf".freeze
|
42
|
+
LOCALE_REGEX ||= /\A\S+/.freeze
|
43
|
+
LOCALE_PLATFORM_FAMILIES ||= %w{debian windows}.freeze
|
33
44
|
|
34
45
|
property :lang, String,
|
35
46
|
description: "Sets the default system language.",
|
@@ -37,7 +48,7 @@ class Chef
|
|
37
48
|
validation_message: "The provided lang is not valid. It should be a non-empty string without any leading whitespaces."
|
38
49
|
|
39
50
|
property :lc_env, Hash,
|
40
|
-
description: "A Hash of LC_* env variables in the form of ({ 'LC_ENV_VARIABLE' => 'VALUE' })
|
51
|
+
description: "A Hash of LC_* env variables in the form of `({ 'LC_ENV_VARIABLE' => 'VALUE' })`.",
|
41
52
|
default: lazy { {} },
|
42
53
|
coerce: proc { |h|
|
43
54
|
if h.respond_to?(:keys)
|
@@ -64,15 +75,32 @@ class Chef
|
|
64
75
|
end
|
65
76
|
end
|
66
77
|
|
78
|
+
load_current_value do
|
79
|
+
if windows?
|
80
|
+
lang get_system_locale_windows
|
81
|
+
else
|
82
|
+
begin
|
83
|
+
old_content = ::File.read(LOCALE_CONF)
|
84
|
+
locale_values = Hash[old_content.split("\n").map { |v| v.split("=") }]
|
85
|
+
lang locale_values["LANG"]
|
86
|
+
rescue Errno::ENOENT => e
|
87
|
+
false
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# Gets the System-locale setting for the current computer.
|
93
|
+
# @see https://docs.microsoft.com/en-us/powershell/module/international/get-winsystemlocale
|
94
|
+
# @return [String] the current value of the System-locale setting.
|
95
|
+
#
|
96
|
+
def get_system_locale_windows
|
97
|
+
powershell_exec("Get-WinSystemLocale").result["Name"]
|
98
|
+
end
|
99
|
+
|
67
100
|
action :update do
|
68
101
|
description "Update the system's locale."
|
69
|
-
|
70
|
-
|
71
|
-
converge_by "Updating System Locale" do
|
72
|
-
generate_locales unless unavailable_locales.empty?
|
73
|
-
update_locale
|
74
|
-
end
|
75
|
-
end
|
102
|
+
converge_if_changed do
|
103
|
+
set_system_locale
|
76
104
|
end
|
77
105
|
end
|
78
106
|
|
@@ -97,7 +125,22 @@ class Chef
|
|
97
125
|
# @raise [Mixlib::ShellOut::ShellCommandFailed] not a supported language or locale
|
98
126
|
#
|
99
127
|
def generate_locales
|
100
|
-
shell_out!("locale-gen #{unavailable_locales.join(" ")}"
|
128
|
+
shell_out!("locale-gen #{unavailable_locales.join(" ")}")
|
129
|
+
end
|
130
|
+
|
131
|
+
# Sets the system locale for the current computer.
|
132
|
+
#
|
133
|
+
def set_system_locale
|
134
|
+
if windows?
|
135
|
+
# Sets the system locale for the current computer.
|
136
|
+
# @see https://docs.microsoft.com/en-us/powershell/module/internationalcmdlets/set-winsystemlocale
|
137
|
+
#
|
138
|
+
response = powershell_exec("Set-WinSystemLocale -SystemLocale #{new_resource.lang}")
|
139
|
+
raise response.errors.join(" ") if response.error?
|
140
|
+
else
|
141
|
+
generate_locales unless unavailable_locales.empty?
|
142
|
+
update_locale
|
143
|
+
end
|
101
144
|
end
|
102
145
|
|
103
146
|
# Updates system locale by appropriately writing them in /etc/locale.conf
|
@@ -135,15 +178,6 @@ class Chef
|
|
135
178
|
content.sort.map { |t| t.join("=") }.join("\n") + "\n"
|
136
179
|
end
|
137
180
|
end
|
138
|
-
|
139
|
-
# @return [Boolean] Whether any modification is required in /etc/locale.conf
|
140
|
-
#
|
141
|
-
def up_to_date?
|
142
|
-
old_content = ::File.read(LOCALE_CONF)
|
143
|
-
new_content == old_content
|
144
|
-
rescue
|
145
|
-
false # We need to create the file if it is not present
|
146
|
-
end
|
147
181
|
end
|
148
182
|
end
|
149
183
|
end
|
data/lib/chef/resource/log.rb
CHANGED
@@ -31,7 +31,6 @@ class Chef
|
|
31
31
|
class Log < Chef::Resource
|
32
32
|
unified_mode true
|
33
33
|
|
34
|
-
resource_name :log
|
35
34
|
provides :log, target_mode: true
|
36
35
|
|
37
36
|
description "Use the log resource to create log entries. The log resource behaves"\
|
@@ -50,6 +49,18 @@ class Chef
|
|
50
49
|
|
51
50
|
allowed_actions :write
|
52
51
|
default_action :write
|
52
|
+
|
53
|
+
def suppress_up_to_date_messages?
|
54
|
+
true
|
55
|
+
end
|
56
|
+
|
57
|
+
# Write the log to Chef's log
|
58
|
+
#
|
59
|
+
# @return [true] Always returns true
|
60
|
+
action :write do
|
61
|
+
logger.send(new_resource.level, new_resource.message)
|
62
|
+
new_resource.updated_by_last_action(true) if Chef::Config[:count_log_resource_updates]
|
63
|
+
end
|
53
64
|
end
|
54
65
|
end
|
55
66
|
end
|
@@ -65,15 +65,9 @@ class Chef
|
|
65
65
|
|
66
66
|
LWRPBase.loaded_lwrps[filename] = true
|
67
67
|
|
68
|
-
unless resource_class.resource_name.nil?
|
69
|
-
if Chef.resource_handler_map.get(node, resource_class.resource_name, canonical: true) == resource_class
|
70
|
-
Chef.deprecated(:resource_name_without_provides, "Resource #{resource_class.resource_name} needs `provides :#{resource_class.resource_name}` in addition to `resource_name :#{resource_class.resource_name}` declaration")
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
68
|
# wire up the default resource name after the class is parsed only if we haven't declared one.
|
75
69
|
# (this ordering is important for MapCollision deprecation warnings)
|
76
|
-
resource_class.
|
70
|
+
resource_class.provides resource_name.to_sym unless Chef::ResourceResolver.includes_handler?(resource_name.to_sym, self)
|
77
71
|
|
78
72
|
resource_class
|
79
73
|
end
|
@@ -109,7 +103,6 @@ class Chef
|
|
109
103
|
protected
|
110
104
|
|
111
105
|
attr_writer :loaded_lwrps
|
112
|
-
|
113
106
|
def loaded_lwrps
|
114
107
|
@loaded_lwrps ||= {}
|
115
108
|
end
|