chef 15.11.3-universal-mingw32 → 16.1.16-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/lib/chef/resource/log.rb
CHANGED
@@ -31,10 +31,9 @@ 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
|
-
description "Use the log resource to create log entries. The log resource behaves"\
|
36
|
+
description "Use the **log** resource to create log entries. The log resource behaves"\
|
38
37
|
" like any other resource: built into the resource collection during the"\
|
39
38
|
" compile phase, and then run during the execution phase. (To create a log"\
|
40
39
|
" entry that is not built into the resource collection, use Chef::Log instead"\
|
@@ -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
|
@@ -67,7 +67,7 @@ class Chef
|
|
67
67
|
|
68
68
|
# wire up the default resource name after the class is parsed only if we haven't declared one.
|
69
69
|
# (this ordering is important for MapCollision deprecation warnings)
|
70
|
-
resource_class.
|
70
|
+
resource_class.provides resource_name.to_sym unless Chef::ResourceResolver.includes_handler?(resource_name.to_sym, self)
|
71
71
|
|
72
72
|
resource_class
|
73
73
|
end
|
@@ -20,12 +20,13 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class MacosUserDefaults < Chef::Resource
|
23
|
+
unified_mode true
|
24
|
+
|
23
25
|
# align with apple's marketing department
|
24
|
-
resource_name :macos_userdefaults
|
25
|
-
provides(:mac_os_x_userdefaults) { true }
|
26
26
|
provides(:macos_userdefaults) { true }
|
27
|
+
provides(:mac_os_x_userdefaults) { true }
|
27
28
|
|
28
|
-
description "Use the macos_userdefaults resource to manage the macOS user defaults system. The properties of this resource are passed to the defaults command, and the parameters follow the convention of that command. See the defaults(1) man page for details on how the tool works."
|
29
|
+
description "Use the **macos_userdefaults** resource to manage the macOS user defaults system. The properties of this resource are passed to the defaults command, and the parameters follow the convention of that command. See the defaults(1) man page for details on how the tool works."
|
29
30
|
introduced "14.0"
|
30
31
|
|
31
32
|
property :domain, String,
|
@@ -73,12 +74,17 @@ class Chef
|
|
73
74
|
|
74
75
|
load_current_value do |desired|
|
75
76
|
value = coerce_booleans(desired.value)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
vc =
|
81
|
-
|
77
|
+
cmd = "defaults read '#{desired.domain}' "
|
78
|
+
cmd << "'#{desired.key}' " if desired.key
|
79
|
+
cmd << " | grep -qx '#{value}'"
|
80
|
+
|
81
|
+
vc = if desired.user.nil?
|
82
|
+
shell_out(cmd)
|
83
|
+
else
|
84
|
+
shell_out(cmd, user: desired.user)
|
85
|
+
end
|
86
|
+
|
87
|
+
is_set !vc.error?
|
82
88
|
end
|
83
89
|
|
84
90
|
action :write do
|
@@ -106,7 +112,9 @@ class Chef
|
|
106
112
|
cmd << "-#{type}" if type
|
107
113
|
cmd << value
|
108
114
|
|
109
|
-
|
115
|
+
# FIXME: this should use cmd directly as an array argument, but then the quoting
|
116
|
+
# of individual args above needs to be removed as well.
|
117
|
+
execute cmd.join(" ") do
|
110
118
|
user new_resource.user unless new_resource.user.nil?
|
111
119
|
end
|
112
120
|
end
|
@@ -21,11 +21,12 @@ require_relative "service"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class MacosxService < Chef::Resource::Service
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
|
25
26
|
provides :macosx_service
|
26
27
|
provides :service, os: "darwin"
|
27
28
|
|
28
|
-
description "Use the macosx_service resource to manage services on the macOS platform."
|
29
|
+
description "Use the **macosx_service** resource to manage services on the macOS platform."
|
29
30
|
|
30
31
|
property :plist, String,
|
31
32
|
description: "A plist to use in the case where the filename and label for the service do not match."
|
@@ -21,9 +21,17 @@ require_relative "package"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class MacportsPackage < Chef::Resource::Package
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
provides :macports_package
|
25
26
|
|
26
|
-
description "Use the macports_package resource to manage packages for the macOS platform."
|
27
|
+
description "Use the **macports_package** resource to manage packages for the macOS platform using the MacPorts package management system."
|
28
|
+
|
29
|
+
property :package_name, String,
|
30
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
31
|
+
identity: true
|
32
|
+
|
33
|
+
property :version, String,
|
34
|
+
description: "The version of a package to be installed or upgraded."
|
27
35
|
end
|
28
36
|
end
|
29
37
|
end
|
data/lib/chef/resource/mdadm.rb
CHANGED
@@ -22,9 +22,11 @@ require_relative "../resource"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class Mdadm < Chef::Resource
|
25
|
-
|
25
|
+
unified_mode true
|
26
26
|
|
27
|
-
|
27
|
+
provides :mdadm
|
28
|
+
|
29
|
+
description "Use the **mdadm** resource to manage RAID devices in a Linux environment using the mdadm utility. The mdadm resource"\
|
28
30
|
" will create and assemble an array, but it will not create the config file that is used to persist the array upon"\
|
29
31
|
" reboot. If the config file is required, it must be done by specifying a template with the correct array layout,"\
|
30
32
|
" and then by using the mount provider to create a file systems table (fstab) entry."
|
@@ -57,11 +59,69 @@ class Chef
|
|
57
59
|
description: "The path to a file in which a write-intent bitmap is stored."
|
58
60
|
|
59
61
|
property :raid_device, String,
|
60
|
-
|
62
|
+
name_property: true,
|
61
63
|
description: "An optional property to specify the name of the RAID device if it differs from the resource block's name."
|
62
64
|
|
63
65
|
property :layout, String,
|
64
66
|
description: "The RAID5 parity algorithm. Possible values: left-asymmetric (or la), left-symmetric (or ls), right-asymmetric (or ra), or right-symmetric (or rs)."
|
67
|
+
|
68
|
+
action_class do
|
69
|
+
def load_current_resource
|
70
|
+
@current_resource = Chef::Resource::Mdadm.new(new_resource.name)
|
71
|
+
current_resource.raid_device(new_resource.raid_device)
|
72
|
+
logger.trace("#{new_resource} checking for software raid device #{current_resource.raid_device}")
|
73
|
+
|
74
|
+
device_not_found = 4
|
75
|
+
mdadm = shell_out!("mdadm", "--detail", "--test", new_resource.raid_device, returns: [0, device_not_found])
|
76
|
+
exists = (mdadm.status == 0)
|
77
|
+
current_resource.exists(exists)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
action :create do
|
82
|
+
unless current_resource.exists
|
83
|
+
converge_by("create RAID device #{new_resource.raid_device}") do
|
84
|
+
command = "yes | mdadm --create #{new_resource.raid_device} --level #{new_resource.level}"
|
85
|
+
command << " --chunk=#{new_resource.chunk}" unless new_resource.level == 1
|
86
|
+
command << " --metadata=#{new_resource.metadata}"
|
87
|
+
command << " --bitmap=#{new_resource.bitmap}" if new_resource.bitmap
|
88
|
+
command << " --layout=#{new_resource.layout}" if new_resource.layout
|
89
|
+
command << " --raid-devices #{new_resource.devices.length} #{new_resource.devices.join(" ")}"
|
90
|
+
logger.trace("#{new_resource} mdadm command: #{command}")
|
91
|
+
shell_out!(command)
|
92
|
+
logger.info("#{new_resource} created raid device (#{new_resource.raid_device})")
|
93
|
+
end
|
94
|
+
else
|
95
|
+
logger.trace("#{new_resource} raid device already exists, skipping create (#{new_resource.raid_device})")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
action :assemble do
|
100
|
+
unless current_resource.exists
|
101
|
+
converge_by("assemble RAID device #{new_resource.raid_device}") do
|
102
|
+
command = "yes | mdadm --assemble #{new_resource.raid_device} #{new_resource.devices.join(" ")}"
|
103
|
+
logger.trace("#{new_resource} mdadm command: #{command}")
|
104
|
+
shell_out!(command)
|
105
|
+
logger.info("#{new_resource} assembled raid device (#{new_resource.raid_device})")
|
106
|
+
end
|
107
|
+
else
|
108
|
+
logger.trace("#{new_resource} raid device already exists, skipping assemble (#{new_resource.raid_device})")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
action :stop do
|
113
|
+
if current_resource.exists
|
114
|
+
converge_by("stop RAID device #{new_resource.raid_device}") do
|
115
|
+
command = "yes | mdadm --stop #{new_resource.raid_device}"
|
116
|
+
logger.trace("#{new_resource} mdadm command: #{command}")
|
117
|
+
shell_out!(command)
|
118
|
+
logger.info("#{new_resource} stopped raid device (#{new_resource.raid_device})")
|
119
|
+
end
|
120
|
+
else
|
121
|
+
logger.trace("#{new_resource} raid device doesn't exist (#{new_resource.raid_device}) - not stopping")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
65
125
|
end
|
66
126
|
end
|
67
127
|
end
|
data/lib/chef/resource/mount.rb
CHANGED
@@ -22,7 +22,10 @@ require_relative "../resource"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class Mount < Chef::Resource
|
25
|
-
description "Use the mount resource to manage a mounted file system."
|
25
|
+
description "Use the **mount** resource to manage a mounted file system."
|
26
|
+
unified_mode true
|
27
|
+
|
28
|
+
provides :mount
|
26
29
|
|
27
30
|
default_action :mount
|
28
31
|
allowed_actions :mount, :umount, :unmount, :remount, :enable, :disable
|
@@ -23,16 +23,28 @@ class Chef
|
|
23
23
|
class Resource
|
24
24
|
class MsuPackage < Chef::Resource::Package
|
25
25
|
include Chef::Mixin::Uris
|
26
|
+
unified_mode true
|
26
27
|
|
27
|
-
resource_name :msu_package
|
28
28
|
provides :msu_package
|
29
29
|
|
30
|
-
description "Use the msu_package resource to install Microsoft Update(MSU) packages on Microsoft Windows machines."
|
30
|
+
description "Use the **msu_package** resource to install Microsoft Update(MSU) packages on Microsoft Windows machines."
|
31
31
|
introduced "12.17"
|
32
32
|
|
33
33
|
allowed_actions :install, :remove
|
34
34
|
default_action :install
|
35
35
|
|
36
|
+
property :package_name, String,
|
37
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
38
|
+
identity: true
|
39
|
+
|
40
|
+
# This is the same property as the main package resource except it has the skip docs set to true
|
41
|
+
# This resource abuses the package resource by storing the versions of all the cabs in the MSU file
|
42
|
+
# in the version attribute from load current value even though those aren't technically the version of the
|
43
|
+
# msu. Since the user wouldn't actually set this we don't want it on the docs site.
|
44
|
+
property :version, [String, Array],
|
45
|
+
skip_docs: true,
|
46
|
+
description: "The version of a package to be installed or upgraded."
|
47
|
+
|
36
48
|
property :source, String,
|
37
49
|
description: "The local file path or URL for the MSU package.",
|
38
50
|
coerce: (proc do |s|
|
@@ -44,6 +56,11 @@ class Chef
|
|
44
56
|
|
45
57
|
property :checksum, String, desired_state: false,
|
46
58
|
description: "SHA-256 digest used to verify the checksum of the downloaded MSU package."
|
59
|
+
|
60
|
+
property :timeout, [String, Integer],
|
61
|
+
default: 3600,
|
62
|
+
description: "The amount of time (in seconds) to wait before timing out.",
|
63
|
+
desired_state: false
|
47
64
|
end
|
48
65
|
end
|
49
66
|
end
|
@@ -20,18 +20,16 @@ require_relative "../dist"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class NotifyGroup < Chef::Resource
|
23
|
-
resource_name :notify_group
|
24
23
|
provides :notify_group
|
25
24
|
|
26
25
|
unified_mode true
|
27
26
|
|
28
27
|
description "The notify_group resource does nothing, and always fires notifications which are set on it. Use it to DRY blocks of notifications that are common to multiple resources, and provide a single target for other resources to notify. Unlike most resources, its default action is :nothing."
|
29
28
|
introduced "15.8"
|
30
|
-
|
31
29
|
examples <<~DOC
|
32
30
|
Wire up a notification from a service resource to stop and start the service with a 60 second delay.
|
33
31
|
|
34
|
-
```
|
32
|
+
```ruby
|
35
33
|
service "crude" do
|
36
34
|
action [ :enable, :start ]
|
37
35
|
end
|
@@ -64,6 +62,13 @@ class Chef
|
|
64
62
|
new_resource.updated_by_last_action(true)
|
65
63
|
end
|
66
64
|
|
65
|
+
# This is deliberate. Users should be sending a single notification to a notify_group resource which then
|
66
|
+
# distributes multiple notifications. Having a notify_group run by default is unnecessary indirection and
|
67
|
+
# should be replaced by just running the resources in order. If resources need to be batch run multiple times
|
68
|
+
# per invocation then the resources themselves are not properly declarative idempotent resources, and the user
|
69
|
+
# is attempting to turn Chef into an imperative language using this construct and/or the batch of resources
|
70
|
+
# need to be turned into a custom resource.
|
71
|
+
#
|
67
72
|
default_action :nothing
|
68
73
|
end
|
69
74
|
end
|
data/lib/chef/resource/ohai.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
# Author:: Michael Leinartas (<mleinartas@gmail.com>)
|
3
3
|
# Author:: Tyler Cloke (<tyler@chef.io>)
|
4
4
|
# Copyright:: Copyright 2010-2016, Michael Leinartas
|
5
|
+
# Copyright:: Copyright (c) Chef Software, Inc.
|
5
6
|
# License:: Apache License, Version 2.0
|
6
7
|
#
|
7
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -19,22 +20,37 @@
|
|
19
20
|
|
20
21
|
require_relative "../resource"
|
21
22
|
require_relative "../dist"
|
23
|
+
require "ohai" unless defined?(Ohai::System)
|
22
24
|
|
23
25
|
class Chef
|
24
26
|
class Resource
|
25
27
|
class Ohai < Chef::Resource
|
26
28
|
unified_mode true
|
27
29
|
|
28
|
-
resource_name :ohai
|
29
30
|
provides :ohai
|
30
31
|
|
31
|
-
description "Use the ohai resource to reload the Ohai configuration on a node. This allows recipes that change system attributes (like a recipe that adds a user) to refer to those attributes later on during the #{Chef::Dist::CLIENT} run."
|
32
|
+
description "Use the **ohai** resource to reload the Ohai configuration on a node. This allows recipes that change system attributes (like a recipe that adds a user) to refer to those attributes later on during the #{Chef::Dist::CLIENT} run."
|
32
33
|
|
33
34
|
property :plugin, String,
|
34
35
|
description: "The name of an Ohai plugin to be reloaded. If this property is not specified, #{Chef::Dist::PRODUCT} will reload all plugins."
|
35
36
|
|
36
|
-
|
37
|
-
|
37
|
+
def load_current_resource
|
38
|
+
true
|
39
|
+
end
|
40
|
+
|
41
|
+
action :reload do
|
42
|
+
converge_by("re-run ohai and merge results into node attributes") do
|
43
|
+
ohai = ::Ohai::System.new
|
44
|
+
|
45
|
+
# If new_resource.plugin is nil, ohai will reload all the plugins
|
46
|
+
# Otherwise it will only reload the specified plugin
|
47
|
+
# Note that any changes to plugins, or new plugins placed on
|
48
|
+
# the path are picked up by ohai.
|
49
|
+
ohai.all_plugins new_resource.plugin
|
50
|
+
node.automatic_attrs.merge! ohai.data
|
51
|
+
logger.info("#{new_resource} reloaded")
|
52
|
+
end
|
53
|
+
end
|
38
54
|
end
|
39
55
|
end
|
40
56
|
end
|
@@ -20,10 +20,11 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class OhaiHint < Chef::Resource
|
23
|
-
|
23
|
+
unified_mode true
|
24
|
+
|
24
25
|
provides(:ohai_hint) { true }
|
25
26
|
|
26
|
-
description "Use the ohai_hint resource to aid in configuration detection by passing hint data to Ohai."
|
27
|
+
description "Use the **ohai_hint** resource to aid in configuration detection by passing hint data to Ohai."
|
27
28
|
introduced "14.0"
|
28
29
|
|
29
30
|
property :hint_name, String,
|
@@ -33,6 +34,7 @@ class Chef
|
|
33
34
|
property :content, Hash,
|
34
35
|
description: "Values to include in the hint file."
|
35
36
|
|
37
|
+
# override compile_time property to default to true
|
36
38
|
property :compile_time, [TrueClass, FalseClass],
|
37
39
|
description: "Determines whether or not the resource is executed during the compile time phase.",
|
38
40
|
default: true, desired_state: false
|
@@ -83,17 +85,6 @@ class Chef
|
|
83
85
|
JSON.pretty_generate(content)
|
84
86
|
end
|
85
87
|
end
|
86
|
-
|
87
|
-
# this resource forces itself to run at compile_time
|
88
|
-
#
|
89
|
-
# @return [void]
|
90
|
-
def after_created
|
91
|
-
return unless compile_time
|
92
|
-
|
93
|
-
Array(action).each do |action|
|
94
|
-
run_action(action)
|
95
|
-
end
|
96
|
-
end
|
97
88
|
end
|
98
89
|
end
|
99
90
|
end
|
@@ -25,11 +25,19 @@ require_relative "../provider/package/openbsd"
|
|
25
25
|
class Chef
|
26
26
|
class Resource
|
27
27
|
class OpenbsdPackage < Chef::Resource::Package
|
28
|
-
|
28
|
+
unified_mode true
|
29
|
+
provides :openbsd_package
|
29
30
|
provides :package, os: "openbsd"
|
30
31
|
|
31
|
-
description "Use the openbsd_package resource to manage packages for the OpenBSD platform."
|
32
|
+
description "Use the **openbsd_package** resource to manage packages for the OpenBSD platform."
|
32
33
|
introduced "12.1"
|
34
|
+
|
35
|
+
property :package_name, String,
|
36
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
37
|
+
identity: true
|
38
|
+
|
39
|
+
property :version, String,
|
40
|
+
description: "The version of a package to be installed or upgraded."
|
33
41
|
end
|
34
42
|
end
|
35
43
|
end
|
@@ -23,11 +23,20 @@ class Chef
|
|
23
23
|
require_relative "../mixin/openssl_helper"
|
24
24
|
include Chef::Mixin::OpenSSLHelper
|
25
25
|
|
26
|
-
resource_name :openssl_dhparam
|
27
26
|
provides(:openssl_dhparam) { true }
|
28
27
|
|
29
|
-
description "Use the openssl_dhparam resource to generate dhparam.pem files. If a valid dhparam.pem file is found at the specified location, no new file will be created. If a file is found at the specified location but it is not a valid dhparam file, it will be overwritten."
|
28
|
+
description "Use the **openssl_dhparam** resource to generate dhparam.pem files. If a valid dhparam.pem file is found at the specified location, no new file will be created. If a file is found at the specified location but it is not a valid dhparam file, it will be overwritten."
|
30
29
|
introduced "14.0"
|
30
|
+
examples <<~DOC
|
31
|
+
Create a 1024bit dhparam file
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
openssl_dhparam '/etc/ssl_files/dhparam.pem' do
|
35
|
+
key_length 1024
|
36
|
+
action :create
|
37
|
+
end
|
38
|
+
```
|
39
|
+
DOC
|
31
40
|
|
32
41
|
property :path, String,
|
33
42
|
description: "An optional property for specifying the path to write the file to if it differs from the resource block's name.",
|
@@ -24,10 +24,32 @@ class Chef
|
|
24
24
|
require_relative "../mixin/openssl_helper"
|
25
25
|
include Chef::Mixin::OpenSSLHelper
|
26
26
|
|
27
|
-
|
27
|
+
provides :openssl_ec_private_key
|
28
28
|
|
29
|
-
description "Use the openssl_ec_private_key resource to generate an elliptic curve (EC) private key file. If a valid EC key file can be opened at the specified location, no new file will be created. If the EC key file cannot be opened, either because it does not exist or because the password to the EC key file does not match the password in the recipe, then it will be overwritten."
|
29
|
+
description "Use the **openssl_ec_private_key** resource to generate an elliptic curve (EC) private key file. If a valid EC key file can be opened at the specified location, no new file will be created. If the EC key file cannot be opened, either because it does not exist or because the password to the EC key file does not match the password in the recipe, then it will be overwritten."
|
30
30
|
introduced "14.4"
|
31
|
+
examples <<~DOC
|
32
|
+
Generate a new ec privatekey with prime256v1 key curve and default des3 cipher
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
openssl_ec_private_key '/etc/ssl_files/eckey_prime256v1_des3.pem' do
|
36
|
+
key_curve 'prime256v1'
|
37
|
+
key_pass 'something'
|
38
|
+
action :create
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
Generate a new ec private key with prime256v1 key curve and aes-128-cbc cipher
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
openssl_ec_private_key '/etc/ssl_files/eckey_prime256v1_des3.pem' do
|
46
|
+
key_curve 'prime256v1'
|
47
|
+
key_cipher 'aes-128-cbc'
|
48
|
+
key_pass 'something'
|
49
|
+
action :create
|
50
|
+
end
|
51
|
+
```
|
52
|
+
DOC
|
31
53
|
|
32
54
|
property :path, String,
|
33
55
|
description: "An optional property for specifying the path to write the file to if it differs from the resource block's name.",
|