chef 13.12.14-universal-mingw32 → 14.0.190-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/CONTRIBUTING.md +151 -0
- data/Gemfile +12 -9
- data/README.md +34 -32
- data/Rakefile +22 -18
- data/VERSION +1 -0
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +33 -0
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +272 -0
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +57 -0
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +68 -0
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -0
- data/acceptance/Gemfile +19 -0
- data/acceptance/Gemfile.lock +266 -0
- data/acceptance/README.md +137 -0
- data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +3 -0
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
- data/acceptance/basics/.kitchen.yml +4 -0
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +19 -0
- data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +6 -0
- data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +8 -0
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +3 -0
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +2 -0
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +2 -0
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +2 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +16 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +3 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +101 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +3 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +4 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +4 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +2 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +4 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +2 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +7 -0
- data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +44 -0
- data/acceptance/data-collector/.kitchen.yml +9 -0
- data/acceptance/data-collector/Berksfile +3 -0
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +208 -0
- data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +8 -0
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +1 -0
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +61 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +43 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +41 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +3 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
- data/acceptance/top-cookbooks/.gitignore +1 -0
- data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +6 -0
- data/acceptance/top-cookbooks/.kitchen.iis.yml +4 -0
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +7 -0
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +7 -0
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +7 -0
- data/acceptance/top-cookbooks/.kitchen.powershell.yml +4 -0
- data/acceptance/top-cookbooks/.kitchen.sql_server.yml +5 -0
- data/acceptance/top-cookbooks/.kitchen.winbox.yml +8 -0
- data/acceptance/top-cookbooks/.kitchen.windows.yml +38 -0
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -0
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
- data/acceptance/trivial/.kitchen.yml +7 -0
- data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +5 -0
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +2 -0
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
- data/acceptance/windows-service/.kitchen.yml +7 -0
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +58 -0
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +10 -10
- data/distro/powershell/chef/Chef.PowerShell.dll +0 -0
- data/distro/powershell/chef/Newtonsoft.Json.dll +0 -0
- data/lib/chef/api_client.rb +1 -1
- data/lib/chef/api_client/registration.rb +10 -2
- data/lib/chef/api_client_v1.rb +7 -6
- data/lib/chef/application.rb +75 -46
- data/lib/chef/application/client.rb +17 -19
- data/lib/chef/application/solo.rb +13 -16
- data/lib/chef/application/windows_service.rb +5 -5
- data/lib/chef/audit/audit_event_proxy.rb +1 -1
- data/lib/chef/audit/audit_reporter.rb +12 -12
- data/lib/chef/audit/runner.rb +2 -2
- data/lib/chef/chef_fs/chef_fs_data_store.rb +17 -31
- data/lib/chef/chef_fs/command_line.rb +9 -9
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +2 -2
- data/lib/chef/chef_fs/file_system_cache.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +2 -2
- data/lib/chef/client.rb +61 -41
- data/lib/chef/config.rb +1 -2
- data/lib/chef/config_fetcher.rb +1 -1
- data/lib/chef/cookbook/chefignore.rb +2 -2
- data/lib/chef/cookbook/cookbook_collection.rb +2 -2
- data/lib/chef/cookbook/cookbook_version_loader.rb +0 -1
- data/lib/chef/cookbook/gem_installer.rb +4 -4
- data/lib/chef/cookbook/manifest_v2.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -3
- data/lib/chef/cookbook/remote_file_vendor.rb +4 -4
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook/syntax_check.rb +4 -4
- data/lib/chef/cookbook_loader.rb +10 -2
- data/lib/chef/cookbook_site_streaming_uploader.rb +4 -4
- data/lib/chef/cookbook_uploader.rb +2 -3
- data/lib/chef/cookbook_version.rb +5 -11
- data/lib/chef/data_bag.rb +1 -3
- data/lib/chef/data_bag_item.rb +1 -7
- data/lib/chef/data_collector.rb +111 -35
- data/lib/chef/data_collector/messages.rb +2 -2
- data/lib/chef/data_collector/messages/helpers.rb +2 -4
- data/lib/chef/deprecated.rb +0 -4
- data/lib/chef/dsl/data_query.rb +1 -5
- data/lib/chef/dsl/include_attribute.rb +3 -7
- data/lib/chef/dsl/include_recipe.rb +1 -5
- data/lib/chef/dsl/platform_introspection.rb +9 -13
- data/lib/chef/dsl/reboot_pending.rb +1 -8
- data/lib/chef/dsl/recipe.rb +2 -12
- data/lib/chef/dsl/universal.rb +3 -3
- data/lib/chef/environment.rb +2 -4
- data/lib/chef/event_dispatch/dsl.rb +2 -2
- data/lib/chef/exceptions.rb +1 -1
- data/lib/chef/file_access_control/unix.rb +14 -14
- data/lib/chef/file_content_management/content_base.rb +3 -1
- data/lib/chef/file_content_management/deploy/cp.rb +2 -2
- data/lib/chef/file_content_management/deploy/mv_unix.rb +4 -4
- data/lib/chef/file_content_management/deploy/mv_windows.rb +1 -1
- data/lib/chef/file_content_management/tempfile.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +3 -3
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +3 -1
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +2 -2
- data/lib/chef/handler.rb +1 -3
- data/lib/chef/handler/json_file.rb +1 -2
- data/lib/chef/http.rb +23 -11
- data/lib/chef/http/auth_credentials.rb +1 -1
- data/lib/chef/http/basic_client.rb +16 -17
- data/lib/chef/http/decompressor.rb +6 -6
- data/lib/chef/http/http_request.rb +5 -5
- data/lib/chef/http/json_output.rb +2 -2
- data/lib/chef/http/socketless_chef_zero_client.rb +2 -2
- data/lib/chef/http/validate_content_length.rb +5 -5
- data/lib/chef/knife.rb +1 -1
- data/lib/chef/knife/bootstrap.rb +12 -37
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +7 -1
- data/lib/chef/knife/client_reregister.rb +1 -1
- data/lib/chef/knife/configure.rb +1 -3
- data/lib/chef/knife/cookbook_download.rb +2 -2
- data/lib/chef/knife/cookbook_metadata.rb +3 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/cookbook_site_share.rb +5 -5
- data/lib/chef/knife/cookbook_test.rb +2 -2
- data/lib/chef/knife/cookbook_upload.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +22 -17
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/deps.rb +1 -1
- data/lib/chef/knife/environment_compare.rb +4 -4
- data/lib/chef/knife/exec.rb +3 -3
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/node_policy_set.rb +79 -0
- data/lib/chef/knife/osc_user_reregister.rb +1 -1
- data/lib/chef/knife/ssh.rb +35 -22
- data/lib/chef/knife/ssl_check.rb +3 -3
- data/lib/chef/knife/ssl_fetch.rb +1 -1
- data/lib/chef/knife/user_reregister.rb +1 -1
- data/lib/chef/knife/xargs.rb +1 -1
- data/lib/chef/mixin/api_version_request_handling.rb +2 -4
- data/lib/chef/mixin/create_path.rb +1 -1
- data/lib/chef/mixin/deprecation.rb +14 -14
- data/lib/chef/mixin/from_file.rb +5 -0
- data/lib/chef/mixin/get_source_from_package.rb +2 -2
- data/lib/chef/mixin/homebrew_user.rb +13 -2
- data/lib/chef/mixin/openssl_helper.rb +119 -0
- data/lib/chef/mixin/params_validate.rb +2 -8
- data/lib/chef/mixin/powershell_exec.rb +105 -0
- data/lib/chef/mixin/provides.rb +3 -2
- data/lib/chef/mixin/securable.rb +1 -5
- data/lib/chef/mixin/shell_out.rb +2 -2
- data/lib/chef/mixin/template.rb +1 -3
- data/lib/chef/mixin/user_context.rb +6 -3
- data/lib/chef/mixin/why_run.rb +6 -11
- data/lib/chef/monkey_patches/net_http.rb +7 -7
- data/lib/chef/monologger.rb +2 -86
- data/lib/chef/node.rb +30 -20
- data/lib/chef/node/attribute.rb +1 -6
- data/lib/chef/node/attribute_collections.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +110 -3
- data/lib/chef/node/mixin/immutablize_hash.rb +111 -5
- data/lib/chef/node_map.rb +5 -23
- data/lib/chef/platform/query_helpers.rb +0 -12
- data/lib/chef/policy_builder/dynamic.rb +1 -1
- data/lib/chef/policy_builder/expand_node_object.rb +1 -1
- data/lib/chef/policy_builder/policyfile.rb +17 -1
- data/lib/chef/powershell.rb +55 -0
- data/lib/chef/property.rb +12 -34
- data/lib/chef/provider.rb +16 -39
- data/lib/chef/provider/apt_preference.rb +3 -3
- data/lib/chef/provider/apt_repository.rb +116 -34
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/cookbook_file/content.rb +1 -1
- data/lib/chef/provider/cron.rb +10 -10
- data/lib/chef/provider/cron/unix.rb +3 -3
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_resource.rb +4 -4
- data/lib/chef/provider/dsc_script.rb +4 -4
- data/lib/chef/provider/execute.rb +9 -5
- data/lib/chef/provider/file.rb +12 -12
- data/lib/chef/provider/git.rb +14 -14
- data/lib/chef/provider/group.rb +6 -6
- data/lib/chef/provider/group/aix.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +4 -4
- data/lib/chef/provider/group/groupadd.rb +4 -4
- data/lib/chef/provider/group/groupmod.rb +3 -3
- data/lib/chef/provider/group/pw.rb +4 -4
- data/lib/chef/provider/group/windows.rb +2 -2
- data/lib/chef/provider/http_request.rb +12 -12
- data/lib/chef/provider/ifconfig.rb +6 -6
- data/lib/chef/provider/ifconfig/aix.rb +1 -1
- data/lib/chef/provider/ifconfig/debian.rb +3 -5
- data/lib/chef/provider/launchd.rb +1 -1
- data/lib/chef/provider/link.rb +6 -6
- data/lib/chef/provider/log.rb +1 -1
- data/lib/chef/provider/lwrp_base.rb +2 -2
- data/lib/chef/provider/mdadm.rb +10 -10
- data/lib/chef/provider/mount.rb +12 -12
- data/lib/chef/provider/mount/aix.rb +20 -21
- data/lib/chef/provider/mount/mount.rb +20 -15
- data/lib/chef/provider/mount/solaris.rb +6 -6
- data/lib/chef/provider/mount/windows.rb +7 -7
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/ohai.rb +1 -1
- data/lib/chef/provider/osx_profile.rb +8 -8
- data/lib/chef/provider/package.rb +56 -42
- data/lib/chef/provider/package/apt.rb +24 -14
- data/lib/chef/provider/package/{aix.rb → bff.rb} +12 -12
- data/lib/chef/provider/package/cab.rb +3 -3
- data/lib/chef/provider/package/chocolatey.rb +1 -9
- data/lib/chef/provider/package/dnf/python_helper.rb +6 -6
- data/lib/chef/provider/package/dpkg.rb +9 -9
- data/lib/chef/provider/package/freebsd/base.rb +2 -2
- data/lib/chef/provider/package/freebsd/pkg.rb +2 -2
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
- data/lib/chef/provider/package/homebrew.rb +3 -3
- data/lib/chef/provider/package/ips.rb +2 -2
- data/lib/chef/provider/package/macports.rb +3 -3
- data/lib/chef/provider/package/msu.rb +2 -2
- data/lib/chef/provider/package/openbsd.rb +3 -3
- data/lib/chef/provider/package/pacman.rb +3 -3
- data/lib/chef/provider/package/paludis.rb +2 -2
- data/lib/chef/provider/package/portage.rb +27 -33
- data/lib/chef/provider/package/powershell.rb +24 -9
- data/lib/chef/provider/package/rpm.rb +5 -6
- data/lib/chef/provider/package/rubygems.rb +32 -28
- data/lib/chef/provider/package/smartos.rb +6 -6
- data/lib/chef/provider/package/solaris.rb +10 -10
- data/lib/chef/provider/package/windows.rb +6 -15
- data/lib/chef/provider/package/windows/exe.rb +6 -4
- data/lib/chef/provider/package/windows/msi.rb +8 -6
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -6
- data/lib/chef/provider/package/yum.rb +167 -398
- data/lib/chef/provider/package/yum/python_helper.rb +221 -0
- data/lib/chef/provider/package/yum/rpm_utils.rb +10 -1
- data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +79 -0
- data/lib/chef/provider/package/yum/simplejson/__init__.py +318 -0
- data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.py +354 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.py +440 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.py +65 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/tool.py +37 -0
- data/lib/chef/provider/package/yum/version.rb +56 -0
- data/lib/chef/provider/package/yum/yum_cache.rb +33 -316
- data/lib/chef/provider/package/yum/yum_helper.py +198 -0
- data/lib/chef/provider/package/zypper.rb +9 -13
- data/lib/chef/provider/powershell_script.rb +3 -3
- data/lib/chef/provider/reboot.rb +3 -3
- data/lib/chef/provider/registry_key.rb +16 -4
- data/lib/chef/provider/remote_directory.rb +1 -3
- data/lib/chef/provider/remote_file/cache_control_data.rb +1 -1
- data/lib/chef/provider/remote_file/content.rb +4 -4
- data/lib/chef/provider/remote_file/http.rb +5 -3
- data/lib/chef/provider/remote_file/local_file.rb +1 -1
- data/lib/chef/provider/remote_file/network_file.rb +2 -2
- data/lib/chef/provider/route.rb +12 -11
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +14 -14
- data/lib/chef/provider/service/aix.rb +3 -3
- data/lib/chef/provider/service/aixinit.rb +2 -2
- data/lib/chef/provider/service/debian.rb +5 -5
- data/lib/chef/provider/service/freebsd.rb +3 -3
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +8 -8
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/simple.rb +7 -7
- data/lib/chef/provider/service/systemd.rb +4 -4
- data/lib/chef/provider/service/upstart.rb +10 -9
- data/lib/chef/provider/service/windows.rb +245 -70
- data/lib/chef/provider/subversion.rb +8 -8
- data/lib/chef/provider/systemd_unit.rb +25 -6
- data/lib/chef/provider/user.rb +10 -10
- data/lib/chef/provider/user/aix.rb +3 -3
- data/lib/chef/provider/user/dscl.rb +2 -2
- data/lib/chef/provider/user/pw.rb +4 -4
- data/lib/chef/provider/user/solaris.rb +1 -1
- data/lib/chef/provider/user/useradd.rb +3 -3
- data/lib/chef/provider/user/windows.rb +4 -4
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/{env.rb → windows_env.rb} +55 -19
- data/lib/chef/provider/windows_task.rb +27 -27
- data/lib/chef/provider/zypper_repository.rb +7 -7
- data/lib/chef/provider_resolver.rb +4 -4
- data/lib/chef/providers.rb +2 -9
- data/lib/chef/resource.rb +19 -13
- data/lib/chef/resource/action_class.rb +2 -2
- data/lib/chef/resource/apt_package.rb +10 -4
- data/lib/chef/resource/apt_preference.rb +20 -7
- data/lib/chef/resource/apt_repository.rb +21 -12
- data/lib/chef/resource/apt_update.rb +3 -3
- data/lib/chef/resource/bash.rb +6 -4
- data/lib/chef/resource/batch.rb +8 -6
- data/lib/chef/resource/bff_package.rb +8 -5
- data/lib/chef/resource/breakpoint.rb +9 -6
- data/lib/chef/resource/build_essential.rb +139 -0
- data/lib/chef/resource/cab_package.rb +5 -4
- data/lib/chef/resource/chef_gem.rb +1 -1
- data/lib/chef/resource/chef_handler.rb +130 -0
- data/lib/chef/resource/chocolatey_package.rb +6 -6
- data/lib/chef/resource/cookbook_file.rb +12 -9
- data/lib/chef/resource/cron.rb +14 -75
- data/lib/chef/resource/csh.rb +6 -4
- data/lib/chef/resource/directory.rb +7 -4
- data/lib/chef/resource/dmg_package.rb +161 -0
- data/lib/chef/resource/dnf_package.rb +10 -7
- data/lib/chef/resource/dpkg_package.rb +5 -3
- data/lib/chef/resource/dsc_resource.rb +11 -28
- data/lib/chef/resource/dsc_script.rb +14 -37
- data/lib/chef/resource/execute.rb +15 -78
- data/lib/chef/resource/file.rb +6 -5
- data/lib/chef/resource/file/verification.rb +5 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +6 -3
- data/lib/chef/resource/git.rb +4 -15
- data/lib/chef/resource/group.rb +7 -46
- data/lib/chef/resource/homebrew_cask.rb +98 -0
- data/lib/chef/resource/homebrew_package.rb +3 -3
- data/lib/chef/resource/homebrew_tap.rb +86 -0
- data/lib/chef/resource/hostname.rb +249 -0
- data/lib/chef/resource/http_request.rb +8 -22
- data/lib/chef/resource/ifconfig.rb +3 -2
- data/lib/chef/resource/ips_package.rb +4 -3
- data/lib/chef/resource/ksh.rb +7 -6
- data/lib/chef/resource/launchd.rb +4 -4
- data/lib/chef/resource/link.rb +18 -56
- data/lib/chef/resource/log.rb +6 -8
- data/lib/chef/resource/lwrp_base.rb +4 -5
- data/lib/chef/resource/macos_userdefaults.rb +133 -0
- data/lib/chef/resource/macosx_service.rb +7 -23
- data/lib/chef/resource/macports_package.rb +2 -1
- data/lib/chef/resource/mdadm.rb +13 -84
- data/lib/chef/resource/mount.rb +21 -127
- data/lib/chef/resource/msu_package.rb +4 -4
- data/lib/chef/resource/ohai.rb +5 -3
- data/lib/chef/resource/ohai_hint.rb +93 -0
- data/lib/chef/resource/openbsd_package.rb +3 -3
- data/lib/chef/resource/openssl_dhparam.rb +80 -0
- data/lib/chef/resource/openssl_rsa_private_key.rb +93 -0
- data/lib/chef/resource/openssl_rsa_public_key.rb +73 -0
- data/lib/chef/resource/osx_profile.rb +9 -10
- data/lib/chef/resource/package.rb +8 -6
- data/lib/chef/resource/pacman_package.rb +3 -2
- data/lib/chef/resource/paludis_package.rb +4 -4
- data/lib/chef/resource/perl.rb +6 -4
- data/lib/chef/resource/portage_package.rb +3 -6
- data/lib/chef/resource/powershell_package.rb +9 -13
- data/lib/chef/resource/powershell_script.rb +9 -8
- data/lib/chef/resource/python.rb +5 -4
- data/lib/chef/resource/reboot.rb +8 -9
- data/lib/chef/resource/registry_key.rb +9 -19
- data/lib/chef/resource/remote_directory.rb +5 -3
- data/lib/chef/resource/remote_file.rb +11 -50
- data/lib/chef/resource/resource_notification.rb +2 -2
- data/lib/chef/resource/rhsm_errata.rb +44 -0
- data/lib/chef/resource/rhsm_errata_level.rb +51 -0
- data/lib/chef/resource/rhsm_register.rb +162 -0
- data/lib/chef/resource/rhsm_repo.rb +62 -0
- data/lib/chef/resource/rhsm_subscription.rb +95 -0
- data/lib/chef/resource/route.rb +3 -1
- data/lib/chef/resource/rpm_package.rb +3 -3
- data/lib/chef/resource/ruby.rb +6 -4
- data/lib/chef/resource/ruby_block.rb +6 -17
- data/lib/chef/resource/scm.rb +14 -146
- data/lib/chef/resource/script.rb +7 -5
- data/lib/chef/resource/service.rb +2 -1
- data/lib/chef/resource/smartos_package.rb +4 -3
- data/lib/chef/resource/solaris_package.rb +3 -2
- data/lib/chef/resource/subversion.rb +20 -4
- data/lib/chef/resource/sudo.rb +231 -0
- data/lib/chef/resource/support/sudoer.erb +18 -0
- data/lib/chef/resource/swap_file.rb +209 -0
- data/lib/chef/resource/sysctl.rb +111 -0
- data/lib/chef/resource/systemd_unit.rb +6 -5
- data/lib/chef/resource/template.rb +6 -27
- data/lib/chef/resource/windows_ad_join.rb +92 -0
- data/lib/chef/resource/windows_auto_run.rb +87 -0
- data/lib/chef/resource/{env.rb → windows_env.rb} +11 -5
- data/lib/chef/resource/windows_feature.rb +95 -0
- data/lib/chef/resource/windows_feature_dism.rb +226 -0
- data/lib/chef/resource/windows_feature_powershell.rb +256 -0
- data/lib/chef/resource/windows_font.rb +127 -0
- data/lib/chef/resource/windows_package.rb +5 -3
- data/lib/chef/resource/windows_pagefile.rb +206 -0
- data/lib/chef/resource/windows_path.rb +3 -3
- data/lib/chef/resource/windows_printer.rb +148 -0
- data/lib/chef/resource/windows_printer_port.rb +136 -0
- data/lib/chef/resource/windows_service.rb +79 -38
- data/lib/chef/resource/windows_shortcut.rb +79 -0
- data/lib/chef/resource/windows_task.rb +5 -5
- data/lib/chef/resource/yum_package.rb +8 -2
- data/lib/chef/resource/yum_repository.rb +12 -5
- data/lib/chef/resource/zypper_package.rb +5 -3
- data/lib/chef/resource/zypper_repository.rb +17 -12
- data/lib/chef/resource_inspector.rb +89 -0
- data/lib/chef/resource_reporter.rb +5 -6
- data/lib/chef/resource_resolver.rb +4 -4
- data/lib/chef/resources.rb +31 -6
- data/lib/chef/role.rb +1 -3
- data/lib/chef/run_context.rb +21 -12
- data/lib/chef/run_context/cookbook_compiler.rb +18 -9
- data/lib/chef/search/query.rb +1 -2
- data/lib/chef/shell.rb +0 -1
- data/lib/chef/shell/model_wrapper.rb +1 -1
- data/lib/chef/shell/shell_session.rb +4 -3
- data/lib/chef/util/diff.rb +2 -2
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/dsc/local_configuration_manager.rb +4 -4
- data/lib/chef/util/selinux.rb +1 -1
- data/lib/chef/util/windows/logon_session.rb +5 -2
- data/lib/chef/util/windows/net_user.rb +2 -2
- data/lib/chef/util/windows/volume.rb +0 -4
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api/error.rb +2 -2
- data/lib/chef/win32/api/net.rb +1 -1
- data/lib/chef/win32/api/security.rb +11 -0
- data/lib/chef/win32/eventlog.rb +2 -2
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/registry.rb +17 -17
- data/lib/chef/win32/security.rb +34 -12
- data/lib/chef/win32/security/sid.rb +1 -2
- data/lib/chef/win32/version.rb +2 -15
- data/lib/chef/win32_service_constants.rb +143 -0
- data/spec/data/mixin/invalid_data.rb +3 -0
- data/spec/data/mixin/real_data.rb +2 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.i686.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.s390x.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.src.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.i686.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.s390x.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.src.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
- data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/repomd.xml +19 -53
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +2 -2
- data/spec/functional/http/simple_spec.rb +6 -6
- data/spec/functional/mixin/from_file_spec.rb +82 -0
- data/spec/functional/notifications_spec.rb +1 -1
- data/spec/functional/resource/{package_spec.rb → apt_package_spec.rb} +4 -4
- data/spec/functional/resource/dnf_package_spec.rb +115 -115
- data/spec/functional/resource/ifconfig_spec.rb +1 -2
- data/spec/functional/resource/link_spec.rb +9 -13
- data/spec/functional/resource/powershell_script_spec.rb +0 -2
- data/spec/functional/resource/registry_spec.rb +3 -3
- data/spec/functional/resource/remote_file_spec.rb +4 -4
- data/spec/functional/resource/user/windows_spec.rb +3 -1
- data/spec/functional/resource/windows_env_spec.rb +285 -0
- data/spec/functional/resource/windows_task_spec.rb +303 -2
- data/spec/functional/resource/yum_package_spec.rb +949 -0
- data/spec/functional/root_alias_spec.rb +1 -1
- data/spec/functional/win32/security_spec.rb +60 -7
- data/spec/functional/win32/versions_spec.rb +7 -9
- data/spec/integration/client/client_spec.rb +99 -7
- data/spec/integration/knife/chef_fs_data_store_spec.rb +23 -4
- data/spec/integration/recipes/recipe_dsl_spec.rb +26 -26
- data/spec/integration/recipes/resource_action_spec.rb +25 -120
- data/spec/spec_helper.rb +10 -2
- data/spec/support/lib/chef/resource/one_two_three_four.rb +0 -2
- data/spec/support/lib/chef/resource/zen_master.rb +1 -3
- data/spec/support/mock/constant.rb +1 -1
- data/spec/support/platform_helpers.rb +24 -7
- data/spec/support/shared/context/client.rb +13 -10
- data/spec/support/shared/examples/client.rb +50 -0
- data/spec/support/shared/functional/file_resource.rb +1 -1
- data/spec/support/shared/functional/securable_resource.rb +2 -2
- data/spec/support/shared/integration/knife_support.rb +5 -0
- data/spec/unit/application/client_spec.rb +39 -13
- data/spec/unit/application/solo_spec.rb +1 -8
- data/spec/unit/application_spec.rb +66 -2
- data/spec/unit/audit/audit_event_proxy_spec.rb +1 -1
- data/spec/unit/audit/audit_reporter_spec.rb +16 -16
- data/spec/unit/chef_fs/file_system_spec.rb +1 -1
- data/spec/unit/client_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +1 -1
- data/spec/unit/cookbook_loader_spec.rb +6 -6
- data/spec/unit/cookbook_manifest_spec.rb +2 -2
- data/spec/unit/cookbook_version_file_specificity_spec.rb +5 -25
- data/spec/unit/data_collector/messages/helpers_spec.rb +9 -0
- data/spec/unit/data_collector/resource_report_spec.rb +3 -3
- data/spec/unit/data_collector_spec.rb +135 -1
- data/spec/unit/dsl/reboot_pending_spec.rb +0 -13
- data/spec/unit/dsl/recipe_spec.rb +0 -13
- data/spec/unit/environment_spec.rb +2 -2
- data/spec/unit/exceptions_spec.rb +1 -1
- data/spec/unit/http/validate_content_length_spec.rb +5 -5
- data/spec/unit/knife/bootstrap_spec.rb +11 -15
- data/spec/unit/knife/configure_spec.rb +1 -2
- data/spec/unit/knife/cookbook_test_spec.rb +2 -2
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +2 -2
- data/spec/unit/knife/core/node_editor_spec.rb +6 -6
- data/spec/unit/knife/environment_compare_spec.rb +3 -3
- data/spec/unit/knife/node_edit_spec.rb +3 -1
- data/spec/unit/knife/node_policy_set_spec.rb +122 -0
- data/spec/unit/knife/osc_user_reregister_spec.rb +1 -1
- data/spec/unit/knife/osc_user_show_spec.rb +1 -1
- data/spec/unit/knife/ssh_spec.rb +18 -0
- data/spec/unit/log/syslog_spec.rb +2 -4
- data/spec/unit/log/winevt_spec.rb +2 -3
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -5
- data/spec/unit/mixin/openssl_helper_spec.rb +252 -0
- data/spec/unit/mixin/powershell_exec_spec.rb +43 -0
- data/spec/unit/node/attribute_spec.rb +3 -3
- data/spec/unit/node/immutable_collections_spec.rb +11 -1
- data/spec/unit/node_map_spec.rb +2 -2
- data/spec/unit/node_spec.rb +11 -16
- data/spec/unit/platform/query_helpers_spec.rb +0 -13
- data/spec/unit/policy_builder/policyfile_spec.rb +79 -2
- data/spec/unit/property/validation_spec.rb +51 -4
- data/spec/unit/provider/apt_repository_spec.rb +97 -32
- data/spec/unit/provider/cookbook_file_spec.rb +2 -1
- data/spec/unit/provider/cron/unix_spec.rb +8 -3
- data/spec/unit/provider/cron_spec.rb +27 -32
- data/spec/unit/provider/file_spec.rb +2 -1
- data/spec/unit/provider/group/dscl_spec.rb +7 -8
- data/spec/unit/provider/group/gpasswd_spec.rb +5 -2
- data/spec/unit/provider/group/groupmod_spec.rb +6 -3
- data/spec/unit/provider/group/pw_spec.rb +5 -2
- data/spec/unit/provider/link_spec.rb +6 -4
- data/spec/unit/provider/log_spec.rb +18 -13
- data/spec/unit/provider/mount/aix_spec.rb +1 -9
- data/spec/unit/provider/mount/mount_spec.rb +22 -0
- data/spec/unit/provider/osx_profile_spec.rb +3 -3
- data/spec/unit/provider/package/apt_spec.rb +431 -411
- data/spec/unit/provider/package/{aix_spec.rb → bff_spec.rb} +7 -5
- data/spec/unit/provider/package/chocolatey_spec.rb +0 -13
- data/spec/unit/provider/package/homebrew_spec.rb +2 -1
- data/spec/unit/provider/package/portage_spec.rb +11 -147
- data/spec/unit/provider/package/powershell_spec.rb +208 -57
- data/spec/unit/provider/package/rubygems_spec.rb +11 -2
- data/spec/unit/provider/package/windows_spec.rb +0 -19
- data/spec/unit/provider/package/yum/python_helper_spec.rb +29 -0
- data/spec/unit/provider/package/yum/yum_cache_spec.rb +86 -4
- data/spec/unit/provider/package/zypper_spec.rb +8 -0
- data/spec/unit/provider/package_spec.rb +47 -20
- data/spec/unit/provider/registry_key_spec.rb +7 -1
- data/spec/unit/provider/remote_directory_spec.rb +1 -1
- data/spec/unit/provider/remote_file_spec.rb +2 -1
- data/spec/unit/provider/service/macosx_spec.rb +4 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +2 -10
- data/spec/unit/provider/service/windows_spec.rb +447 -30
- data/spec/unit/provider/systemd_unit_spec.rb +50 -13
- data/spec/unit/provider/template_spec.rb +2 -4
- data/spec/unit/provider/user/windows_spec.rb +3 -0
- data/spec/unit/provider/{env_spec.rb → windows_env_spec.rb} +102 -12
- data/spec/unit/provider/zypper_repository_spec.rb +4 -2
- data/spec/unit/provider_resolver_spec.rb +23 -38
- data/spec/unit/recipe_spec.rb +4 -4
- data/spec/unit/resource/apt_package_spec.rb +4 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -5
- data/spec/unit/resource/apt_repository_spec.rb +35 -10
- data/spec/unit/resource/apt_update_spec.rb +0 -5
- data/spec/unit/resource/bash_spec.rb +2 -3
- data/spec/unit/resource/batch_spec.rb +1 -4
- data/spec/unit/resource/{timestamped_deploy_spec.rb → build_essential_spec.rb} +10 -11
- data/spec/unit/resource/cab_package_spec.rb +1 -3
- data/{lib/chef/mixin/language_include_attribute.rb → spec/unit/resource/chef_handler_spec.rb} +13 -12
- data/spec/unit/resource/chocolatey_package_spec.rb +1 -3
- data/spec/unit/resource/cron_spec.rb +0 -5
- data/spec/unit/resource/csh_spec.rb +2 -3
- data/spec/unit/resource/directory_spec.rb +1 -6
- data/{lib/chef/resource/deploy_revision.rb → spec/unit/resource/dmg_package_spec.rb} +14 -10
- data/spec/unit/resource/dnf_package_spec.rb +20 -26
- data/spec/unit/resource/file_spec.rb +1 -1
- data/spec/unit/resource/freebsd_package_spec.rb +22 -23
- data/spec/unit/resource/gem_package_spec.rb +3 -5
- data/spec/unit/resource/git_spec.rb +1 -2
- data/spec/unit/resource/group_spec.rb +0 -5
- data/spec/unit/resource/homebrew_cask_spec.rb +35 -0
- data/spec/unit/resource/homebrew_package_spec.rb +4 -0
- data/spec/unit/resource/homebrew_tap_spec.rb +39 -0
- data/spec/unit/resource/hostname_spec.rb +43 -0
- data/spec/unit/resource/http_request_spec.rb +0 -5
- data/spec/unit/resource/ips_package_spec.rb +4 -0
- data/spec/unit/resource/ksh_spec.rb +2 -3
- data/spec/unit/resource/launchd_spec.rb +0 -5
- data/spec/unit/resource/link_spec.rb +1 -6
- data/spec/unit/resource/log_spec.rb +0 -5
- data/spec/unit/resource/macos_user_defaults_spec.rb +45 -0
- data/spec/unit/resource/mdadm_spec.rb +0 -5
- data/spec/unit/resource/mount_spec.rb +1 -6
- data/spec/unit/resource/msu_package_spec.rb +1 -3
- data/spec/unit/resource/ohai_hint_spec.rb +43 -0
- data/spec/unit/resource/ohai_spec.rb +0 -5
- data/spec/unit/resource/openbsd_package_spec.rb +8 -12
- data/spec/unit/resource/openssl_dhparam.rb +51 -0
- data/spec/unit/resource/openssl_rsa_private_key_spec.rb +59 -0
- data/spec/unit/resource/openssl_rsa_public_key_spec.rb +39 -0
- data/spec/unit/resource/osx_profile_spec.rb +0 -5
- data/spec/unit/resource/package_spec.rb +0 -5
- data/spec/unit/resource/perl_spec.rb +2 -3
- data/spec/unit/resource/portage_package_spec.rb +3 -7
- data/spec/unit/resource/powershell_package_spec.rb +11 -4
- data/spec/unit/resource/python_spec.rb +0 -5
- data/spec/unit/resource/reboot_spec.rb +0 -5
- data/spec/unit/resource/registry_key_spec.rb +5 -6
- data/spec/unit/resource/remote_directory_spec.rb +0 -5
- data/spec/unit/resource/remote_file_spec.rb +1 -5
- data/spec/unit/resource/rhsm_errata_level_spec.rb +46 -0
- data/{lib/chef/mixin/language_include_recipe.rb → spec/unit/resource/rhsm_errata_spec.rb} +14 -10
- data/spec/unit/resource/rhsm_register_spec.rb +199 -0
- data/spec/unit/resource/rhsm_repo_spec.rb +59 -0
- data/spec/unit/resource/rhsm_subscription_spec.rb +93 -0
- data/spec/unit/resource/route_spec.rb +1 -6
- data/spec/unit/resource/rpm_package_spec.rb +4 -0
- data/spec/unit/resource/ruby_block_spec.rb +0 -5
- data/spec/unit/resource/ruby_spec.rb +0 -5
- data/spec/unit/resource/scm_spec.rb +0 -15
- data/spec/unit/resource/service_spec.rb +0 -5
- data/spec/unit/resource/subversion_spec.rb +12 -0
- data/spec/unit/resource/sudo_spec.rb +92 -0
- data/spec/unit/resource/swap_file_spec.rb +40 -0
- data/spec/unit/resource/sysctl_spec.rb +56 -0
- data/spec/unit/resource/systemd_unit_spec.rb +5 -7
- data/spec/unit/resource/template_spec.rb +1 -3
- data/spec/unit/resource/user_spec.rb +0 -5
- data/spec/unit/resource/windows_ad_join.rb +45 -0
- data/spec/unit/resource/windows_auto_run_spec.rb +50 -0
- data/spec/unit/resource/{env_spec.rb → windows_env_spec.rb} +19 -21
- data/spec/unit/resource/windows_feature.rb +41 -0
- data/spec/unit/resource/windows_feature_dism.rb +51 -0
- data/spec/unit/resource/windows_feature_powershell.rb +51 -0
- data/spec/unit/resource/windows_font_spec.rb +44 -0
- data/spec/unit/resource/windows_package_spec.rb +2 -2
- data/spec/unit/resource/windows_pagefile_spec.rb +45 -0
- data/spec/unit/resource/windows_printer_port_spec.rb +45 -0
- data/spec/unit/resource/windows_printer_spec.rb +45 -0
- data/spec/unit/resource/windows_service_spec.rb +25 -4
- data/spec/unit/resource/windows_shortcut_spec.rb +39 -0
- data/spec/unit/resource/windows_task_spec.rb +0 -5
- data/spec/unit/resource/yum_repository_spec.rb +4 -0
- data/spec/unit/resource/zypper_repository_spec.rb +4 -0
- data/spec/unit/resource_inspector_spec.rb +60 -0
- data/spec/unit/resource_reporter_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +0 -5
- data/spec/unit/shell/shell_session_spec.rb +0 -1
- data/spec/unit/user_spec.rb +1 -1
- data/spec/unit/util/windows/logon_session_spec.rb +2 -1
- data/spec/unit/win32/security_spec.rb +44 -1
- data/spec/unit/windows_service_spec.rb +4 -2
- data/tasks/announce.rb +1 -1
- data/tasks/cbgb.rb +84 -0
- data/tasks/dependencies.rb +38 -2
- data/tasks/maintainers.rb +7 -7
- data/tasks/rspec.rb +2 -2
- data/tasks/templates/prerelease.md.erb +2 -11
- data/tasks/templates/release.md.erb +1 -9
- metadata +225 -96
- data/lib/chef/knife/help.rb +0 -101
- data/lib/chef/knife/help_topics.rb +0 -4
- data/lib/chef/knife/index_rebuild.rb +0 -133
- data/lib/chef/mixin/language.rb +0 -48
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +0 -35
- data/lib/chef/provider/deploy.rb +0 -470
- data/lib/chef/provider/deploy/revision.rb +0 -107
- data/lib/chef/provider/deploy/timestamped.rb +0 -34
- data/lib/chef/provider/env/windows.rb +0 -76
- data/lib/chef/provider/erl_call.rb +0 -76
- data/lib/chef/provider/package/yum/yum-dump.py +0 -307
- data/lib/chef/resource/deploy.rb +0 -449
- data/lib/chef/resource/erl_call.rb +0 -90
- data/lib/chef/resource/timestamped_deploy.rb +0 -26
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.i686.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.src.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.x86_64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.i686.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.src.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.x86_64.rpm +0 -0
- data/spec/functional/assets/yumrepo/repodata/313329137b55fd333b2dc66394a6661a2befa6cc535d8460d92a4a78a9c581f0-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/31ac4db5d5ac593728fcc26aef82b7b93c4cc4dbec843786b1845b939b658553-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/4ac40fa3c6728c1401318e2e20a997436624e83dcf7a5f952b851ef422637773-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/66391e53f0510b98b3f0b79f40ba1048026d9a1ef20905d9c40ba6f5411f3243-primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/8b34697595fcc87928e12d24644dda9462c3857bd932861e28bc77ae1f31be16-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/b97cca3fe14bcf06c52be4449b6108f7731239ff221111dcce8aada5467f60dc-other.sqlite.bz2 +0 -0
- data/spec/functional/resource/deploy_revision_spec.rb +0 -881
- data/spec/functional/resource/env_spec.rb +0 -192
- data/spec/unit/knife/index_rebuild_spec.rb +0 -125
- data/spec/unit/knife/knife_help.rb +0 -92
- data/spec/unit/provider/deploy/revision_spec.rb +0 -110
- data/spec/unit/provider/deploy/timestamped_spec.rb +0 -40
- data/spec/unit/provider/deploy_spec.rb +0 -641
- data/spec/unit/provider/env/windows_spec.rb +0 -103
- data/spec/unit/provider/erl_call_spec.rb +0 -77
- data/spec/unit/provider/package/yum_spec.rb +0 -2294
- data/spec/unit/resource/deploy_revision_spec.rb +0 -42
- data/spec/unit/resource/deploy_spec.rb +0 -283
- data/spec/unit/resource/erl_call_spec.rb +0 -81
@@ -1,6 +1,5 @@
|
|
1
1
|
#
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2009-2016, Chef Software Inc.
|
2
|
+
# Copyright:: Copyright 2009-2018, Chef Software Inc.
|
4
3
|
# License:: Apache License, Version 2.0
|
5
4
|
#
|
6
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -22,7 +21,7 @@ class Chef
|
|
22
21
|
class Provider
|
23
22
|
class Mount
|
24
23
|
class Aix < Chef::Provider::Mount::Mount
|
25
|
-
provides :mount, platform:
|
24
|
+
provides :mount, platform: "aix"
|
26
25
|
|
27
26
|
# Override for aix specific handling
|
28
27
|
def initialize(new_resource, run_context)
|
@@ -41,11 +40,11 @@ class Chef
|
|
41
40
|
enabled = false
|
42
41
|
|
43
42
|
regex_arr = device_fstab_regex.split(":")
|
44
|
-
if regex_arr.size
|
43
|
+
if regex_arr.size == 2
|
45
44
|
nodename = regex_arr[0]
|
46
|
-
devicename
|
45
|
+
devicename = regex_arr[1]
|
47
46
|
else
|
48
|
-
devicename
|
47
|
+
devicename = regex_arr[0]
|
49
48
|
end
|
50
49
|
# lsfs o/p = #MountPoint:Device:Vfs:Nodename:Type:Size:Options:AutoMount:Acct
|
51
50
|
# search only for current mount point
|
@@ -58,7 +57,7 @@ class Chef
|
|
58
57
|
enabled = true
|
59
58
|
@current_resource.fstype($1)
|
60
59
|
@current_resource.options($4)
|
61
|
-
|
60
|
+
logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
|
62
61
|
next
|
63
62
|
when /^#{Regexp.escape(@new_resource.mount_point)}:#{nodename}:(\S+)::(\S+)?:(\S+):(\S+):(\S+):(\S+)/
|
64
63
|
# mount point entry with hostname or ipv4 address
|
@@ -66,7 +65,7 @@ class Chef
|
|
66
65
|
@current_resource.fstype($1)
|
67
66
|
@current_resource.options($4)
|
68
67
|
@current_resource.device("")
|
69
|
-
|
68
|
+
logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
|
70
69
|
next
|
71
70
|
when /^#{Regexp.escape(@new_resource.mount_point)}:(\S+)?:(\S+):#{devicename}:(\S+)?:(\S+):(\S+):(\S+):(\S+)/
|
72
71
|
# mount point entry with hostname or ipv4 address
|
@@ -74,12 +73,12 @@ class Chef
|
|
74
73
|
@current_resource.fstype($2)
|
75
74
|
@current_resource.options($5)
|
76
75
|
@current_resource.device(devicename + "/")
|
77
|
-
|
76
|
+
logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
|
78
77
|
next
|
79
78
|
when /^#{Regexp.escape(@new_resource.mount_point)}:(.*?):(.*?):(.*?):(.*?):(.*?):(.*?):(.*?):(.*?)/
|
80
|
-
if $3.split("=")[0]
|
79
|
+
if $3.split("=")[0] == "LABEL" || $1.split("=")[0] == "LABEL"
|
81
80
|
@current_resource.device_type("label")
|
82
|
-
elsif $3.split("=")[0]
|
81
|
+
elsif $3.split("=")[0] == "UUID" || $1.split("=")[0] == "UUID"
|
83
82
|
@current_resource.device_type("uuid")
|
84
83
|
else
|
85
84
|
@current_resource.device_type("device")
|
@@ -87,10 +86,10 @@ class Chef
|
|
87
86
|
|
88
87
|
if @current_resource.device_type != @new_resource.device_type
|
89
88
|
enabled = true
|
90
|
-
|
89
|
+
logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
|
91
90
|
else
|
92
91
|
enabled = false
|
93
|
-
|
92
|
+
logger.trace("Found conflicting mount point #{@new_resource.mount_point} in /etc/filesystems")
|
94
93
|
end
|
95
94
|
end
|
96
95
|
|
@@ -110,10 +109,10 @@ class Chef
|
|
110
109
|
case line
|
111
110
|
when /#{search_device}\s+#{Regexp.escape(@new_resource.mount_point)}/
|
112
111
|
mounted = true
|
113
|
-
|
112
|
+
logger.trace("Special device #{device_logstring} mounted as #{@new_resource.mount_point}")
|
114
113
|
when /^[\/\w]+\s+#{Regexp.escape(@new_resource.mount_point)}\s+/
|
115
114
|
mounted = false
|
116
|
-
|
115
|
+
logger.trace("Found conflicting mount point #{@new_resource.mount_point} in /etc/fstab")
|
117
116
|
end
|
118
117
|
end
|
119
118
|
@current_resource.mounted(mounted)
|
@@ -138,9 +137,9 @@ class Chef
|
|
138
137
|
end
|
139
138
|
command << " #{@new_resource.mount_point}"
|
140
139
|
shell_out!(command)
|
141
|
-
|
140
|
+
logger.trace("#{@new_resource} is mounted at #{@new_resource.mount_point}")
|
142
141
|
else
|
143
|
-
|
142
|
+
logger.trace("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
|
144
143
|
end
|
145
144
|
end
|
146
145
|
|
@@ -154,7 +153,7 @@ class Chef
|
|
154
153
|
|
155
154
|
def enable_fs
|
156
155
|
if @current_resource.enabled && mount_options_unchanged?
|
157
|
-
|
156
|
+
logger.trace("#{@new_resource} is already enabled - nothing to do")
|
158
157
|
return nil
|
159
158
|
end
|
160
159
|
|
@@ -164,7 +163,7 @@ class Chef
|
|
164
163
|
disable_fs
|
165
164
|
end
|
166
165
|
::File.open("/etc/filesystems", "a") do |fstab|
|
167
|
-
fstab.puts("
|
166
|
+
fstab.puts("#{@new_resource.mount_point}:")
|
168
167
|
if network_device?
|
169
168
|
device_details = device_fstab.split(":")
|
170
169
|
fstab.puts("\tdev\t\t= #{device_details[1]}")
|
@@ -175,7 +174,7 @@ class Chef
|
|
175
174
|
fstab.puts("\tvfs\t\t= #{@new_resource.fstype}")
|
176
175
|
fstab.puts("\tmount\t\t= false")
|
177
176
|
fstab.puts "\toptions\t\t= #{@new_resource.options.join(',')}" unless @new_resource.options.nil? || @new_resource.options.empty?
|
178
|
-
|
177
|
+
logger.trace("#{@new_resource} is enabled at #{@new_resource.mount_point}")
|
179
178
|
end
|
180
179
|
end
|
181
180
|
|
@@ -211,7 +210,7 @@ class Chef
|
|
211
210
|
contents.each { |line| fstab.puts line }
|
212
211
|
end
|
213
212
|
else
|
214
|
-
|
213
|
+
logger.trace("#{@new_resource} is not enabled - nothing to do")
|
215
214
|
end
|
216
215
|
end
|
217
216
|
|
@@ -64,11 +64,11 @@ class Chef
|
|
64
64
|
@current_resource.options($3)
|
65
65
|
@current_resource.dump($4.to_i)
|
66
66
|
@current_resource.pass($5.to_i)
|
67
|
-
|
67
|
+
logger.trace("Found mount #{device_fstab} to #{@new_resource.mount_point} in /etc/fstab")
|
68
68
|
next
|
69
69
|
when /^[\/\w]+\s+#{Regexp.escape(@new_resource.mount_point)}\s+/
|
70
70
|
enabled = false
|
71
|
-
|
71
|
+
logger.trace("Found conflicting mount point #{@new_resource.mount_point} in /etc/fstab")
|
72
72
|
end
|
73
73
|
end
|
74
74
|
@current_resource.enabled(enabled)
|
@@ -90,10 +90,10 @@ class Chef
|
|
90
90
|
case line
|
91
91
|
when /^#{device_mount_regex}\s+on\s+#{Regexp.escape(real_mount_point)}\s/
|
92
92
|
mounted = true
|
93
|
-
|
93
|
+
logger.trace("Special device #{device_logstring} mounted as #{real_mount_point}")
|
94
94
|
when /^([\/\w])+\son\s#{Regexp.escape(real_mount_point)}\s+/
|
95
95
|
mounted = false
|
96
|
-
|
96
|
+
logger.trace("Special device #{$~[1]} mounted as #{real_mount_point}")
|
97
97
|
end
|
98
98
|
end
|
99
99
|
@current_resource.mounted(mounted)
|
@@ -114,18 +114,18 @@ class Chef
|
|
114
114
|
end
|
115
115
|
command << " #{@new_resource.mount_point}"
|
116
116
|
shell_out!(command)
|
117
|
-
|
117
|
+
logger.trace("#{@new_resource} is mounted at #{@new_resource.mount_point}")
|
118
118
|
else
|
119
|
-
|
119
|
+
logger.trace("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
123
123
|
def umount_fs
|
124
124
|
if @current_resource.mounted
|
125
125
|
shell_out!("umount #{@new_resource.mount_point}")
|
126
|
-
|
126
|
+
logger.trace("#{@new_resource} is no longer mounted at #{@new_resource.mount_point}")
|
127
127
|
else
|
128
|
-
|
128
|
+
logger.trace("#{@new_resource} is not mounted at #{@new_resource.mount_point}")
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
@@ -137,19 +137,24 @@ class Chef
|
|
137
137
|
if @current_resource.mounted && @new_resource.supports[:remount]
|
138
138
|
shell_out!(remount_command)
|
139
139
|
@new_resource.updated_by_last_action(true)
|
140
|
-
|
140
|
+
logger.trace("#{@new_resource} is remounted at #{@new_resource.mount_point}")
|
141
141
|
elsif @current_resource.mounted
|
142
142
|
umount_fs
|
143
143
|
sleep 1
|
144
144
|
mount_fs
|
145
145
|
else
|
146
|
-
|
146
|
+
logger.trace("#{@new_resource} is not mounted at #{@new_resource.mount_point} - nothing to do")
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
150
|
+
# Return appropriate default mount options according to the given os.
|
151
|
+
def default_mount_options
|
152
|
+
node[:os] == "linux" ? "defaults" : "rw"
|
153
|
+
end
|
154
|
+
|
150
155
|
def enable_fs
|
151
156
|
if @current_resource.enabled && mount_options_unchanged? && device_unchanged?
|
152
|
-
|
157
|
+
logger.trace("#{@new_resource} is already enabled - nothing to do")
|
153
158
|
return nil
|
154
159
|
end
|
155
160
|
|
@@ -159,8 +164,8 @@ class Chef
|
|
159
164
|
disable_fs
|
160
165
|
end
|
161
166
|
::File.open("/etc/fstab", "a") do |fstab|
|
162
|
-
fstab.puts("#{device_fstab} #{@new_resource.mount_point} #{@new_resource.fstype} #{@new_resource.options.nil? ?
|
163
|
-
|
167
|
+
fstab.puts("#{device_fstab} #{@new_resource.mount_point} #{@new_resource.fstype} #{@new_resource.options.nil? ? default_mount_options : @new_resource.options.join(",")} #{@new_resource.dump} #{@new_resource.pass}")
|
168
|
+
logger.trace("#{@new_resource} is enabled at #{@new_resource.mount_point}")
|
164
169
|
end
|
165
170
|
end
|
166
171
|
|
@@ -172,7 +177,7 @@ class Chef
|
|
172
177
|
::File.readlines("/etc/fstab").reverse_each do |line|
|
173
178
|
if !found && line =~ /^#{device_fstab_regex}\s+#{Regexp.escape(@new_resource.mount_point)}\s/
|
174
179
|
found = true
|
175
|
-
|
180
|
+
logger.trace("#{@new_resource} is removed from fstab")
|
176
181
|
next
|
177
182
|
else
|
178
183
|
contents << line
|
@@ -183,7 +188,7 @@ class Chef
|
|
183
188
|
contents.reverse_each { |line| fstab.puts line }
|
184
189
|
end
|
185
190
|
else
|
186
|
-
|
191
|
+
logger.trace("#{@new_resource} is not enabled - nothing to do")
|
187
192
|
end
|
188
193
|
end
|
189
194
|
|
@@ -112,7 +112,7 @@ class Chef
|
|
112
112
|
else
|
113
113
|
# this is likely some kind of internal error, since we should only call disable_fs when there
|
114
114
|
# the filesystem we want to disable is enabled.
|
115
|
-
|
115
|
+
logger.warn("#{new_resource} did not find the mountpoint to disable in the vfstab")
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
@@ -153,10 +153,10 @@ class Chef
|
|
153
153
|
shell_out!("mount -v").stdout.each_line do |line|
|
154
154
|
case line
|
155
155
|
when /^#{device_regex}\s+on\s+#{Regexp.escape(mount_point)}\s+/
|
156
|
-
|
156
|
+
logger.trace("Special device #{device} is mounted as #{mount_point}")
|
157
157
|
mounted = true
|
158
158
|
when /^([\/\w]+)\son\s#{Regexp.escape(mount_point)}\s+/
|
159
|
-
|
159
|
+
logger.trace("Special device #{Regexp.last_match[1]} is mounted as #{mount_point}")
|
160
160
|
mounted = false
|
161
161
|
end
|
162
162
|
end
|
@@ -191,12 +191,12 @@ class Chef
|
|
191
191
|
end
|
192
192
|
end
|
193
193
|
pass = (Regexp.last_match[2] == "-") ? 0 : Regexp.last_match[2].to_i
|
194
|
-
|
194
|
+
logger.trace("Found mount #{device} to #{mount_point} in #{VFSTAB}")
|
195
195
|
next
|
196
196
|
when /^[-\/\w]+\s+[-\/\w]+\s+#{Regexp.escape(mount_point)}\s+/
|
197
197
|
# if we find a mountpoint on top of our mountpoint, then we are not enabled
|
198
198
|
enabled = false
|
199
|
-
|
199
|
+
logger.trace("Found conflicting mount point #{mount_point} in #{VFSTAB}")
|
200
200
|
end
|
201
201
|
end
|
202
202
|
[enabled, fstype, options, pass]
|
@@ -234,7 +234,7 @@ class Chef
|
|
234
234
|
::File.readlines(VFSTAB).reverse_each do |line|
|
235
235
|
if !found && line =~ /^#{device_regex}\s+\S+\s+#{Regexp.escape(mount_point)}/
|
236
236
|
found = true
|
237
|
-
|
237
|
+
logger.trace("#{new_resource} is removed from vfstab")
|
238
238
|
next
|
239
239
|
end
|
240
240
|
contents << line
|
@@ -47,15 +47,15 @@ class Chef
|
|
47
47
|
|
48
48
|
@current_resource = Chef::Resource::Mount.new(@new_resource.name)
|
49
49
|
@current_resource.mount_point(@new_resource.mount_point)
|
50
|
-
|
50
|
+
logger.trace("Checking for mount point #{@current_resource.mount_point}")
|
51
51
|
|
52
52
|
begin
|
53
53
|
@current_resource.device(@mount.device)
|
54
|
-
|
54
|
+
logger.trace("#{@current_resource.device} mounted on #{@new_resource.mount_point}")
|
55
55
|
@current_resource.mounted(true)
|
56
56
|
rescue ArgumentError => e
|
57
57
|
@current_resource.mounted(false)
|
58
|
-
|
58
|
+
logger.trace("#{@new_resource.mount_point} is not mounted: #{e.message}")
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -65,18 +65,18 @@ class Chef
|
|
65
65
|
:username => @new_resource.username,
|
66
66
|
:domainname => @new_resource.domain,
|
67
67
|
:password => @new_resource.password)
|
68
|
-
|
68
|
+
logger.trace("#{@new_resource} is mounted at #{@new_resource.mount_point}")
|
69
69
|
else
|
70
|
-
|
70
|
+
logger.trace("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
74
|
def umount_fs
|
75
75
|
if @current_resource.mounted
|
76
76
|
@mount.delete
|
77
|
-
|
77
|
+
logger.trace("#{@new_resource} is no longer mounted at #{@new_resource.mount_point}")
|
78
78
|
else
|
79
|
-
|
79
|
+
logger.trace("#{@new_resource} is not mounted at #{@new_resource.mount_point}")
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
data/lib/chef/provider/noop.rb
CHANGED
data/lib/chef/provider/ohai.rb
CHANGED
@@ -25,8 +25,8 @@ require "uuidtools"
|
|
25
25
|
class Chef
|
26
26
|
class Provider
|
27
27
|
class OsxProfile < Chef::Provider
|
28
|
-
provides :osx_profile
|
29
|
-
provides :osx_config_profile
|
28
|
+
provides :osx_profile
|
29
|
+
provides :osx_config_profile
|
30
30
|
|
31
31
|
def load_current_resource
|
32
32
|
@current_resource = Chef::Resource::OsxProfile.new(new_resource.name)
|
@@ -188,15 +188,15 @@ class Chef
|
|
188
188
|
end
|
189
189
|
|
190
190
|
def install_profile(profile_path)
|
191
|
-
cmd = "
|
192
|
-
|
191
|
+
cmd = "profiles -I -F '#{profile_path}'"
|
192
|
+
logger.trace("cmd: #{cmd}")
|
193
193
|
shellout_results = shell_out(cmd)
|
194
194
|
shellout_results.exitstatus
|
195
195
|
end
|
196
196
|
|
197
197
|
def remove_profile
|
198
|
-
cmd = "
|
199
|
-
|
198
|
+
cmd = "profiles -R -p '#{@new_profile_identifier}'"
|
199
|
+
logger.trace("cmd: #{cmd}")
|
200
200
|
shellout_results = shell_out(cmd)
|
201
201
|
shellout_results.exitstatus
|
202
202
|
end
|
@@ -214,7 +214,7 @@ class Chef
|
|
214
214
|
tempfile = generate_tempfile
|
215
215
|
write_installed_profiles(tempfile)
|
216
216
|
installed_profiles = read_plist(tempfile)
|
217
|
-
|
217
|
+
logger.trace("Saved profiles to run_state")
|
218
218
|
# Clean up the temp file as we do not need it anymore
|
219
219
|
::File.unlink(tempfile)
|
220
220
|
installed_profiles
|
@@ -225,7 +225,7 @@ class Chef
|
|
225
225
|
end
|
226
226
|
|
227
227
|
def write_installed_profiles(tempfile)
|
228
|
-
cmd = "
|
228
|
+
cmd = "profiles -P -o '#{tempfile}'"
|
229
229
|
shell_out!(cmd)
|
230
230
|
end
|
231
231
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright 2008-
|
3
|
+
# Copyright:: Copyright 2008-2018, Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -84,7 +84,7 @@ class Chef
|
|
84
84
|
|
85
85
|
action :install do
|
86
86
|
unless target_version_array.any?
|
87
|
-
|
87
|
+
logger.trace("#{new_resource} is already installed - nothing to do")
|
88
88
|
return
|
89
89
|
end
|
90
90
|
|
@@ -101,7 +101,7 @@ class Chef
|
|
101
101
|
multipackage_api_adapter(package_names_for_targets, versions_for_targets) do |name, version|
|
102
102
|
install_package(name, version)
|
103
103
|
end
|
104
|
-
|
104
|
+
logger.info("#{new_resource} installed #{package_names_for_targets} at #{versions_for_targets}")
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -119,7 +119,7 @@ class Chef
|
|
119
119
|
|
120
120
|
action :upgrade do
|
121
121
|
unless target_version_array.any?
|
122
|
-
|
122
|
+
logger.trace("#{new_resource} no versions to upgrade - nothing to do")
|
123
123
|
return
|
124
124
|
end
|
125
125
|
|
@@ -128,7 +128,7 @@ class Chef
|
|
128
128
|
upgrade_package(name, version)
|
129
129
|
end
|
130
130
|
log_allow_downgrade = allow_downgrade ? "(allow_downgrade)" : ""
|
131
|
-
|
131
|
+
logger.info("#{new_resource} upgraded#{log_allow_downgrade} #{package_names_for_targets} to #{versions_for_targets}")
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
@@ -154,10 +154,10 @@ class Chef
|
|
154
154
|
multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
|
155
155
|
remove_package(name, version)
|
156
156
|
end
|
157
|
-
|
157
|
+
logger.info("#{new_resource} removed")
|
158
158
|
end
|
159
159
|
else
|
160
|
-
|
160
|
+
logger.trace("#{new_resource} package does not exist - nothing to do")
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
@@ -189,19 +189,19 @@ class Chef
|
|
189
189
|
multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
|
190
190
|
purge_package(name, version)
|
191
191
|
end
|
192
|
-
|
192
|
+
logger.info("#{new_resource} purged")
|
193
193
|
end
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
197
197
|
action :reconfig do
|
198
198
|
if current_resource.version.nil?
|
199
|
-
|
199
|
+
logger.trace("#{new_resource} is NOT installed - nothing to do")
|
200
200
|
return
|
201
201
|
end
|
202
202
|
|
203
203
|
unless new_resource.response_file
|
204
|
-
|
204
|
+
logger.trace("#{new_resource} no response_file provided - nothing to do")
|
205
205
|
return
|
206
206
|
end
|
207
207
|
|
@@ -212,41 +212,52 @@ class Chef
|
|
212
212
|
reconfig_package(name, version)
|
213
213
|
|
214
214
|
end
|
215
|
-
|
215
|
+
logger.info("#{new_resource} reconfigured")
|
216
216
|
end
|
217
217
|
else
|
218
|
-
|
218
|
+
logger.trace("#{new_resource} preseeding has not changed - nothing to do")
|
219
219
|
end
|
220
220
|
end
|
221
221
|
|
222
222
|
def action_lock
|
223
|
-
if
|
223
|
+
packages_locked = if respond_to?(:packages_all_locked?, true)
|
224
|
+
packages_all_locked?(Array(new_resource.package_name), Array(new_resource.version))
|
225
|
+
else
|
226
|
+
package_locked(new_resource.package_name, new_resource.version)
|
227
|
+
end
|
228
|
+
unless packages_locked
|
224
229
|
description = new_resource.version ? "version #{new_resource.version} of " : ""
|
225
230
|
converge_by("lock #{description}package #{current_resource.package_name}") do
|
226
231
|
multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
|
227
232
|
lock_package(name, version)
|
228
|
-
|
233
|
+
logger.info("#{new_resource} locked")
|
229
234
|
end
|
230
235
|
end
|
231
236
|
else
|
232
|
-
|
237
|
+
logger.trace("#{new_resource} is already locked")
|
233
238
|
end
|
234
239
|
end
|
235
240
|
|
236
241
|
def action_unlock
|
237
|
-
if
|
242
|
+
packages_unlocked = if respond_to?(:packages_all_unlocked?, true)
|
243
|
+
packages_all_unlocked?(Array(new_resource.package_name), Array(new_resource.version))
|
244
|
+
else
|
245
|
+
!package_locked(new_resource.package_name, new_resource.version)
|
246
|
+
end
|
247
|
+
unless packages_unlocked
|
238
248
|
description = new_resource.version ? "version #{new_resource.version} of " : ""
|
239
249
|
converge_by("unlock #{description}package #{current_resource.package_name}") do
|
240
250
|
multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
|
241
251
|
unlock_package(name, version)
|
242
|
-
|
252
|
+
logger.info("#{new_resource} unlocked")
|
243
253
|
end
|
244
254
|
end
|
245
255
|
else
|
246
|
-
|
256
|
+
logger.trace("#{new_resource} is already unlocked")
|
247
257
|
end
|
248
258
|
end
|
249
259
|
|
260
|
+
# for multipackage just implement packages_all_[un]locked? properly and omit implementing this API
|
250
261
|
def package_locked(name, version)
|
251
262
|
raise Chef::Exceptions::UnsupportedAction, "#{self} has no way to detect if package is locked"
|
252
263
|
end
|
@@ -372,7 +383,7 @@ class Chef
|
|
372
383
|
def get_preseed_file(name, version)
|
373
384
|
resource = preseed_resource(name, version)
|
374
385
|
resource.run_action(:create)
|
375
|
-
|
386
|
+
logger.trace("#{new_resource} fetched preseed file to #{resource.path}")
|
376
387
|
|
377
388
|
if resource.updated_by_last_action?
|
378
389
|
resource.path
|
@@ -388,14 +399,14 @@ class Chef
|
|
388
399
|
# The full path where the preseed file will be stored
|
389
400
|
cache_seed_to = "#{file_cache_dir}/#{name}-#{version}.seed"
|
390
401
|
|
391
|
-
|
402
|
+
logger.trace("#{new_resource} fetching preseed file to #{cache_seed_to}")
|
392
403
|
|
393
404
|
if template_available?(new_resource.response_file)
|
394
|
-
|
405
|
+
logger.trace("#{new_resource} fetching preseed file via Template")
|
395
406
|
remote_file = Chef::Resource::Template.new(cache_seed_to, run_context)
|
396
407
|
remote_file.variables(new_resource.response_file_variables)
|
397
408
|
elsif cookbook_file_available?(new_resource.response_file)
|
398
|
-
|
409
|
+
logger.trace("#{new_resource} fetching preseed file via cookbook_file")
|
399
410
|
remote_file = Chef::Resource::CookbookFile.new(cache_seed_to, run_context)
|
400
411
|
else
|
401
412
|
message = "No template or cookbook file found for response file #{new_resource.response_file}"
|
@@ -469,22 +480,22 @@ class Chef
|
|
469
480
|
when :upgrade
|
470
481
|
if version_equals?(current_version, new_version)
|
471
482
|
# this is an odd use case
|
472
|
-
|
483
|
+
logger.trace("#{new_resource} #{package_name} #{new_version} is already installed -- you are equality pinning with an :upgrade action, this may be deprecated in the future")
|
473
484
|
target_version_array.push(nil)
|
474
485
|
elsif version_equals?(current_version, candidate_version)
|
475
|
-
|
486
|
+
logger.trace("#{new_resource} #{package_name} #{candidate_version} is already installed")
|
476
487
|
target_version_array.push(nil)
|
477
488
|
elsif candidate_version.nil?
|
478
|
-
|
489
|
+
logger.trace("#{new_resource} #{package_name} has no candidate_version to upgrade to")
|
479
490
|
target_version_array.push(nil)
|
480
491
|
elsif current_version.nil?
|
481
|
-
|
492
|
+
logger.trace("#{new_resource} has no existing installed version. Installing install #{candidate_version}")
|
482
493
|
target_version_array.push(candidate_version)
|
483
494
|
elsif version_compare(current_version, candidate_version) == 1 && !allow_downgrade
|
484
|
-
|
495
|
+
logger.trace("#{new_resource} #{package_name} has installed version #{current_version}, which is newer than available version #{candidate_version}. Skipping...)")
|
485
496
|
target_version_array.push(nil)
|
486
497
|
else
|
487
|
-
|
498
|
+
logger.trace("#{new_resource} #{package_name} is out of date, will upgrade to #{candidate_version}")
|
488
499
|
target_version_array.push(candidate_version)
|
489
500
|
end
|
490
501
|
|
@@ -492,17 +503,17 @@ class Chef
|
|
492
503
|
|
493
504
|
if new_version
|
494
505
|
if version_requirement_satisfied?(current_version, new_version)
|
495
|
-
|
506
|
+
logger.trace("#{new_resource} #{package_name} #{current_version} satisifies #{new_version} requirement")
|
496
507
|
target_version_array.push(nil)
|
497
508
|
else
|
498
|
-
|
509
|
+
logger.trace("#{new_resource} #{package_name} #{current_version} needs updating to #{new_version}")
|
499
510
|
target_version_array.push(new_version)
|
500
511
|
end
|
501
512
|
elsif current_version.nil?
|
502
|
-
|
513
|
+
logger.trace("#{new_resource} #{package_name} not installed, installing #{candidate_version}")
|
503
514
|
target_version_array.push(candidate_version)
|
504
515
|
else
|
505
|
-
|
516
|
+
logger.trace("#{new_resource} #{package_name} #{current_version} already installed")
|
506
517
|
target_version_array.push(nil)
|
507
518
|
end
|
508
519
|
|
@@ -580,12 +591,12 @@ class Chef
|
|
580
591
|
|
581
592
|
# @return [Boolean] if we're doing a multipackage install or not
|
582
593
|
def multipackage?
|
583
|
-
new_resource.package_name.is_a?(Array)
|
594
|
+
@multipackage_bool ||= new_resource.package_name.is_a?(Array)
|
584
595
|
end
|
585
596
|
|
586
597
|
# @return [Array] package_name(s) as an array
|
587
598
|
def package_name_array
|
588
|
-
[ new_resource.package_name ].flatten
|
599
|
+
@package_name_array ||= [ new_resource.package_name ].flatten
|
589
600
|
end
|
590
601
|
|
591
602
|
# @return [Array] candidate_version(s) as an array
|
@@ -597,12 +608,12 @@ class Chef
|
|
597
608
|
|
598
609
|
# @return [Array] current_version(s) as an array
|
599
610
|
def current_version_array
|
600
|
-
[ current_resource.version ].flatten
|
611
|
+
@current_version_array ||= [ current_resource.version ].flatten
|
601
612
|
end
|
602
613
|
|
603
614
|
# @return [Array] new_version(s) as an array
|
604
615
|
def new_version_array
|
605
|
-
[ new_resource.version ].flatten.map { |v| v.to_s.empty? ? nil : v }
|
616
|
+
@new_version_array ||= [ new_resource.version ].flatten.map { |v| v.to_s.empty? ? nil : v }
|
606
617
|
end
|
607
618
|
|
608
619
|
# TIP: less error prone to simply always call resolved_source_array, even if you
|
@@ -610,11 +621,14 @@ class Chef
|
|
610
621
|
#
|
611
622
|
# @return [Array] new_resource.source as an array
|
612
623
|
def source_array
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
624
|
+
@source_array ||=
|
625
|
+
begin
|
626
|
+
if new_resource.source.nil?
|
627
|
+
package_name_array.map { nil }
|
628
|
+
else
|
629
|
+
[ new_resource.source ].flatten
|
630
|
+
end
|
631
|
+
end
|
618
632
|
end
|
619
633
|
|
620
634
|
# Helper to handle use_package_name_for_source to convert names into local packages to install.
|
@@ -627,7 +641,7 @@ class Chef
|
|
627
641
|
package_name = package_name_array[i]
|
628
642
|
# we require at least one '/' in the package_name to avoid [XXX_]package 'foo' breaking due to a random 'foo' file in cwd
|
629
643
|
if use_package_name_for_source? && source.nil? && package_name.match(/#{::File::SEPARATOR}/) && ::File.exist?(package_name)
|
630
|
-
|
644
|
+
logger.trace("No package source specified, but #{package_name} exists on filesystem, using #{package_name} as source.")
|
631
645
|
package_name
|
632
646
|
else
|
633
647
|
source
|