chef 12.18.31 → 13.0.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +15 -11
- data/README.md +13 -13
- data/Rakefile +1 -19
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
- data/acceptance/Gemfile +8 -5
- data/acceptance/Gemfile.lock +90 -81
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +8 -7
- data/lib/chef/api_client.rb +8 -15
- data/lib/chef/api_client_v1.rb +9 -11
- data/lib/chef/application/apply.rb +8 -10
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +11 -82
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +0 -1
- data/lib/chef/application/windows_service.rb +36 -37
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/application.rb +15 -25
- data/lib/chef/audit/audit_event_proxy.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +1 -1
- data/lib/chef/blacklist.rb +81 -0
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
- data/lib/chef/chef_fs/command_line.rb +15 -16
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_pattern.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/parallelizer.rb +9 -11
- data/lib/chef/client.rb +47 -11
- data/lib/chef/config_fetcher.rb +4 -4
- data/lib/chef/constants.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +10 -6
- data/lib/chef/cookbook/manifest_v0.rb +68 -0
- data/lib/chef/cookbook/manifest_v2.rb +41 -0
- data/lib/chef/cookbook/metadata.rb +25 -134
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +24 -21
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +91 -65
- data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +69 -157
- data/lib/chef/data_bag.rb +1 -7
- data/lib/chef/data_bag_item.rb +5 -10
- data/lib/chef/data_collector/messages.rb +2 -0
- data/lib/chef/data_collector/resource_report.rb +32 -4
- data/lib/chef/data_collector.rb +3 -4
- data/lib/chef/decorator/unchain.rb +0 -16
- data/lib/chef/decorator.rb +1 -1
- data/lib/chef/deprecated.rb +53 -19
- data/lib/chef/dsl/audit.rb +2 -2
- data/lib/chef/dsl/declare_resource.rb +11 -17
- data/lib/chef/dsl/platform_introspection.rb +29 -31
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -4
- data/lib/chef/dsl/resources.rb +4 -13
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/environment.rb +9 -16
- data/lib/chef/event_dispatch/base.rb +16 -0
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/exceptions.rb +6 -10
- data/lib/chef/file_access_control/unix.rb +14 -14
- data/lib/chef/file_access_control/windows.rb +1 -1
- data/lib/chef/formatters/error_description.rb +18 -1
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
- data/lib/chef/formatters/error_mapper.rb +6 -6
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
- data/lib/chef/http/api_versions.rb +54 -0
- data/lib/chef/http/authenticator.rb +15 -6
- data/lib/chef/http/json_output.rb +4 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/http.rb +39 -0
- data/lib/chef/json_compat.rb +7 -103
- data/lib/chef/key.rb +5 -10
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
- data/lib/chef/knife/bootstrap.rb +6 -0
- data/lib/chef/knife/configure.rb +1 -3
- data/lib/chef/knife/configure_client.rb +1 -3
- data/lib/chef/knife/cookbook_create.rb +1 -434
- data/lib/chef/knife/cookbook_download.rb +3 -4
- data/lib/chef/knife/cookbook_show.rb +7 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +8 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +2 -32
- data/lib/chef/knife/core/ui.rb +20 -27
- data/lib/chef/knife/data_bag_create.rb +6 -4
- data/lib/chef/knife/data_bag_secret_options.rb +1 -1
- data/lib/chef/knife/deps.rb +32 -34
- data/lib/chef/knife/edit.rb +1 -1
- data/lib/chef/knife/help.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/search.rb +9 -20
- data/lib/chef/knife/ssh.rb +62 -36
- data/lib/chef/knife/ssl_check.rb +1 -1
- data/lib/chef/knife/user_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +1 -1
- data/lib/chef/knife.rb +6 -7
- data/lib/chef/mash.rb +1 -1
- data/lib/chef/mixin/create_path.rb +3 -5
- data/lib/chef/mixin/from_file.rb +2 -2
- data/lib/chef/mixin/get_source_from_package.rb +2 -2
- data/lib/chef/mixin/notifying_block.rb +7 -9
- data/lib/chef/mixin/params_validate.rb +9 -8
- data/lib/chef/mixin/path_sanity.rb +17 -19
- data/lib/chef/mixin/securable.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +33 -29
- data/lib/chef/mixin/unformatter.rb +2 -2
- data/lib/chef/mixin/uris.rb +4 -6
- data/lib/chef/mixin/versioned_api.rb +84 -0
- data/lib/chef/mixin/which.rb +25 -8
- data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
- data/lib/chef/mixin/xml_escape.rb +3 -5
- data/lib/chef/mixins.rb +0 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
- data/lib/chef/node/attribute.rb +9 -32
- data/lib/chef/node/attribute_collections.rb +1 -19
- data/lib/chef/node/common_api.rb +5 -7
- data/lib/chef/node/immutable_collections.rb +42 -38
- data/lib/chef/node/mixin/immutablize_array.rb +1 -1
- data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
- data/lib/chef/node.rb +21 -20
- data/lib/chef/node_map.rb +2 -5
- data/lib/chef/org.rb +10 -17
- data/lib/chef/platform/provider_mapping.rb +2 -169
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/platform/rebooter.rb +1 -2
- data/lib/chef/policy_builder/expand_node_object.rb +3 -29
- data/lib/chef/policy_builder/policyfile.rb +8 -6
- data/lib/chef/property.rb +66 -80
- data/lib/chef/provider/apt_repository.rb +6 -10
- data/lib/chef/provider/apt_update.rb +1 -7
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/breakpoint.rb +2 -2
- data/lib/chef/provider/cookbook_file.rb +3 -9
- data/lib/chef/provider/cron.rb +42 -60
- data/lib/chef/provider/deploy/revision.rb +3 -5
- data/lib/chef/provider/deploy.rb +82 -88
- data/lib/chef/provider/directory.rb +33 -37
- data/lib/chef/provider/dsc_resource.rb +23 -11
- data/lib/chef/provider/dsc_script.rb +1 -5
- data/lib/chef/provider/env/windows.rb +5 -1
- data/lib/chef/provider/env.rb +32 -30
- data/lib/chef/provider/erl_call.rb +15 -47
- data/lib/chef/provider/execute.rb +7 -8
- data/lib/chef/provider/file.rb +49 -61
- data/lib/chef/provider/git.rb +56 -60
- data/lib/chef/provider/group.rb +1 -7
- data/lib/chef/provider/http_request.rb +37 -41
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +0 -6
- data/lib/chef/provider/launchd.rb +6 -2
- data/lib/chef/provider/link.rb +51 -55
- data/lib/chef/provider/log.rb +3 -7
- data/lib/chef/provider/lwrp_base.rb +0 -9
- data/lib/chef/provider/mdadm.rb +25 -33
- data/lib/chef/provider/mount/aix.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/mount.rb +1 -5
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/ohai.rb +1 -7
- data/lib/chef/provider/osx_profile.rb +24 -29
- data/lib/chef/provider/package/aix.rb +55 -53
- data/lib/chef/provider/package/apt.rb +15 -13
- data/lib/chef/provider/package/cab.rb +48 -20
- data/lib/chef/provider/package/chocolatey.rb +9 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
- data/lib/chef/provider/package/dnf/version.rb +1 -1
- data/lib/chef/provider/package/dnf.rb +21 -19
- data/lib/chef/provider/package/dpkg.rb +8 -9
- data/lib/chef/provider/package/freebsd/base.rb +10 -10
- data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
- data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
- data/lib/chef/provider/package/freebsd/port.rb +7 -7
- data/lib/chef/provider/package/homebrew.rb +11 -10
- data/lib/chef/provider/package/ips.rb +18 -24
- data/lib/chef/provider/package/macports.rb +23 -23
- data/lib/chef/provider/package/msu.rb +11 -12
- data/lib/chef/provider/package/openbsd.rb +25 -22
- data/lib/chef/provider/package/pacman.rb +16 -17
- data/lib/chef/provider/package/paludis.rb +26 -27
- data/lib/chef/provider/package/portage.rb +22 -23
- data/lib/chef/provider/package/powershell.rb +17 -17
- data/lib/chef/provider/package/rpm.rb +25 -26
- data/lib/chef/provider/package/rubygems.rb +64 -62
- data/lib/chef/provider/package/smartos.rb +16 -16
- data/lib/chef/provider/package/solaris.rb +44 -45
- data/lib/chef/provider/package/windows/exe.rb +6 -6
- data/lib/chef/provider/package/windows/msi.rb +7 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
- data/lib/chef/provider/package/windows.rb +3 -3
- data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
- data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
- data/lib/chef/provider/package/yum.rb +319 -269
- data/lib/chef/provider/package/zypper.rb +10 -20
- data/lib/chef/provider/package.rb +71 -63
- data/lib/chef/provider/powershell_script.rb +15 -7
- data/lib/chef/provider/reboot.rb +10 -14
- data/lib/chef/provider/registry_key.rb +39 -43
- data/lib/chef/provider/remote_directory.rb +3 -15
- data/lib/chef/provider/remote_file.rb +3 -9
- data/lib/chef/provider/route.rb +1 -7
- data/lib/chef/provider/ruby_block.rb +4 -8
- data/lib/chef/provider/script.rb +42 -6
- data/lib/chef/provider/service/aix.rb +1 -5
- data/lib/chef/provider/service/debian.rb +15 -21
- data/lib/chef/provider/service/freebsd.rb +0 -1
- data/lib/chef/provider/service/gentoo.rb +0 -1
- data/lib/chef/provider/service/init.rb +0 -1
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +0 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +0 -5
- data/lib/chef/provider/service/solaris.rb +5 -4
- data/lib/chef/provider/service/systemd.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +10 -12
- data/lib/chef/provider/service/windows.rb +1 -5
- data/lib/chef/provider/service.rb +51 -58
- data/lib/chef/provider/subversion.rb +40 -46
- data/lib/chef/provider/systemd_unit.rb +2 -0
- data/lib/chef/provider/template/content.rb +24 -1
- data/lib/chef/provider/template.rb +3 -9
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/linux.rb +6 -5
- data/lib/chef/provider/user/pw.rb +4 -10
- data/lib/chef/provider/user/solaris.rb +2 -2
- data/lib/chef/provider/user/useradd.rb +5 -5
- data/lib/chef/provider/user.rb +43 -59
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
- data/lib/chef/provider/windows_task.rb +418 -0
- data/lib/chef/provider/yum_repository.rb +3 -6
- data/lib/chef/provider.rb +63 -115
- data/lib/chef/provider_resolver.rb +8 -34
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +9 -1
- data/lib/chef/resource/action_class.rb +13 -17
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/apt_update.rb +3 -1
- data/lib/chef/resource/chef_gem.rb +4 -11
- data/lib/chef/resource/chocolatey_package.rb +4 -1
- data/lib/chef/resource/dnf_package.rb +6 -3
- data/lib/chef/resource/dsc_resource.rb +9 -1
- data/lib/chef/resource/execute.rb +66 -19
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
- data/lib/chef/resource/file/verification.rb +2 -7
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +16 -2
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +0 -2
- data/lib/chef/resource/mount.rb +5 -12
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/script.rb +8 -34
- data/lib/chef/resource/service.rb +15 -13
- data/lib/chef/resource/systemd_unit.rb +5 -0
- data/lib/chef/resource/user/aix_user.rb +1 -1
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +1 -10
- data/lib/chef/resource/user/pw_user.rb +1 -1
- data/lib/chef/resource/user/solaris_user.rb +1 -1
- data/lib/chef/resource/user/windows_user.rb +1 -1
- data/lib/chef/resource/user.rb +1 -19
- data/lib/chef/resource/windows_package.rb +4 -1
- data/lib/chef/resource/windows_task.rb +237 -0
- data/lib/chef/resource/yum_package.rb +13 -4
- data/lib/chef/resource/yum_repository.rb +0 -1
- data/lib/chef/resource/zypper_package.rb +2 -0
- data/lib/chef/resource.rb +90 -202
- data/lib/chef/resource_builder.rb +1 -65
- data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
- data/lib/chef/resource_collection/resource_list.rb +6 -0
- data/lib/chef/resource_collection/resource_set.rb +44 -17
- data/lib/chef/resource_collection.rb +10 -0
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resource_resolver.rb +1 -25
- data/lib/chef/resources.rb +1 -1
- data/lib/chef/role.rb +0 -6
- data/lib/chef/run_context/cookbook_compiler.rb +49 -5
- data/lib/chef/run_context.rb +4 -25
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
- data/lib/chef/search/query.rb +26 -31
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/shell/shell_session.rb +14 -4
- data/lib/chef/shell.rb +32 -7
- data/lib/chef/user.rb +9 -16
- data/lib/chef/user_v1.rb +9 -16
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/selinux.rb +1 -1
- data/lib/chef/util/windows/net_group.rb +18 -30
- data/lib/chef/util/windows/net_use.rb +7 -11
- data/lib/chef/util/windows/net_user.rb +12 -18
- data/lib/chef/util/windows/volume.rb +9 -15
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/win32/api/file.rb +25 -31
- data/lib/chef/win32/api/installer.rb +2 -2
- data/lib/chef/win32/api.rb +4 -6
- data/lib/chef/win32/file.rb +4 -6
- data/lib/chef/win32/registry.rb +9 -9
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/security/sid.rb +5 -0
- data/lib/chef/win32/security.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +1 -1
- data/lib/chef.rb +1 -2
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
- data/spec/data/lwrp/resources/buck_passer.rb +5 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
- data/spec/data/prefer_metadata_json/metadata.json +51 -0
- data/spec/data/prefer_metadata_json/metadata.rb +6 -0
- data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
- data/spec/data/shef-config.rb +11 -10
- data/spec/functional/knife/ssh_spec.rb +34 -6
- data/spec/functional/rebooter_spec.rb +1 -0
- data/spec/functional/resource/bash_spec.rb +11 -45
- data/spec/functional/resource/batch_spec.rb +5 -1
- data/spec/functional/resource/cron_spec.rb +2 -2
- data/spec/functional/resource/dsc_script_spec.rb +2 -4
- data/spec/functional/resource/execute_spec.rb +17 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/template_spec.rb +33 -0
- data/spec/functional/resource/user/dscl_spec.rb +2 -4
- data/spec/functional/root_alias_spec.rb +78 -0
- data/spec/functional/shell_spec.rb +38 -40
- data/spec/integration/client/client_spec.rb +109 -16
- data/spec/integration/client/exit_code_spec.rb +1 -105
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
- data/spec/integration/knife/cookbook_download_spec.rb +0 -24
- data/spec/integration/knife/cookbook_show_spec.rb +12 -23
- data/spec/integration/knife/deps_spec.rb +5 -9
- data/spec/integration/knife/search_node_spec.rb +39 -0
- data/spec/integration/knife/serve_spec.rb +58 -22
- data/spec/integration/knife/upload_spec.rb +3 -11
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
- data/spec/integration/recipes/notifies_spec.rb +60 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
- data/spec/integration/recipes/resource_action_spec.rb +37 -30
- data/spec/spec_helper.rb +7 -0
- data/spec/support/chef_helpers.rb +5 -7
- data/spec/support/platform_helpers.rb +10 -3
- data/spec/support/platforms/prof/gc.rb +4 -6
- data/spec/support/shared/context/client.rb +9 -2
- data/spec/support/shared/functional/execute_resource.rb +150 -0
- data/spec/support/shared/functional/windows_script.rb +74 -4
- data/spec/support/shared/integration/knife_support.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +37 -9
- data/spec/support/shared/unit/provider/file.rb +10 -0
- data/spec/support/shared/unit/script_resource.rb +1 -9
- data/spec/unit/application/exit_code_spec.rb +4 -89
- data/spec/unit/application_spec.rb +39 -29
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
- data/spec/unit/client_spec.rb +72 -31
- data/spec/unit/config_fetcher_spec.rb +2 -2
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
- data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
- data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
- data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
- data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
- data/spec/unit/cookbook/metadata_spec.rb +29 -108
- data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
- data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
- data/spec/unit/cookbook_loader_spec.rb +17 -19
- data/spec/unit/cookbook_manifest_spec.rb +12 -44
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
- data/spec/unit/cookbook_spec.rb +10 -14
- data/spec/unit/cookbook_uploader_spec.rb +1 -1
- data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
- data/spec/unit/cookbook_version_spec.rb +19 -128
- data/spec/unit/data_bag_item_spec.rb +4 -0
- data/spec/unit/data_collector/messages_spec.rb +137 -0
- data/spec/unit/data_collector/resource_report_spec.rb +145 -0
- data/spec/unit/deprecation_spec.rb +0 -14
- data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
- data/spec/unit/formatters/error_description_spec.rb +52 -7
- data/spec/unit/http/api_versions_spec.rb +79 -0
- data/spec/unit/http/authenticator_spec.rb +20 -0
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
- data/spec/unit/json_compat_spec.rb +0 -32
- data/spec/unit/knife/bootstrap_spec.rb +34 -0
- data/spec/unit/knife/configure_client_spec.rb +0 -2
- data/spec/unit/knife/cookbook_create_spec.rb +1 -220
- data/spec/unit/knife/cookbook_download_spec.rb +46 -28
- data/spec/unit/knife/cookbook_show_spec.rb +42 -9
- data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
- data/spec/unit/knife/core/ui_spec.rb +21 -11
- data/spec/unit/knife/data_bag_create_spec.rb +65 -45
- data/spec/unit/knife/ssh_spec.rb +34 -36
- data/spec/unit/knife_spec.rb +2 -2
- data/spec/unit/lwrp_spec.rb +38 -127
- data/spec/unit/mixin/path_sanity_spec.rb +7 -7
- data/spec/unit/mixin/shell_out_spec.rb +18 -84
- data/spec/unit/mixin/versioned_api_spec.rb +128 -0
- data/spec/unit/mixin/which.rb +160 -0
- data/spec/unit/node/attribute_spec.rb +65 -33
- data/spec/unit/node/immutable_collections_spec.rb +104 -1
- data/spec/unit/node_map_spec.rb +1 -23
- data/spec/unit/node_spec.rb +81 -98
- data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
- data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
- data/spec/unit/property/validation_spec.rb +51 -69
- data/spec/unit/property_spec.rb +105 -125
- data/spec/unit/provider/apt_repository_spec.rb +33 -27
- data/spec/unit/provider/cron_spec.rb +15 -39
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +10 -0
- data/spec/unit/provider/dsc_resource_spec.rb +175 -0
- data/spec/unit/provider/erl_call_spec.rb +5 -13
- data/spec/unit/provider/execute_spec.rb +3 -14
- data/spec/unit/provider/launchd_spec.rb +2 -2
- data/spec/unit/provider/package/aix_spec.rb +22 -22
- data/spec/unit/provider/package/apt_spec.rb +37 -27
- data/spec/unit/provider/package/cab_spec.rb +59 -5
- data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
- data/spec/unit/provider/package/dpkg_spec.rb +16 -16
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
- data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
- data/spec/unit/provider/package/homebrew_spec.rb +9 -9
- data/spec/unit/provider/package/ips_spec.rb +37 -31
- data/spec/unit/provider/package/macports_spec.rb +10 -10
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +6 -6
- data/spec/unit/provider/package/paludis_spec.rb +7 -7
- data/spec/unit/provider/package/portage_spec.rb +6 -7
- data/spec/unit/provider/package/rpm_spec.rb +23 -23
- data/spec/unit/provider/package/rubygems_spec.rb +135 -46
- data/spec/unit/provider/package/solaris_spec.rb +15 -15
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum_spec.rb +58 -50
- data/spec/unit/provider/package/zypper_spec.rb +54 -97
- data/spec/unit/provider/package_spec.rb +8 -0
- data/spec/unit/provider/powershell_script_spec.rb +14 -4
- data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +7 -1
- data/spec/unit/provider/script_spec.rb +49 -6
- data/spec/unit/provider/service/debian_service_spec.rb +14 -20
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +5 -43
- data/spec/unit/provider/user/pw_spec.rb +7 -27
- data/spec/unit/provider/windows_task_spec.rb +392 -0
- data/spec/unit/provider_resolver_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +10 -3
- data/spec/unit/recipe_spec.rb +3 -172
- data/spec/unit/resource/chef_gem_spec.rb +16 -62
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/cookbook_file_spec.rb +2 -2
- data/spec/unit/resource/cron_spec.rb +1 -1
- data/spec/unit/resource/deploy_spec.rb +4 -4
- data/spec/unit/resource/directory_spec.rb +2 -2
- data/spec/unit/resource/dsc_resource_spec.rb +6 -0
- data/spec/unit/resource/env_spec.rb +1 -1
- data/spec/unit/resource/execute_spec.rb +215 -1
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
- data/spec/unit/resource/file/verification_spec.rb +8 -14
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +2 -2
- data/spec/unit/resource/group_spec.rb +2 -2
- data/spec/unit/resource/ifconfig_spec.rb +1 -1
- data/spec/unit/resource/link_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +1 -1
- data/spec/unit/resource/mount_spec.rb +3 -3
- data/spec/unit/resource/ohai_spec.rb +1 -1
- data/spec/unit/resource/package_spec.rb +14 -4
- data/spec/unit/resource/registry_key_spec.rb +2 -2
- data/spec/unit/resource/remote_directory_spec.rb +2 -2
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/scm_spec.rb +2 -2
- data/spec/unit/resource/script_spec.rb +1 -1
- data/spec/unit/resource/service_spec.rb +25 -5
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +6 -6
- data/spec/unit/resource/windows_task_spec.rb +213 -0
- data/spec/unit/resource/yum_package_spec.rb +42 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
- data/spec/unit/resource_collection_spec.rb +4 -3
- data/spec/unit/resource_reporter_spec.rb +6 -6
- data/spec/unit/resource_spec.rb +55 -71
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
- data/spec/unit/runner_spec.rb +10 -28
- data/spec/unit/search/query_spec.rb +32 -34
- data/spec/unit/server_api_versions_spec.rb +44 -0
- data/spec/unit/shell/shell_session_spec.rb +33 -2
- data/spec/unit/util/selinux_spec.rb +3 -14
- data/spec/unit/win32/error_spec.rb +67 -0
- data/spec/unit/win32/security_spec.rb +66 -0
- data/tasks/bundle.rb +36 -52
- data/tasks/changelog.rb +1 -1
- data/tasks/dependencies.rb +54 -52
- data/tasks/version.rb +41 -0
- metadata +91 -76
- data/lib/chef/deprecation/mixin/template.rb +0 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
- data/lib/chef/deprecation/provider/file.rb +0 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
- data/lib/chef/deprecation/provider/remote_file.rb +0 -85
- data/lib/chef/deprecation/provider/template.rb +0 -63
- data/lib/chef/dsl/method_missing.rb +0 -75
- data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
- data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
- data/lib/chef/mixin/command/unix.rb +0 -220
- data/lib/chef/mixin/command/windows.rb +0 -71
- data/lib/chef/mixin/command.rb +0 -194
- data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
- data/lib/chef/provider/package/easy_install.rb +0 -135
- data/lib/chef/rest.rb +0 -210
- data/lib/chef/shell_out.rb +0 -13
- data/lib/chef/tasks/chef_repo.rake +0 -200
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
- data/spec/functional/rest_spec.rb +0 -95
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
- data/spec/unit/lib_backcompat_spec.rb +0 -34
- data/spec/unit/mixin/command_spec.rb +0 -107
- data/spec/unit/platform_spec.rb +0 -242
- data/spec/unit/provider/package/easy_install_spec.rb +0 -114
- data/spec/unit/resource/easy_install_package_spec.rb +0 -39
- data/spec/unit/rest/auth_credentials_spec.rb +0 -292
- data/spec/unit/rest_spec.rb +0 -753
- data/spec/unit/shell_out_spec.rb +0 -18
- data/tasks/bin/bundle-platform +0 -20
- data/tasks/bin/bundle-platform.bat +0 -2
- data/tasks/bin/bundler_patch.rb +0 -27
- data/tasks/bin/gem-version-diff +0 -37
- data/tasks/bundle_util.rb +0 -110
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright:: Copyright 2012-
|
|
2
|
+
# Copyright:: Copyright 2012-2017, Chef Software Inc.
|
|
3
3
|
# License:: Apache License, Version 2.0
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -22,8 +22,14 @@ require "chef/node/mixin/immutablize_hash"
|
|
|
22
22
|
|
|
23
23
|
class Chef
|
|
24
24
|
class Node
|
|
25
|
-
|
|
26
25
|
module Immutablize
|
|
26
|
+
# For elements like Fixnums, true, nil...
|
|
27
|
+
def safe_dup(e)
|
|
28
|
+
e.dup
|
|
29
|
+
rescue TypeError
|
|
30
|
+
e
|
|
31
|
+
end
|
|
32
|
+
|
|
27
33
|
def immutablize(value)
|
|
28
34
|
case value
|
|
29
35
|
when Hash
|
|
@@ -31,7 +37,7 @@ class Chef
|
|
|
31
37
|
when Array
|
|
32
38
|
ImmutableArray.new(value, __root__, __node__, __precedence__)
|
|
33
39
|
else
|
|
34
|
-
value
|
|
40
|
+
safe_dup(value).freeze
|
|
35
41
|
end
|
|
36
42
|
end
|
|
37
43
|
end
|
|
@@ -70,21 +76,20 @@ class Chef
|
|
|
70
76
|
end
|
|
71
77
|
|
|
72
78
|
def to_a
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
a
|
|
79
|
+
Array.new(map do |v|
|
|
80
|
+
case v
|
|
81
|
+
when ImmutableArray
|
|
82
|
+
v.to_a
|
|
83
|
+
when ImmutableMash
|
|
84
|
+
v.to_h
|
|
85
|
+
else
|
|
86
|
+
safe_dup(v)
|
|
87
|
+
end
|
|
88
|
+
end)
|
|
86
89
|
end
|
|
87
90
|
|
|
91
|
+
alias_method :to_array, :to_a
|
|
92
|
+
|
|
88
93
|
# for consistency's sake -- integers 'converted' to integers
|
|
89
94
|
def convert_key(key)
|
|
90
95
|
key
|
|
@@ -125,26 +130,12 @@ class Chef
|
|
|
125
130
|
|
|
126
131
|
alias :attribute? :has_key?
|
|
127
132
|
|
|
128
|
-
def method_missing(symbol, *args)
|
|
129
|
-
if symbol == :to_ary
|
|
130
|
-
super
|
|
131
|
-
elsif args.empty?
|
|
132
|
-
if key?(symbol)
|
|
133
|
-
self[symbol]
|
|
134
|
-
else
|
|
135
|
-
raise NoMethodError, "Undefined method or attribute `#{symbol}' on `node'"
|
|
136
|
-
end
|
|
137
|
-
# This will raise a ImmutableAttributeModification error:
|
|
138
|
-
elsif symbol.to_s =~ /=$/
|
|
139
|
-
key_to_set = symbol.to_s[/^(.+)=$/, 1]
|
|
140
|
-
self[key_to_set] = (args.length == 1 ? args[0] : args)
|
|
141
|
-
else
|
|
142
|
-
raise NoMethodError, "Undefined node attribute or method `#{symbol}' on `node'"
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
|
|
146
133
|
# Mash uses #convert_value to mashify values on input.
|
|
147
134
|
# Since we're handling this ourselves, override it to be a no-op
|
|
135
|
+
#
|
|
136
|
+
# FIXME? this seems wrong to do and i think is responsible for
|
|
137
|
+
# #dup needing to be more complicated than Mash.new(self)?
|
|
138
|
+
#
|
|
148
139
|
def convert_value(value)
|
|
149
140
|
value
|
|
150
141
|
end
|
|
@@ -155,25 +146,38 @@ class Chef
|
|
|
155
146
|
# Of course, 'default' has a specific meaning in Chef-land
|
|
156
147
|
|
|
157
148
|
def dup
|
|
158
|
-
Mash.new
|
|
149
|
+
h = Mash.new
|
|
150
|
+
each_pair do |k, v|
|
|
151
|
+
h[k] = safe_dup(v)
|
|
152
|
+
end
|
|
153
|
+
h
|
|
159
154
|
end
|
|
160
155
|
|
|
161
|
-
def
|
|
156
|
+
def to_h
|
|
162
157
|
h = Hash.new
|
|
163
158
|
each_pair do |k, v|
|
|
164
159
|
h[k] =
|
|
165
160
|
case v
|
|
166
161
|
when ImmutableMash
|
|
167
|
-
v.
|
|
162
|
+
v.to_h
|
|
168
163
|
when ImmutableArray
|
|
169
164
|
v.to_a
|
|
170
165
|
else
|
|
171
|
-
v
|
|
166
|
+
safe_dup(v)
|
|
172
167
|
end
|
|
173
168
|
end
|
|
174
169
|
h
|
|
175
170
|
end
|
|
176
171
|
|
|
172
|
+
alias_method :to_hash, :to_h
|
|
173
|
+
|
|
174
|
+
# For elements like Fixnums, true, nil...
|
|
175
|
+
def safe_dup(e)
|
|
176
|
+
e.dup
|
|
177
|
+
rescue TypeError
|
|
178
|
+
e
|
|
179
|
+
end
|
|
180
|
+
|
|
177
181
|
prepend Chef::Node::Mixin::StateTracking
|
|
178
182
|
prepend Chef::Node::Mixin::ImmutablizeHash
|
|
179
183
|
end
|
data/lib/chef/node.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Author:: Christopher Brown (<cb@chef.io>)
|
|
3
3
|
# Author:: Christopher Walters (<cw@chef.io>)
|
|
4
4
|
# Author:: Tim Hinderliter (<tim@chef.io>)
|
|
5
|
-
# Copyright:: Copyright 2008-
|
|
5
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
6
6
|
# License:: Apache License, Version 2.0
|
|
7
7
|
#
|
|
8
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -34,6 +34,7 @@ require "chef/mash"
|
|
|
34
34
|
require "chef/json_compat"
|
|
35
35
|
require "chef/search/query"
|
|
36
36
|
require "chef/whitelist"
|
|
37
|
+
require "chef/blacklist"
|
|
37
38
|
|
|
38
39
|
class Chef
|
|
39
40
|
class Node
|
|
@@ -333,8 +334,12 @@ class Chef
|
|
|
333
334
|
|
|
334
335
|
platform, version = Chef::Platform.find_platform_and_version(self)
|
|
335
336
|
Chef::Log.debug("Platform is #{platform} version #{version}")
|
|
336
|
-
|
|
337
|
-
|
|
337
|
+
automatic[:platform] = platform
|
|
338
|
+
automatic[:platform_version] = version
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
def consume_ohai_data(ohai_data)
|
|
342
|
+
self.automatic_attrs = Chef::Mixin::DeepMerge.merge(automatic_attrs, ohai_data)
|
|
338
343
|
end
|
|
339
344
|
|
|
340
345
|
# Consumes the combined run_list and other attributes in +attrs+
|
|
@@ -343,7 +348,7 @@ class Chef
|
|
|
343
348
|
normal_attrs_to_merge = consume_chef_environment(normal_attrs_to_merge)
|
|
344
349
|
Chef::Log.debug("Applying attributes from json file")
|
|
345
350
|
self.normal_attrs = Chef::Mixin::DeepMerge.merge(normal_attrs, normal_attrs_to_merge)
|
|
346
|
-
|
|
351
|
+
tags # make sure they're defined
|
|
347
352
|
end
|
|
348
353
|
|
|
349
354
|
# Lazy initializer for tags attribute
|
|
@@ -394,8 +399,8 @@ class Chef
|
|
|
394
399
|
# Clear defaults and overrides, so that any deleted attributes
|
|
395
400
|
# between runs are still gone.
|
|
396
401
|
def reset_defaults_and_overrides
|
|
397
|
-
|
|
398
|
-
|
|
402
|
+
default.clear
|
|
403
|
+
override.clear
|
|
399
404
|
end
|
|
400
405
|
|
|
401
406
|
# Expands the node's run list and sets the default and override
|
|
@@ -414,7 +419,7 @@ class Chef
|
|
|
414
419
|
expansion = run_list.expand(chef_environment, data_source)
|
|
415
420
|
raise Chef::Exceptions::MissingRole, expansion if expansion.errors?
|
|
416
421
|
|
|
417
|
-
|
|
422
|
+
tags # make sure they're defined
|
|
418
423
|
|
|
419
424
|
automatic_attrs[:recipes] = expansion.recipes.with_duplicate_names
|
|
420
425
|
automatic_attrs[:expanded_run_list] = expansion.recipes.with_fully_qualified_names_and_version_constraints
|
|
@@ -507,12 +512,6 @@ class Chef
|
|
|
507
512
|
self
|
|
508
513
|
end
|
|
509
514
|
|
|
510
|
-
# Create a Chef::Node from JSON
|
|
511
|
-
def self.json_create(o)
|
|
512
|
-
Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::Node#from_hash")
|
|
513
|
-
from_hash(o)
|
|
514
|
-
end
|
|
515
|
-
|
|
516
515
|
def self.from_hash(o)
|
|
517
516
|
return o if o.kind_of? Chef::Node
|
|
518
517
|
node = new
|
|
@@ -599,11 +598,6 @@ class Chef
|
|
|
599
598
|
rescue Net::HTTPServerException => e
|
|
600
599
|
if e.response.code == "404"
|
|
601
600
|
chef_server_rest.post("nodes", data_for_save)
|
|
602
|
-
# Chef Server before 12.3 rejects node JSON with 'policy_name' or
|
|
603
|
-
# 'policy_group' keys, but 'policy_name' will be detected first.
|
|
604
|
-
# Backcompat can be removed in 13.0
|
|
605
|
-
elsif e.response.code == "400" && e.response.body.include?("Invalid key policy_name")
|
|
606
|
-
save_without_policyfile_attrs
|
|
607
601
|
else
|
|
608
602
|
raise
|
|
609
603
|
end
|
|
@@ -632,14 +626,14 @@ class Chef
|
|
|
632
626
|
|
|
633
627
|
def ==(other)
|
|
634
628
|
if other.kind_of?(self.class)
|
|
635
|
-
|
|
629
|
+
name == other.name
|
|
636
630
|
else
|
|
637
631
|
false
|
|
638
632
|
end
|
|
639
633
|
end
|
|
640
634
|
|
|
641
635
|
def <=>(other)
|
|
642
|
-
|
|
636
|
+
name <=> other.name
|
|
643
637
|
end
|
|
644
638
|
|
|
645
639
|
private
|
|
@@ -669,6 +663,13 @@ class Chef
|
|
|
669
663
|
Chef::Log.info("Whitelisting #{level} node attributes for save.")
|
|
670
664
|
data[level] = Chef::Whitelist.filter(data[level], whitelist)
|
|
671
665
|
end
|
|
666
|
+
|
|
667
|
+
blacklist_config_option = "#{level}_attribute_blacklist".to_sym
|
|
668
|
+
blacklist = Chef::Config[blacklist_config_option]
|
|
669
|
+
unless blacklist.nil? # nil => remove nothing
|
|
670
|
+
Chef::Log.info("Blacklisting #{level} node attributes for save")
|
|
671
|
+
data[level] = Chef::Blacklist.filter(data[level], blacklist)
|
|
672
|
+
end
|
|
672
673
|
end
|
|
673
674
|
data
|
|
674
675
|
end
|
data/lib/chef/node_map.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Lamont Granquist (<lamont@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2014-
|
|
3
|
+
# Copyright:: Copyright 2014-2017, 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");
|
|
@@ -31,10 +31,7 @@ class Chef
|
|
|
31
31
|
#
|
|
32
32
|
# @return [NodeMap] Returns self for possible chaining
|
|
33
33
|
#
|
|
34
|
-
def set(key, value, platform: nil, platform_version: nil, platform_family: nil, os: nil,
|
|
35
|
-
Chef.deprecated(:internal_api, "The on_platform option to node_map has been deprecated") if on_platform
|
|
36
|
-
Chef.deprecated(:internal_api, "The on_platforms option to node_map has been deprecated") if on_platforms
|
|
37
|
-
platform ||= on_platform || on_platforms
|
|
34
|
+
def set(key, value, platform: nil, platform_version: nil, platform_family: nil, os: nil, canonical: nil, override: nil, &block)
|
|
38
35
|
filters = {}
|
|
39
36
|
filters[:platform] = platform if platform
|
|
40
37
|
filters[:platform_version] = platform_version if platform_version
|
data/lib/chef/org.rb
CHANGED
|
@@ -73,15 +73,15 @@ class Chef
|
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def create
|
|
76
|
-
payload = { :name =>
|
|
76
|
+
payload = { :name => name, :full_name => full_name }
|
|
77
77
|
new_org = chef_rest.post("organizations", payload)
|
|
78
|
-
Chef::Org.from_hash(
|
|
78
|
+
Chef::Org.from_hash(to_hash.merge(new_org))
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
def update
|
|
82
|
-
payload = { :name =>
|
|
82
|
+
payload = { :name => name, :full_name => full_name }
|
|
83
83
|
new_org = chef_rest.put("organizations/#{name}", payload)
|
|
84
|
-
Chef::Org.from_hash(
|
|
84
|
+
Chef::Org.from_hash(to_hash.merge(new_org))
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
def destroy
|
|
@@ -89,14 +89,12 @@ class Chef
|
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def save
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
raise e
|
|
99
|
-
end
|
|
92
|
+
create
|
|
93
|
+
rescue Net::HTTPServerException => e
|
|
94
|
+
if e.response.code == "409"
|
|
95
|
+
update
|
|
96
|
+
else
|
|
97
|
+
raise e
|
|
100
98
|
end
|
|
101
99
|
end
|
|
102
100
|
|
|
@@ -124,11 +122,6 @@ class Chef
|
|
|
124
122
|
Chef::Org.from_hash(Chef::JSONCompat.from_json(json))
|
|
125
123
|
end
|
|
126
124
|
|
|
127
|
-
def self.json_create(json)
|
|
128
|
-
Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::Org#from_json or Chef::Org#load.")
|
|
129
|
-
Chef::Org.from_json(json)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
125
|
def self.load(org_name)
|
|
133
126
|
response = Chef::ServerAPI.new(Chef::Config[:chef_server_root]).get("organizations/#{org_name}")
|
|
134
127
|
Chef::Org.from_hash(response)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, 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");
|
|
@@ -26,45 +26,6 @@ class Chef
|
|
|
26
26
|
class Platform
|
|
27
27
|
|
|
28
28
|
class << self
|
|
29
|
-
attr_writer :platforms
|
|
30
|
-
|
|
31
|
-
def platforms
|
|
32
|
-
@platforms ||= { default: {} }
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
include Chef::Mixin::ParamsValidate
|
|
36
|
-
|
|
37
|
-
def find(name, version)
|
|
38
|
-
Chef.deprecated(:chef_platform_methods, "#{self.class.name}.find is deprecated")
|
|
39
|
-
provider_map = platforms[:default].clone
|
|
40
|
-
|
|
41
|
-
name_sym = name
|
|
42
|
-
if name.kind_of?(String)
|
|
43
|
-
name = name.downcase
|
|
44
|
-
name.gsub!(/\s/, "_")
|
|
45
|
-
name_sym = name.to_sym
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
if platforms.has_key?(name_sym)
|
|
49
|
-
platform_versions = platforms[name_sym].select { |k, v| k != :default }
|
|
50
|
-
if platforms[name_sym].has_key?(:default)
|
|
51
|
-
provider_map.merge!(platforms[name_sym][:default])
|
|
52
|
-
end
|
|
53
|
-
platform_versions.each do |platform_version, provider|
|
|
54
|
-
begin
|
|
55
|
-
version_constraint = Chef::VersionConstraint::Platform.new(platform_version)
|
|
56
|
-
if version_constraint.include?(version)
|
|
57
|
-
Chef::Log.debug("Platform #{name} version #{version} found")
|
|
58
|
-
provider_map.merge!(provider)
|
|
59
|
-
end
|
|
60
|
-
rescue Chef::Exceptions::InvalidPlatformVersion
|
|
61
|
-
Chef::Log.debug("Chef::Version::Comparable does not know how to parse the platform version: #{version}")
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
provider_map
|
|
66
|
-
end
|
|
67
|
-
|
|
68
29
|
def find_platform_and_version(node)
|
|
69
30
|
platform = nil
|
|
70
31
|
version = nil
|
|
@@ -87,136 +48,8 @@ class Chef
|
|
|
87
48
|
|
|
88
49
|
raise ArgumentError, "Cannot find a version for #{node}" unless version
|
|
89
50
|
|
|
90
|
-
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
def provider_for_resource(resource, action = :nothing)
|
|
94
|
-
Chef.deprecated(:chef_platform_methods, "#{self.class.name}.provider_for_resource is deprecated")
|
|
95
|
-
node = resource.run_context && resource.run_context.node
|
|
96
|
-
raise ArgumentError, "Cannot find the provider for a resource with no run context set" unless node
|
|
97
|
-
provider = find_provider_for_node(node, resource).new(resource, resource.run_context)
|
|
98
|
-
provider.action = action
|
|
99
|
-
provider
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def provider_for_node(node, resource_type)
|
|
103
|
-
raise NotImplementedError, "#{self.class.name} no longer supports #provider_for_node"
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def find_provider_for_node(node, resource_type)
|
|
107
|
-
Chef.deprecated(:chef_platform_methods, "#{self.class.name}.find_provider_for_node is deprecated")
|
|
108
|
-
platform, version = find_platform_and_version(node)
|
|
109
|
-
find_provider(platform, version, resource_type)
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def set(args)
|
|
113
|
-
Chef.deprecated(:chef_platform_methods, "#{self.class.name}.set is deprecated")
|
|
114
|
-
validate(
|
|
115
|
-
args,
|
|
116
|
-
{
|
|
117
|
-
:platform => {
|
|
118
|
-
:kind_of => Symbol,
|
|
119
|
-
:required => false,
|
|
120
|
-
},
|
|
121
|
-
:version => {
|
|
122
|
-
:kind_of => String,
|
|
123
|
-
:required => false,
|
|
124
|
-
},
|
|
125
|
-
:resource => {
|
|
126
|
-
:kind_of => Symbol,
|
|
127
|
-
},
|
|
128
|
-
:provider => {
|
|
129
|
-
:kind_of => [ String, Symbol, Class ],
|
|
130
|
-
},
|
|
131
|
-
}
|
|
132
|
-
)
|
|
133
|
-
if args.has_key?(:platform)
|
|
134
|
-
if args.has_key?(:version)
|
|
135
|
-
if platforms.has_key?(args[:platform])
|
|
136
|
-
if platforms[args[:platform]].has_key?(args[:version])
|
|
137
|
-
platforms[args[:platform]][args[:version]][args[:resource].to_sym] = args[:provider]
|
|
138
|
-
else
|
|
139
|
-
platforms[args[:platform]][args[:version]] = {
|
|
140
|
-
args[:resource].to_sym => args[:provider],
|
|
141
|
-
}
|
|
142
|
-
end
|
|
143
|
-
else
|
|
144
|
-
platforms[args[:platform]] = {
|
|
145
|
-
args[:version] => {
|
|
146
|
-
args[:resource].to_sym => args[:provider],
|
|
147
|
-
},
|
|
148
|
-
}
|
|
149
|
-
end
|
|
150
|
-
else
|
|
151
|
-
if platforms.has_key?(args[:platform])
|
|
152
|
-
if platforms[args[:platform]].has_key?(:default)
|
|
153
|
-
platforms[args[:platform]][:default][args[:resource].to_sym] = args[:provider]
|
|
154
|
-
elsif args[:platform] == :default
|
|
155
|
-
platforms[:default][args[:resource].to_sym] = args[:provider]
|
|
156
|
-
else
|
|
157
|
-
platforms[args[:platform]] = { :default => { args[:resource].to_sym => args[:provider] } }
|
|
158
|
-
end
|
|
159
|
-
else
|
|
160
|
-
platforms[args[:platform]] = {
|
|
161
|
-
:default => {
|
|
162
|
-
args[:resource].to_sym => args[:provider],
|
|
163
|
-
},
|
|
164
|
-
}
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
else
|
|
168
|
-
if platforms.has_key?(:default)
|
|
169
|
-
platforms[:default][args[:resource].to_sym] = args[:provider]
|
|
170
|
-
else
|
|
171
|
-
platforms[:default] = {
|
|
172
|
-
args[:resource].to_sym => args[:provider],
|
|
173
|
-
}
|
|
174
|
-
end
|
|
175
|
-
end
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
def find_provider(platform, version, resource_type)
|
|
179
|
-
Chef.deprecated(:chef_platform_methods, "#{self.class.name}.find_provider is deprecated")
|
|
180
|
-
provider_klass = explicit_provider(platform, version, resource_type) ||
|
|
181
|
-
platform_provider(platform, version, resource_type) ||
|
|
182
|
-
resource_matching_provider(platform, version, resource_type)
|
|
183
|
-
|
|
184
|
-
raise Chef::Exceptions::ProviderNotFound, "Cannot find a provider for #{resource_type} on #{platform} version #{version}" if provider_klass.nil?
|
|
185
|
-
|
|
186
|
-
provider_klass
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
private
|
|
190
|
-
|
|
191
|
-
def explicit_provider(platform, version, resource_type)
|
|
192
|
-
resource_type.kind_of?(Chef::Resource) ? resource_type.provider : nil
|
|
51
|
+
[platform, version]
|
|
193
52
|
end
|
|
194
|
-
|
|
195
|
-
def platform_provider(platform, version, resource_type)
|
|
196
|
-
pmap = Chef::Platform.find(platform, version)
|
|
197
|
-
rtkey = resource_type.kind_of?(Chef::Resource) ? resource_type.resource_name.to_sym : resource_type
|
|
198
|
-
pmap.has_key?(rtkey) ? pmap[rtkey] : nil
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
include Chef::Mixin::ConvertToClassName
|
|
202
|
-
|
|
203
|
-
def resource_matching_provider(platform, version, resource_type)
|
|
204
|
-
if resource_type.kind_of?(Chef::Resource)
|
|
205
|
-
class_name = if resource_type.class.name
|
|
206
|
-
resource_type.class.name.split("::").last
|
|
207
|
-
else
|
|
208
|
-
convert_to_class_name(resource_type.resource_name.to_s)
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
if Chef::Provider.const_defined?(class_name, false)
|
|
212
|
-
Chef::Log.warn("Class Chef::Provider::#{class_name} does not declare 'provides #{convert_to_snake_case(class_name).to_sym.inspect}'.")
|
|
213
|
-
Chef::Log.warn("This will no longer work in Chef 13: you must use 'provides' to use the resource's DSL.")
|
|
214
|
-
return Chef::Provider.const_get(class_name, false)
|
|
215
|
-
end
|
|
216
|
-
end
|
|
217
|
-
nil
|
|
218
|
-
end
|
|
219
|
-
|
|
220
53
|
end
|
|
221
54
|
end
|
|
222
55
|
end
|
|
@@ -51,8 +51,7 @@ class Chef
|
|
|
51
51
|
raise Chef::Exceptions::RebootFailed.new(e.message)
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
raise Chef::Exceptions::Reboot.new(msg)
|
|
55
|
-
Chef::Application::ExitCode.notify_reboot_exit_code_deprecation
|
|
54
|
+
raise Chef::Exceptions::Reboot.new(msg)
|
|
56
55
|
end
|
|
57
56
|
|
|
58
57
|
# this is a wrapper function so Chef::Client only needs a single line of code.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Author:: Tim Hinderliter (<tim@chef.io>)
|
|
4
4
|
# Author:: Christopher Walters (<cw@chef.io>)
|
|
5
5
|
# Author:: Daniel DeLeo (<dan@chef.io>)
|
|
6
|
-
# Copyright:: Copyright 2008-
|
|
6
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
7
7
|
# License:: Apache License, Version 2.0
|
|
8
8
|
#
|
|
9
9
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -103,33 +103,6 @@ class Chef
|
|
|
103
103
|
run_context
|
|
104
104
|
end
|
|
105
105
|
|
|
106
|
-
# DEPRECATED: As of Chef 12.5, chef selects either policyfile mode or
|
|
107
|
-
# "expand node" mode dynamically, based on the content of the node
|
|
108
|
-
# object, first boot JSON, and config. This happens in
|
|
109
|
-
# PolicyBuilder::Dynamic, which selects the implementation during
|
|
110
|
-
# #load_node and then delegates to either ExpandNodeObject or Policyfile
|
|
111
|
-
# implementations as appropriate. Tools authors should update their code
|
|
112
|
-
# to create a PolicyBuilder::Dynamc policy builder and allow it to select
|
|
113
|
-
# the proper implementation.
|
|
114
|
-
def load_node
|
|
115
|
-
Chef.deprecated(:internal_api, "ExpandNodeObject#load_node is deprecated. Please use Chef::PolicyBuilder::Dynamic instead of using ExpandNodeObject directly")
|
|
116
|
-
|
|
117
|
-
events.node_load_start(node_name, config)
|
|
118
|
-
Chef::Log.debug("Building node object for #{node_name}")
|
|
119
|
-
|
|
120
|
-
@node =
|
|
121
|
-
if Chef::Config[:solo_legacy_mode]
|
|
122
|
-
Chef::Node.build(node_name)
|
|
123
|
-
else
|
|
124
|
-
Chef::Node.find_or_create(node_name)
|
|
125
|
-
end
|
|
126
|
-
finish_load_node(node)
|
|
127
|
-
node
|
|
128
|
-
rescue Exception => e
|
|
129
|
-
events.node_load_failed(node_name, e, config)
|
|
130
|
-
raise
|
|
131
|
-
end
|
|
132
|
-
|
|
133
106
|
def finish_load_node(node)
|
|
134
107
|
@node = node
|
|
135
108
|
end
|
|
@@ -266,7 +239,8 @@ class Chef
|
|
|
266
239
|
end
|
|
267
240
|
|
|
268
241
|
def api_service
|
|
269
|
-
@api_service ||= Chef::ServerAPI.new(config[:chef_server_url]
|
|
242
|
+
@api_service ||= Chef::ServerAPI.new(config[:chef_server_url],
|
|
243
|
+
{ version_class: Chef::CookbookManifestVersions })
|
|
270
244
|
end
|
|
271
245
|
|
|
272
246
|
def config
|
|
@@ -149,7 +149,7 @@ class Chef
|
|
|
149
149
|
#
|
|
150
150
|
# @return [Chef::RunContext]
|
|
151
151
|
def setup_run_context(specific_recipes = nil)
|
|
152
|
-
Chef::Cookbook::FileVendor.fetch_from_remote(
|
|
152
|
+
Chef::Cookbook::FileVendor.fetch_from_remote(api_service)
|
|
153
153
|
sync_cookbooks
|
|
154
154
|
cookbook_collection = Chef::CookbookCollection.new(cookbooks_to_sync)
|
|
155
155
|
cookbook_collection.validate!
|
|
@@ -173,6 +173,7 @@ class Chef
|
|
|
173
173
|
CookbookCacheCleaner.instance.skip_removal = true if named_run_list_requested?
|
|
174
174
|
|
|
175
175
|
node.run_list(run_list)
|
|
176
|
+
node.automatic_attrs[:policy_revision] = revision_id
|
|
176
177
|
node.automatic_attrs[:roles] = []
|
|
177
178
|
node.automatic_attrs[:recipes] = run_list_expansion_ish.recipes
|
|
178
179
|
run_list_expansion_ish
|
|
@@ -266,7 +267,7 @@ class Chef
|
|
|
266
267
|
|
|
267
268
|
# @api private
|
|
268
269
|
def policy
|
|
269
|
-
@policy ||=
|
|
270
|
+
@policy ||= api_service.get(policyfile_location)
|
|
270
271
|
rescue Net::HTTPServerException => e
|
|
271
272
|
raise ConfigurationError, "Error loading policyfile from `#{policyfile_location}': #{e.class} - #{e.message}"
|
|
272
273
|
end
|
|
@@ -451,8 +452,9 @@ class Chef
|
|
|
451
452
|
end
|
|
452
453
|
|
|
453
454
|
# @api private
|
|
454
|
-
def
|
|
455
|
-
@api_service ||= Chef::ServerAPI.new(config[:chef_server_url]
|
|
455
|
+
def api_service
|
|
456
|
+
@api_service ||= Chef::ServerAPI.new(config[:chef_server_url],
|
|
457
|
+
{ version_class: Chef::CookbookManifestVersions })
|
|
456
458
|
end
|
|
457
459
|
|
|
458
460
|
# @api private
|
|
@@ -495,7 +497,7 @@ class Chef
|
|
|
495
497
|
def compat_mode_manifest_for(cookbook_name, lock_data)
|
|
496
498
|
xyz_version = lock_data["dotted_decimal_identifier"]
|
|
497
499
|
rel_url = "cookbooks/#{cookbook_name}/#{xyz_version}"
|
|
498
|
-
inflate_cbv_object(
|
|
500
|
+
inflate_cbv_object(api_service.get(rel_url))
|
|
499
501
|
rescue Exception => e
|
|
500
502
|
message = "Error loading cookbook #{cookbook_name} at version #{xyz_version} from #{rel_url}: #{e.class} - #{e.message}"
|
|
501
503
|
err = Chef::Exceptions::CookbookNotFound.new(message)
|
|
@@ -506,7 +508,7 @@ class Chef
|
|
|
506
508
|
def artifact_manifest_for(cookbook_name, lock_data)
|
|
507
509
|
identifier = lock_data["identifier"]
|
|
508
510
|
rel_url = "cookbook_artifacts/#{cookbook_name}/#{identifier}"
|
|
509
|
-
inflate_cbv_object(
|
|
511
|
+
inflate_cbv_object(api_service.get(rel_url))
|
|
510
512
|
rescue Exception => e
|
|
511
513
|
message = "Error loading cookbook #{cookbook_name} with identifier #{identifier} from #{rel_url}: #{e.class} - #{e.message}"
|
|
512
514
|
err = Chef::Exceptions::CookbookNotFound.new(message)
|