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
@@ -22,13 +22,28 @@ require_relative "../dist"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class WindowsWorkgroup < Chef::Resource
|
25
|
-
resource_name :windows_workgroup
|
26
25
|
provides :windows_workgroup
|
27
26
|
|
28
27
|
include Chef::Mixin::PowershellOut
|
29
28
|
|
30
|
-
description "Use the windows_workgroup resource to join or change the workgroup of a Windows host."
|
29
|
+
description "Use the **windows_workgroup** resource to join or change the workgroup of a Windows host."
|
31
30
|
introduced "14.5"
|
31
|
+
examples <<~DOC
|
32
|
+
**Join a workgroup**:
|
33
|
+
|
34
|
+
``` ruby
|
35
|
+
windows_workgroup 'myworkgroup'
|
36
|
+
```
|
37
|
+
|
38
|
+
**Join a workgroup using a specific user**:
|
39
|
+
|
40
|
+
``` ruby
|
41
|
+
windows_workgroup 'myworkgroup' do
|
42
|
+
user 'Administrator'
|
43
|
+
password 'passw0rd'
|
44
|
+
end
|
45
|
+
```
|
46
|
+
DOC
|
32
47
|
|
33
48
|
property :workgroup_name, String,
|
34
49
|
description: "An optional property to set the workgroup name if it differs from the resource block's name.",
|
@@ -37,11 +52,11 @@ class Chef
|
|
37
52
|
name_property: true
|
38
53
|
|
39
54
|
property :user, String,
|
40
|
-
description: "The local administrator user to use to change the workgroup. Required if using the password property.",
|
55
|
+
description: "The local administrator user to use to change the workgroup. Required if using the `password` property.",
|
41
56
|
desired_state: false
|
42
57
|
|
43
58
|
property :password, String,
|
44
|
-
description: "The password for the local administrator user. Required if using the user property.",
|
59
|
+
description: "The password for the local administrator user. Required if using the `user` property.",
|
45
60
|
desired_state: false
|
46
61
|
|
47
62
|
property :reboot, Symbol,
|
@@ -22,14 +22,97 @@ require_relative "../dist"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class YumPackage < Chef::Resource::Package
|
25
|
-
|
25
|
+
unified_mode true
|
26
|
+
|
27
|
+
provides :yum_package
|
26
28
|
provides :package, platform_family: "fedora_derived"
|
27
29
|
|
28
|
-
description "Use the yum_package resource to install, upgrade, and remove packages with Yum"\
|
30
|
+
description "Use the **yum_package** resource to install, upgrade, and remove packages with Yum"\
|
29
31
|
" for the Red Hat and CentOS platforms. The yum_package resource is able to resolve"\
|
30
|
-
" provides data for packages much like Yum can do when it is run from the command line."\
|
32
|
+
" `provides` data for packages much like Yum can do when it is run from the command line."\
|
31
33
|
" This allows a variety of options for installing packages, like minimum versions,"\
|
32
34
|
" virtual provides, and library names."
|
35
|
+
examples <<~DOC
|
36
|
+
**Install an exact version**:
|
37
|
+
|
38
|
+
``` ruby
|
39
|
+
yum_package 'netpbm = 10.35.58-8.el8'
|
40
|
+
```
|
41
|
+
|
42
|
+
**Install a minimum version**:
|
43
|
+
|
44
|
+
``` ruby
|
45
|
+
yum_package 'netpbm >= 10.35.58-8.el8'
|
46
|
+
```
|
47
|
+
|
48
|
+
**Install a minimum version using the default action**:
|
49
|
+
|
50
|
+
``` ruby
|
51
|
+
yum_package 'netpbm'
|
52
|
+
```
|
53
|
+
|
54
|
+
**Install a version without worrying about the exact release**:
|
55
|
+
|
56
|
+
``` ruby
|
57
|
+
yum_package 'netpbm-10.35*'
|
58
|
+
```
|
59
|
+
|
60
|
+
|
61
|
+
**To install a package**:
|
62
|
+
|
63
|
+
``` ruby
|
64
|
+
yum_package 'netpbm' do
|
65
|
+
action :install
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
69
|
+
**To install a partial minimum version**:
|
70
|
+
|
71
|
+
``` ruby
|
72
|
+
yum_package 'netpbm >= 10'
|
73
|
+
```
|
74
|
+
|
75
|
+
**To install a specific architecture**:
|
76
|
+
|
77
|
+
``` ruby
|
78
|
+
yum_package 'netpbm' do
|
79
|
+
arch 'i386'
|
80
|
+
end
|
81
|
+
```
|
82
|
+
|
83
|
+
or:
|
84
|
+
|
85
|
+
``` ruby
|
86
|
+
yum_package 'netpbm.x86_64'
|
87
|
+
```
|
88
|
+
|
89
|
+
**To install a specific version-release**
|
90
|
+
|
91
|
+
``` ruby
|
92
|
+
yum_package 'netpbm' do
|
93
|
+
version '10.35.58-8.el8'
|
94
|
+
end
|
95
|
+
```
|
96
|
+
|
97
|
+
**Handle cookbook_file and yum_package resources in the same recipe**:
|
98
|
+
|
99
|
+
When a **cookbook_file** resource and a **yum_package** resource are
|
100
|
+
both called from within the same recipe, use the `flush_cache` attribute
|
101
|
+
to dump the in-memory Yum cache, and then use the repository immediately
|
102
|
+
to ensure that the correct package is installed:
|
103
|
+
|
104
|
+
``` ruby
|
105
|
+
cookbook_file '/etc/yum.repos.d/custom.repo' do
|
106
|
+
source 'custom'
|
107
|
+
mode '0755'
|
108
|
+
end
|
109
|
+
|
110
|
+
yum_package 'pkg-that-is-only-in-custom-repo' do
|
111
|
+
action :install
|
112
|
+
flush_cache [ :before ]
|
113
|
+
end
|
114
|
+
```
|
115
|
+
DOC
|
33
116
|
|
34
117
|
# XXX: the coercions here are due to the provider promiscuously updating the properties on the
|
35
118
|
# new_resource which causes immutable modification exceptions when passed an immutable node array.
|
@@ -44,7 +127,7 @@ class Chef
|
|
44
127
|
identity: true, coerce: proc { |x| x.is_a?(Array) ? x.to_a : x }
|
45
128
|
|
46
129
|
property :version, [ String, Array ],
|
47
|
-
description: "The version of a package to be installed or upgraded. This property is ignored when using the
|
130
|
+
description: "The version of a package to be installed or upgraded. This property is ignored when using the `:upgrade` action.",
|
48
131
|
coerce: proc { |x| x.is_a?(Array) ? x.to_a : x }
|
49
132
|
|
50
133
|
property :arch, [ String, Array ],
|
@@ -68,12 +151,13 @@ class Chef
|
|
68
151
|
end
|
69
152
|
}
|
70
153
|
|
71
|
-
property :allow_downgrade, [
|
72
|
-
description: "
|
154
|
+
property :allow_downgrade, [ TrueClass, FalseClass ],
|
155
|
+
description: "Allow downgrading a package to satisfy requested version requirements.",
|
73
156
|
default: true,
|
74
157
|
desired_state: false
|
75
158
|
|
76
|
-
property :yum_binary, String
|
159
|
+
property :yum_binary, String,
|
160
|
+
description: "The path to the yum binary."
|
77
161
|
end
|
78
162
|
end
|
79
163
|
end
|
@@ -21,24 +21,42 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class YumRepository < Chef::Resource
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
|
25
26
|
provides(:yum_repository) { true }
|
26
27
|
|
27
|
-
description "Use the yum_repository resource to manage a Yum repository configuration"
|
28
|
-
" file located at /etc/yum.repos.d/repositoryid.repo on the local machine."\
|
29
|
-
" This configuration file specifies which repositories to reference, how to"\
|
30
|
-
" handle cached data, etc."
|
28
|
+
description "Use the **yum_repository** resource to manage a Yum repository configuration file located at `/etc/yum.repos.d/repositoryid.repo` on the local machine. This configuration file specifies which repositories to reference, how to handle cached data, etc."
|
31
29
|
introduced "12.14"
|
30
|
+
examples <<~DOC
|
31
|
+
**Add an internal company repository**:
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
yum_repository 'OurCo' do
|
35
|
+
description 'OurCo yum repository'
|
36
|
+
mirrorlist 'http://artifacts.ourco.org/mirrorlist?repo=ourco-8&arch=$basearch'
|
37
|
+
gpgkey 'http://artifacts.ourco.org/pub/yum/RPM-GPG-KEY-OURCO-8'
|
38
|
+
action :create
|
39
|
+
end
|
40
|
+
```ruby
|
41
|
+
|
42
|
+
**Delete a repository**:
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
yum_repository 'CentOS-Media' do
|
46
|
+
action :delete
|
47
|
+
end
|
48
|
+
```
|
49
|
+
DOC
|
32
50
|
|
33
51
|
# http://linux.die.net/man/5/yum.conf as well as
|
34
52
|
# http://dnf.readthedocs.io/en/latest/conf_ref.html
|
35
53
|
property :baseurl, [String, Array],
|
36
|
-
description: "URL to the directory where the Yum repository's
|
54
|
+
description: "URL to the directory where the Yum repository's `repodata` directory lives. Can be an `http://`, `https://` or a `ftp://` URLs. You can specify multiple URLs in one `baseurl` statement."
|
37
55
|
|
38
56
|
property :clean_headers, [TrueClass, FalseClass],
|
39
57
|
description: "Specifies whether you want to purge the package data files that are downloaded from a Yum repository and held in a cache directory.",
|
40
58
|
deprecated: true,
|
41
|
-
default: false
|
59
|
+
default: false
|
42
60
|
|
43
61
|
property :clean_metadata, [TrueClass, FalseClass],
|
44
62
|
description: "Specifies whether you want to purge all of the packages downloaded from a Yum repository and held in a cache directory.",
|
@@ -63,7 +81,7 @@ class Chef
|
|
63
81
|
description: "List of packages to exclude from updates or installs. This should be a space separated list. Shell globs using wildcards (eg. * and ?) are allowed."
|
64
82
|
|
65
83
|
property :failovermethod, String,
|
66
|
-
description: "Method to determine how to switch to a new server if the current one fails, which can either be
|
84
|
+
description: "Method to determine how to switch to a new server if the current one fails, which can either be `roundrobin` or `priority`. `roundrobin` randomly selects a URL out of the list of URLs to start with and proceeds through each of them as it encounters a failure contacting the host. `priority` starts from the first `baseurl` listed and reads through them sequentially.",
|
67
85
|
equal_to: %w{priority roundrobin}
|
68
86
|
|
69
87
|
property :fastestmirror_enabled, [TrueClass, FalseClass],
|
@@ -80,23 +98,23 @@ class Chef
|
|
80
98
|
description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values: all (all HTTP downloads should be cached), packages (only RPM package downloads should be cached, but not repository metadata downloads), or none (no HTTP downloads should be cached)"
|
81
99
|
|
82
100
|
property :include_config, String,
|
83
|
-
description: "An external configuration file using the format
|
101
|
+
description: "An external configuration file using the format `url://to/some/location`."
|
84
102
|
|
85
103
|
property :includepkgs, String,
|
86
104
|
description: "Inverse of exclude property. This is a list of packages you want to use from a repository. If this option lists only one package then that is all Yum will ever see from the repository."
|
87
105
|
|
88
106
|
property :keepalive, [TrueClass, FalseClass],
|
89
|
-
description: "Determines whether or not HTTP/1.1
|
107
|
+
description: "Determines whether or not HTTP/1.1 `keep-alive` should be used with this repository."
|
90
108
|
|
91
109
|
property :make_cache, [TrueClass, FalseClass],
|
92
110
|
description: "Determines whether package files downloaded by Yum stay in cache directories. By using cached data, you can carry out certain operations without a network connection.",
|
93
111
|
default: true
|
94
112
|
|
95
113
|
property :max_retries, [String, Integer],
|
96
|
-
description: "Number of times any attempt to retrieve a file should retry before returning an error. Setting this to
|
114
|
+
description: "Number of times any attempt to retrieve a file should retry before returning an error. Setting this to `0` makes Yum try forever."
|
97
115
|
|
98
116
|
property :metadata_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/, /never/],
|
99
|
-
description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a 'd', 'h' or 'm' respectively. The default is six hours to compliment yum-updates running once per hour. It is also possible to use the word
|
117
|
+
description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a 'd', 'h' or 'm' respectively. The default is six hours to compliment yum-updates running once per hour. It is also possible to use the word `never`, meaning that the metadata will never expire. Note: When using a metalink file, the metalink must always be newer than the metadata for the repository due to the validation, so this timeout also applies to the metalink file.",
|
100
118
|
validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with 'd', 'h', or 'm'!"
|
101
119
|
|
102
120
|
property :metalink, String,
|
@@ -20,15 +20,42 @@ require_relative "package"
|
|
20
20
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
|
-
|
24
23
|
class ZypperPackage < Chef::Resource::Package
|
25
|
-
|
24
|
+
unified_mode true
|
25
|
+
|
26
|
+
provides :zypper_package
|
26
27
|
provides :package, platform_family: "suse"
|
27
28
|
|
28
|
-
description "Use the zypper_package resource to install, upgrade, and remove packages with Zypper for the SUSE Enterprise and
|
29
|
+
description "Use the **zypper_package** resource to install, upgrade, and remove packages with Zypper for the SUSE Enterprise and openSUSE platforms."
|
30
|
+
examples <<~DOC
|
31
|
+
**Install a package using package manager:**
|
32
|
+
|
33
|
+
``` ruby
|
34
|
+
zypper_package 'name of package' do
|
35
|
+
action :install
|
36
|
+
end
|
37
|
+
```
|
38
|
+
|
39
|
+
**Install a package using local file:**
|
40
|
+
|
41
|
+
``` ruby
|
42
|
+
zypper_package 'jwhois' do
|
43
|
+
action :install
|
44
|
+
source '/path/to/jwhois.rpm'
|
45
|
+
end
|
46
|
+
```
|
47
|
+
|
48
|
+
**Install without using recommend packages as a dependency:**
|
49
|
+
|
50
|
+
``` ruby
|
51
|
+
package 'apache2' do
|
52
|
+
options '--no-recommends'
|
53
|
+
end
|
54
|
+
```
|
55
|
+
DOC
|
29
56
|
|
30
57
|
property :gpg_check, [ TrueClass, FalseClass ],
|
31
|
-
description: "Verify the package's GPG signature. Can also be controlled site-wide using the
|
58
|
+
description: "Verify the package's GPG signature. Can also be controlled site-wide using the `zypper_check_gpg` config option.",
|
32
59
|
default: lazy { Chef::Config[:zypper_check_gpg] }, default_description: "true"
|
33
60
|
|
34
61
|
property :allow_downgrade, [ TrueClass, FalseClass ],
|
@@ -38,7 +65,7 @@ class Chef
|
|
38
65
|
introduced: "13.6"
|
39
66
|
|
40
67
|
property :global_options, [ String, Array ],
|
41
|
-
description: "One (or more) additional command options that are passed to the command. For example, common zypper directives, such as
|
68
|
+
description: "One (or more) additional command options that are passed to the command. For example, common zypper directives, such as `--no-recommends`. See the [zypper man page](https://en.opensuse.org/SDB:Zypper_manual_(plain)) for the full list.",
|
42
69
|
coerce: proc { |x| x.is_a?(String) ? x.shellsplit : x },
|
43
70
|
introduced: "14.6"
|
44
71
|
end
|
@@ -21,21 +21,34 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class ZypperRepository < Chef::Resource
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
|
25
26
|
provides(:zypper_repository) { true }
|
26
27
|
provides(:zypper_repo) { true }
|
27
28
|
|
28
|
-
description "Use the zypper_repository resource to create Zypper package repositories on SUSE Enterprise Linux and openSUSE systems. This resource maintains full compatibility with the zypper_repository resource in the existing zypper cookbook."
|
29
|
+
description "Use the **zypper_repository** resource to create Zypper package repositories on SUSE Enterprise Linux and openSUSE systems. This resource maintains full compatibility with the **zypper_repository** resource in the existing **zypper** cookbook."
|
29
30
|
introduced "13.3"
|
31
|
+
examples <<~DOC
|
32
|
+
**Add the Apache repo on openSUSE Leap 15**:
|
33
|
+
|
34
|
+
``` ruby
|
35
|
+
zypper_repository 'apache' do
|
36
|
+
baseurl 'http://download.opensuse.org/repositories/Apache'
|
37
|
+
path '/openSUSE_Leap_15.0'
|
38
|
+
type 'rpm-md'
|
39
|
+
priority '100'
|
40
|
+
end
|
41
|
+
```
|
42
|
+
DOC
|
30
43
|
|
31
44
|
property :repo_name, String,
|
32
45
|
regex: [%r{^[^/]+$}],
|
33
46
|
description: "An optional property to set the repository name if it differs from the resource block's name.",
|
34
|
-
validation_message: "repo_name property cannot contain a forward slash
|
47
|
+
validation_message: "repo_name property cannot contain a forward slash `/`",
|
35
48
|
name_property: true
|
36
49
|
|
37
50
|
property :description, String,
|
38
|
-
description: "The description of the repository that will be shown by the
|
51
|
+
description: "The description of the repository that will be shown by the `zypper repos` command."
|
39
52
|
|
40
53
|
property :type, String,
|
41
54
|
description: "Specifies the repository type.",
|
@@ -57,7 +70,7 @@ class Chef
|
|
57
70
|
description: "The location of the repository key to be imported."
|
58
71
|
|
59
72
|
property :baseurl, String,
|
60
|
-
description: "The base URL for the Zypper repository, such as
|
73
|
+
description: "The base URL for the Zypper repository, such as `http://download.opensuse.org`."
|
61
74
|
|
62
75
|
property :mirrorlist, String,
|
63
76
|
description: "The URL of the mirror list that will be used."
|
@@ -66,7 +79,7 @@ class Chef
|
|
66
79
|
description: "The relative path from the repository's base URL."
|
67
80
|
|
68
81
|
property :priority, Integer,
|
69
|
-
description: "Determines the priority of the Zypper repository.
|
82
|
+
description: "Determines the priority of the Zypper repository.",
|
70
83
|
default: 99
|
71
84
|
|
72
85
|
property :keeppackages, [TrueClass, FalseClass],
|
@@ -73,6 +73,14 @@ class Chef
|
|
73
73
|
# Run optional resource hook
|
74
74
|
resource.after_created
|
75
75
|
|
76
|
+
# Force to compile_time execution if the flag is set
|
77
|
+
if resource.compile_time
|
78
|
+
Array(resource.action).each do |action|
|
79
|
+
resource.run_action(action)
|
80
|
+
end
|
81
|
+
resource.action :nothing
|
82
|
+
end
|
83
|
+
|
76
84
|
resource
|
77
85
|
end
|
78
86
|
|
@@ -58,7 +58,8 @@ module ResourceInspector
|
|
58
58
|
deprecated: opts[:deprecated] || false,
|
59
59
|
required: opts[:required] || false,
|
60
60
|
default: opts[:default_description] || get_default(opts[:default]),
|
61
|
-
name_property: opts[:name_property] || false
|
61
|
+
name_property: opts[:name_property] || false,
|
62
|
+
equal_to: Array(opts[:equal_to]).sort.map(&:inspect) }
|
62
63
|
end
|
63
64
|
data
|
64
65
|
end
|
@@ -93,7 +94,7 @@ module ResourceInspector
|
|
93
94
|
if File.directory?(arg)
|
94
95
|
extract_cookbook(arg, complete).each { |k, v| acc[k] = v }
|
95
96
|
else
|
96
|
-
r = Chef::ResourceResolver.resolve(arg.to_sym
|
97
|
+
r = Chef::ResourceResolver.resolve(arg.to_sym)
|
97
98
|
acc[r.resource_name] = extract_resource(r, complete)
|
98
99
|
end
|
99
100
|
end
|
@@ -29,8 +29,8 @@ class Chef
|
|
29
29
|
# @param node [Chef::Node] The node against which to resolve. `nil` causes
|
30
30
|
# platform filters to be ignored.
|
31
31
|
#
|
32
|
-
def self.resolve(resource_name, node: nil
|
33
|
-
new(node, resource_name
|
32
|
+
def self.resolve(resource_name, node: nil)
|
33
|
+
new(node, resource_name).resolve
|
34
34
|
end
|
35
35
|
|
36
36
|
#
|
@@ -40,11 +40,9 @@ class Chef
|
|
40
40
|
# @param resource_name [Symbol] The resource DSL name (e.g. `:file`).
|
41
41
|
# @param node [Chef::Node] The node against which to resolve. `nil` causes
|
42
42
|
# platform filters to be ignored.
|
43
|
-
# @param canonical [Boolean] `true` or `false` to match canonical or
|
44
|
-
# non-canonical values only. `nil` to ignore canonicality.
|
45
43
|
#
|
46
|
-
def self.list(resource_name, node: nil
|
47
|
-
new(node, resource_name
|
44
|
+
def self.list(resource_name, node: nil)
|
45
|
+
new(node, resource_name).list
|
48
46
|
end
|
49
47
|
|
50
48
|
include Chef::Mixin::ConvertToClassName
|
@@ -55,8 +53,6 @@ class Chef
|
|
55
53
|
attr_reader :resource_name
|
56
54
|
# @api private
|
57
55
|
attr_reader :action
|
58
|
-
# @api private
|
59
|
-
attr_reader :canonical
|
60
56
|
|
61
57
|
#
|
62
58
|
# Create a resolver.
|
@@ -64,14 +60,11 @@ class Chef
|
|
64
60
|
# @param node [Chef::Node] The node against which to resolve. `nil` causes
|
65
61
|
# platform filters to be ignored.
|
66
62
|
# @param resource_name [Symbol] The resource DSL name (e.g. `:file`).
|
67
|
-
# @param canonical [Boolean] `true` or `false` to match canonical or
|
68
|
-
# non-canonical values only. `nil` to ignore canonicality. Default: `nil`
|
69
63
|
#
|
70
64
|
# @api private use Chef::ResourceResolver.resolve or .list instead.
|
71
|
-
def initialize(node, resource_name
|
65
|
+
def initialize(node, resource_name)
|
72
66
|
@node = node
|
73
67
|
@resource_name = resource_name.to_sym
|
74
|
-
@canonical = canonical
|
75
68
|
end
|
76
69
|
|
77
70
|
# @api private use Chef::ResourceResolver.resolve instead.
|
@@ -135,7 +128,7 @@ class Chef
|
|
135
128
|
|
136
129
|
# @api private
|
137
130
|
def potential_handlers
|
138
|
-
handler_map.list(node, resource_name
|
131
|
+
handler_map.list(node, resource_name).uniq
|
139
132
|
end
|
140
133
|
|
141
134
|
def enabled_handlers
|
@@ -146,7 +139,7 @@ class Chef
|
|
146
139
|
@prioritized_handlers ||= begin
|
147
140
|
enabled_handlers = self.enabled_handlers
|
148
141
|
|
149
|
-
prioritized = priority_map.list(node, resource_name
|
142
|
+
prioritized = priority_map.list(node, resource_name).flatten(1)
|
150
143
|
prioritized &= enabled_handlers # Filter the priority map by the actual enabled handlers
|
151
144
|
prioritized |= enabled_handlers # Bring back any handlers that aren't in the priority map, at the *end* (ordered set)
|
152
145
|
prioritized
|