chef 15.17.4-universal-mingw32 → 16.0.257-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +14 -20
- data/README.md +6 -6
- data/Rakefile +18 -23
- data/chef-universal-mingw32.gemspec +4 -4
- data/chef.gemspec +10 -26
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +20 -3
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- data/lib/chef/cookbook_version.rb +40 -5
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/deprecated.rb +1 -9
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +2 -3
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -2
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/knife.rb +1 -3
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +93 -97
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -50
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +1 -2
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_recind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +3 -26
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +13 -1
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/template.rb +0 -1
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +7 -36
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +22 -4
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -8
- data/lib/chef/provider/file.rb +5 -5
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +36 -51
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/solaris.rb +1 -0
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +3 -4
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -1
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
- data/lib/chef/provider/package/homebrew.rb +106 -42
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/powershell.rb +2 -6
- data/lib/chef/provider/package/rubygems.rb +29 -2
- data/lib/chef/provider/package/snap.rb +27 -96
- data/lib/chef/provider/package/windows.rb +3 -2
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +0 -8
- data/lib/chef/provider/package/yum/yum_helper.py +0 -4
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +4 -10
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +3 -3
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +31 -29
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -12
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +3 -3
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +10 -9
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +7 -9
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +11 -31
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +41 -56
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +149 -0
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +69 -2
- data/lib/chef/resource/apt_repository.rb +337 -5
- data/lib/chef/resource/apt_update.rb +52 -1
- data/lib/chef/resource/archive_file.rb +9 -29
- data/lib/chef/resource/bash.rb +2 -0
- data/lib/chef/resource/bff_package.rb +9 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +42 -48
- data/lib/chef/resource/cab_package.rb +8 -1
- data/lib/chef/resource/chef_client_cron.rb +225 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
- data/lib/chef/resource/chef_gem.rb +9 -16
- data/lib/chef/resource/chef_handler.rb +2 -1
- data/lib/chef/resource/chef_sleep.rb +0 -1
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +3 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -1
- data/lib/chef/resource/chocolatey_package.rb +2 -1
- data/lib/chef/resource/chocolatey_source.rb +2 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron.rb +22 -68
- data/lib/chef/resource/cron_access.rb +8 -15
- data/lib/chef/resource/cron_d.rb +9 -75
- data/lib/chef/resource/csh.rb +2 -0
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +4 -4
- data/lib/chef/resource/dnf_package.rb +2 -3
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +13 -12
- data/lib/chef/resource/file.rb +3 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +14 -6
- data/lib/chef/resource/group.rb +4 -1
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +5 -4
- data/lib/chef/resource/homebrew_package.rb +4 -2
- data/lib/chef/resource/homebrew_tap.rb +2 -1
- data/lib/chef/resource/hostname.rb +41 -36
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +10 -2
- data/lib/chef/resource/kernel_module.rb +29 -29
- data/lib/chef/resource/ksh.rb +2 -0
- data/lib/chef/resource/launchd.rb +6 -6
- data/lib/chef/resource/link.rb +1 -23
- data/lib/chef/resource/locale.rb +58 -24
- data/lib/chef/resource/log.rb +12 -1
- data/lib/chef/resource/lwrp_base.rb +1 -8
- data/lib/chef/resource/macos_userdefaults.rb +9 -6
- data/lib/chef/resource/macosx_service.rb +2 -1
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +62 -2
- data/lib/chef/resource/mount.rb +3 -0
- data/lib/chef/resource/msu_package.rb +13 -1
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +19 -3
- data/lib/chef/resource/ohai_hint.rb +3 -12
- data/lib/chef/resource/openbsd_package.rb +9 -1
- data/lib/chef/resource/openssl_dhparam.rb +10 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
- data/lib/chef/resource/openssl_x509_crl.rb +12 -1
- data/lib/chef/resource/openssl_x509_request.rb +37 -1
- data/lib/chef/resource/osx_profile.rb +3 -2
- data/lib/chef/resource/package.rb +2 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +12 -3
- data/lib/chef/resource/perl.rb +2 -0
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +13 -3
- data/lib/chef/resource/powershell_package.rb +1 -3
- data/lib/chef/resource/powershell_package_source.rb +3 -1
- data/lib/chef/resource/powershell_script.rb +7 -17
- data/lib/chef/resource/python.rb +2 -0
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +1 -2
- data/lib/chef/resource/remote_directory.rb +2 -0
- data/lib/chef/resource/remote_file.rb +2 -0
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -1
- data/lib/chef/resource/rhsm_subscription.rb +4 -1
- data/lib/chef/resource/route.rb +5 -1
- data/lib/chef/resource/rpm_package.rb +9 -2
- data/lib/chef/resource/ruby.rb +2 -0
- data/lib/chef/resource/ruby_block.rb +1 -1
- data/lib/chef/resource/scm/_scm.rb +48 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
- data/lib/chef/resource/script.rb +6 -3
- data/lib/chef/resource/service.rb +6 -7
- data/lib/chef/resource/smartos_package.rb +9 -1
- data/lib/chef/resource/snap_package.rb +3 -1
- data/lib/chef/resource/solaris_package.rb +9 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +9 -9
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +5 -3
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/systemd_unit.rb +4 -2
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +7 -18
- data/lib/chef/resource/user.rb +1 -3
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +114 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +19 -6
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +2 -3
- data/lib/chef/resource/windows_feature.rb +2 -2
- data/lib/chef/resource/windows_feature_dism.rb +9 -22
- data/lib/chef/resource/windows_feature_powershell.rb +17 -82
- data/lib/chef/resource/windows_firewall_rule.rb +119 -10
- data/lib/chef/resource/windows_font.rb +1 -3
- data/lib/chef/resource/windows_package.rb +13 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -1
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +90 -0
- data/lib/chef/resource/windows_service.rb +45 -31
- data/lib/chef/resource/windows_share.rb +3 -7
- data/lib/chef/resource/windows_shortcut.rb +0 -1
- data/lib/chef/resource/windows_task.rb +14 -15
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +157 -0
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource/yum_repository.rb +2 -1
- data/lib/chef/resource/zypper_package.rb +3 -2
- data/lib/chef/resource/zypper_repository.rb +2 -1
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +6 -6
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/shell.rb +23 -32
- data/lib/chef/shell/shell_session.rb +0 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +1 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +3 -11
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/security.rb +40 -2
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +27 -23
- data/spec/functional/resource/aix_service_spec.rb +1 -0
- data/spec/functional/resource/aixinit_service_spec.rb +8 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -0
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +11 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +6 -5
- data/spec/functional/resource/link_spec.rb +17 -17
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/user/dscl_spec.rb +2 -2
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -2
- data/spec/functional/shell_spec.rb +6 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +30 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +50 -21
- data/spec/integration/recipes/notifying_block_spec.rb +9 -6
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
- data/spec/integration/recipes/resource_load_spec.rb +133 -13
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +44 -19
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -18
- data/spec/support/shared/integration/knife_support.rb +14 -8
- data/spec/unit/application/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -9
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +38 -17
- data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +36 -54
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/ssh_spec.rb +10 -113
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +3 -5
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/securable_spec.rb +1 -0
- data/spec/unit/mixin/user_context_spec.rb +9 -1
- data/spec/unit/node/attribute_spec.rb +2 -2
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +18 -15
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +9 -11
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +44 -4
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +221 -31
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +53 -30
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/arch_service_spec.rb +2 -3
- data/spec/unit/provider/service/debian_service_spec.rb +35 -14
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +6 -2
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/systemd_unit_spec.rb +24 -28
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +25 -75
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/provider_spec.rb +0 -1
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/archive_file_spec.rb +2 -11
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +4 -1
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -5
- data/spec/unit/resource_spec.rb +11 -4
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
- data/spec/unit/win32/security_spec.rb +3 -4
- data/tasks/rspec.rb +1 -1
- metadata +116 -87
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/functional/resource/windows_font_spec.rb +0 -49
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -26,7 +26,7 @@ require_relative "../util/path_helper"
|
|
26
26
|
class Chef
|
27
27
|
class Resource
|
28
28
|
class WindowsShare < Chef::Resource
|
29
|
-
|
29
|
+
provides :windows_share
|
30
30
|
|
31
31
|
description "Use the windows_share resource to create, modify and remove Windows shares."
|
32
32
|
introduced "14.7"
|
@@ -145,10 +145,6 @@ class Chef
|
|
145
145
|
read_users r_users
|
146
146
|
end
|
147
147
|
|
148
|
-
def after_created
|
149
|
-
raise "The windows_share resource relies on PowerShell cmdlets not present in Windows releases prior to 8/2012. Cannot continue!" if node["platform_version"].to_f < 6.3
|
150
|
-
end
|
151
|
-
|
152
148
|
# given the string output of Get-SmbShareAccess parse out
|
153
149
|
# arrays of full access users, change users, and read only users
|
154
150
|
def parse_permissions(results_string)
|
@@ -171,8 +167,8 @@ class Chef
|
|
171
167
|
[f_users, c_users, r_users]
|
172
168
|
end
|
173
169
|
|
174
|
-
|
175
|
-
|
170
|
+
# local names are returned from Get-SmbShareAccess in the full format MACHINE\\NAME
|
171
|
+
# but users of this resource would simply say NAME so we need to strip the values for comparison
|
176
172
|
def stripped_account(name)
|
177
173
|
name.slice!("#{node["hostname"]}\\")
|
178
174
|
name
|
@@ -21,7 +21,6 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsShortcut < Chef::Resource
|
24
|
-
resource_name :windows_shortcut
|
25
24
|
provides(:windows_shortcut) { true }
|
26
25
|
|
27
26
|
description "Use the windows_shortcut resource to create shortcut files on Windows."
|
@@ -22,7 +22,6 @@ require_relative "../win32/security" if Chef::Platform.windows?
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class WindowsTask < Chef::Resource
|
25
|
-
resource_name :windows_task
|
26
25
|
provides(:windows_task) { true }
|
27
26
|
|
28
27
|
description "Use the windows_task resource to create, delete or run a Windows scheduled task. Requires Windows Server 2008 or later due to API usage."
|
@@ -122,7 +121,7 @@ class Chef
|
|
122
121
|
description: "The task description."
|
123
122
|
|
124
123
|
property :start_when_available, [TrueClass, FalseClass],
|
125
|
-
introduced: "15
|
124
|
+
introduced: "14.15", default: false,
|
126
125
|
description: "To start the task at any time after its scheduled time has passed."
|
127
126
|
|
128
127
|
attr_accessor :exists, :task, :command_arguments
|
@@ -159,16 +158,16 @@ class Chef
|
|
159
158
|
|
160
159
|
private
|
161
160
|
|
162
|
-
|
163
|
-
|
164
|
-
|
161
|
+
## Resource is not idempotent when day, start_day is not provided with frequency :weekly
|
162
|
+
## we set start_day when not given by user as current date based on which we set the day property for current current date day is monday ..
|
163
|
+
## we set the monday as the day so at next run when new_resource.day is nil and current_resource day is monday due to which udpate gets called
|
165
164
|
def idempotency_warning_for_frequency_weekly(day, start_day)
|
166
165
|
if start_day.nil? && day.nil?
|
167
166
|
logger.warn "To maintain idempotency for frequency :weekly provide start_day, start_time and day."
|
168
167
|
end
|
169
168
|
end
|
170
169
|
|
171
|
-
|
170
|
+
# Validate the passed value is numeric values only if it is a string
|
172
171
|
def numeric_value_in_string?(val)
|
173
172
|
return true if Integer(val)
|
174
173
|
rescue ArgumentError
|
@@ -194,7 +193,7 @@ class Chef
|
|
194
193
|
end
|
195
194
|
end
|
196
195
|
|
197
|
-
|
196
|
+
# returns true if frequency_modifer has values First, second, third, fourth, last, lastday
|
198
197
|
def frequency_modifier_includes_days_of_weeks?(frequency_modifier)
|
199
198
|
frequency_modifier = frequency_modifier.to_s.split(",")
|
200
199
|
frequency_modifier.map! { |value| value.strip.upcase }
|
@@ -209,7 +208,7 @@ class Chef
|
|
209
208
|
raise ArgumentError, "Invalid value passed for `random_delay`. Please pass seconds as an Integer (e.g. 60) or a String with numeric values only (e.g. '60')." unless numeric_value_in_string?(random_delay)
|
210
209
|
end
|
211
210
|
|
212
|
-
|
211
|
+
# @todo when we drop ruby 2.3 support this should be converted to .match?() instead of =~f
|
213
212
|
def validate_start_day(start_day, frequency)
|
214
213
|
if start_day && frequency == :none
|
215
214
|
raise ArgumentError, "`start_day` property is not supported with frequency: #{frequency}"
|
@@ -221,7 +220,7 @@ class Chef
|
|
221
220
|
end
|
222
221
|
end
|
223
222
|
|
224
|
-
|
223
|
+
# @todo when we drop ruby 2.3 support this should be converted to .match?() instead of =~
|
225
224
|
def validate_start_time(start_time, frequency)
|
226
225
|
if start_time
|
227
226
|
raise ArgumentError, "`start_time` property is not supported with `frequency :none`" if frequency == :none
|
@@ -321,7 +320,7 @@ class Chef
|
|
321
320
|
end
|
322
321
|
end
|
323
322
|
|
324
|
-
|
323
|
+
# This method returns true if day has values from 1-31 which is a days of moths and used with frequency :monthly
|
325
324
|
def days_includes_days_of_months?(days)
|
326
325
|
days.map! { |day| day.to_s.strip.downcase }
|
327
326
|
(days - VALID_DAYS_OF_MONTH).empty?
|
@@ -339,11 +338,11 @@ class Chef
|
|
339
338
|
end
|
340
339
|
end
|
341
340
|
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
341
|
+
# Converts the number of seconds to an ISO8601 duration format and returns it.
|
342
|
+
# Ref : https://github.com/arnau/ISO8601/blob/master/lib/iso8601/duration.rb#L18-L23
|
343
|
+
# e.g.
|
344
|
+
# ISO8601::Duration.new(65707200).to_s
|
345
|
+
# returns 'PT65707200S'
|
347
346
|
def sec_to_dur(seconds)
|
348
347
|
ISO8601::Duration.new(seconds.to_i).to_s
|
349
348
|
end
|
@@ -20,7 +20,6 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class WindowsUac < Chef::Resource
|
23
|
-
resource_name :windows_uac
|
24
23
|
provides :windows_uac
|
25
24
|
|
26
25
|
description 'The windows_uac resource configures UAC on Windows hosts by setting registry keys at \'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\''
|
@@ -0,0 +1,157 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Jared Kauppila (<jared@kauppi.la>)
|
3
|
+
# Author:: Vasundhara Jagdale(<vasundhara.jagdale@chef.io>)
|
4
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
5
|
+
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require_relative "../resource"
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Resource
|
23
|
+
class WindowsUserPrivilege < Chef::Resource
|
24
|
+
privilege_opts = %w{SeTrustedCredManAccessPrivilege
|
25
|
+
SeNetworkLogonRight
|
26
|
+
SeTcbPrivilege
|
27
|
+
SeMachineAccountPrivilege
|
28
|
+
SeIncreaseQuotaPrivilege
|
29
|
+
SeInteractiveLogonRight
|
30
|
+
SeRemoteInteractiveLogonRight
|
31
|
+
SeBackupPrivilege
|
32
|
+
SeChangeNotifyPrivilege
|
33
|
+
SeSystemtimePrivilege
|
34
|
+
SeTimeZonePrivilege
|
35
|
+
SeCreatePagefilePrivilege
|
36
|
+
SeCreateTokenPrivilege
|
37
|
+
SeCreateGlobalPrivilege
|
38
|
+
SeCreatePermanentPrivilege
|
39
|
+
SeCreateSymbolicLinkPrivilege
|
40
|
+
SeDebugPrivilege
|
41
|
+
SeDenyNetworkLogonRight
|
42
|
+
SeDenyBatchLogonRight
|
43
|
+
SeDenyServiceLogonRight
|
44
|
+
SeDenyInteractiveLogonRight
|
45
|
+
SeDenyRemoteInteractiveLogonRight
|
46
|
+
SeEnableDelegationPrivilege
|
47
|
+
SeRemoteShutdownPrivilege
|
48
|
+
SeAuditPrivilege
|
49
|
+
SeImpersonatePrivilege
|
50
|
+
SeIncreaseWorkingSetPrivilege
|
51
|
+
SeIncreaseBasePriorityPrivilege
|
52
|
+
SeLoadDriverPrivilege
|
53
|
+
SeLockMemoryPrivilege
|
54
|
+
SeBatchLogonRight
|
55
|
+
SeServiceLogonRight
|
56
|
+
SeSecurityPrivilege
|
57
|
+
SeRelabelPrivilege
|
58
|
+
SeSystemEnvironmentPrivilege
|
59
|
+
SeManageVolumePrivilege
|
60
|
+
SeProfileSingleProcessPrivilege
|
61
|
+
SeSystemProfilePrivilege
|
62
|
+
SeUndockPrivilege
|
63
|
+
SeAssignPrimaryTokenPrivilege
|
64
|
+
SeRestorePrivilege
|
65
|
+
SeShutdownPrivilege
|
66
|
+
SeSyncAgentPrivilege
|
67
|
+
SeTakeOwnershipPrivilege
|
68
|
+
}
|
69
|
+
|
70
|
+
provides :windows_user_privilege
|
71
|
+
description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege. \n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
|
72
|
+
|
73
|
+
introduced "16.0"
|
74
|
+
|
75
|
+
property :principal, String,
|
76
|
+
description: "An optional property to add the user to the given privilege. Use only with add and remove action.",
|
77
|
+
name_property: true
|
78
|
+
|
79
|
+
property :users, Array,
|
80
|
+
description: "An optional property to set the privilege for given users. Use only with set action."
|
81
|
+
|
82
|
+
property :privilege, [Array, String],
|
83
|
+
description: "Privilege to set for users.",
|
84
|
+
required: true,
|
85
|
+
coerce: proc { |v| v.is_a?(String) ? Array[v] : v },
|
86
|
+
callbacks: {
|
87
|
+
"Option privilege must include any of the: #{privilege_opts}" => lambda {
|
88
|
+
|v| (privilege_opts & v).size == v.size
|
89
|
+
},
|
90
|
+
}
|
91
|
+
|
92
|
+
load_current_value do |new_resource|
|
93
|
+
unless new_resource.principal.nil?
|
94
|
+
privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal) unless new_resource.action.include?(:set)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
action :add do
|
99
|
+
([*new_resource.privilege] - [*current_resource.privilege]).each do |user_right|
|
100
|
+
converge_by("adding user '#{new_resource.principal}' privilege #{user_right}") do
|
101
|
+
Chef::ReservedNames::Win32::Security.add_account_right(new_resource.principal, user_right)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
action :set do
|
107
|
+
if new_resource.users.nil? || new_resource.users.empty?
|
108
|
+
raise Chef::Exceptions::ValidationFailed, "Users are required property with set action."
|
109
|
+
end
|
110
|
+
|
111
|
+
users = []
|
112
|
+
|
113
|
+
# Getting users with its domain for comparison
|
114
|
+
new_resource.users.each do |user|
|
115
|
+
user = Chef::ReservedNames::Win32::Security.lookup_account_name(user)
|
116
|
+
users << user[1].account_name if user
|
117
|
+
end
|
118
|
+
|
119
|
+
new_resource.privilege.each do |privilege|
|
120
|
+
accounts = Chef::ReservedNames::Win32::Security.get_account_with_user_rights(privilege)
|
121
|
+
|
122
|
+
# comparing the existing accounts for privilege with users
|
123
|
+
unless users == accounts
|
124
|
+
# Removing only accounts which is not matching with users in new_resource
|
125
|
+
(accounts - users).each do |account|
|
126
|
+
converge_by("removing user '#{account}' from privilege #{privilege}") do
|
127
|
+
Chef::ReservedNames::Win32::Security.remove_account_right(account, privilege)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
# Adding only users which is not already exist
|
132
|
+
(users - accounts).each do |user|
|
133
|
+
converge_by("adding user '#{user}' to privilege #{privilege}") do
|
134
|
+
Chef::ReservedNames::Win32::Security.add_account_right(user, privilege)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
action :remove do
|
142
|
+
curr_res_privilege = current_resource.privilege
|
143
|
+
missing_res_privileges = (new_resource.privilege - curr_res_privilege)
|
144
|
+
|
145
|
+
if missing_res_privileges
|
146
|
+
Chef::Log.info("User \'#{new_resource.principal}\' for Privilege: #{missing_res_privileges.join(", ")} not found. Nothing to remove.")
|
147
|
+
end
|
148
|
+
|
149
|
+
(new_resource.privilege - missing_res_privileges).each do |user_right|
|
150
|
+
converge_by("removing user #{new_resource.principal} from privilege #{user_right}") do
|
151
|
+
Chef::ReservedNames::Win32::Security.remove_account_right(new_resource.principal, user_right)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
@@ -22,7 +22,9 @@ 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
30
|
description "Use the yum_package resource to install, upgrade, and remove packages with Yum"\
|
@@ -21,7 +21,8 @@ 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
28
|
description "Use the yum_repository resource to manage a Yum repository configuration"\
|
@@ -20,9 +20,10 @@ 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
29
|
description "Use the zypper_package resource to install, upgrade, and remove packages with Zypper for the SUSE Enterprise and OpenSUSE platforms."
|
@@ -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: opts[:equal_to] || [] }
|
62
63
|
end
|
63
64
|
data
|
64
65
|
end
|
@@ -68,8 +69,8 @@ module ResourceInspector
|
|
68
69
|
dir, name = File.split(path)
|
69
70
|
Chef::Cookbook::FileVendor.fetch_from_disk(path)
|
70
71
|
loader = Chef::CookbookLoader.new(dir)
|
71
|
-
|
72
|
-
resources =
|
72
|
+
cookbooks = loader.load_cookbooks
|
73
|
+
resources = cookbooks[name].files_for(:resources)
|
73
74
|
|
74
75
|
resources.each_with_object({}) do |r, res|
|
75
76
|
pth = r["full_path"]
|
@@ -82,18 +83,17 @@ module ResourceInspector
|
|
82
83
|
# otherwise, if we have a path then extract all the resources from the cookbook
|
83
84
|
# or else do a list of built in resources
|
84
85
|
#
|
85
|
-
# @param arguments [Array, String] One of more paths to a cookbook or a resource file to inspect
|
86
86
|
# @param complete [TrueClass, FalseClass] Whether to show properties defined in the base Resource class
|
87
87
|
# @return [String] JSON formatting of all resources
|
88
88
|
def self.inspect(arguments = [], complete: false)
|
89
89
|
output = if arguments.empty?
|
90
90
|
ObjectSpace.each_object(Class).select { |k| k < Chef::Resource }.each_with_object({}) { |klass, acc| acc[klass.resource_name] = extract_resource(klass) }
|
91
91
|
else
|
92
|
-
|
92
|
+
arguments.each_with_object({}) do |arg, acc|
|
93
93
|
if File.directory?(arg)
|
94
94
|
extract_cookbook(arg, complete).each { |k, v| acc[k] = v }
|
95
95
|
else
|
96
|
-
r = Chef::ResourceResolver.resolve(arg.to_sym
|
96
|
+
r = Chef::ResourceResolver.resolve(arg.to_sym)
|
97
97
|
acc[r.resource_name] = extract_resource(r, complete)
|
98
98
|
end
|
99
99
|
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
|