chef 15.11.3-universal-mingw32 → 16.1.16-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 +3 -7
- data/README.md +1 -1
- data/Rakefile +44 -16
- data/chef.gemspec +6 -4
- 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/application.rb +33 -54
- data/lib/chef/application/apply.rb +18 -1
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.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/repository/chef_repository_file_system_root_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.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_loader.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +38 -3
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/digester.rb +4 -4
- 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 +3 -2
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -4
- 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 +84 -90
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +2 -2
- data/lib/chef/knife/bootstrap/client_builder.rb +2 -2
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +11 -11
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +12 -12
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- 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 +44 -42
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- 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/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -31
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +2 -3
- 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_rescind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +16 -2
- data/lib/chef/mixin/shell_out.rb +1 -5
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- 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 +5 -31
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +24 -6
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +3 -9
- data/lib/chef/provider/file.rb +6 -6
- 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 +45 -64
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +5 -6
- 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 +85 -26
- 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/dpkg.rb +1 -1
- data/lib/chef/provider/package/freebsd/base.rb +2 -1
- data/lib/chef/provider/package/homebrew.rb +107 -43
- data/lib/chef/provider/package/macports.rb +0 -2
- data/lib/chef/provider/package/msu.rb +4 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/portage.rb +1 -0
- data/lib/chef/provider/package/powershell.rb +1 -1
- data/lib/chef/provider/package/rubygems.rb +30 -3
- data/lib/chef/provider/package/windows.rb +29 -53
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +1 -9
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +5 -11
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +5 -5
- 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 +1 -1
- data/lib/chef/provider/service/debian.rb +30 -28
- data/lib/chef/provider/service/macosx.rb +16 -10
- 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/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/mac.rb +20 -15
- 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 +10 -10
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +44 -57
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +210 -0
- data/lib/chef/resource/apt_package.rb +33 -3
- data/lib/chef/resource/apt_preference.rb +103 -7
- data/lib/chef/resource/apt_repository.rb +357 -18
- data/lib/chef/resource/apt_update.rb +58 -5
- data/lib/chef/resource/archive_file.rb +6 -5
- data/lib/chef/resource/bash.rb +3 -1
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +10 -2
- data/lib/chef/resource/breakpoint.rb +1 -2
- data/lib/chef/resource/build_essential.rb +49 -51
- data/lib/chef/resource/cab_package.rb +9 -2
- data/lib/chef/resource/chef_client_cron.rb +228 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +201 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +180 -0
- data/lib/chef/resource/chef_gem.rb +15 -18
- data/lib/chef/resource/chef_handler.rb +5 -4
- data/lib/chef/resource/chef_sleep.rb +7 -5
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +8 -4
- data/lib/chef/resource/chocolatey_feature.rb +7 -4
- data/lib/chef/resource/chocolatey_package.rb +7 -4
- data/lib/chef/resource/chocolatey_source.rb +7 -4
- data/lib/chef/resource/cookbook_file.rb +4 -3
- data/lib/chef/resource/cron.rb +34 -80
- data/lib/chef/resource/cron_access.rb +10 -6
- data/lib/chef/resource/cron_d.rb +44 -95
- data/lib/chef/resource/csh.rb +3 -1
- data/lib/chef/resource/directory.rb +3 -3
- data/lib/chef/resource/dmg_package.rb +22 -19
- data/lib/chef/resource/dnf_package.rb +3 -4
- data/lib/chef/resource/dpkg_package.rb +3 -2
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +15 -14
- data/lib/chef/resource/file.rb +14 -9
- data/lib/chef/resource/freebsd_package.rb +3 -2
- data/lib/chef/resource/gem_package.rb +19 -11
- data/lib/chef/resource/group.rb +5 -2
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +3 -2
- data/lib/chef/resource/homebrew_package.rb +5 -3
- data/lib/chef/resource/homebrew_tap.rb +3 -2
- data/lib/chef/resource/hostname.rb +26 -20
- data/lib/chef/resource/http_request.rb +1 -2
- data/lib/chef/resource/ifconfig.rb +8 -8
- data/lib/chef/resource/ips_package.rb +11 -3
- data/lib/chef/resource/kernel_module.rb +30 -30
- data/lib/chef/resource/ksh.rb +3 -1
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/link.rb +5 -27
- data/lib/chef/resource/locale.rb +60 -26
- data/lib/chef/resource/log.rb +13 -2
- data/lib/chef/resource/lwrp_base.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +18 -10
- data/lib/chef/resource/macosx_service.rb +3 -2
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +63 -3
- data/lib/chef/resource/mount.rb +4 -1
- data/lib/chef/resource/msu_package.rb +19 -2
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +20 -4
- data/lib/chef/resource/ohai_hint.rb +4 -13
- data/lib/chef/resource/openbsd_package.rb +10 -2
- data/lib/chef/resource/openssl_dhparam.rb +11 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +24 -2
- data/lib/chef/resource/openssl_ec_public_key.rb +22 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +21 -2
- data/lib/chef/resource/openssl_rsa_public_key.rb +23 -2
- data/lib/chef/resource/openssl_x509_certificate.rb +38 -2
- data/lib/chef/resource/openssl_x509_crl.rb +13 -2
- data/lib/chef/resource/openssl_x509_request.rb +38 -2
- data/lib/chef/resource/osx_profile.rb +4 -3
- data/lib/chef/resource/package.rb +3 -2
- data/lib/chef/resource/pacman_package.rb +3 -2
- data/lib/chef/resource/paludis_package.rb +13 -4
- data/lib/chef/resource/perl.rb +3 -1
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +14 -4
- data/lib/chef/resource/powershell_package.rb +2 -4
- data/lib/chef/resource/powershell_package_source.rb +4 -2
- data/lib/chef/resource/powershell_script.rb +8 -18
- data/lib/chef/resource/python.rb +3 -1
- data/lib/chef/resource/reboot.rb +1 -2
- data/lib/chef/resource/registry_key.rb +2 -3
- data/lib/chef/resource/remote_directory.rb +3 -1
- data/lib/chef/resource/remote_file.rb +3 -2
- data/lib/chef/resource/rhsm_errata.rb +1 -4
- data/lib/chef/resource/rhsm_errata_level.rb +1 -2
- data/lib/chef/resource/rhsm_register.rb +3 -3
- data/lib/chef/resource/rhsm_repo.rb +4 -3
- data/lib/chef/resource/rhsm_subscription.rb +5 -4
- data/lib/chef/resource/route.rb +6 -2
- data/lib/chef/resource/rpm_package.rb +13 -3
- data/lib/chef/resource/ruby.rb +3 -1
- data/lib/chef/resource/ruby_block.rb +2 -5
- data/lib/chef/resource/scm/_scm.rb +49 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +10 -7
- data/lib/chef/resource/script.rb +7 -4
- data/lib/chef/resource/service.rb +7 -8
- data/lib/chef/resource/smartos_package.rb +10 -2
- data/lib/chef/resource/snap_package.rb +4 -2
- data/lib/chef/resource/solaris_package.rb +10 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +11 -11
- 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 +7 -5
- data/lib/chef/resource/sysctl.rb +63 -4
- data/lib/chef/resource/systemd_unit.rb +6 -4
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +8 -19
- data/lib/chef/resource/user.rb +3 -5
- 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 +116 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +20 -7
- data/lib/chef/resource/windows_auto_run.rb +2 -3
- data/lib/chef/resource/windows_certificate.rb +3 -3
- data/lib/chef/resource/windows_dfs_folder.rb +1 -2
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -2
- data/lib/chef/resource/windows_dfs_server.rb +2 -3
- 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 +12 -4
- data/lib/chef/resource/windows_feature.rb +59 -4
- data/lib/chef/resource/windows_feature_dism.rb +24 -24
- data/lib/chef/resource/windows_feature_powershell.rb +44 -78
- data/lib/chef/resource/windows_firewall_rule.rb +121 -8
- data/lib/chef/resource/windows_font.rb +10 -2
- data/lib/chef/resource/windows_package.rb +76 -7
- data/lib/chef/resource/windows_pagefile.rb +31 -4
- data/lib/chef/resource/windows_path.rb +18 -2
- data/lib/chef/resource/windows_printer.rb +26 -7
- data/lib/chef/resource/windows_printer_port.rb +29 -2
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +119 -0
- data/lib/chef/resource/windows_service.rb +46 -32
- data/lib/chef/resource/windows_share.rb +22 -6
- data/lib/chef/resource/windows_shortcut.rb +13 -3
- data/lib/chef/resource/windows_task.rb +129 -16
- data/lib/chef/resource/windows_uac.rb +20 -2
- data/lib/chef/resource/windows_user_privilege.rb +199 -0
- data/lib/chef/resource/windows_workgroup.rb +19 -4
- data/lib/chef/resource/yum_package.rb +91 -7
- data/lib/chef/resource/yum_repository.rb +30 -12
- data/lib/chef/resource/zypper_package.rb +32 -5
- data/lib/chef/resource/zypper_repository.rb +19 -6
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +3 -2
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/scan_access_control.rb +1 -1
- data/lib/chef/shell.rb +22 -0
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +1 -9
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/security.rb +40 -2
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +23 -19
- data/spec/functional/resource/cron_spec.rb +10 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +1 -1
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/msu_package_spec.rb +5 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +4 -4
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -1
- data/spec/functional/shell_spec.rb +1 -1
- 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/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 +34 -6
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +3 -3
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +49 -20
- data/spec/integration/recipes/notifying_block_spec.rb +8 -5
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +45 -143
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -1
- data/spec/integration/recipes/resource_load_spec.rb +133 -12
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/spec_helper.rb +18 -3
- 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 +2 -20
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +3 -16
- data/spec/support/shared/integration/knife_support.rb +9 -6
- data/spec/support/shared/unit/mock_shellout.rb +1 -1
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- 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 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -2
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_collector_spec.rb +39 -18
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/json_compat_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 +20 -38
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +9 -63
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/ssh_spec.rb +8 -111
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- data/spec/unit/node/attribute_spec.rb +3 -3
- 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 +12 -9
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +34 -36
- 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 +41 -1
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +8 -50
- 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/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +3 -2
- data/spec/unit/provider/package/rubygems_spec.rb +211 -26
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- 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/debian_service_spec.rb +34 -13
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +17 -17
- data/spec/unit/provider_resolver_spec.rb +4 -4
- 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/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/msu_package_spec.rb +4 -0
- 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_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +2 -17
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +14 -0
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource_reporter_spec.rb +2 -6
- data/spec/unit/resource_spec.rb +10 -3
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/tasks/rspec.rb +6 -14
- metadata +92 -37
- 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/unit/provider/ohai_spec.rb +0 -84
@@ -17,15 +17,18 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
require_relative "
|
21
|
-
require_relative "../dist"
|
20
|
+
require_relative "../../dist"
|
22
21
|
|
23
22
|
class Chef
|
24
23
|
class Resource
|
25
|
-
class Subversion < Chef::Resource
|
24
|
+
class Subversion < Chef::Resource
|
25
|
+
use "scm"
|
26
|
+
|
26
27
|
unified_mode true
|
27
28
|
|
28
|
-
|
29
|
+
provides :subversion
|
30
|
+
|
31
|
+
description "Use the **subversion** resource to manage source control resources that exist in a Subversion repository."
|
29
32
|
|
30
33
|
allowed_actions :force_export
|
31
34
|
|
@@ -35,7 +38,7 @@ class Chef
|
|
35
38
|
default: "--no-auth-cache"
|
36
39
|
|
37
40
|
property :svn_info_args, [String, nil, FalseClass],
|
38
|
-
description: "Use when the svn info command is used by
|
41
|
+
description: "Use when the `svn info` command is used by #{Chef::Dist::PRODUCT} and arguments need to be passed. The `svn_arguments` command does not work when the `svn info` command is used.",
|
39
42
|
coerce: proc { |v| v == false ? nil : v }, # coerce false to nil
|
40
43
|
default: "--no-auth-cache"
|
41
44
|
|
@@ -43,10 +46,10 @@ class Chef
|
|
43
46
|
description: "The location of the svn binary."
|
44
47
|
|
45
48
|
property :svn_username, String,
|
46
|
-
description: "The
|
49
|
+
description: "The user name for a user that has access to the Subversion repository."
|
47
50
|
|
48
51
|
property :svn_password, String,
|
49
|
-
description: "The password
|
52
|
+
description: "The password for a user that has access to the Subversion repository.",
|
50
53
|
sensitive: true, desired_state: false
|
51
54
|
|
52
55
|
# Override exception to strip password if any, so it won't appear in logs and different Chef notifications
|
data/lib/chef/resource/script.rb
CHANGED
@@ -24,11 +24,11 @@ class Chef
|
|
24
24
|
class Script < Chef::Resource::Execute
|
25
25
|
unified_mode true
|
26
26
|
|
27
|
-
|
27
|
+
provides :script
|
28
28
|
|
29
29
|
identity_attr :name
|
30
30
|
|
31
|
-
description "Use the script resource to execute scripts using a specified interpreter, such as Bash, csh, Perl, Python, or Ruby."\
|
31
|
+
description "Use the **script** resource to execute scripts using a specified interpreter, such as Bash, csh, Perl, Python, or Ruby."\
|
32
32
|
" This resource may also use any of the actions and properties that are available to the execute resource. Commands"\
|
33
33
|
" that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the"\
|
34
34
|
" environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
@@ -47,10 +47,13 @@ class Chef
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
property :code, String, required: true
|
50
|
+
property :code, String, required: true,
|
51
|
+
description: "A quoted string of code to be executed."
|
52
|
+
|
51
53
|
property :interpreter, String
|
52
|
-
property :flags, String
|
53
54
|
|
55
|
+
property :flags, String,
|
56
|
+
description: "One or more command line flags that are passed to the interpreter when a command is invoked."
|
54
57
|
end
|
55
58
|
end
|
56
59
|
end
|
@@ -27,12 +27,11 @@ class Chef
|
|
27
27
|
class Service < Chef::Resource
|
28
28
|
include ChefUtils::DSL::Service
|
29
29
|
extend ChefUtils::DSL::Service
|
30
|
+
unified_mode true
|
30
31
|
|
31
32
|
provides :service, target_mode: true
|
32
33
|
|
33
|
-
|
34
|
-
|
35
|
-
description "Use the service resource to manage a service."
|
34
|
+
description "Use the **service** resource to manage a service."
|
36
35
|
|
37
36
|
default_action :nothing
|
38
37
|
allowed_actions :enable, :disable, :start, :stop, :restart, :reload,
|
@@ -45,7 +44,7 @@ class Chef
|
|
45
44
|
|
46
45
|
property :service_name, String,
|
47
46
|
description: "An optional property to set the service name if it differs from the resource block's name.",
|
48
|
-
name_property: true
|
47
|
+
name_property: true
|
49
48
|
|
50
49
|
# regex for match against ps -ef when !supports[:has_status] && status == nil
|
51
50
|
property :pattern, String,
|
@@ -83,7 +82,7 @@ class Chef
|
|
83
82
|
# specify overrides for the start_command, stop_command and
|
84
83
|
# restart_command properties.
|
85
84
|
property :init_command, String,
|
86
|
-
description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{Chef::Dist::
|
85
|
+
description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{Chef::Dist::PRODUCT} will use the default init command for the service provider being used.",
|
87
86
|
desired_state: false
|
88
87
|
|
89
88
|
# if the service is enabled or not
|
@@ -115,10 +114,10 @@ class Chef
|
|
115
114
|
property :priority, [ Integer, String, Hash ],
|
116
115
|
description: "Debian platform only. The relative priority of the program for start and shutdown ordering. May be an integer or a Hash. An integer is used to define the start run levels; stop run levels are then 100-integer. A Hash is used to define values for specific run levels. For example, { 2 => [:start, 20], 3 => [:stop, 55] } will set a priority of twenty for run level two and a priority of fifty-five for run level three."
|
117
116
|
|
118
|
-
# timeout only applies to the windows service manager
|
119
117
|
property :timeout, Integer,
|
120
|
-
|
121
|
-
|
118
|
+
description: "The amount of time (in seconds) to wait before timing out.",
|
119
|
+
default: 900,
|
120
|
+
desired_state: false
|
122
121
|
|
123
122
|
property :parameters, Hash,
|
124
123
|
description: "Upstart only: A hash of parameters to pass to the service command for use in the service definition."
|
@@ -21,11 +21,19 @@ require_relative "package"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class SmartosPackage < Chef::Resource::Package
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
|
25
26
|
provides :smartos_package
|
26
27
|
provides :package, platform_family: "smartos"
|
27
28
|
|
28
|
-
description "Use the smartos_package resource to manage packages for the SmartOS platform."
|
29
|
+
description "Use the **smartos_package** resource to manage packages for the SmartOS platform."
|
30
|
+
|
31
|
+
property :package_name, String,
|
32
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
33
|
+
identity: true
|
34
|
+
|
35
|
+
property :version, String,
|
36
|
+
description: "The version of a package to be installed or upgraded."
|
29
37
|
end
|
30
38
|
end
|
31
39
|
end
|
@@ -21,9 +21,11 @@ require_relative "package"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class SnapPackage < Chef::Resource::Package
|
24
|
-
|
24
|
+
unified_mode true
|
25
25
|
|
26
|
-
|
26
|
+
provides :snap_package
|
27
|
+
|
28
|
+
description "Use the **snap_package** resource to manage snap packages on Debian and Ubuntu platforms."
|
27
29
|
introduced "15.0"
|
28
30
|
|
29
31
|
property :channel, String,
|
@@ -22,12 +22,20 @@ require_relative "package"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class SolarisPackage < Chef::Resource::Package
|
25
|
-
|
25
|
+
unified_mode true
|
26
|
+
|
26
27
|
provides :solaris_package
|
27
28
|
provides :package, os: "solaris2", platform_family: "nexentacore"
|
28
29
|
provides :package, os: "solaris2", platform_family: "solaris2", platform_version: "<= 5.10"
|
29
30
|
|
30
|
-
description "
|
31
|
+
description "Use the **solaris_package** resource to manage packages on the Solaris platform."
|
32
|
+
|
33
|
+
property :package_name, String,
|
34
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
35
|
+
identity: true
|
36
|
+
|
37
|
+
property :version, String,
|
38
|
+
description: "The version of a package to be installed or upgraded."
|
31
39
|
end
|
32
40
|
end
|
33
41
|
end
|
@@ -23,9 +23,11 @@ require_relative "../dist"
|
|
23
23
|
class Chef
|
24
24
|
class Resource
|
25
25
|
class SshKnownHostsEntry < Chef::Resource
|
26
|
-
|
26
|
+
unified_mode true
|
27
27
|
|
28
|
-
|
28
|
+
provides :ssh_known_hosts_entry
|
29
|
+
|
30
|
+
description "Use the **ssh_known_hosts_entry** resource to add an entry for the specified host in /etc/ssh/ssh_known_hosts or a user's known hosts file if specified."
|
29
31
|
introduced "14.3"
|
30
32
|
|
31
33
|
property :host, String,
|
@@ -45,7 +47,8 @@ class Chef
|
|
45
47
|
|
46
48
|
property :timeout, Integer,
|
47
49
|
description: "The timeout in seconds for ssh-keyscan.",
|
48
|
-
default: 30
|
50
|
+
default: 30,
|
51
|
+
desired_state: false
|
49
52
|
|
50
53
|
property :mode, String,
|
51
54
|
description: "The file mode for the ssh_known_hosts file.",
|
data/lib/chef/resource/sudo.rb
CHANGED
@@ -24,10 +24,11 @@ require_relative "../resource"
|
|
24
24
|
class Chef
|
25
25
|
class Resource
|
26
26
|
class Sudo < Chef::Resource
|
27
|
-
|
27
|
+
unified_mode true
|
28
|
+
|
28
29
|
provides(:sudo) { true }
|
29
30
|
|
30
|
-
description "Use the sudo resource to add or remove individual sudo entries using sudoers.d files."\
|
31
|
+
description "Use the **sudo** resource to add or remove individual sudo entries using sudoers.d files."\
|
31
32
|
" Sudo version 1.7.2 or newer is required to use the sudo resource, as it relies on the"\
|
32
33
|
" '#includedir' directive introduced in version 1.7.2. This resource does not enforce"\
|
33
34
|
" installation of the required sudo version. Chef-supported releases of Ubuntu, SuSE, Debian,"\
|
@@ -87,15 +88,15 @@ class Chef
|
|
87
88
|
default: lazy { [] }
|
88
89
|
|
89
90
|
property :setenv, [TrueClass, FalseClass],
|
90
|
-
description: "Determines whether or not to permit preservation of the environment with
|
91
|
+
description: "Determines whether or not to permit preservation of the environment with `sudo -E`.",
|
91
92
|
default: false
|
92
93
|
|
93
94
|
property :env_keep_add, Array,
|
94
|
-
description: "An array of strings to add to env_keep
|
95
|
+
description: "An array of strings to add to `env_keep`.",
|
95
96
|
default: lazy { [] }
|
96
97
|
|
97
98
|
property :env_keep_subtract, Array,
|
98
|
-
description: "An array of strings to remove from env_keep
|
99
|
+
description: "An array of strings to remove from `env_keep`.",
|
99
100
|
default: lazy { [] }
|
100
101
|
|
101
102
|
property :visudo_path, String,
|
@@ -148,14 +149,13 @@ class Chef
|
|
148
149
|
validate_properties
|
149
150
|
|
150
151
|
if docker? # don't even put this into resource collection unless we're in docker
|
151
|
-
|
152
|
-
action :nothing
|
152
|
+
package "sudo" do
|
153
153
|
not_if "which sudo"
|
154
|
-
end
|
154
|
+
end
|
155
155
|
end
|
156
156
|
|
157
157
|
target = "#{new_resource.config_prefix}/sudoers.d/"
|
158
|
-
|
158
|
+
directory(target)
|
159
159
|
|
160
160
|
Chef::Log.warn("#{new_resource.filename} will be rendered, but will not take effect because the #{new_resource.config_prefix}/sudoers config lacks the includedir directive that loads configs from #{new_resource.config_prefix}/sudoers.d/!") if ::File.readlines("#{new_resource.config_prefix}/sudoers").grep(/includedir/).empty?
|
161
161
|
file_path = "#{target}#{new_resource.filename}"
|
@@ -163,7 +163,7 @@ class Chef
|
|
163
163
|
if new_resource.template
|
164
164
|
logger.trace("Template property provided, all other properties ignored.")
|
165
165
|
|
166
|
-
|
166
|
+
template file_path do
|
167
167
|
source new_resource.template
|
168
168
|
mode "0440"
|
169
169
|
variables new_resource.variables
|
@@ -171,7 +171,7 @@ class Chef
|
|
171
171
|
action :create
|
172
172
|
end
|
173
173
|
else
|
174
|
-
|
174
|
+
template file_path do
|
175
175
|
source ::File.expand_path("../support/sudoer.erb", __FILE__)
|
176
176
|
local true
|
177
177
|
mode "0440"
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Generated by <%= Chef::Dist::PRODUCT %>. Changes will be overwritten.
|
2
|
+
|
3
|
+
# Limits settings for <%= @ulimit_user %>
|
4
|
+
|
5
|
+
<% unless @filehandle_limit.nil? -%>
|
6
|
+
<%= @ulimit_user -%> - nofile <%= @filehandle_limit %>
|
7
|
+
<% else -%><% unless @filehandle_soft_limit.nil? -%><%= @ulimit_user -%> soft nofile <%= @filehandle_soft_limit %><% end -%>
|
8
|
+
<% unless @filehandle_hard_limit.nil? -%><%= @ulimit_user -%> hard nofile <%= @filehandle_hard_limit %><% end -%>
|
9
|
+
<% end -%>
|
10
|
+
|
11
|
+
<% unless @process_limit.nil? -%>
|
12
|
+
<%= @ulimit_user -%> - nproc <%= @process_limit %>
|
13
|
+
<% else -%><% unless @process_soft_limit.nil? -%><%= @ulimit_user -%> soft nproc <%= @process_soft_limit %><% end -%>
|
14
|
+
<% unless @process_hard_limit.nil? -%><%= @ulimit_user -%> hard nproc <%= @process_hard_limit %><% end -%>
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
<% unless @memory_limit.nil? -%>
|
18
|
+
<%= @ulimit_user -%> - memlock <%= @memory_limit %>
|
19
|
+
<% end -%>
|
20
|
+
|
21
|
+
<% unless @core_limit.nil? -%>
|
22
|
+
<%= @ulimit_user -%> - core <%= @core_limit %>
|
23
|
+
<% else -%><% unless @core_soft_limit.nil? -%><%= @ulimit_user -%> soft core <%= @core_soft_limit %><% end -%>
|
24
|
+
<% unless @core_hard_limit.nil? -%><%= @ulimit_user -%> hard core <%= @core_hard_limit %><% end -%>
|
25
|
+
<% end -%>
|
26
|
+
|
27
|
+
<% unless @stack_limit.nil? -%>
|
28
|
+
<%= @ulimit_user -%> - stack <%= @stack_limit %>
|
29
|
+
<% else -%><% unless @stack_soft_limit.nil? -%><%= @ulimit_user -%> soft stack <%= @stack_soft_limit %><% end -%>
|
30
|
+
<% unless @stack_hard_limit.nil? -%><%= @ulimit_user -%> hard stack <%= @stack_hard_limit %><% end -%>
|
31
|
+
<% end -%>
|
32
|
+
|
33
|
+
<% unless @rtprio_limit.nil? -%>
|
34
|
+
<%= @ulimit_user -%> - rtprio <%= @rtprio_limit %>
|
35
|
+
<% else -%><% unless @rtprio_soft_limit.nil? -%><%= @ulimit_user -%> soft rtprio <%= @rtprio_soft_limit %><% end -%>
|
36
|
+
<% unless @rtprio_hard_limit.nil? -%><%= @ulimit_user -%> hard rtprio <%= @rtprio_hard_limit %><% end -%>
|
37
|
+
<% end -%>
|
38
|
+
|
39
|
+
<% unless @virt_limit.nil? -%>
|
40
|
+
<%= @ulimit_user -%> - as <%= @virt_limit %>
|
41
|
+
<% end -%>
|
@@ -20,10 +20,11 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class SwapFile < Chef::Resource
|
23
|
-
|
23
|
+
unified_mode true
|
24
|
+
|
24
25
|
provides(:swap_file) { true }
|
25
26
|
|
26
|
-
description "Use the swap_file resource to create or delete swap files on Linux systems, and optionally to manage the swappiness configuration for a host."
|
27
|
+
description "Use the **swap_file** resource to create or delete swap files on Linux systems, and optionally to manage the swappiness configuration for a host."
|
27
28
|
introduced "14.0"
|
28
29
|
|
29
30
|
property :path, String,
|
@@ -38,8 +39,9 @@ class Chef
|
|
38
39
|
default: false
|
39
40
|
|
40
41
|
property :timeout, Integer,
|
41
|
-
description: "Timeout for
|
42
|
-
default: 600
|
42
|
+
description: "Timeout for `dd` / `fallocate` commands.",
|
43
|
+
default: 600,
|
44
|
+
desired_state: false
|
43
45
|
|
44
46
|
property :swappiness, Integer,
|
45
47
|
description: "The swappiness value to set on the system."
|
@@ -60,7 +62,7 @@ class Chef
|
|
60
62
|
end
|
61
63
|
end
|
62
64
|
if new_resource.swappiness
|
63
|
-
|
65
|
+
sysctl "vm.swappiness" do
|
64
66
|
value new_resource.swappiness
|
65
67
|
end
|
66
68
|
end
|
data/lib/chef/resource/sysctl.rb
CHANGED
@@ -20,15 +20,75 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class Sysctl < Chef::Resource
|
23
|
-
|
23
|
+
unified_mode true
|
24
|
+
|
24
25
|
provides(:sysctl) { true }
|
25
26
|
provides(:sysctl_param) { true }
|
26
27
|
|
27
|
-
description "Use the sysctl resource to set or remove kernel parameters using the sysctl"\
|
28
|
+
description "Use the **sysctl** resource to set or remove kernel parameters using the sysctl"\
|
28
29
|
" command line tool and configuration files in the system's sysctl.d directory. "\
|
29
30
|
"Configuration files managed by this resource are named 99-chef-KEYNAME.conf. If"\
|
30
31
|
" an existing value was already set for the value it will be backed up to the node"\
|
31
32
|
" and restored if the :remove action is used later."
|
33
|
+
examples <<~DOC
|
34
|
+
**Set vm.swappiness**:
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
sysctl 'vm.swappiness' do
|
38
|
+
value 19
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
**Remove kernel.msgmax**:
|
43
|
+
|
44
|
+
**Note**: This only removes the sysctl.d config for kernel.msgmax. The value will be set back to the kernel default value.
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
sysctl 'kernel.msgmax' do
|
48
|
+
action :remove
|
49
|
+
end
|
50
|
+
```
|
51
|
+
|
52
|
+
**Adding Comments to sysctl configuration files**:
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
sysctl 'vm.swappiness' do
|
56
|
+
value 19
|
57
|
+
comment "define how aggressively the kernel will swap memory pages."
|
58
|
+
end
|
59
|
+
```
|
60
|
+
|
61
|
+
This produces /etc/sysctl.d/99-chef-vm.swappiness.conf as follows:
|
62
|
+
|
63
|
+
```
|
64
|
+
# define how aggressively the kernel will swap memory pages.
|
65
|
+
vm.swappiness = 1
|
66
|
+
```
|
67
|
+
|
68
|
+
**Converting sysctl settings from shell scripts**:
|
69
|
+
|
70
|
+
Example of existing settings:
|
71
|
+
|
72
|
+
```bash
|
73
|
+
fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500 kernel.sem = 250 32000 100 128
|
74
|
+
```
|
75
|
+
|
76
|
+
Converted to sysctl resources:
|
77
|
+
|
78
|
+
```ruby
|
79
|
+
sysctl 'fs.aio-max-nr' do
|
80
|
+
value '1048576'
|
81
|
+
end
|
82
|
+
|
83
|
+
sysctl 'net.ipv4.ip_local_port_range' do
|
84
|
+
value '9000 65500'
|
85
|
+
end
|
86
|
+
|
87
|
+
sysctl 'kernel.sem' do
|
88
|
+
value '250 32000 100 128'
|
89
|
+
end
|
90
|
+
```
|
91
|
+
DOC
|
32
92
|
|
33
93
|
introduced "14.0"
|
34
94
|
|
@@ -43,7 +103,7 @@ class Chef
|
|
43
103
|
property :value, [Array, String, Integer, Float],
|
44
104
|
description: "The value to set.",
|
45
105
|
coerce: proc { |v| coerce_value(v) },
|
46
|
-
required:
|
106
|
+
required: [:apply]
|
47
107
|
|
48
108
|
property :comment, [Array, String],
|
49
109
|
description: "Comments, placed above the resource setting in the generated file. For multi-line comments, use an array of strings, one per line.",
|
@@ -56,7 +116,6 @@ class Chef
|
|
56
116
|
|
57
117
|
def after_created
|
58
118
|
raise "The sysctl resource requires Linux as it needs sysctl and the sysctl.d directory functionality." unless node["os"] == "linux"
|
59
|
-
raise "The sysctl resource does not support SLES releases less than 12 as it requires a sysctl.d directory" if platform_family?("suse") && node["platform_version"].to_i < 12
|
60
119
|
end
|
61
120
|
|
62
121
|
def coerce_value(v)
|