chef 16.11.7-universal-mingw32 → 17.2.29-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +9 -21
- data/README.md +1 -1
- data/Rakefile +13 -2
- data/chef-universal-mingw32.gemspec +1 -1
- data/chef.gemspec +11 -24
- data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.Wrapper.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/Newtonsoft.Json.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +153 -149
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Diagnostics.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Management.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Utility.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.ConsoleHost.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.CoreCLR.Eventing.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.MarkdownRender.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Security.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Management.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Runtime.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Newtonsoft.Json.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.Messages.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Common.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Management.Automation.dll +0 -0
- data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Pkcs.dll +0 -0
- data/distro/ruby_bin_folder/x86/Chef.PowerShell.dll +0 -0
- data/distro/ruby_bin_folder/x86/Chef.Powershell.Wrapper.dll +0 -0
- data/distro/ruby_bin_folder/x86/Newtonsoft.Json.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +153 -149
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Diagnostics.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Management.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Utility.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.ConsoleHost.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.CoreCLR.Eventing.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.MarkdownRender.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Security.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Management.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Runtime.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Newtonsoft.Json.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.Messages.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Common.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Management.Automation.dll +0 -0
- data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Pkcs.dll +0 -0
- data/lib/chef/action_collection.rb +6 -26
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/base.rb +16 -1
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/chef_fs/command_line.rb +5 -2
- data/lib/chef/chef_fs/file_pattern.rb +2 -2
- data/lib/chef/chef_fs/file_system.rb +9 -10
- data/lib/chef/client.rb +8 -2
- data/lib/chef/compliance/default_attributes.rb +5 -4
- data/lib/chef/compliance/fetcher/automate.rb +0 -7
- data/lib/chef/compliance/reporter/automate.rb +17 -7
- data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
- data/lib/chef/compliance/reporter/cli.rb +77 -0
- data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
- data/lib/chef/compliance/reporter/json_file.rb +8 -1
- data/lib/chef/compliance/runner.rb +65 -27
- data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
- data/lib/chef/cookbook/gem_installer.rb +5 -1
- data/lib/chef/cookbook/synchronizer.rb +3 -5
- data/lib/chef/cookbook_loader.rb +2 -4
- data/lib/chef/cookbook_uploader.rb +0 -1
- data/lib/chef/cookbook_version.rb +26 -4
- data/lib/chef/data_bag.rb +2 -1
- data/lib/chef/data_bag_item.rb +13 -3
- data/lib/chef/data_collector.rb +0 -1
- data/lib/chef/data_collector/run_end_message.rb +1 -1
- data/lib/chef/delayed_evaluator.rb +4 -0
- data/lib/chef/deprecated.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +6 -6
- data/lib/chef/dsl/declare_resource.rb +5 -10
- data/lib/chef/dsl/reboot_pending.rb +1 -2
- data/lib/chef/event_dispatch/base.rb +2 -1
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/formatters/doc.rb +2 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
- data/lib/chef/group.rb +75 -0
- data/lib/chef/handler.rb +46 -8
- data/lib/chef/handler/slow_report.rb +66 -0
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/node.rb +21 -20
- data/lib/chef/node/attribute.rb +6 -4
- data/lib/chef/node/immutable_collections.rb +13 -0
- data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
- data/lib/chef/org.rb +3 -2
- data/lib/chef/property.rb +18 -0
- data/lib/chef/provider.rb +1 -1
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/directory.rb +6 -6
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +2 -2
- data/lib/chef/provider/git.rb +5 -7
- data/lib/chef/provider/group/groupadd.rb +3 -3
- data/lib/chef/provider/group/groupmod.rb +3 -3
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/ifconfig.rb +2 -2
- data/lib/chef/provider/link.rb +3 -3
- data/lib/chef/provider/mount.rb +12 -7
- data/lib/chef/provider/mount/aix.rb +3 -3
- data/lib/chef/provider/mount/mount.rb +5 -5
- data/lib/chef/provider/mount/windows.rb +1 -1
- data/lib/chef/provider/package.rb +17 -21
- data/lib/chef/provider/package/apt.rb +27 -1
- data/lib/chef/provider/package/deb.rb +3 -3
- data/lib/chef/provider/package/dnf/dnf_helper.py +12 -11
- data/lib/chef/provider/package/dnf/python_helper.rb +9 -8
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +11 -17
- data/lib/chef/provider/package/windows.rb +2 -4
- data/lib/chef/provider/package/yum.rb +1 -4
- data/lib/chef/provider/package/yum/python_helper.rb +15 -10
- data/lib/chef/provider/package/yum/yum_helper.py +47 -63
- data/lib/chef/provider/registry_key.rb +1 -1
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service.rb +6 -6
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +15 -21
- data/lib/chef/provider/service/macosx.rb +7 -7
- data/lib/chef/provider/service/systemd.rb +43 -14
- data/lib/chef/provider/service/upstart.rb +2 -13
- data/lib/chef/provider/service/windows.rb +12 -12
- data/lib/chef/provider/subversion.rb +10 -12
- data/lib/chef/provider/support/zypper_repo.erb +4 -2
- data/lib/chef/provider/systemd_unit.rb +36 -10
- data/lib/chef/provider/template/content.rb +3 -7
- data/lib/chef/provider/user.rb +2 -2
- data/lib/chef/provider/user/dscl.rb +1 -1
- data/lib/chef/provider/user/mac.rb +17 -20
- data/lib/chef/provider/user/pw.rb +1 -1
- data/lib/chef/provider/user/windows.rb +1 -1
- data/lib/chef/provider/windows_script.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +28 -32
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/resource.rb +6 -7
- data/lib/chef/resource/alternatives.rb +6 -6
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/apt_preference.rb +2 -2
- data/lib/chef/resource/apt_repository.rb +6 -6
- data/lib/chef/resource/apt_update.rb +5 -4
- data/lib/chef/resource/archive_file.rb +2 -3
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +2 -6
- data/lib/chef/resource/chef_client_config.rb +3 -3
- data/lib/chef/resource/chef_client_cron.rb +4 -4
- data/lib/chef/resource/chef_client_launchd.rb +6 -6
- data/lib/chef/resource/chef_client_scheduled_task.rb +15 -15
- data/lib/chef/resource/chef_client_systemd_timer.rb +4 -4
- data/lib/chef/resource/chef_handler.rb +3 -7
- data/lib/chef/resource/chef_sleep.rb +1 -1
- data/lib/chef/resource/chef_vault_secret.rb +3 -8
- data/lib/chef/resource/chocolatey_config.rb +2 -6
- data/lib/chef/resource/chocolatey_feature.rb +2 -6
- data/lib/chef/resource/chocolatey_source.rb +4 -10
- data/lib/chef/resource/cron/_cron_shared.rb +2 -2
- data/lib/chef/resource/cron/cron_d.rb +4 -6
- data/lib/chef/resource/cron_access.rb +2 -4
- data/lib/chef/resource/dmg_package.rb +6 -10
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +8 -3
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/group.rb +6 -6
- data/lib/chef/resource/homebrew_cask.rb +17 -10
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +4 -7
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +68 -22
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/inspec_waiver_file_entry.rb +156 -0
- data/lib/chef/resource/kernel_module.rb +6 -17
- data/lib/chef/resource/locale.rb +2 -3
- data/lib/chef/resource/lwrp_base.rb +19 -0
- data/lib/chef/resource/macos_userdefaults.rb +10 -14
- data/lib/chef/resource/mdadm.rb +53 -7
- data/lib/chef/resource/mount.rb +2 -1
- data/lib/chef/resource/ohai_hint.rb +2 -6
- data/lib/chef/resource/openbsd_package.rb +17 -0
- data/lib/chef/resource/openssl_dhparam.rb +1 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +3 -5
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -4
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
- data/lib/chef/resource/openssl_x509_certificate.rb +3 -6
- data/lib/chef/resource/openssl_x509_crl.rb +1 -3
- data/lib/chef/resource/openssl_x509_request.rb +1 -3
- data/lib/chef/resource/osx_profile.rb +3 -3
- data/lib/chef/resource/plist.rb +8 -8
- data/lib/chef/resource/powershell_package_source.rb +2 -4
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/reboot.rb +38 -9
- data/lib/chef/resource/remote_directory.rb +2 -2
- data/lib/chef/resource/remote_file.rb +3 -3
- data/lib/chef/resource/rhsm_errata.rb +16 -3
- data/lib/chef/resource/rhsm_errata_level.rb +11 -6
- data/lib/chef/resource/rhsm_register.rb +12 -6
- data/lib/chef/resource/rhsm_repo.rb +17 -6
- data/lib/chef/resource/rhsm_subscription.rb +2 -6
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
- data/lib/chef/resource/sudo.rb +8 -12
- data/lib/chef/resource/swap_file.rb +2 -6
- data/lib/chef/resource/sysctl.rb +2 -6
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +1 -3
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user_ulimit.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +2 -6
- data/lib/chef/resource/windows_audit_policy.rb +2 -2
- data/lib/chef/resource/windows_auto_run.rb +2 -5
- data/lib/chef/resource/windows_certificate.rb +207 -73
- data/lib/chef/resource/windows_dfs_folder.rb +2 -6
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
- data/lib/chef/resource/windows_dfs_server.rb +1 -3
- data/lib/chef/resource/windows_dns_record.rb +2 -6
- data/lib/chef/resource/windows_dns_zone.rb +2 -6
- data/lib/chef/resource/windows_env.rb +6 -5
- data/lib/chef/resource/windows_feature.rb +3 -9
- data/lib/chef/resource/windows_feature_dism.rb +3 -9
- data/lib/chef/resource/windows_feature_powershell.rb +3 -3
- data/lib/chef/resource/windows_firewall_profile.rb +4 -4
- data/lib/chef/resource/windows_firewall_rule.rb +20 -9
- data/lib/chef/resource/windows_font.rb +3 -5
- data/lib/chef/resource/windows_pagefile.rb +104 -69
- data/lib/chef/resource/windows_path.rb +4 -4
- data/lib/chef/resource/windows_printer.rb +8 -23
- data/lib/chef/resource/windows_printer_port.rb +49 -66
- data/lib/chef/resource/windows_security_policy.rb +56 -40
- data/lib/chef/resource/windows_share.rb +14 -21
- data/lib/chef/resource/windows_shortcut.rb +4 -6
- data/lib/chef/resource/windows_task.rb +19 -7
- data/lib/chef/resource/windows_uac.rb +3 -5
- data/lib/chef/resource/windows_user_privilege.rb +4 -4
- data/lib/chef/resource/windows_workgroup.rb +3 -4
- data/lib/chef/resource/yum_package.rb +10 -10
- data/lib/chef/resource/zypper_package.rb +4 -4
- data/lib/chef/resource/zypper_repository.rb +28 -8
- data/lib/chef/resource_builder.rb +8 -2
- data/lib/chef/resource_reporter.rb +0 -1
- data/lib/chef/resources.rb +1 -1
- data/lib/chef/run_lock.rb +1 -1
- data/lib/chef/runner.rb +1 -1
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/user.rb +0 -1
- data/lib/chef/user_v1.rb +3 -4
- data/lib/chef/util/dsc/configuration_generator.rb +1 -0
- data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +9 -2
- data/lib/chef/win32/registry.rb +4 -2
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
- data/spec/data/lwrp/resources/bar.rb +2 -0
- data/spec/data/lwrp/resources/buck_passer.rb +1 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
- data/spec/data/lwrp/resources/foo.rb +2 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
- data/spec/data/lwrp_override/resources/foo.rb +1 -0
- data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
- data/spec/data/rubygems.org/sexp_processor-info +49 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
- data/spec/functional/dsl/registry_helper_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +7 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
- data/spec/functional/resource/cron_spec.rb +1 -1
- data/spec/functional/resource/dnf_package_spec.rb +857 -534
- data/spec/functional/resource/group_spec.rb +1 -1
- data/spec/functional/resource/link_spec.rb +1 -1
- data/spec/functional/resource/registry_spec.rb +8 -8
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +92 -35
- data/spec/functional/resource/windows_env_spec.rb +2 -2
- data/spec/functional/resource/windows_hostname_spec.rb +91 -0
- data/spec/functional/resource/windows_pagefile_spec.rb +98 -0
- data/spec/functional/resource/yum_package_spec.rb +495 -428
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +5 -22
- data/spec/integration/client/exit_code_spec.rb +1 -1
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/compliance/compliance_spec.rb +1 -1
- data/spec/integration/ohai/ohai_spec.rb +7 -6
- data/spec/integration/recipes/accumulator_spec.rb +13 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
- data/spec/integration/recipes/lwrp_spec.rb +3 -1
- data/spec/integration/recipes/notifies_spec.rb +15 -1
- data/spec/integration/recipes/notifying_block_spec.rb +2 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
- data/spec/integration/recipes/unified_mode_spec.rb +71 -1
- data/spec/integration/recipes/use_partial_spec.rb +4 -1
- data/spec/spec_helper.rb +14 -13
- data/spec/support/chef_helpers.rb +1 -17
- data/spec/support/lib/chef/resource/with_state.rb +0 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
- data/spec/support/lib/chef/resource/zen_master.rb +0 -1
- data/spec/support/matchers/leak.rb +7 -9
- data/spec/support/platform_helpers.rb +5 -8
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/integration/integration_helper.rb +0 -1
- data/spec/support/shared/unit/provider/file.rb +15 -1
- data/spec/support/shared/unit/script_resource.rb +2 -2
- data/spec/unit/application/solo_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system_spec.rb +1 -1
- data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
- data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
- data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
- data/spec/unit/compliance/runner_spec.rb +31 -5
- data/spec/unit/cookbook_version_spec.rb +52 -0
- data/spec/unit/data_bag_item_spec.rb +3 -8
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +47 -1
- data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
- data/spec/unit/dsl/registry_helper_spec.rb +1 -1
- data/spec/unit/handler_spec.rb +8 -2
- data/spec/unit/lwrp_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -3
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +78 -0
- data/spec/unit/org_group_spec.rb +45 -0
- data/spec/unit/property_spec.rb +23 -22
- data/spec/unit/provider/cron_spec.rb +1 -1
- data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
- data/spec/unit/provider/group/groupmod_spec.rb +2 -2
- data/spec/unit/provider/group/pw_spec.rb +2 -2
- data/spec/unit/provider/group_spec.rb +1 -1
- data/spec/unit/provider/link_spec.rb +1 -1
- data/spec/unit/provider/mount/mount_spec.rb +51 -0
- data/spec/unit/provider/package/apt_spec.rb +84 -18
- data/spec/unit/provider/package/deb_spec.rb +3 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -0
- data/spec/unit/provider/package/rubygems_spec.rb +21 -33
- data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
- data/spec/unit/provider/service/arch_service_spec.rb +1 -0
- data/spec/unit/provider/service/debian_service_spec.rb +1 -0
- data/spec/unit/provider/service/macosx_spec.rb +5 -5
- data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
- data/spec/unit/provider/service/windows_spec.rb +2 -2
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/systemd_unit_spec.rb +79 -60
- data/spec/unit/provider/zypper_repository_spec.rb +5 -12
- data/spec/unit/provider_spec.rb +0 -8
- data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
- data/spec/unit/resource/powershell_script_spec.rb +2 -2
- data/spec/unit/resource/windows_firewall_rule_spec.rb +12 -7
- data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/zypper_repository_spec.rb +1 -1
- data/spec/unit/user_spec.rb +1 -1
- data/spec/unit/user_v1_spec.rb +6 -4
- data/tasks/rspec.rb +9 -6
- metadata +26 -528
- data/bin/knife +0 -24
- data/lib/chef/application/knife.rb +0 -234
- data/lib/chef/application/windows_service.rb +0 -338
- data/lib/chef/application/windows_service_manager.rb +0 -205
- data/lib/chef/chef_fs/knife.rb +0 -160
- data/lib/chef/chef_fs/parallelizer.rb +0 -102
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
- data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
- data/lib/chef/knife.rb +0 -665
- data/lib/chef/knife/acl_add.rb +0 -57
- data/lib/chef/knife/acl_base.rb +0 -183
- data/lib/chef/knife/acl_bulk_add.rb +0 -78
- data/lib/chef/knife/acl_bulk_remove.rb +0 -83
- data/lib/chef/knife/acl_remove.rb +0 -62
- data/lib/chef/knife/acl_show.rb +0 -56
- data/lib/chef/knife/bootstrap.rb +0 -1192
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
- data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
- data/lib/chef/knife/bootstrap/templates/README.md +0 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
- data/lib/chef/knife/client_bulk_delete.rb +0 -104
- data/lib/chef/knife/client_create.rb +0 -101
- data/lib/chef/knife/client_delete.rb +0 -62
- data/lib/chef/knife/client_edit.rb +0 -52
- data/lib/chef/knife/client_key_create.rb +0 -73
- data/lib/chef/knife/client_key_delete.rb +0 -80
- data/lib/chef/knife/client_key_edit.rb +0 -83
- data/lib/chef/knife/client_key_list.rb +0 -73
- data/lib/chef/knife/client_key_show.rb +0 -80
- data/lib/chef/knife/client_list.rb +0 -41
- data/lib/chef/knife/client_reregister.rb +0 -58
- data/lib/chef/knife/client_show.rb +0 -48
- data/lib/chef/knife/config_get.rb +0 -39
- data/lib/chef/knife/config_get_profile.rb +0 -37
- data/lib/chef/knife/config_list.rb +0 -139
- data/lib/chef/knife/config_list_profiles.rb +0 -37
- data/lib/chef/knife/config_show.rb +0 -127
- data/lib/chef/knife/config_use.rb +0 -61
- data/lib/chef/knife/config_use_profile.rb +0 -47
- data/lib/chef/knife/configure.rb +0 -150
- data/lib/chef/knife/configure_client.rb +0 -48
- data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
- data/lib/chef/knife/cookbook_delete.rb +0 -151
- data/lib/chef/knife/cookbook_download.rb +0 -142
- data/lib/chef/knife/cookbook_list.rb +0 -47
- data/lib/chef/knife/cookbook_metadata.rb +0 -106
- data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
- data/lib/chef/knife/cookbook_show.rb +0 -98
- data/lib/chef/knife/cookbook_upload.rb +0 -292
- data/lib/chef/knife/core/bootstrap_context.rb +0 -264
- data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
- data/lib/chef/knife/core/formatting_options.rb +0 -49
- data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
- data/lib/chef/knife/core/generic_presenter.rb +0 -232
- data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
- data/lib/chef/knife/core/node_editor.rb +0 -130
- data/lib/chef/knife/core/node_presenter.rb +0 -133
- data/lib/chef/knife/core/object_loader.rb +0 -115
- data/lib/chef/knife/core/status_presenter.rb +0 -147
- data/lib/chef/knife/core/subcommand_loader.rb +0 -203
- data/lib/chef/knife/core/text_formatter.rb +0 -85
- data/lib/chef/knife/core/ui.rb +0 -338
- data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -406
- data/lib/chef/knife/data_bag_create.rb +0 -81
- data/lib/chef/knife/data_bag_delete.rb +0 -49
- data/lib/chef/knife/data_bag_edit.rb +0 -74
- data/lib/chef/knife/data_bag_from_file.rb +0 -113
- data/lib/chef/knife/data_bag_list.rb +0 -42
- data/lib/chef/knife/data_bag_secret_options.rb +0 -122
- data/lib/chef/knife/data_bag_show.rb +0 -69
- data/lib/chef/knife/delete.rb +0 -125
- data/lib/chef/knife/deps.rb +0 -156
- data/lib/chef/knife/diff.rb +0 -83
- data/lib/chef/knife/download.rb +0 -84
- data/lib/chef/knife/edit.rb +0 -88
- data/lib/chef/knife/environment_compare.rb +0 -128
- data/lib/chef/knife/environment_create.rb +0 -52
- data/lib/chef/knife/environment_delete.rb +0 -44
- data/lib/chef/knife/environment_edit.rb +0 -44
- data/lib/chef/knife/environment_from_file.rb +0 -84
- data/lib/chef/knife/environment_list.rb +0 -41
- data/lib/chef/knife/environment_show.rb +0 -47
- data/lib/chef/knife/exec.rb +0 -99
- data/lib/chef/knife/group_add.rb +0 -55
- data/lib/chef/knife/group_create.rb +0 -49
- data/lib/chef/knife/group_destroy.rb +0 -53
- data/lib/chef/knife/group_list.rb +0 -43
- data/lib/chef/knife/group_remove.rb +0 -56
- data/lib/chef/knife/group_show.rb +0 -49
- data/lib/chef/knife/key_create.rb +0 -112
- data/lib/chef/knife/key_create_base.rb +0 -50
- data/lib/chef/knife/key_delete.rb +0 -55
- data/lib/chef/knife/key_edit.rb +0 -118
- data/lib/chef/knife/key_edit_base.rb +0 -55
- data/lib/chef/knife/key_list.rb +0 -90
- data/lib/chef/knife/key_list_base.rb +0 -45
- data/lib/chef/knife/key_show.rb +0 -53
- data/lib/chef/knife/list.rb +0 -177
- data/lib/chef/knife/node_bulk_delete.rb +0 -75
- data/lib/chef/knife/node_create.rb +0 -47
- data/lib/chef/knife/node_delete.rb +0 -46
- data/lib/chef/knife/node_edit.rb +0 -70
- data/lib/chef/knife/node_environment_set.rb +0 -53
- data/lib/chef/knife/node_from_file.rb +0 -51
- data/lib/chef/knife/node_list.rb +0 -44
- data/lib/chef/knife/node_policy_set.rb +0 -79
- data/lib/chef/knife/node_run_list_add.rb +0 -104
- data/lib/chef/knife/node_run_list_remove.rb +0 -67
- data/lib/chef/knife/node_run_list_set.rb +0 -66
- data/lib/chef/knife/node_show.rb +0 -63
- data/lib/chef/knife/null.rb +0 -12
- data/lib/chef/knife/raw.rb +0 -123
- data/lib/chef/knife/recipe_list.rb +0 -32
- data/lib/chef/knife/rehash.rb +0 -50
- data/lib/chef/knife/role_bulk_delete.rb +0 -66
- data/lib/chef/knife/role_create.rb +0 -53
- data/lib/chef/knife/role_delete.rb +0 -46
- data/lib/chef/knife/role_edit.rb +0 -45
- data/lib/chef/knife/role_env_run_list_add.rb +0 -87
- data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_env_run_list_set.rb +0 -70
- data/lib/chef/knife/role_from_file.rb +0 -51
- data/lib/chef/knife/role_list.rb +0 -42
- data/lib/chef/knife/role_run_list_add.rb +0 -87
- data/lib/chef/knife/role_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_run_list_remove.rb +0 -56
- data/lib/chef/knife/role_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_run_list_set.rb +0 -69
- data/lib/chef/knife/role_show.rb +0 -48
- data/lib/chef/knife/search.rb +0 -194
- data/lib/chef/knife/serve.rb +0 -65
- data/lib/chef/knife/show.rb +0 -72
- data/lib/chef/knife/ssh.rb +0 -645
- data/lib/chef/knife/ssl_check.rb +0 -284
- data/lib/chef/knife/ssl_fetch.rb +0 -161
- data/lib/chef/knife/status.rb +0 -95
- data/lib/chef/knife/supermarket_download.rb +0 -121
- data/lib/chef/knife/supermarket_install.rb +0 -192
- data/lib/chef/knife/supermarket_list.rb +0 -76
- data/lib/chef/knife/supermarket_search.rb +0 -53
- data/lib/chef/knife/supermarket_share.rb +0 -166
- data/lib/chef/knife/supermarket_show.rb +0 -66
- data/lib/chef/knife/supermarket_unshare.rb +0 -61
- data/lib/chef/knife/tag_create.rb +0 -52
- data/lib/chef/knife/tag_delete.rb +0 -60
- data/lib/chef/knife/tag_list.rb +0 -47
- data/lib/chef/knife/upload.rb +0 -86
- data/lib/chef/knife/user_create.rb +0 -107
- data/lib/chef/knife/user_delete.rb +0 -44
- data/lib/chef/knife/user_dissociate.rb +0 -42
- data/lib/chef/knife/user_edit.rb +0 -52
- data/lib/chef/knife/user_invite_add.rb +0 -43
- data/lib/chef/knife/user_invite_list.rb +0 -34
- data/lib/chef/knife/user_invite_rescind.rb +0 -63
- data/lib/chef/knife/user_key_create.rb +0 -73
- data/lib/chef/knife/user_key_delete.rb +0 -80
- data/lib/chef/knife/user_key_edit.rb +0 -83
- data/lib/chef/knife/user_key_list.rb +0 -73
- data/lib/chef/knife/user_key_show.rb +0 -80
- data/lib/chef/knife/user_list.rb +0 -42
- data/lib/chef/knife/user_reregister.rb +0 -59
- data/lib/chef/knife/user_show.rb +0 -48
- data/lib/chef/knife/xargs.rb +0 -282
- data/lib/chef/knife/yaml_convert.rb +0 -91
- data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -79
- data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -318
- data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -354
- data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -440
- data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -65
- data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/tool.py +0 -37
- data/lib/chef/resource/user/dscl_user.rb +0 -35
- data/spec/functional/knife/configure_spec.rb +0 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
- data/spec/functional/knife/exec_spec.rb +0 -55
- data/spec/functional/knife/rehash_spec.rb +0 -39
- data/spec/functional/knife/smoke_test.rb +0 -42
- data/spec/functional/knife/ssh_spec.rb +0 -352
- data/spec/functional/resource/user/dscl_spec.rb +0 -188
- data/spec/functional/resource/windows_service_spec.rb +0 -105
- data/spec/functional/win32/service_manager_spec.rb +0 -220
- data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
- data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
- data/spec/integration/knife/chefignore_spec.rb +0 -301
- data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
- data/spec/integration/knife/client_create_spec.rb +0 -70
- data/spec/integration/knife/client_delete_spec.rb +0 -64
- data/spec/integration/knife/client_key_create_spec.rb +0 -66
- data/spec/integration/knife/client_key_delete_spec.rb +0 -43
- data/spec/integration/knife/client_key_list_spec.rb +0 -61
- data/spec/integration/knife/client_key_show_spec.rb +0 -45
- data/spec/integration/knife/client_list_spec.rb +0 -49
- data/spec/integration/knife/client_show_spec.rb +0 -37
- data/spec/integration/knife/common_options_spec.rb +0 -174
- data/spec/integration/knife/config_list_spec.rb +0 -220
- data/spec/integration/knife/config_show_spec.rb +0 -192
- data/spec/integration/knife/config_use_spec.rb +0 -198
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
- data/spec/integration/knife/cookbook_download_spec.rb +0 -72
- data/spec/integration/knife/cookbook_list_spec.rb +0 -55
- data/spec/integration/knife/cookbook_show_spec.rb +0 -149
- data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
- data/spec/integration/knife/data_bag_create_spec.rb +0 -125
- data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
- data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
- data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
- data/spec/integration/knife/data_bag_list_spec.rb +0 -44
- data/spec/integration/knife/data_bag_show_spec.rb +0 -95
- data/spec/integration/knife/delete_spec.rb +0 -1018
- data/spec/integration/knife/deps_spec.rb +0 -703
- data/spec/integration/knife/diff_spec.rb +0 -605
- data/spec/integration/knife/download_spec.rb +0 -1336
- data/spec/integration/knife/environment_compare_spec.rb +0 -75
- data/spec/integration/knife/environment_create_spec.rb +0 -41
- data/spec/integration/knife/environment_delete_spec.rb +0 -37
- data/spec/integration/knife/environment_from_file_spec.rb +0 -116
- data/spec/integration/knife/environment_list_spec.rb +0 -42
- data/spec/integration/knife/environment_show_spec.rb +0 -77
- data/spec/integration/knife/list_spec.rb +0 -1060
- data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/node_create_spec.rb +0 -47
- data/spec/integration/knife/node_delete_spec.rb +0 -48
- data/spec/integration/knife/node_environment_set_spec.rb +0 -46
- data/spec/integration/knife/node_from_file_spec.rb +0 -59
- data/spec/integration/knife/node_list_spec.rb +0 -45
- data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
- data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
- data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
- data/spec/integration/knife/node_show_spec.rb +0 -36
- data/spec/integration/knife/raw_spec.rb +0 -297
- data/spec/integration/knife/redirection_spec.rb +0 -64
- data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/role_create_spec.rb +0 -41
- data/spec/integration/knife/role_delete_spec.rb +0 -48
- data/spec/integration/knife/role_from_file_spec.rb +0 -96
- data/spec/integration/knife/role_list_spec.rb +0 -45
- data/spec/integration/knife/role_show_spec.rb +0 -51
- data/spec/integration/knife/search_node_spec.rb +0 -40
- data/spec/integration/knife/serve_spec.rb +0 -92
- data/spec/integration/knife/show_spec.rb +0 -197
- data/spec/integration/knife/upload_spec.rb +0 -1617
- data/spec/support/shared/functional/win32_service.rb +0 -57
- data/spec/unit/application/knife_spec.rb +0 -241
- data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
- data/spec/unit/knife/bootstrap_spec.rb +0 -2220
- data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
- data/spec/unit/knife/client_create_spec.rb +0 -169
- data/spec/unit/knife/client_delete_spec.rb +0 -99
- data/spec/unit/knife/client_edit_spec.rb +0 -53
- data/spec/unit/knife/client_list_spec.rb +0 -34
- data/spec/unit/knife/client_reregister_spec.rb +0 -62
- data/spec/unit/knife/client_show_spec.rb +0 -52
- data/spec/unit/knife/configure_client_spec.rb +0 -81
- data/spec/unit/knife/configure_spec.rb +0 -190
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
- data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
- data/spec/unit/knife/cookbook_download_spec.rb +0 -255
- data/spec/unit/knife/cookbook_list_spec.rb +0 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
- data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
- data/spec/unit/knife/cookbook_show_spec.rb +0 -253
- data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
- data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
- data/spec/unit/knife/core/node_editor_spec.rb +0 -211
- data/spec/unit/knife/core/object_loader_spec.rb +0 -81
- data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
- data/spec/unit/knife/core/ui_spec.rb +0 -656
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
- data/spec/unit/knife/data_bag_create_spec.rb +0 -175
- data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
- data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
- data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
- data/spec/unit/knife/data_bag_show_spec.rb +0 -139
- data/spec/unit/knife/environment_compare_spec.rb +0 -112
- data/spec/unit/knife/environment_create_spec.rb +0 -91
- data/spec/unit/knife/environment_delete_spec.rb +0 -71
- data/spec/unit/knife/environment_edit_spec.rb +0 -79
- data/spec/unit/knife/environment_from_file_spec.rb +0 -90
- data/spec/unit/knife/environment_list_spec.rb +0 -54
- data/spec/unit/knife/environment_show_spec.rb +0 -52
- data/spec/unit/knife/key_create_spec.rb +0 -223
- data/spec/unit/knife/key_delete_spec.rb +0 -133
- data/spec/unit/knife/key_edit_spec.rb +0 -264
- data/spec/unit/knife/key_helper.rb +0 -74
- data/spec/unit/knife/key_list_spec.rb +0 -216
- data/spec/unit/knife/key_show_spec.rb +0 -126
- data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
- data/spec/unit/knife/node_delete_spec.rb +0 -77
- data/spec/unit/knife/node_edit_spec.rb +0 -116
- data/spec/unit/knife/node_environment_set_spec.rb +0 -61
- data/spec/unit/knife/node_from_file_spec.rb +0 -59
- data/spec/unit/knife/node_list_spec.rb +0 -62
- data/spec/unit/knife/node_policy_set_spec.rb +0 -122
- data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
- data/spec/unit/knife/node_show_spec.rb +0 -65
- data/spec/unit/knife/raw_spec.rb +0 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
- data/spec/unit/knife/role_create_spec.rb +0 -80
- data/spec/unit/knife/role_delete_spec.rb +0 -67
- data/spec/unit/knife/role_edit_spec.rb +0 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
- data/spec/unit/knife/role_from_file_spec.rb +0 -69
- data/spec/unit/knife/role_list_spec.rb +0 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
- data/spec/unit/knife/role_show_spec.rb +0 -59
- data/spec/unit/knife/ssh_spec.rb +0 -403
- data/spec/unit/knife/ssl_check_spec.rb +0 -256
- data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
- data/spec/unit/knife/status_spec.rb +0 -112
- data/spec/unit/knife/supermarket_download_spec.rb +0 -152
- data/spec/unit/knife/supermarket_install_spec.rb +0 -202
- data/spec/unit/knife/supermarket_list_spec.rb +0 -70
- data/spec/unit/knife/supermarket_search_spec.rb +0 -85
- data/spec/unit/knife/supermarket_share_spec.rb +0 -208
- data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
- data/spec/unit/knife/tag_create_spec.rb +0 -23
- data/spec/unit/knife/tag_delete_spec.rb +0 -25
- data/spec/unit/knife/tag_list_spec.rb +0 -23
- data/spec/unit/knife/user_create_spec.rb +0 -184
- data/spec/unit/knife/user_delete_spec.rb +0 -46
- data/spec/unit/knife/user_edit_spec.rb +0 -48
- data/spec/unit/knife/user_list_spec.rb +0 -36
- data/spec/unit/knife/user_reregister_spec.rb +0 -56
- data/spec/unit/knife/user_show_spec.rb +0 -46
- data/spec/unit/knife_spec.rb +0 -634
- data/spec/unit/provider/user/dscl_spec.rb +0 -699
- data/spec/unit/windows_service_spec.rb +0 -118
@@ -64,8 +64,7 @@ class Chef
|
|
64
64
|
"default" => "/etc",
|
65
65
|
}.freeze
|
66
66
|
|
67
|
-
action :allow do
|
68
|
-
description "Add the user to the cron.allow file."
|
67
|
+
action :allow, description: "Add the user to the cron.allow file." do
|
69
68
|
allow_path = ::File.join(value_for_platform_family(CRON_PATHS), "cron.allow")
|
70
69
|
|
71
70
|
with_run_context :root do
|
@@ -81,8 +80,7 @@ class Chef
|
|
81
80
|
end
|
82
81
|
end
|
83
82
|
|
84
|
-
action :deny do
|
85
|
-
description "Add the user to the cron.deny file."
|
83
|
+
action :deny, description: "Add the user to the cron.deny file." do
|
86
84
|
deny_path = ::File.join(value_for_platform_family(CRON_PATHS), "cron.deny")
|
87
85
|
|
88
86
|
with_run_context :root do
|
@@ -121,9 +121,7 @@ class Chef
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
-
action :install do
|
125
|
-
description "Installs the application."
|
126
|
-
|
124
|
+
action :install, description: "Installs the application." do
|
127
125
|
if current_resource.nil?
|
128
126
|
if new_resource.source
|
129
127
|
remote_file dmg_file do
|
@@ -171,13 +169,11 @@ class Chef
|
|
171
169
|
action_class do
|
172
170
|
# @return [String] the path to the dmg file
|
173
171
|
def dmg_file
|
174
|
-
@dmg_file ||=
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
end
|
180
|
-
end
|
172
|
+
@dmg_file ||= if new_resource.file.nil?
|
173
|
+
"#{Chef::Config[:file_cache_path]}/#{new_resource.dmg_name}.dmg"
|
174
|
+
else
|
175
|
+
new_resource.file
|
176
|
+
end
|
181
177
|
end
|
182
178
|
|
183
179
|
# @return [String] the hdiutil flag for handling DMGs with a password
|
@@ -572,6 +572,10 @@ class Chef
|
|
572
572
|
introduced: "16.2",
|
573
573
|
description: "An optional property to set the input sent to the command as STDIN."
|
574
574
|
|
575
|
+
property :login, [ TrueClass, FalseClass ], default: false,
|
576
|
+
introduced: "17.0",
|
577
|
+
description: "Use a login shell to run the commands instead of inheriting the existing execution environment."
|
578
|
+
|
575
579
|
alias :env :environment
|
576
580
|
|
577
581
|
def self.set_guard_inherited_attributes(*inherited_attributes)
|
@@ -629,13 +633,13 @@ class Chef
|
|
629
633
|
end
|
630
634
|
|
631
635
|
# if domain is provided in both username and domain
|
632
|
-
if specified_user.is_a?(String) && ((specified_user.include?
|
636
|
+
if specified_user.is_a?(String) && ((specified_user.include? "\\") || (specified_user.include? "@")) && specified_domain
|
633
637
|
raise ArgumentError, "The domain is provided twice. Username: `#{specified_user}`, Domain: `#{specified_domain}`. Please specify domain only once."
|
634
638
|
end
|
635
639
|
|
636
640
|
if specified_user.is_a?(String) && specified_domain.nil?
|
637
641
|
# Splitting username of format: Domain\Username
|
638
|
-
domain_and_user = user.split(
|
642
|
+
domain_and_user = user.split("\\")
|
639
643
|
|
640
644
|
if domain_and_user.length == 2
|
641
645
|
domain = domain_and_user[0]
|
@@ -666,7 +670,8 @@ class Chef
|
|
666
670
|
:group,
|
667
671
|
:password,
|
668
672
|
:user,
|
669
|
-
:umask
|
673
|
+
:umask,
|
674
|
+
:login
|
670
675
|
)
|
671
676
|
|
672
677
|
end
|
data/lib/chef/resource/file.rb
CHANGED
@@ -81,7 +81,7 @@ class Chef
|
|
81
81
|
property :manage_symlink_source, [ TrueClass, FalseClass ], desired_state: false,
|
82
82
|
description: "Change the behavior of the file resource if it is pointed at a symlink. When this value is set to true, #{ChefUtils::Dist::Infra::PRODUCT} will manage the symlink's permissions or will replace the symlink with a normal file if the resource has content. When this value is set to false, #{ChefUtils::Dist::Infra::PRODUCT} will follow the symlink and will manage the permissions and content of symlink's target file. The default behavior is true but emits a warning that the default value will be changed to false in a future version; setting this explicitly to true or false suppresses this warning."
|
83
83
|
|
84
|
-
property :verifications, Array, default: lazy { [] }
|
84
|
+
property :verifications, Array, default: lazy { [] }, desired_state: false, skip_docs: true
|
85
85
|
|
86
86
|
def verify(command = nil, opts = {}, &block)
|
87
87
|
unless command.nil? || [String, Symbol].include?(command.class)
|
data/lib/chef/resource/group.rb
CHANGED
@@ -37,22 +37,22 @@ class Chef
|
|
37
37
|
property :gid, [ String, Integer ],
|
38
38
|
description: "The identifier for the group."
|
39
39
|
|
40
|
-
property :members, [String, Array], default:
|
40
|
+
property :members, [String, Array], default: [],
|
41
41
|
coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
|
42
42
|
description: "Which users should be set or appended to a group. When more than one group member is identified, the list of members should be an array: members ['user1', 'user2']."
|
43
43
|
|
44
|
-
property :excluded_members, [String, Array], default:
|
44
|
+
property :excluded_members, [String, Array], default: [],
|
45
45
|
coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
|
46
|
-
description: "Remove users from a group. May only be used when append is set to true
|
46
|
+
description: "Remove users from a group. May only be used when `append` is set to `true`."
|
47
47
|
|
48
48
|
property :append, [ TrueClass, FalseClass ], default: false,
|
49
|
-
description: "How members should be appended and/or removed from a group. When true, members are appended and excluded_members are removed. When false
|
49
|
+
description: "How members should be appended and/or removed from a group. When true, `members` are appended and `excluded_members` are removed. When `false`, group members are reset to the value of the `members` property."
|
50
50
|
|
51
51
|
property :system, [ TrueClass, FalseClass ], default: false,
|
52
|
-
description: "Set
|
52
|
+
description: "Set to `true` if the group belongs to a system group."
|
53
53
|
|
54
54
|
property :non_unique, [ TrueClass, FalseClass ], default: false,
|
55
|
-
description: "Allow gid duplication. May only be used with the Groupadd provider."
|
55
|
+
description: "Allow gid duplication. May only be used with the `Groupadd` user resource provider."
|
56
56
|
|
57
57
|
property :comment, String,
|
58
58
|
introduced: "14.9",
|
@@ -51,12 +51,16 @@ class Chef
|
|
51
51
|
|
52
52
|
property :owner, [String, Integer],
|
53
53
|
description: "The owner of the Homebrew installation.",
|
54
|
-
default: lazy { find_homebrew_username }
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
default: lazy { find_homebrew_username },
|
55
|
+
default_description: "Calculated default username"\
|
56
|
+
|
57
|
+
action :install, description: "Install an application that is packaged as a Homebrew cask." do
|
58
|
+
if new_resource.install_cask
|
59
|
+
homebrew_tap "homebrew/cask" do
|
60
|
+
homebrew_path new_resource.homebrew_path
|
61
|
+
owner new_resource.owner
|
62
|
+
end
|
63
|
+
end
|
60
64
|
|
61
65
|
unless casked?
|
62
66
|
converge_by("install cask #{new_resource.cask_name} #{new_resource.options}") do
|
@@ -68,10 +72,13 @@ class Chef
|
|
68
72
|
end
|
69
73
|
end
|
70
74
|
|
71
|
-
action :remove do
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
+
action :remove, description: "Remove an application that is packaged as a Homebrew cask." do
|
76
|
+
if new_resource.install_cask
|
77
|
+
homebrew_tap "homebrew/cask" do
|
78
|
+
homebrew_path new_resource.homebrew_path
|
79
|
+
owner new_resource.owner
|
80
|
+
end
|
81
|
+
end
|
75
82
|
|
76
83
|
if casked?
|
77
84
|
converge_by("uninstall cask #{new_resource.cask_name}") do
|
@@ -62,7 +62,7 @@ class Chef
|
|
62
62
|
DOC
|
63
63
|
|
64
64
|
property :homebrew_user, [ String, Integer ],
|
65
|
-
description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command."
|
65
|
+
description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command.\n\n#{ChefUtils::Dist::Infra::PRODUCT}, by default, will attempt to execute a Homebrew command as the owner of the `/usr/local/bin/brew` executable. If that executable does not exist, #{ChefUtils::Dist::Infra::PRODUCT} will attempt to find the user by executing `which brew`. If that executable cannot be found, #{ChefUtils::Dist::Infra::PRODUCT} will print an error message: `Could not find the 'brew' executable in /usr/local/bin or anywhere on the path.`.\n\nSet this property to specify the Homebrew owner for situations where Chef Infra Client cannot automatically detect the correct owner.'"
|
66
66
|
|
67
67
|
end
|
68
68
|
end
|
@@ -51,11 +51,10 @@ class Chef
|
|
51
51
|
|
52
52
|
property :owner, String,
|
53
53
|
description: "The owner of the Homebrew installation.",
|
54
|
-
default: lazy { find_homebrew_username }
|
55
|
-
|
56
|
-
action :tap do
|
57
|
-
description "Add a Homebrew tap."
|
54
|
+
default: lazy { find_homebrew_username },
|
55
|
+
default_description: "Calculated default username"
|
58
56
|
|
57
|
+
action :tap, description: "Add a Homebrew tap." do
|
59
58
|
unless tapped?(new_resource.tap_name)
|
60
59
|
converge_by("tap #{new_resource.tap_name}") do
|
61
60
|
shell_out!("#{new_resource.homebrew_path} tap #{new_resource.full ? "--full" : ""} #{new_resource.tap_name} #{new_resource.url || ""}",
|
@@ -66,9 +65,7 @@ class Chef
|
|
66
65
|
end
|
67
66
|
end
|
68
67
|
|
69
|
-
action :untap do
|
70
|
-
description "Remove a Homebrew tap."
|
71
|
-
|
68
|
+
action :untap, description: "Remove a Homebrew tap." do
|
72
69
|
if tapped?(new_resource.tap_name)
|
73
70
|
converge_by("untap #{new_resource.tap_name}") do
|
74
71
|
shell_out!("#{new_resource.homebrew_path} untap #{new_resource.tap_name}",
|
@@ -88,7 +88,7 @@ class Chef
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
action :periodic do
|
91
|
+
action :periodic, description: "Run a periodic update based on the frequency property." do
|
92
92
|
return unless macos?
|
93
93
|
|
94
94
|
unless brew_up_to_date?
|
@@ -98,7 +98,7 @@ class Chef
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
-
action :update do
|
101
|
+
action :update, description: "Run an immediate update." do
|
102
102
|
return unless macos?
|
103
103
|
|
104
104
|
converge_by "force update new lists of packages" do
|
@@ -44,12 +44,34 @@ class Chef
|
|
44
44
|
ipaddress '198.51.100.2'
|
45
45
|
end
|
46
46
|
```
|
47
|
+
|
48
|
+
**Change the hostname of a Windows, Non-Domain joined node**:
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
hostname 'renaming a workgroup computer' do
|
52
|
+
hostname 'Foo'
|
53
|
+
end
|
54
|
+
```
|
55
|
+
|
56
|
+
**Change the hostname of a Windows, Domain-joined node (new in 17.2)**:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
hostname 'renaming a domain-joined computer' do
|
60
|
+
hostname 'Foo'
|
61
|
+
domain_user "Domain\\Someone"
|
62
|
+
domain_password 'SomePassword'
|
63
|
+
end
|
64
|
+
```
|
47
65
|
DOC
|
48
66
|
|
49
67
|
property :hostname, String,
|
50
68
|
description: "An optional property to set the hostname if it differs from the resource block's name.",
|
51
69
|
name_property: true
|
52
70
|
|
71
|
+
property :fqdn, String,
|
72
|
+
description: "An optional property to set the fqdn if it differs from the resource block's hostname.",
|
73
|
+
introduced: "17.0"
|
74
|
+
|
53
75
|
property :ipaddress, String,
|
54
76
|
description: "The IP address to use when configuring the hosts file.",
|
55
77
|
default: lazy { node["ipaddress"] }, default_description: "The node's IP address as determined by Ohai."
|
@@ -67,6 +89,15 @@ class Chef
|
|
67
89
|
description: "Determines whether or not Windows should be reboot after changing the hostname, as this is required for the change to take effect.",
|
68
90
|
default: true
|
69
91
|
|
92
|
+
property :domain_user, String,
|
93
|
+
description: "A domain account specified in the form of DOMAIN\\user used when renaming a domain-joined device",
|
94
|
+
introduced: "17.2"
|
95
|
+
|
96
|
+
property :domain_password, String,
|
97
|
+
description: "The password to accompany the domain_user parameter",
|
98
|
+
sensitive: true,
|
99
|
+
introduced: "17.2"
|
100
|
+
|
70
101
|
action_class do
|
71
102
|
def append_replacing_matching_lines(path, regex, string)
|
72
103
|
text = IO.read(path).split("\n")
|
@@ -99,9 +130,11 @@ class Chef
|
|
99
130
|
end
|
100
131
|
end
|
101
132
|
|
102
|
-
|
103
|
-
|
133
|
+
def is_domain_joined?
|
134
|
+
powershell_exec!("(Get-CIMInstance -Class Win32_ComputerSystem).PartofDomain").result
|
135
|
+
end
|
104
136
|
|
137
|
+
action :set, description: "Sets the node's hostname." do
|
105
138
|
if !windows?
|
106
139
|
ohai "reload hostname" do
|
107
140
|
plugin "hostname"
|
@@ -109,7 +142,7 @@ class Chef
|
|
109
142
|
end
|
110
143
|
|
111
144
|
# set the hostname via /bin/hostname
|
112
|
-
|
145
|
+
execute "set hostname to #{new_resource.hostname}" do
|
113
146
|
command "/bin/hostname #{new_resource.hostname}"
|
114
147
|
not_if { shell_out!("hostname").stdout.chomp == new_resource.hostname }
|
115
148
|
notifies :reload, "ohai[reload hostname]"
|
@@ -117,7 +150,9 @@ class Chef
|
|
117
150
|
|
118
151
|
# make sure node['fqdn'] resolves via /etc/hosts
|
119
152
|
unless new_resource.ipaddress.nil?
|
120
|
-
newline = "#{new_resource.ipaddress}
|
153
|
+
newline = "#{new_resource.ipaddress}"
|
154
|
+
newline << " #{new_resource.fqdn}" unless new_resource.fqdn.to_s.empty?
|
155
|
+
newline << " #{new_resource.hostname}"
|
121
156
|
newline << " #{new_resource.aliases.join(" ")}" if new_resource.aliases && !new_resource.aliases.empty?
|
122
157
|
newline << " #{new_resource.hostname[/[^\.]*/]}"
|
123
158
|
r = append_replacing_matching_lines("/etc/hosts", /^#{new_resource.ipaddress}\s+|\s+#{new_resource.hostname}\s+/, newline)
|
@@ -127,20 +162,20 @@ class Chef
|
|
127
162
|
|
128
163
|
# setup the hostname to persist on a reboot
|
129
164
|
case
|
130
|
-
when
|
165
|
+
when darwin?
|
131
166
|
# darwin
|
132
|
-
|
167
|
+
execute "set HostName via scutil" do
|
133
168
|
command "/usr/sbin/scutil --set HostName #{new_resource.hostname}"
|
134
169
|
not_if { shell_out("/usr/sbin/scutil --get HostName").stdout.chomp == new_resource.hostname }
|
135
170
|
notifies :reload, "ohai[reload hostname]"
|
136
171
|
end
|
137
|
-
|
172
|
+
execute "set ComputerName via scutil" do
|
138
173
|
command "/usr/sbin/scutil --set ComputerName #{new_resource.hostname}"
|
139
174
|
not_if { shell_out("/usr/sbin/scutil --get ComputerName").stdout.chomp == new_resource.hostname }
|
140
175
|
notifies :reload, "ohai[reload hostname]"
|
141
176
|
end
|
142
177
|
shortname = new_resource.hostname[/[^\.]*/]
|
143
|
-
|
178
|
+
execute "set LocalHostName via scutil" do
|
144
179
|
command "/usr/sbin/scutil --set LocalHostName #{shortname}"
|
145
180
|
not_if { shell_out("/usr/sbin/scutil --get LocalHostName").stdout.chomp == shortname }
|
146
181
|
notifies :reload, "ohai[reload hostname]"
|
@@ -150,7 +185,7 @@ class Chef
|
|
150
185
|
when ::File.exist?("/usr/bin/hostnamectl") && !docker?
|
151
186
|
# use hostnamectl whenever we find it on linux (as systemd takes over the world)
|
152
187
|
# this must come before other methods like /etc/hostname and /etc/sysconfig/network
|
153
|
-
|
188
|
+
execute "hostnamectl set-hostname #{new_resource.hostname}" do
|
154
189
|
notifies :reload, "ohai[reload hostname]"
|
155
190
|
not_if { shell_out!("hostnamectl status", returns: [0, 1]).stdout =~ /Static hostname:\s*#{new_resource.hostname}\s*$/ }
|
156
191
|
end
|
@@ -160,7 +195,7 @@ class Chef
|
|
160
195
|
# the "platform: iox_xr, platform_family: wrlinux, os: linux" platform also hits this
|
161
196
|
# the "platform: nexus, platform_family: wrlinux, os: linux" platform also hits this
|
162
197
|
# this is also fallback for any linux systemd host in a docker container (where /usr/bin/hostnamectl will fail)
|
163
|
-
|
198
|
+
file "/etc/hostname" do
|
164
199
|
atomic_update false if docker?
|
165
200
|
content "#{new_resource.hostname}\n"
|
166
201
|
owner "root"
|
@@ -172,7 +207,7 @@ class Chef
|
|
172
207
|
append_replacing_matching_lines("/etc/sysconfig/network", /^HOSTNAME\s*=/, "HOSTNAME=#{new_resource.hostname}")
|
173
208
|
when ::File.exist?("/etc/HOSTNAME")
|
174
209
|
# SuSE/openSUSE uses /etc/HOSTNAME
|
175
|
-
|
210
|
+
file "/etc/HOSTNAME" do
|
176
211
|
content "#{new_resource.hostname}\n"
|
177
212
|
owner "root"
|
178
213
|
group node["root_group"]
|
@@ -180,7 +215,7 @@ class Chef
|
|
180
215
|
end
|
181
216
|
when ::File.exist?("/etc/conf.d/hostname")
|
182
217
|
# Gentoo
|
183
|
-
|
218
|
+
file "/etc/conf.d/hostname" do
|
184
219
|
content "hostname=\"#{new_resource.hostname}\"\n"
|
185
220
|
owner "root"
|
186
221
|
group node["root_group"]
|
@@ -196,23 +231,23 @@ class Chef
|
|
196
231
|
# *BSD systems with /etc/rc.conf + /etc/myname
|
197
232
|
append_replacing_matching_lines("/etc/rc.conf", /^\s+hostname\s+=/, "hostname=#{new_resource.hostname}")
|
198
233
|
|
199
|
-
|
234
|
+
file "/etc/myname" do
|
200
235
|
content "#{new_resource.hostname}\n"
|
201
236
|
owner "root"
|
202
237
|
group node["root_group"]
|
203
238
|
mode "0644"
|
204
239
|
end
|
205
240
|
when ::File.exist?("/usr/sbin/svccfg") # solaris 5.11
|
206
|
-
|
241
|
+
execute "svccfg -s system/identity:node setprop config/nodename=\'#{new_resource.hostname}\'" do
|
207
242
|
notifies :run, "execute[svcadm refresh]", :immediately
|
208
243
|
notifies :run, "execute[svcadm restart]", :immediately
|
209
244
|
not_if { shell_out!("svccfg -s system/identity:node listprop config/nodename").stdout.chomp =~ %r{config/nodename\s+astring\s+#{new_resource.hostname}} }
|
210
245
|
end
|
211
|
-
|
246
|
+
execute "svcadm refresh" do
|
212
247
|
command "svcadm refresh system/identity:node"
|
213
248
|
action :nothing
|
214
249
|
end
|
215
|
-
|
250
|
+
execute "svcadm restart" do
|
216
251
|
command "svcadm restart system/identity:node"
|
217
252
|
action :nothing
|
218
253
|
end
|
@@ -239,13 +274,24 @@ class Chef
|
|
239
274
|
end
|
240
275
|
|
241
276
|
unless Socket.gethostbyname(Socket.gethostname).first == new_resource.hostname
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
277
|
+
if is_domain_joined?
|
278
|
+
if new_resource.domain_user.nil? || new_resource.domain_password.nil?
|
279
|
+
raise "The `domain_user` and `domain_password` properties are required to change the hostname of a domain-connected Windows system."
|
280
|
+
else
|
281
|
+
converge_by "set hostname to #{new_resource.hostname}" do
|
282
|
+
powershell_exec! <<~EOH
|
283
|
+
$user = #{new_resource.domain_user}
|
284
|
+
$secure_password = #{new_resource.domain_password} | Convertto-SecureString -AsPlainText -Force
|
285
|
+
$Credentials = New-Object System.Management.Automation.PSCredential -Argumentlist ($user, $secure_password)
|
286
|
+
Rename-Computer -NewName #{new_resource.hostname} -DomainCredential $Credentials
|
287
|
+
EOH
|
288
|
+
end
|
289
|
+
end
|
290
|
+
else
|
291
|
+
converge_by "set hostname to #{new_resource.hostname}" do
|
292
|
+
powershell_exec!("Rename-Computer -NewName #{new_resource.hostname}")
|
293
|
+
end
|
247
294
|
end
|
248
|
-
|
249
295
|
# reboot because $windows
|
250
296
|
reboot "setting hostname" do
|
251
297
|
reason "#{ChefUtils::Dist::Infra::PRODUCT} updated system hostname"
|
@@ -34,7 +34,7 @@ class Chef
|
|
34
34
|
property :url, String, identity: true,
|
35
35
|
description: "The URL to which an HTTP request is sent."
|
36
36
|
|
37
|
-
property :headers, Hash, default:
|
37
|
+
property :headers, Hash, default: {},
|
38
38
|
description: "A Hash of custom headers."
|
39
39
|
|
40
40
|
def initialize(name, run_context = nil)
|
@@ -0,0 +1,156 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Davin Taddeo (<davin@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require_relative "../resource"
|
19
|
+
autoload :YAML, "yaml"
|
20
|
+
require "date"
|
21
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
22
|
+
|
23
|
+
class Chef
|
24
|
+
class Resource
|
25
|
+
class InspecWaiverFileEntry < Chef::Resource
|
26
|
+
provides :inspec_waiver_file_entry
|
27
|
+
unified_mode true
|
28
|
+
|
29
|
+
description "Use the **inspec_waiver_file_entry** resource to add or remove entries from an InSpec waiver file. This can be used in conjunction with the Compliance Phase."
|
30
|
+
introduced "17.1"
|
31
|
+
examples <<~DOC
|
32
|
+
**Add an InSpec waiver entry to a given waiver file**:
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
inspec_waiver_file_entry 'Add waiver entry for control' do
|
36
|
+
file_path 'C:\\chef\\inspec_waiver_file.yml'
|
37
|
+
control 'my_inspec_control_01'
|
38
|
+
run_test false
|
39
|
+
justification "The subject of this control is not managed by #{ChefUtils::Dist::Infra::PRODUCT} on the systems in policy group \#{node['policy_group']}"
|
40
|
+
expiration '2022-01-01'
|
41
|
+
action :add
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
**Add an InSpec waiver entry to a given waiver file using the 'name' property to identify the control**:
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
inspec_waiver_file_entry 'my_inspec_control_01' do
|
49
|
+
justification "The subject of this control is not managed by #{ChefUtils::Dist::Infra::PRODUCT} on the systems in policy group \#{node['policy_group']}"
|
50
|
+
action :add
|
51
|
+
end
|
52
|
+
```
|
53
|
+
|
54
|
+
**Remove an InSpec waiver entry to a given waiver file**:
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
inspec_waiver_file_entry "my_inspec_control_01" do
|
58
|
+
action :remove
|
59
|
+
end
|
60
|
+
```
|
61
|
+
DOC
|
62
|
+
|
63
|
+
property :control, String,
|
64
|
+
name_property: true,
|
65
|
+
description: "The name of the control being added or removed to the waiver file"
|
66
|
+
|
67
|
+
property :file_path, String,
|
68
|
+
required: true,
|
69
|
+
description: "The path to the waiver file being modified",
|
70
|
+
default: "#{ChefConfig::Config.etc_chef_dir}/inspec_waivers.yml",
|
71
|
+
default_description: "`/etc/chef/inspec_waivers.yml` on Linux/Unix and `C:\\chef\\inspec_waivers.yml` on Windows"
|
72
|
+
|
73
|
+
property :expiration, String,
|
74
|
+
description: "The expiration date of the given waiver - provided in YYYY-MM-DD format",
|
75
|
+
callbacks: {
|
76
|
+
"Expiration date should be a valid calendar date and match the following format: YYYY-MM-DD" => proc { |e|
|
77
|
+
re = Regexp.new('\d{4}-\d{2}-\d{2}$').freeze
|
78
|
+
if re.match?(e)
|
79
|
+
Date.valid_date?(*e.split("-").map(&:to_i))
|
80
|
+
else
|
81
|
+
e.nil?
|
82
|
+
end
|
83
|
+
},
|
84
|
+
}
|
85
|
+
|
86
|
+
property :run_test, [true, false],
|
87
|
+
description: "If present and true, the control will run and be reported, but failures in it won’t make the overall run fail. If absent or false, the control will not be run."
|
88
|
+
|
89
|
+
property :justification, String,
|
90
|
+
description: "Can be any text you want and might include a reason for the waiver as well as who signed off on the waiver."
|
91
|
+
|
92
|
+
property :backup, [false, Integer],
|
93
|
+
description: "The number of backups to be kept in /var/chef/backup (for UNIX- and Linux-based platforms) or C:/chef/backup (for the Microsoft Windows platform). Set to false to prevent backups from being kept.",
|
94
|
+
default: false
|
95
|
+
|
96
|
+
action :add do
|
97
|
+
if new_resource.justification.nil? || new_resource.justification == ""
|
98
|
+
raise Chef::Exceptions::ValidationFailed, "Entries in the InSpec waiver file must have a justification given, this parameter must have a value."
|
99
|
+
end
|
100
|
+
|
101
|
+
filename = new_resource.file_path
|
102
|
+
waiver_hash = load_waiver_file_to_hash(filename)
|
103
|
+
control_hash = {}
|
104
|
+
control_hash["expiration_date"] = new_resource.expiration.to_s unless new_resource.expiration.nil?
|
105
|
+
control_hash["run"] = new_resource.run_test unless new_resource.run_test.nil?
|
106
|
+
control_hash["justification"] = new_resource.justification.to_s
|
107
|
+
|
108
|
+
unless waiver_hash[new_resource.control] == control_hash
|
109
|
+
waiver_hash[new_resource.control] = control_hash
|
110
|
+
waiver_hash = waiver_hash.sort.to_h
|
111
|
+
|
112
|
+
file "Update Waiver File #{new_resource.file_path} to update waiver for control #{new_resource.control}" do
|
113
|
+
path new_resource.file_path
|
114
|
+
content ::YAML.dump(waiver_hash)
|
115
|
+
backup new_resource.backup
|
116
|
+
action :create
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
action :remove do
|
122
|
+
filename = new_resource.file_path
|
123
|
+
waiver_hash = load_waiver_file_to_hash(filename)
|
124
|
+
if waiver_hash.key?(new_resource.control)
|
125
|
+
waiver_hash.delete(new_resource.control)
|
126
|
+
waiver_hash = waiver_hash.sort.to_h
|
127
|
+
file "Update Waiver File #{new_resource.file_path} to remove waiver for control #{new_resource.control}" do
|
128
|
+
path new_resource.file_path
|
129
|
+
content ::YAML.dump(waiver_hash)
|
130
|
+
backup new_resource.backup
|
131
|
+
action :create
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
action_class do
|
137
|
+
def load_waiver_file_to_hash(file_name)
|
138
|
+
if file_name =~ %r{(/|C:\\).*(.yaml|.yml)}i
|
139
|
+
if ::File.exist?(file_name)
|
140
|
+
hash = ::YAML.load_file(file_name)
|
141
|
+
if hash == false || hash.nil? || hash == ""
|
142
|
+
{}
|
143
|
+
else
|
144
|
+
::YAML.load_file(file_name)
|
145
|
+
end
|
146
|
+
else
|
147
|
+
{}
|
148
|
+
end
|
149
|
+
else
|
150
|
+
raise "Waiver files needs to be a YAML file which should have a .yaml or .yml extension -\"#{file_name}\" does not have an appropriate extension"
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|