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
data/lib/chef/win32/process.rb
CHANGED
@@ -82,8 +82,8 @@ class Chef
|
|
82
82
|
(call_succeeded != 0) && (is_64_bit_process_result.get_int(0) != 0)
|
83
83
|
end
|
84
84
|
|
85
|
-
|
86
|
-
|
85
|
+
# Must have PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION rights,
|
86
|
+
# AND the PROCESS_VM_READ right
|
87
87
|
def self.get_process_memory_info(handle)
|
88
88
|
memory_info = PROCESS_MEMORY_COUNTERS.new
|
89
89
|
unless GetProcessMemoryInfo(handle.handle, memory_info, memory_info.size)
|
data/lib/chef/win32/security.rb
CHANGED
@@ -214,6 +214,41 @@ class Chef
|
|
214
214
|
privileges
|
215
215
|
end
|
216
216
|
|
217
|
+
def self.get_account_with_user_rights(privilege)
|
218
|
+
privilege_pointer = FFI::MemoryPointer.new LSA_UNICODE_STRING, 1
|
219
|
+
privilege_lsa_string = LSA_UNICODE_STRING.new(privilege_pointer)
|
220
|
+
privilege_lsa_string[:Buffer] = FFI::MemoryPointer.from_string(privilege.to_wstring)
|
221
|
+
privilege_lsa_string[:Length] = privilege.length * 2
|
222
|
+
privilege_lsa_string[:MaximumLength] = (privilege.length + 1) * 2
|
223
|
+
|
224
|
+
buffer = FFI::MemoryPointer.new(:pointer)
|
225
|
+
count = FFI::MemoryPointer.new(:ulong)
|
226
|
+
|
227
|
+
accounts = []
|
228
|
+
with_lsa_policy(nil) do |policy_handle, sid|
|
229
|
+
result = LsaEnumerateAccountsWithUserRight(policy_handle.read_pointer, privilege_pointer, buffer, count)
|
230
|
+
if result == 0
|
231
|
+
win32_error = LsaNtStatusToWinError(result)
|
232
|
+
return [] if win32_error == 1313 # NO_SUCH_PRIVILEGE - https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--1300-1699-
|
233
|
+
|
234
|
+
test_and_raise_lsa_nt_status(result)
|
235
|
+
|
236
|
+
count.read_ulong.times do |i|
|
237
|
+
sid = LSA_ENUMERATION_INFORMATION.new(buffer.read_pointer + i * LSA_ENUMERATION_INFORMATION.size)
|
238
|
+
sid_name = lookup_account_sid(sid[:Sid])
|
239
|
+
domain, name, use = sid_name
|
240
|
+
account_name = (!domain.nil? && domain.length > 0) ? "#{domain}\\#{name}" : name
|
241
|
+
accounts << account_name
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
result = LsaFreeMemory(buffer.read_pointer)
|
246
|
+
test_and_raise_lsa_nt_status(result)
|
247
|
+
end
|
248
|
+
|
249
|
+
accounts
|
250
|
+
end
|
251
|
+
|
217
252
|
def self.get_ace(acl, index)
|
218
253
|
acl = acl.pointer if acl.respond_to?(:pointer)
|
219
254
|
ace = FFI::Buffer.new :pointer
|
@@ -616,18 +651,21 @@ class Chef
|
|
616
651
|
end
|
617
652
|
|
618
653
|
def self.with_lsa_policy(username)
|
619
|
-
sid = lookup_account_name(username)[1]
|
654
|
+
sid = lookup_account_name(username)[1] if username
|
620
655
|
|
621
656
|
access = 0
|
622
657
|
access |= POLICY_CREATE_ACCOUNT
|
623
658
|
access |= POLICY_LOOKUP_NAMES
|
659
|
+
access |= POLICY_VIEW_LOCAL_INFORMATION if username.nil?
|
624
660
|
|
625
661
|
policy_handle = FFI::MemoryPointer.new(:pointer)
|
626
662
|
result = LsaOpenPolicy(nil, LSA_OBJECT_ATTRIBUTES.new, access, policy_handle)
|
627
663
|
test_and_raise_lsa_nt_status(result)
|
628
664
|
|
665
|
+
sid_pointer = username.nil? ? nil : sid.pointer
|
666
|
+
|
629
667
|
begin
|
630
|
-
yield policy_handle,
|
668
|
+
yield policy_handle, sid_pointer
|
631
669
|
ensure
|
632
670
|
result = LsaClose(policy_handle.read_pointer)
|
633
671
|
test_and_raise_lsa_nt_status(result)
|
@@ -2,16 +2,17 @@
|
|
2
2
|
|
3
3
|
TMPDIR="${TMPDIR:-/tmp}"
|
4
4
|
|
5
|
-
|
6
|
-
touch $TMPDIR/inittest.txt
|
5
|
+
create_chef_txt() {
|
6
|
+
touch "$TMPDIR"/inittest.txt
|
7
7
|
}
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
|
10
|
+
delete_chef_txt() {
|
11
|
+
rm "$TMPDIR"/inittest.txt
|
11
12
|
}
|
12
13
|
|
13
|
-
|
14
|
-
mv $TMPDIR/inittest.txt $TMPDIR
|
14
|
+
rename_chef_txt() {
|
15
|
+
mv "$TMPDIR"/inittest.txt "$TMPDIR"/"$1"
|
15
16
|
}
|
16
17
|
|
17
18
|
case "$1" in
|
@@ -22,7 +23,7 @@ stop )
|
|
22
23
|
delete_chef_txt
|
23
24
|
;;
|
24
25
|
status )
|
25
|
-
[ -f $TMPDIR/inittest.txt ] || [ -f $TMPDIR/inittest_reload.txt ] || [ -f $TMPDIR/inittest_restart.txt ]
|
26
|
+
[ -f "$TMPDIR"/inittest.txt ] || [ -f "$TMPDIR"/inittest_reload.txt ] || [ -f "$TMPDIR"/inittest_restart.txt ]
|
26
27
|
;;
|
27
28
|
reload )
|
28
29
|
rename_chef_txt "inittest_reload.txt"
|
@@ -50,8 +50,8 @@ describe Chef::Knife::Ssh do
|
|
50
50
|
describe "identity file" do
|
51
51
|
context "when knife[:ssh_identity_file] is set" do
|
52
52
|
before do
|
53
|
-
setup_knife(["*:*", "uptime"])
|
54
53
|
Chef::Config[:knife][:ssh_identity_file] = "~/.ssh/aws.rsa"
|
54
|
+
setup_knife(["*:*", "uptime"])
|
55
55
|
end
|
56
56
|
|
57
57
|
it "uses the ssh_identity_file" do
|
@@ -62,8 +62,8 @@ describe Chef::Knife::Ssh do
|
|
62
62
|
|
63
63
|
context "when knife[:ssh_identity_file] is set and frozen" do
|
64
64
|
before do
|
65
|
-
setup_knife(["*:*", "uptime"])
|
66
65
|
Chef::Config[:knife][:ssh_identity_file] = "~/.ssh/aws.rsa".freeze
|
66
|
+
setup_knife(["*:*", "uptime"])
|
67
67
|
end
|
68
68
|
|
69
69
|
it "uses the ssh_identity_file" do
|
@@ -74,8 +74,8 @@ describe Chef::Knife::Ssh do
|
|
74
74
|
|
75
75
|
context "when -i is provided" do
|
76
76
|
before do
|
77
|
-
setup_knife(["-i ~/.ssh/aws.rsa", "*:*", "uptime"])
|
78
77
|
Chef::Config[:knife][:ssh_identity_file] = nil
|
78
|
+
setup_knife(["-i ~/.ssh/aws.rsa", "*:*", "uptime"])
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should use the value on the command line" do
|
@@ -85,6 +85,7 @@ describe Chef::Knife::Ssh do
|
|
85
85
|
|
86
86
|
it "should override what is set in knife.rb" do
|
87
87
|
Chef::Config[:knife][:ssh_identity_file] = "~/.ssh/other.rsa"
|
88
|
+
@knife.merge_configs
|
88
89
|
@knife.run
|
89
90
|
expect(@knife.config[:ssh_identity_file]).to eq("~/.ssh/aws.rsa")
|
90
91
|
end
|
@@ -92,8 +93,8 @@ describe Chef::Knife::Ssh do
|
|
92
93
|
|
93
94
|
context "when knife[:ssh_identity_file] is not provided]" do
|
94
95
|
before do
|
95
|
-
setup_knife(["*:*", "uptime"])
|
96
96
|
Chef::Config[:knife][:ssh_identity_file] = nil
|
97
|
+
setup_knife(["*:*", "uptime"])
|
97
98
|
end
|
98
99
|
|
99
100
|
it "uses the default" do
|
@@ -119,8 +120,8 @@ describe Chef::Knife::Ssh do
|
|
119
120
|
describe "user" do
|
120
121
|
context "when knife[:ssh_user] is set" do
|
121
122
|
before do
|
122
|
-
setup_knife(["*:*", "uptime"])
|
123
123
|
Chef::Config[:knife][:ssh_user] = "ubuntu"
|
124
|
+
setup_knife(["*:*", "uptime"])
|
124
125
|
end
|
125
126
|
|
126
127
|
it "uses the ssh_user" do
|
@@ -131,8 +132,8 @@ describe Chef::Knife::Ssh do
|
|
131
132
|
|
132
133
|
context "when knife[:ssh_user] is set and frozen" do
|
133
134
|
before do
|
134
|
-
setup_knife(["*:*", "uptime"])
|
135
135
|
Chef::Config[:knife][:ssh_user] = "ubuntu".freeze
|
136
|
+
setup_knife(["*:*", "uptime"])
|
136
137
|
end
|
137
138
|
|
138
139
|
it "uses the ssh_user" do
|
@@ -143,8 +144,8 @@ describe Chef::Knife::Ssh do
|
|
143
144
|
|
144
145
|
context "when -x is provided" do
|
145
146
|
before do
|
146
|
-
setup_knife(["-x ubuntu", "*:*", "uptime"])
|
147
147
|
Chef::Config[:knife][:ssh_user] = nil
|
148
|
+
setup_knife(["-x ubuntu", "*:*", "uptime"])
|
148
149
|
end
|
149
150
|
|
150
151
|
it "should use the value on the command line" do
|
@@ -154,6 +155,7 @@ describe Chef::Knife::Ssh do
|
|
154
155
|
|
155
156
|
it "should override what is set in knife.rb" do
|
156
157
|
Chef::Config[:knife][:ssh_user] = "root"
|
158
|
+
@knife.merge_configs
|
157
159
|
@knife.run
|
158
160
|
expect(@knife.config[:ssh_user]).to eq("ubuntu")
|
159
161
|
end
|
@@ -161,8 +163,8 @@ describe Chef::Knife::Ssh do
|
|
161
163
|
|
162
164
|
context "when knife[:ssh_user] is not provided]" do
|
163
165
|
before do
|
164
|
-
setup_knife(["*:*", "uptime"])
|
165
166
|
Chef::Config[:knife][:ssh_user] = nil
|
167
|
+
setup_knife(["*:*", "uptime"])
|
166
168
|
end
|
167
169
|
|
168
170
|
it "uses the default (current user)" do
|
@@ -175,8 +177,8 @@ describe Chef::Knife::Ssh do
|
|
175
177
|
describe "attribute" do
|
176
178
|
context "when knife[:ssh_attribute] is set" do
|
177
179
|
before do
|
178
|
-
setup_knife(["*:*", "uptime"])
|
179
180
|
Chef::Config[:knife][:ssh_attribute] = "ec2.public_hostname"
|
181
|
+
setup_knife(["*:*", "uptime"])
|
180
182
|
end
|
181
183
|
|
182
184
|
it "uses the ssh_attribute" do
|
@@ -187,8 +189,8 @@ describe Chef::Knife::Ssh do
|
|
187
189
|
|
188
190
|
context "when knife[:ssh_attribute] is not provided" do
|
189
191
|
before do
|
190
|
-
setup_knife(["*:*", "uptime"])
|
191
192
|
Chef::Config[:knife][:ssh_attribute] = nil
|
193
|
+
setup_knife(["*:*", "uptime"])
|
192
194
|
end
|
193
195
|
|
194
196
|
it "uses the default" do
|
@@ -199,8 +201,8 @@ describe Chef::Knife::Ssh do
|
|
199
201
|
|
200
202
|
context "when -a ec2.public_public_hostname is provided" do
|
201
203
|
before do
|
202
|
-
setup_knife(["-a", "ec2.public_hostname", "*:*", "uptime"])
|
203
204
|
Chef::Config[:knife][:ssh_attribute] = nil
|
205
|
+
setup_knife(["-a", "ec2.public_hostname", "*:*", "uptime"])
|
204
206
|
end
|
205
207
|
|
206
208
|
it "should use the value on the command line" do
|
@@ -211,6 +213,7 @@ describe Chef::Knife::Ssh do
|
|
211
213
|
it "should override what is set in knife.rb" do
|
212
214
|
# This is the setting imported from knife.rb
|
213
215
|
Chef::Config[:knife][:ssh_attribute] = "fqdn"
|
216
|
+
@knife.merge_configs
|
214
217
|
# Then we run knife with the -a flag, which sets the above variable
|
215
218
|
setup_knife(["-a", "ec2.public_hostname", "*:*", "uptime"])
|
216
219
|
@knife.run
|
@@ -222,8 +225,8 @@ describe Chef::Knife::Ssh do
|
|
222
225
|
describe "prefix" do
|
223
226
|
context "when knife[:prefix_attribute] is set" do
|
224
227
|
before do
|
225
|
-
setup_knife(["*:*", "uptime"])
|
226
228
|
Chef::Config[:knife][:prefix_attribute] = "name"
|
229
|
+
setup_knife(["*:*", "uptime"])
|
227
230
|
end
|
228
231
|
|
229
232
|
it "uses the prefix_attribute" do
|
@@ -234,8 +237,8 @@ describe Chef::Knife::Ssh do
|
|
234
237
|
|
235
238
|
context "when knife[:prefix_attribute] is not provided" do
|
236
239
|
before do
|
237
|
-
setup_knife(["*:*", "uptime"])
|
238
240
|
Chef::Config[:knife][:prefix_attribute] = nil
|
241
|
+
setup_knife(["*:*", "uptime"])
|
239
242
|
end
|
240
243
|
|
241
244
|
it "falls back to nil" do
|
@@ -246,8 +249,8 @@ describe Chef::Knife::Ssh do
|
|
246
249
|
|
247
250
|
context "when --prefix-attribute ec2.public_public_hostname is provided" do
|
248
251
|
before do
|
249
|
-
setup_knife(["--prefix-attribute", "ec2.public_hostname", "*:*", "uptime"])
|
250
252
|
Chef::Config[:knife][:prefix_attribute] = nil
|
253
|
+
setup_knife(["--prefix-attribute", "ec2.public_hostname", "*:*", "uptime"])
|
251
254
|
end
|
252
255
|
|
253
256
|
it "should use the value on the command line" do
|
@@ -258,6 +261,7 @@ describe Chef::Knife::Ssh do
|
|
258
261
|
it "should override what is set in knife.rb" do
|
259
262
|
# This is the setting imported from knife.rb
|
260
263
|
Chef::Config[:knife][:prefix_attribute] = "fqdn"
|
264
|
+
@knife.merge_configs
|
261
265
|
# Then we run knife with the -b flag, which sets the above variable
|
262
266
|
setup_knife(["--prefix-attribute", "ec2.public_hostname", "*:*", "uptime"])
|
263
267
|
@knife.run
|
@@ -269,12 +273,12 @@ describe Chef::Knife::Ssh do
|
|
269
273
|
describe "gateway" do
|
270
274
|
context "when knife[:ssh_gateway] is set" do
|
271
275
|
before do
|
272
|
-
setup_knife(["*:*", "uptime"])
|
273
276
|
Chef::Config[:knife][:ssh_gateway] = "user@ec2.public_hostname"
|
277
|
+
setup_knife(["*:*", "uptime"])
|
274
278
|
end
|
275
279
|
|
276
280
|
it "uses the ssh_gateway" do
|
277
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {
|
281
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {})
|
278
282
|
@knife.run
|
279
283
|
expect(@knife.config[:ssh_gateway]).to eq("user@ec2.public_hostname")
|
280
284
|
end
|
@@ -282,12 +286,12 @@ describe Chef::Knife::Ssh do
|
|
282
286
|
|
283
287
|
context "when -G user@ec2.public_hostname is provided" do
|
284
288
|
before do
|
285
|
-
setup_knife(["-G user@ec2.public_hostname", "*:*", "uptime"])
|
286
289
|
Chef::Config[:knife][:ssh_gateway] = nil
|
290
|
+
setup_knife(["-G user@ec2.public_hostname", "*:*", "uptime"])
|
287
291
|
end
|
288
292
|
|
289
293
|
it "uses the ssh_gateway" do
|
290
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {
|
294
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {})
|
291
295
|
@knife.run
|
292
296
|
expect(@knife.config[:ssh_gateway]).to eq("user@ec2.public_hostname")
|
293
297
|
end
|
@@ -295,13 +299,13 @@ describe Chef::Knife::Ssh do
|
|
295
299
|
|
296
300
|
context "when knife[:ssh_gateway_identity] is set" do
|
297
301
|
before do
|
298
|
-
setup_knife(["*:*", "uptime"])
|
299
302
|
Chef::Config[:knife][:ssh_gateway] = "user@ec2.public_hostname"
|
300
303
|
Chef::Config[:knife][:ssh_gateway_identity] = "~/.ssh/aws-gateway.rsa"
|
304
|
+
setup_knife(["*:*", "uptime"])
|
301
305
|
end
|
302
306
|
|
303
307
|
it "uses the ssh_gateway_identity file" do
|
304
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {
|
308
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
|
305
309
|
@knife.run
|
306
310
|
expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
|
307
311
|
end
|
@@ -309,13 +313,13 @@ describe Chef::Knife::Ssh do
|
|
309
313
|
|
310
314
|
context "when -ssh-gateway-identity is provided and knife[:ssh_gateway] is set" do
|
311
315
|
before do
|
312
|
-
setup_knife(["--ssh-gateway-identity", "~/.ssh/aws-gateway.rsa", "*:*", "uptime"])
|
313
316
|
Chef::Config[:knife][:ssh_gateway] = "user@ec2.public_hostname"
|
314
317
|
Chef::Config[:knife][:ssh_gateway_identity] = nil
|
318
|
+
setup_knife(["--ssh-gateway-identity", "~/.ssh/aws-gateway.rsa", "*:*", "uptime"])
|
315
319
|
end
|
316
320
|
|
317
321
|
it "uses the ssh_gateway_identity file" do
|
318
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {
|
322
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
|
319
323
|
@knife.run
|
320
324
|
expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
|
321
325
|
end
|
@@ -323,8 +327,8 @@ describe Chef::Knife::Ssh do
|
|
323
327
|
|
324
328
|
context "when the gateway requires a password" do
|
325
329
|
before do
|
326
|
-
setup_knife(["-G user@ec2.public_hostname", "*:*", "uptime"])
|
327
330
|
Chef::Config[:knife][:ssh_gateway] = nil
|
331
|
+
setup_knife(["-G user@ec2.public_hostname", "*:*", "uptime"])
|
328
332
|
allow(@knife.session).to receive(:via) do |host, user, options|
|
329
333
|
raise Net::SSH::AuthenticationFailed unless options[:password]
|
330
334
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
#
|
2
3
|
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
3
4
|
# Copyright:: Copyright (c) Chef Software Inc.
|
@@ -28,11 +29,11 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
28
29
|
# Platform specific validation routines.
|
29
30
|
def service_should_be_started(file_name)
|
30
31
|
# The existence of this file indicates that the service was started.
|
31
|
-
expect(File.
|
32
|
+
expect(File.exists?("#{Dir.tmpdir}/#{file_name}")).to be_truthy
|
32
33
|
end
|
33
34
|
|
34
35
|
def service_should_be_stopped(file_name)
|
35
|
-
expect(File.
|
36
|
+
expect(File.exists?("#{Dir.tmpdir}/#{file_name}")).to be_falsey
|
36
37
|
end
|
37
38
|
|
38
39
|
def valide_symlinks(expected_output, run_level = nil, status = nil, priority = nil)
|
@@ -68,12 +69,12 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
68
69
|
end
|
69
70
|
|
70
71
|
before(:all) do
|
71
|
-
File.delete("/etc/rc.d/init.d/chefinittest") if File.
|
72
|
+
File.delete("/etc/rc.d/init.d/chefinittest") if File.exists?("/etc/rc.d/init.d/chefinittest")
|
72
73
|
FileUtils.cp((File.join(File.dirname(__FILE__), "/../assets/chefinittest")).to_s, "/etc/rc.d/init.d/chefinittest")
|
73
74
|
end
|
74
75
|
|
75
76
|
after(:all) do
|
76
|
-
File.delete("/etc/rc.d/init.d/chefinittest") if File.
|
77
|
+
File.delete("/etc/rc.d/init.d/chefinittest") if File.exists?("/etc/rc.d/init.d/chefinittest")
|
77
78
|
end
|
78
79
|
|
79
80
|
before(:each) do
|
@@ -165,7 +166,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
165
166
|
end
|
166
167
|
|
167
168
|
after do
|
168
|
-
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.
|
169
|
+
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.exists?("/etc/rc.d/rc2.d/chefinittest")
|
169
170
|
end
|
170
171
|
|
171
172
|
it "creates symlink with status K" do
|
@@ -181,7 +182,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
181
182
|
end
|
182
183
|
|
183
184
|
after do
|
184
|
-
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.
|
185
|
+
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.exists?("/etc/rc.d/rc2.d/chefinittest")
|
185
186
|
end
|
186
187
|
|
187
188
|
it "creates a symlink with status K and a priority" do
|
@@ -198,7 +199,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
198
199
|
end
|
199
200
|
|
200
201
|
after do
|
201
|
-
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.
|
202
|
+
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.exists?("/etc/rc.d/rc2.d/chefinittest")
|
202
203
|
end
|
203
204
|
|
204
205
|
it "create symlink with status stop (K) and a priority " do
|
@@ -31,12 +31,12 @@ describe Chef::Resource::BffPackage, :requires_root, external: ohai[:platform] !
|
|
31
31
|
|
32
32
|
def bff_pkg_should_be_installed(resource)
|
33
33
|
expect(shell_out("lslpp -L #{resource.name}").exitstatus).to eq(0)
|
34
|
-
::File.
|
34
|
+
::File.exists?("/usr/PkgA/bin/acommand")
|
35
35
|
end
|
36
36
|
|
37
37
|
def bff_pkg_should_be_removed(resource)
|
38
38
|
expect(shell_out("lslpp -L #{resource.name}").exitstatus).to eq(1)
|
39
|
-
!::File.
|
39
|
+
!::File.exists?("/usr/PkgA/bin/acommand")
|
40
40
|
end
|
41
41
|
|
42
42
|
before(:all) do
|
@@ -72,7 +72,7 @@ describe Chef::Resource::CookbookFile do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
after do
|
75
|
-
FileUtils.rm_r(windows_non_temp_dir) if ChefUtils.windows? && File.
|
75
|
+
FileUtils.rm_r(windows_non_temp_dir) if ChefUtils.windows? && File.exists?(windows_non_temp_dir)
|
76
76
|
end
|
77
77
|
|
78
78
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
#
|
2
3
|
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
3
4
|
# Copyright:: Copyright (c) Chef Software Inc.
|
@@ -54,17 +55,8 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
54
55
|
# Actual tests
|
55
56
|
let(:new_resource) do
|
56
57
|
new_resource = Chef::Resource::Cron.new("Chef functional test cron", run_context)
|
57
|
-
new_resource.user
|
58
|
-
|
59
|
-
if ohai[:platform] == "solaris2" || ohai[:platform] == "aix"
|
60
|
-
new_resource.minute "0 * * * *"
|
61
|
-
else
|
62
|
-
new_resource.minute "@hourly"
|
63
|
-
end
|
64
|
-
new_resource.hour ""
|
65
|
-
new_resource.day ""
|
66
|
-
new_resource.month ""
|
67
|
-
new_resource.weekday ""
|
58
|
+
new_resource.user "root"
|
59
|
+
new_resource.minute "0"
|
68
60
|
new_resource.command "/bin/true"
|
69
61
|
new_resource
|
70
62
|
end
|
@@ -105,7 +97,7 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
105
97
|
|
106
98
|
exclude_solaris = %w{solaris opensolaris solaris2 omnios}.include?(ohai[:platform])
|
107
99
|
describe "create action with various attributes", external: exclude_solaris do
|
108
|
-
def
|
100
|
+
def create_and_validate_with_property(resource, attribute, value)
|
109
101
|
if ohai[:platform] == "aix"
|
110
102
|
expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::Cron, /Aix cron entry does not support environment variables. Please set them in script and use script in cron./)
|
111
103
|
else
|
@@ -129,28 +121,28 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
129
121
|
|
130
122
|
it "should create a crontab entry for mailto attribute" do
|
131
123
|
new_resource.mailto "cheftest@example.com"
|
132
|
-
|
124
|
+
create_and_validate_with_property(new_resource, "mailto", "cheftest@example.com")
|
133
125
|
end
|
134
126
|
|
135
127
|
it "should create a crontab entry for path attribute" do
|
136
128
|
new_resource.path "/usr/local/bin"
|
137
|
-
|
129
|
+
create_and_validate_with_property(new_resource, "path", "/usr/local/bin")
|
138
130
|
end
|
139
131
|
|
140
132
|
it "should create a crontab entry for shell attribute" do
|
141
133
|
new_resource.shell "/bin/bash"
|
142
|
-
|
134
|
+
create_and_validate_with_property(new_resource, "shell", "/bin/bash")
|
143
135
|
end
|
144
136
|
|
145
137
|
it "should create a crontab entry for home attribute" do
|
146
138
|
new_resource.home "/home/opscode"
|
147
|
-
|
139
|
+
create_and_validate_with_property(new_resource, "home", "/home/opscode")
|
148
140
|
end
|
149
141
|
|
150
142
|
%i{ home mailto path shell }.each do |attr|
|
151
143
|
it "supports an empty string for #{attr} attribute" do
|
152
144
|
new_resource.send(attr, "")
|
153
|
-
|
145
|
+
create_and_validate_with_property(new_resource, attr.to_s, "")
|
154
146
|
end
|
155
147
|
end
|
156
148
|
end
|
@@ -160,20 +152,10 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
160
152
|
new_resource.run_action(:delete)
|
161
153
|
end
|
162
154
|
|
163
|
-
def cron_create_should_raise_exception
|
164
|
-
expect { new_resource.run_action(:create) }.to raise_error(Chef::Exceptions::Cron)
|
165
|
-
cron_should_not_exists(new_resource.name)
|
166
|
-
end
|
167
|
-
|
168
|
-
it "should not create cron with invalid minute" do
|
169
|
-
new_resource.minute "invalid"
|
170
|
-
cron_create_should_raise_exception
|
171
|
-
end
|
172
|
-
|
173
155
|
it "should not create cron with invalid user" do
|
174
156
|
new_resource.user "1-really-really-invalid-user-name"
|
175
|
-
|
157
|
+
expect { new_resource.run_action(:create) }.to raise_error(Chef::Exceptions::Cron)
|
158
|
+
cron_should_not_exists(new_resource.name)
|
176
159
|
end
|
177
|
-
|
178
160
|
end
|
179
161
|
end
|