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
@@ -21,7 +21,7 @@ require "ostruct"
|
|
21
21
|
|
22
22
|
shared_examples_for "define_resource_requirements_common" do
|
23
23
|
it "should raise an error if /sbin/chkconfig does not exist" do
|
24
|
-
allow(File).to receive(:
|
24
|
+
allow(File).to receive(:exists?).with("/sbin/chkconfig").and_return(false)
|
25
25
|
allow(@provider).to receive(:shell_out).with("/sbin/service chef status").and_raise(Errno::ENOENT)
|
26
26
|
allow(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", returns: [0, 1]).and_raise(Errno::ENOENT)
|
27
27
|
@provider.load_current_resource
|
@@ -55,7 +55,7 @@ describe "Chef::Provider::Service::Redhat" do
|
|
55
55
|
@provider = Chef::Provider::Service::Redhat.new(@new_resource, @run_context)
|
56
56
|
@provider.action = :start
|
57
57
|
allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
|
58
|
-
allow(File).to receive(:
|
58
|
+
allow(File).to receive(:exists?).with("/sbin/chkconfig").and_return(true)
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "while not in why run mode" do
|
@@ -177,13 +177,13 @@ describe Chef::Provider::Service::Systemd do
|
|
177
177
|
|
178
178
|
context "when a user is not specified" do
|
179
179
|
it "should call '#{systemctl_path} --system start service_name' if no start command is specified" do
|
180
|
-
expect(provider).to receive(:
|
180
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "start", service_name, default_env: false, timeout: 900).and_return(shell_out_success)
|
181
181
|
provider.start_service
|
182
182
|
end
|
183
183
|
|
184
184
|
it "should not call '#{systemctl_path} --system start service_name' if it is already running" do
|
185
185
|
current_resource.running(true)
|
186
|
-
expect(provider).not_to receive(:
|
186
|
+
expect(provider).not_to receive(:shell_out_compacted!).with(systemctl_path, "--system", "start", service_name, timeout: 900)
|
187
187
|
provider.start_service
|
188
188
|
end
|
189
189
|
end
|
@@ -191,14 +191,14 @@ describe Chef::Provider::Service::Systemd do
|
|
191
191
|
context "when a user is specified" do
|
192
192
|
it "should call '#{systemctl_path} --user start service_name' if no start command is specified" do
|
193
193
|
current_resource.user("joe")
|
194
|
-
expect(provider).to receive(:
|
194
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--user", "start", service_name, environment: { "DBUS_SESSION_BUS_ADDRESS" => "unix:path=/run/user/10000/bus" }, user: "joe", default_env: false, timeout: 900).and_return(shell_out_success)
|
195
195
|
provider.start_service
|
196
196
|
end
|
197
197
|
|
198
198
|
it "should not call '#{systemctl_path} --user start service_name' if it is already running" do
|
199
199
|
current_resource.running(true)
|
200
200
|
current_resource.user("joe")
|
201
|
-
expect(provider).not_to receive(:
|
201
|
+
expect(provider).not_to receive(:shell_out_compacted!).with(systemctl_path, "--user", "start", service_name, environment: { "DBUS_SESSION_BUS_ADDRESS" => "unix:path=/run/user/10000/bus" }, user: "joe", timeout: 900)
|
202
202
|
provider.start_service
|
203
203
|
end
|
204
204
|
end
|
@@ -212,7 +212,7 @@ describe Chef::Provider::Service::Systemd do
|
|
212
212
|
|
213
213
|
it "should call '#{systemctl_path} --system restart service_name' if no restart command is specified" do
|
214
214
|
current_resource.running(true)
|
215
|
-
expect(provider).to receive(:
|
215
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "restart", service_name, default_env: false, timeout: 900).and_return(shell_out_success)
|
216
216
|
provider.restart_service
|
217
217
|
end
|
218
218
|
|
@@ -229,7 +229,7 @@ describe Chef::Provider::Service::Systemd do
|
|
229
229
|
context "when a reload command is not specified" do
|
230
230
|
it "should call '#{systemctl_path} --system reload service_name' if the service is running" do
|
231
231
|
current_resource.running(true)
|
232
|
-
expect(provider).to receive(:
|
232
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "reload", service_name, default_env: false, timeout: 900).and_return(shell_out_success)
|
233
233
|
provider.reload_service
|
234
234
|
end
|
235
235
|
|
@@ -250,13 +250,13 @@ describe Chef::Provider::Service::Systemd do
|
|
250
250
|
|
251
251
|
it "should call '#{systemctl_path} --system stop service_name' if no stop command is specified" do
|
252
252
|
current_resource.running(true)
|
253
|
-
expect(provider).to receive(:
|
253
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "stop", service_name, timeout: 900, default_env: false).and_return(shell_out_success)
|
254
254
|
provider.stop_service
|
255
255
|
end
|
256
256
|
|
257
257
|
it "should not call '#{systemctl_path} --system stop service_name' if it is already stopped" do
|
258
258
|
current_resource.running(false)
|
259
|
-
expect(provider).not_to receive(:
|
259
|
+
expect(provider).not_to receive(:shell_out_compacted!).with(systemctl_path, "--system", "stop", service_name, timeout: 900)
|
260
260
|
provider.stop_service
|
261
261
|
end
|
262
262
|
end
|
@@ -269,12 +269,12 @@ describe Chef::Provider::Service::Systemd do
|
|
269
269
|
end
|
270
270
|
|
271
271
|
it "should call '#{systemctl_path} --system enable service_name' to enable the service" do
|
272
|
-
expect(provider).to receive(:
|
272
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "enable", service_name, timeout: 900).and_return(shell_out_success)
|
273
273
|
provider.enable_service
|
274
274
|
end
|
275
275
|
|
276
276
|
it "should call '#{systemctl_path} --system disable service_name' to disable the service" do
|
277
|
-
expect(provider).to receive(:
|
277
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "disable", service_name, timeout: 900).and_return(shell_out_success)
|
278
278
|
provider.disable_service
|
279
279
|
end
|
280
280
|
end
|
@@ -287,12 +287,12 @@ describe Chef::Provider::Service::Systemd do
|
|
287
287
|
end
|
288
288
|
|
289
289
|
it "should call '#{systemctl_path} --system mask service_name' to mask the service" do
|
290
|
-
expect(provider).to receive(:
|
290
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "mask", service_name, timeout: 900).and_return(shell_out_success)
|
291
291
|
provider.mask_service
|
292
292
|
end
|
293
293
|
|
294
294
|
it "should call '#{systemctl_path} --system unmask service_name' to unmask the service" do
|
295
|
-
expect(provider).to receive(:
|
295
|
+
expect(provider).to receive(:shell_out_compacted!).with(systemctl_path, "--system", "unmask", service_name, timeout: 900).and_return(shell_out_success)
|
296
296
|
provider.unmask_service
|
297
297
|
end
|
298
298
|
end
|
@@ -305,12 +305,12 @@ describe Chef::Provider::Service::Systemd do
|
|
305
305
|
end
|
306
306
|
|
307
307
|
it "should return true if '#{systemctl_path} --system is-active service_name' returns 0" do
|
308
|
-
expect(provider).to receive(:
|
308
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-active", service_name, "--quiet", timeout: 900).and_return(shell_out_success)
|
309
309
|
expect(provider.is_active?).to be true
|
310
310
|
end
|
311
311
|
|
312
312
|
it "should return false if '#{systemctl_path} --system is-active service_name' returns anything except 0" do
|
313
|
-
expect(provider).to receive(:
|
313
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-active", service_name, "--quiet", timeout: 900).and_return(shell_out_failure)
|
314
314
|
expect(provider.is_active?).to be false
|
315
315
|
end
|
316
316
|
end
|
@@ -323,12 +323,12 @@ describe Chef::Provider::Service::Systemd do
|
|
323
323
|
end
|
324
324
|
|
325
325
|
it "should return true if '#{systemctl_path} --system is-enabled service_name' returns 0" do
|
326
|
-
expect(provider).to receive(:
|
326
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, "--quiet", timeout: 900).and_return(shell_out_success)
|
327
327
|
expect(provider.is_enabled?).to be true
|
328
328
|
end
|
329
329
|
|
330
330
|
it "should return false if '#{systemctl_path} --system is-enabled service_name' returns anything except 0" do
|
331
|
-
expect(provider).to receive(:
|
331
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, "--quiet", timeout: 900).and_return(shell_out_failure)
|
332
332
|
expect(provider.is_enabled?).to be false
|
333
333
|
end
|
334
334
|
end
|
@@ -341,22 +341,22 @@ describe Chef::Provider::Service::Systemd do
|
|
341
341
|
end
|
342
342
|
|
343
343
|
it "should return true if '#{systemctl_path} --system is-enabled service_name' returns 'masked' and returns anything except 0" do
|
344
|
-
expect(provider).to receive(:
|
344
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "masked", exitstatus: shell_out_failure))
|
345
345
|
expect(provider.is_masked?).to be true
|
346
346
|
end
|
347
347
|
|
348
348
|
it "should return true if '#{systemctl_path} --system is-enabled service_name' outputs 'masked-runtime' and returns anything except 0" do
|
349
|
-
expect(provider).to receive(:
|
349
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "masked-runtime", exitstatus: shell_out_failure))
|
350
350
|
expect(provider.is_masked?).to be true
|
351
351
|
end
|
352
352
|
|
353
353
|
it "should return false if '#{systemctl_path} --system is-enabled service_name' returns 0" do
|
354
|
-
expect(provider).to receive(:
|
354
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "enabled", exitstatus: shell_out_success))
|
355
355
|
expect(provider.is_masked?).to be false
|
356
356
|
end
|
357
357
|
|
358
358
|
it "should return false if '#{systemctl_path} --system is-enabled service_name' returns anything except 0 and outputs an error'" do
|
359
|
-
expect(provider).to receive(:
|
359
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "Failed to get unit file state for #{service_name}: No such file or directory", exitstatus: shell_out_failure))
|
360
360
|
expect(provider.is_masked?).to be false
|
361
361
|
end
|
362
362
|
end
|
@@ -369,17 +369,17 @@ describe Chef::Provider::Service::Systemd do
|
|
369
369
|
end
|
370
370
|
|
371
371
|
it "should return true if '#{systemctl_path} --system is-enabled service_name' returns 'indirect'" do
|
372
|
-
expect(provider).to receive(:
|
372
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "indirect", exitstatus: shell_out_success))
|
373
373
|
expect(provider.is_indirect?).to be true
|
374
374
|
end
|
375
375
|
|
376
376
|
it "should return false if '#{systemctl_path} --system is-enabled service_name' returns 0 and outputs something other than 'indirect'" do
|
377
|
-
expect(provider).to receive(:
|
377
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "enabled", exitstatus: shell_out_success))
|
378
378
|
expect(provider.is_indirect?).to be false
|
379
379
|
end
|
380
380
|
|
381
381
|
it "should return false if '#{systemctl_path} --system is-enabled service_name' returns anything except 0 and outputs somethign other than 'indirect''" do
|
382
|
-
expect(provider).to receive(:
|
382
|
+
expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "enabled", exitstatus: shell_out_failure))
|
383
383
|
expect(provider.is_indirect?).to be false
|
384
384
|
end
|
385
385
|
end
|
@@ -74,7 +74,7 @@ describe Chef::Provider::Service::Upstart do
|
|
74
74
|
@status = double("Status", exitstatus: 0, stdout: "", stderr: "")
|
75
75
|
allow(@provider).to receive(:shell_out).and_return(@status)
|
76
76
|
|
77
|
-
allow(::File).to receive(:
|
77
|
+
allow(::File).to receive(:exists?).and_return(true)
|
78
78
|
allow(::File).to receive(:open).and_return(true)
|
79
79
|
end
|
80
80
|
|
@@ -181,13 +181,13 @@ describe Chef::Provider::Service::Upstart do
|
|
181
181
|
end
|
182
182
|
|
183
183
|
it "should assume disable when no job configuration file is found" do
|
184
|
-
allow(::File).to receive(:
|
184
|
+
allow(::File).to receive(:exists?).and_return(false)
|
185
185
|
expect(@current_resource).to receive(:running).with(false)
|
186
186
|
@provider.load_current_resource
|
187
187
|
end
|
188
188
|
|
189
189
|
it "should track state when the upstart configuration file fails to load" do
|
190
|
-
expect(File).to receive(:
|
190
|
+
expect(File).to receive(:exists?).and_return false
|
191
191
|
@provider.load_current_resource
|
192
192
|
expect(@provider.instance_variable_get("@config_file_found")).to eq(false)
|
193
193
|
end
|
@@ -22,8 +22,12 @@ require "spec_helper"
|
|
22
22
|
describe Chef::Provider::Service::Windows, "load_current_resource" do
|
23
23
|
include_context "Win32"
|
24
24
|
|
25
|
-
before do
|
26
|
-
|
25
|
+
before(:all) do
|
26
|
+
Chef::ReservedNames::Win32::Security = Class.new unless windows?
|
27
|
+
end
|
28
|
+
|
29
|
+
after(:all) do
|
30
|
+
Chef::ReservedNames::Win32.send(:remove_const, :Security) unless windows?
|
27
31
|
end
|
28
32
|
|
29
33
|
let(:logger) { double("Mixlib::Log::Child").as_null_object }
|
@@ -46,7 +46,8 @@ describe Chef::Provider::Subversion do
|
|
46
46
|
it "converts resource properties to options for shell_out" do
|
47
47
|
expect(@provider.run_options).to eq({})
|
48
48
|
@resource.user "deployninja"
|
49
|
-
expect(@provider
|
49
|
+
expect(@provider).to receive(:get_homedir).and_return("/home/deployninja")
|
50
|
+
expect(@provider.run_options).to eq({ user: "deployninja", environment: { "HOME" => "/home/deployninja" } })
|
50
51
|
end
|
51
52
|
|
52
53
|
context "determining the revision of the currently deployed code" do
|
@@ -221,7 +222,8 @@ describe Chef::Provider::Subversion do
|
|
221
222
|
@resource.user "whois"
|
222
223
|
@resource.group "thisis"
|
223
224
|
expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
|
224
|
-
expect(@provider).to receive(:
|
225
|
+
expect(@provider).to receive(:get_homedir).and_return("/home/whois")
|
226
|
+
expect(@provider).to receive(:shell_out!).with(expected_cmd, { user: "whois", group: "thisis", environment: { "HOME" => "/home/whois" } })
|
225
227
|
@provider.run_action(:checkout)
|
226
228
|
expect(@resource).to be_updated
|
227
229
|
end
|
@@ -220,35 +220,31 @@ describe Chef::Provider::SystemdUnit do
|
|
220
220
|
expect(current_resource.content).to eq(nil)
|
221
221
|
end
|
222
222
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
provider.load_current_resource
|
239
|
-
expect(current_resource.content).to eq(unit_content_string)
|
240
|
-
end
|
223
|
+
it "loads the user unit content if the file exists and user is set" do
|
224
|
+
new_resource.user("joe")
|
225
|
+
allow(File).to receive(:exist?)
|
226
|
+
.with(unit_path_user)
|
227
|
+
.and_return(true)
|
228
|
+
allow(File).to receive(:read)
|
229
|
+
.with(unit_path_user)
|
230
|
+
.and_return(unit_content_string)
|
231
|
+
expect(File).to receive(:exist?)
|
232
|
+
.with(unit_path_user)
|
233
|
+
expect(File).to receive(:read)
|
234
|
+
.with(unit_path_user)
|
235
|
+
provider.load_current_resource
|
236
|
+
expect(current_resource.content).to eq(unit_content_string)
|
237
|
+
end
|
241
238
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
end
|
239
|
+
it "does not load the user unit if the file does not exist and user is set" do
|
240
|
+
new_resource.user("joe")
|
241
|
+
allow(File).to receive(:exist?)
|
242
|
+
.with(unit_path_user)
|
243
|
+
.and_return(false)
|
244
|
+
expect(File).to_not receive(:read)
|
245
|
+
.with(unit_path_user)
|
246
|
+
provider.load_current_resource
|
247
|
+
expect(current_resource.content).to eq(nil)
|
252
248
|
end
|
253
249
|
end
|
254
250
|
|
@@ -24,10 +24,9 @@ require "ostruct"
|
|
24
24
|
require "support/shared/unit/provider/file"
|
25
25
|
|
26
26
|
describe Chef::Provider::Template do
|
27
|
-
let(:node) {
|
28
|
-
let(:events) {
|
29
|
-
let(:
|
30
|
-
let(:run_context) { double("Chef::RunContext", node: node, events: events, logger: logger) }
|
27
|
+
let(:node) { Chef::Node.new }
|
28
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
29
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
31
30
|
let(:enclosing_directory) do
|
32
31
|
canonicalize_path(File.expand_path(File.join(CHEF_SPEC_DATA, "templates")))
|
33
32
|
end
|
@@ -18,50 +18,22 @@
|
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
EOF
|
36
|
-
|
37
|
-
# Output of the command:
|
38
|
-
# => gpg --import-options import-show --dry-run --import --with-colons [FILE]
|
39
|
-
ZYPPER_GPG_22 = <<~EOF.freeze
|
40
|
-
pub:-:2048:1:ABF5BD827BD9BF62:1313747554:1718374819::-:::scSC::::::23::0:
|
41
|
-
fpr:::::::::573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62:
|
42
|
-
uid:-::::1466086904::F18C4DBBFCB45099ABB59088DB6B252FA7E9FB41::nginx signing key <signing-key@nginx.com>::::::::::0:
|
43
|
-
gpg: Total number processed: 1
|
44
|
-
EOF
|
45
|
-
|
46
|
-
# Output of the command:
|
47
|
-
# -> gpg --version
|
48
|
-
ZYPPER_GPG_VERSION = <<~EOF.freeze
|
49
|
-
gpg (GnuPG) 2.2.20
|
50
|
-
libgcrypt 1.8.5
|
51
|
-
Copyright (C) 2020 Free Software Foundation, Inc.
|
52
|
-
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
53
|
-
This is free software: you are free to change and redistribute it.
|
54
|
-
There is NO WARRANTY, to the extent permitted by law.
|
55
|
-
|
56
|
-
Home: /Users/tsmith/.gnupg
|
57
|
-
Supported algorithms:
|
58
|
-
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
|
59
|
-
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
|
60
|
-
CAMELLIA128, CAMELLIA192, CAMELLIA256
|
61
|
-
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
|
62
|
-
Compression: Uncompressed, ZIP, ZLIB, BZIP2
|
63
|
-
EOF
|
21
|
+
# Output of the command:
|
22
|
+
# => rpm -qa gpg-pubkey*
|
23
|
+
RPM_KEYS = <<~EOF.freeze
|
24
|
+
gpg-pubkey-307e3d54-4be01a65
|
25
|
+
gpg-pubkey-3dbdc284-53674dd4
|
26
|
+
EOF
|
27
|
+
|
28
|
+
# Output of the command:
|
29
|
+
# => gpg --with-fingerprint [FILE]
|
30
|
+
GPG_FINGER = <<~EOF.freeze
|
31
|
+
pub 2048R/3DBDC284 2011-08-19 [expires: 2024-06-14]
|
32
|
+
Key fingerprint = 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
|
33
|
+
uid nginx signing key <signing-key@nginx.com>
|
34
|
+
EOF
|
64
35
|
|
36
|
+
describe Chef::Provider::ZypperRepository do
|
65
37
|
let(:new_resource) { Chef::Resource::ZypperRepository.new("Nginx Repository") }
|
66
38
|
let(:logger) { double("Mixlib::Log::Child").as_null_object }
|
67
39
|
let(:provider) do
|
@@ -73,19 +45,11 @@ describe Chef::Provider::ZypperRepository do
|
|
73
45
|
end
|
74
46
|
|
75
47
|
let(:rpm_key_finger) do
|
76
|
-
double("shell_out", stdout:
|
77
|
-
end
|
78
|
-
|
79
|
-
let(:gpg_20) do
|
80
|
-
double("shell_out", stdout: ZYPPER_GPG_20, exitstatus: 0, error?: false)
|
81
|
-
end
|
82
|
-
|
83
|
-
let(:gpg_22) do
|
84
|
-
double("shell_out", stdout: ZYPPER_GPG_22, exitstatus: 0, error?: false)
|
48
|
+
double("shell_out", stdout: RPM_KEYS, exitstatus: 0, error?: false)
|
85
49
|
end
|
86
50
|
|
87
|
-
let(:
|
88
|
-
double("shell_out", stdout:
|
51
|
+
let(:gpg_finger) do
|
52
|
+
double("shell_out", stdout: GPG_FINGER, exitstatus: 0, error?: false)
|
89
53
|
end
|
90
54
|
|
91
55
|
it "responds to load_current_resource" do
|
@@ -132,38 +96,24 @@ describe Chef::Provider::ZypperRepository do
|
|
132
96
|
|
133
97
|
describe "#key_installed?" do
|
134
98
|
before do
|
135
|
-
expect(provider).to receive(:shell_out).with("
|
99
|
+
expect(provider).to receive(:shell_out).with("rpm -qa gpg-pubkey*").and_return(rpm_key_finger)
|
136
100
|
end
|
137
101
|
|
138
102
|
it "returns true if the key is installed" do
|
139
|
-
expect(provider).to receive(:
|
103
|
+
expect(provider).to receive(:key_fingerprint).and_return("3dbdc284")
|
140
104
|
expect(provider.key_installed?("/foo/nginx.key")).to be_truthy
|
141
105
|
end
|
142
106
|
|
143
107
|
it "returns false if the key is not installed" do
|
144
|
-
expect(provider).to receive(:
|
108
|
+
expect(provider).to receive(:key_fingerprint).and_return("BOGUS")
|
145
109
|
expect(provider.key_installed?("/foo/nginx.key")).to be_falsey
|
146
110
|
end
|
147
111
|
end
|
148
112
|
|
149
|
-
describe "#
|
150
|
-
it "returns the
|
151
|
-
expect(provider).to receive(:shell_out!).with("gpg --
|
152
|
-
expect(provider.
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
describe "#short_key_id" do
|
157
|
-
it "returns the short key ID via running a dry-run import on gpg 2.2+" do
|
158
|
-
expect(provider).to receive(:gpg_version).and_return(Gem::Version.new("2.2"))
|
159
|
-
expect(provider).to receive(:shell_out!).with("gpg --import-options import-show --dry-run --import --with-colons /foo/nginx.key").and_return(gpg_22)
|
160
|
-
expect(provider.short_key_id("/foo/nginx.key")).to eq("7bd9bf62")
|
161
|
-
end
|
162
|
-
|
163
|
-
it "returns the short key ID via --with-fingerpint on gpg < 2.2" do
|
164
|
-
expect(provider).to receive(:gpg_version).and_return(Gem::Version.new("2.0"))
|
165
|
-
expect(provider).to receive(:shell_out!).with("gpg --with-fingerprint /foo/nginx.key").and_return(gpg_20)
|
166
|
-
expect(provider.short_key_id("/foo/nginx.key")).to eq("3dbdc284")
|
113
|
+
describe "#key_fingerprint" do
|
114
|
+
it "returns the key's fingerprint" do
|
115
|
+
expect(provider).to receive(:shell_out!).with("gpg --with-fingerprint /foo/nginx.key").and_return(gpg_finger)
|
116
|
+
expect(provider.key_fingerprint("/foo/nginx.key")).to eq("3dbdc284")
|
167
117
|
end
|
168
118
|
end
|
169
119
|
|