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
data/lib/chef/provider/git.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
|
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");
|
|
@@ -28,17 +28,13 @@ class Chef
|
|
|
28
28
|
extend Forwardable
|
|
29
29
|
provides :git
|
|
30
30
|
|
|
31
|
-
def_delegator
|
|
32
|
-
|
|
33
|
-
def whyrun_supported?
|
|
34
|
-
true
|
|
35
|
-
end
|
|
31
|
+
def_delegator :new_resource, :destination, :cwd
|
|
36
32
|
|
|
37
33
|
def load_current_resource
|
|
38
34
|
@resolved_reference = nil
|
|
39
|
-
@current_resource = Chef::Resource::Git.new(
|
|
35
|
+
@current_resource = Chef::Resource::Git.new(new_resource.name)
|
|
40
36
|
if current_revision = find_current_revision
|
|
41
|
-
|
|
37
|
+
current_resource.revision current_revision
|
|
42
38
|
end
|
|
43
39
|
end
|
|
44
40
|
|
|
@@ -49,16 +45,16 @@ class Chef
|
|
|
49
45
|
a.assertion { ::File.directory?(dirname) }
|
|
50
46
|
a.whyrun("Directory #{dirname} does not exist, this run will fail unless it has been previously created. Assuming it would have been created.")
|
|
51
47
|
a.failure_message(Chef::Exceptions::MissingParentDirectory,
|
|
52
|
-
"Cannot clone #{
|
|
48
|
+
"Cannot clone #{new_resource} to #{cwd}, the enclosing directory #{dirname} does not exist")
|
|
53
49
|
end
|
|
54
50
|
|
|
55
51
|
requirements.assert(:all_actions) do |a|
|
|
56
|
-
a.assertion { !(
|
|
52
|
+
a.assertion { !(new_resource.revision =~ /^origin\//) }
|
|
57
53
|
a.failure_message Chef::Exceptions::InvalidRemoteGitReference,
|
|
58
54
|
"Deploying remote branches is not supported. " +
|
|
59
55
|
"Specify the remote branch as a local branch for " +
|
|
60
56
|
"the git repository you're deploying from " +
|
|
61
|
-
"(ie: '#{
|
|
57
|
+
"(ie: '#{new_resource.revision.gsub('origin/', '')}' rather than '#{new_resource.revision}')."
|
|
62
58
|
end
|
|
63
59
|
|
|
64
60
|
requirements.assert(:all_actions) do |a|
|
|
@@ -67,22 +63,22 @@ class Chef
|
|
|
67
63
|
# if we can't resolve it up front.
|
|
68
64
|
a.assertion { !target_revision.nil? }
|
|
69
65
|
a.failure_message Chef::Exceptions::UnresolvableGitReference,
|
|
70
|
-
"Unable to parse SHA reference for '#{
|
|
66
|
+
"Unable to parse SHA reference for '#{new_resource.revision}' in repository '#{new_resource.repository}'. " +
|
|
71
67
|
"Verify your (case-sensitive) repository URL and revision.\n" +
|
|
72
|
-
"`git ls-remote '#{
|
|
68
|
+
"`git ls-remote '#{new_resource.repository}' '#{rev_search_pattern}'` output: #{@resolved_reference}"
|
|
73
69
|
end
|
|
74
70
|
end
|
|
75
71
|
|
|
76
72
|
def action_checkout
|
|
77
73
|
if target_dir_non_existent_or_empty?
|
|
78
74
|
clone
|
|
79
|
-
if
|
|
75
|
+
if new_resource.enable_checkout
|
|
80
76
|
checkout
|
|
81
77
|
end
|
|
82
78
|
enable_submodules
|
|
83
79
|
add_remotes
|
|
84
80
|
else
|
|
85
|
-
Chef::Log.debug "#{
|
|
81
|
+
Chef::Log.debug "#{new_resource} checkout destination #{cwd} already exists or is a non-empty directory"
|
|
86
82
|
end
|
|
87
83
|
end
|
|
88
84
|
|
|
@@ -95,11 +91,11 @@ class Chef
|
|
|
95
91
|
|
|
96
92
|
def action_sync
|
|
97
93
|
if existing_git_clone?
|
|
98
|
-
Chef::Log.debug "#{
|
|
94
|
+
Chef::Log.debug "#{new_resource} current revision: #{current_resource.revision} target revision: #{target_revision}"
|
|
99
95
|
unless current_revision_matches_target_revision?
|
|
100
96
|
fetch_updates
|
|
101
97
|
enable_submodules
|
|
102
|
-
Chef::Log.info "#{
|
|
98
|
+
Chef::Log.info "#{new_resource} updated to revision #{target_revision}"
|
|
103
99
|
end
|
|
104
100
|
add_remotes
|
|
105
101
|
else
|
|
@@ -120,7 +116,7 @@ class Chef
|
|
|
120
116
|
end
|
|
121
117
|
|
|
122
118
|
def find_current_revision
|
|
123
|
-
Chef::Log.debug("#{
|
|
119
|
+
Chef::Log.debug("#{new_resource} finding current git revision")
|
|
124
120
|
if ::File.exist?(::File.join(cwd, ".git"))
|
|
125
121
|
# 128 is returned when we're not in a git repo. this is fine
|
|
126
122
|
result = git("rev-parse", "HEAD", cwd: cwd, returns: [0, 128]).stdout.strip
|
|
@@ -129,10 +125,10 @@ class Chef
|
|
|
129
125
|
end
|
|
130
126
|
|
|
131
127
|
def add_remotes
|
|
132
|
-
if
|
|
133
|
-
|
|
128
|
+
if new_resource.additional_remotes.length > 0
|
|
129
|
+
new_resource.additional_remotes.each_pair do |remote_name, remote_url|
|
|
134
130
|
converge_by("add remote #{remote_name} from #{remote_url}") do
|
|
135
|
-
Chef::Log.info "#{
|
|
131
|
+
Chef::Log.info "#{new_resource} adding git remote #{remote_name} = #{remote_url}"
|
|
136
132
|
setup_remote_tracking_branches(remote_name, remote_url)
|
|
137
133
|
end
|
|
138
134
|
end
|
|
@@ -140,17 +136,17 @@ class Chef
|
|
|
140
136
|
end
|
|
141
137
|
|
|
142
138
|
def clone
|
|
143
|
-
converge_by("clone from #{
|
|
144
|
-
remote =
|
|
139
|
+
converge_by("clone from #{new_resource.repository} into #{cwd}") do
|
|
140
|
+
remote = new_resource.remote
|
|
145
141
|
|
|
146
142
|
clone_cmd = ["clone"]
|
|
147
143
|
clone_cmd << "-o #{remote}" unless remote == "origin"
|
|
148
|
-
clone_cmd << "--depth #{
|
|
149
|
-
clone_cmd << "--no-single-branch" if
|
|
150
|
-
clone_cmd << "\"#{
|
|
144
|
+
clone_cmd << "--depth #{new_resource.depth}" if new_resource.depth
|
|
145
|
+
clone_cmd << "--no-single-branch" if new_resource.depth && git_minor_version >= Gem::Version.new("1.7.10")
|
|
146
|
+
clone_cmd << "\"#{new_resource.repository}\""
|
|
151
147
|
clone_cmd << "\"#{cwd}\""
|
|
152
148
|
|
|
153
|
-
Chef::Log.info "#{
|
|
149
|
+
Chef::Log.info "#{new_resource} cloning repo #{new_resource.repository} to #{cwd}"
|
|
154
150
|
git clone_cmd
|
|
155
151
|
end
|
|
156
152
|
end
|
|
@@ -158,20 +154,20 @@ class Chef
|
|
|
158
154
|
def checkout
|
|
159
155
|
sha_ref = target_revision
|
|
160
156
|
|
|
161
|
-
converge_by("checkout ref #{sha_ref} branch #{
|
|
157
|
+
converge_by("checkout ref #{sha_ref} branch #{new_resource.revision}") do
|
|
162
158
|
# checkout into a local branch rather than a detached HEAD
|
|
163
|
-
git("branch", "-f",
|
|
164
|
-
git("checkout",
|
|
165
|
-
Chef::Log.info "#{
|
|
159
|
+
git("branch", "-f", new_resource.checkout_branch, sha_ref, cwd: cwd)
|
|
160
|
+
git("checkout", new_resource.checkout_branch, cwd: cwd)
|
|
161
|
+
Chef::Log.info "#{new_resource} checked out branch: #{new_resource.revision} onto: #{new_resource.checkout_branch} reference: #{sha_ref}"
|
|
166
162
|
end
|
|
167
163
|
end
|
|
168
164
|
|
|
169
165
|
def enable_submodules
|
|
170
|
-
if
|
|
171
|
-
converge_by("enable git submodules for #{
|
|
172
|
-
Chef::Log.info "#{
|
|
166
|
+
if new_resource.enable_submodules
|
|
167
|
+
converge_by("enable git submodules for #{new_resource}") do
|
|
168
|
+
Chef::Log.info "#{new_resource} synchronizing git submodules"
|
|
173
169
|
git("submodule", "sync", cwd: cwd)
|
|
174
|
-
Chef::Log.info "#{
|
|
170
|
+
Chef::Log.info "#{new_resource} enabling git submodules"
|
|
175
171
|
# the --recursive flag means we require git 1.6.5+ now, see CHEF-1827
|
|
176
172
|
git("submodule", "update", "--init", "--recursive", cwd: cwd)
|
|
177
173
|
end
|
|
@@ -179,19 +175,19 @@ class Chef
|
|
|
179
175
|
end
|
|
180
176
|
|
|
181
177
|
def fetch_updates
|
|
182
|
-
setup_remote_tracking_branches(
|
|
183
|
-
converge_by("fetch updates for #{
|
|
178
|
+
setup_remote_tracking_branches(new_resource.remote, new_resource.repository)
|
|
179
|
+
converge_by("fetch updates for #{new_resource.remote}") do
|
|
184
180
|
# since we're in a local branch already, just reset to specified revision rather than merge
|
|
185
181
|
Chef::Log.debug "Fetching updates from #{new_resource.remote} and resetting to revision #{target_revision}"
|
|
186
|
-
git("fetch",
|
|
187
|
-
git("fetch",
|
|
182
|
+
git("fetch", new_resource.remote, cwd: cwd)
|
|
183
|
+
git("fetch", new_resource.remote, "--tags", cwd: cwd)
|
|
188
184
|
git("reset", "--hard", target_revision, cwd: cwd)
|
|
189
185
|
end
|
|
190
186
|
end
|
|
191
187
|
|
|
192
188
|
def setup_remote_tracking_branches(remote_name, remote_url)
|
|
193
189
|
converge_by("set up remote tracking branches for #{remote_url} at #{remote_name}") do
|
|
194
|
-
Chef::Log.debug "#{
|
|
190
|
+
Chef::Log.debug "#{new_resource} configuring remote tracking branches for repository #{remote_url} " + "at remote #{remote_name}"
|
|
195
191
|
check_remote_command = ["config", "--get", "remote.#{remote_name}.url"]
|
|
196
192
|
remote_status = git(check_remote_command, cwd: cwd, returns: [0, 1, 2])
|
|
197
193
|
case remote_status.exitstatus
|
|
@@ -219,13 +215,13 @@ class Chef
|
|
|
219
215
|
end
|
|
220
216
|
|
|
221
217
|
def current_revision_matches_target_revision?
|
|
222
|
-
(
|
|
218
|
+
(!current_resource.revision.nil?) && (target_revision.strip.to_i(16) == current_resource.revision.strip.to_i(16))
|
|
223
219
|
end
|
|
224
220
|
|
|
225
221
|
def target_revision
|
|
226
222
|
@target_revision ||= begin
|
|
227
|
-
if sha_hash?(
|
|
228
|
-
@target_revision =
|
|
223
|
+
if sha_hash?(new_resource.revision)
|
|
224
|
+
@target_revision = new_resource.revision
|
|
229
225
|
else
|
|
230
226
|
@target_revision = remote_resolve_reference
|
|
231
227
|
end
|
|
@@ -235,7 +231,7 @@ class Chef
|
|
|
235
231
|
alias :revision_slug :target_revision
|
|
236
232
|
|
|
237
233
|
def remote_resolve_reference
|
|
238
|
-
Chef::Log.debug("#{
|
|
234
|
+
Chef::Log.debug("#{new_resource} resolving remote reference")
|
|
239
235
|
# The sha pointed to by an annotated tag is identified by the
|
|
240
236
|
# '^{}' suffix appended to the tag. In order to resolve
|
|
241
237
|
# annotated tags, we have to search for "revision*" and
|
|
@@ -250,11 +246,11 @@ class Chef
|
|
|
250
246
|
# confusing. We avoid the issue by disallowing the use of
|
|
251
247
|
# annotated tags named 'HEAD'.
|
|
252
248
|
if rev_search_pattern != "HEAD"
|
|
253
|
-
found = find_revision(refs,
|
|
249
|
+
found = find_revision(refs, new_resource.revision, "^{}")
|
|
254
250
|
else
|
|
255
251
|
found = refs_search(refs, "HEAD")
|
|
256
252
|
end
|
|
257
|
-
found = find_revision(refs,
|
|
253
|
+
found = find_revision(refs, new_resource.revision) if found.empty?
|
|
258
254
|
found.size == 1 ? found.first[0] : nil
|
|
259
255
|
end
|
|
260
256
|
|
|
@@ -274,15 +270,15 @@ class Chef
|
|
|
274
270
|
end
|
|
275
271
|
|
|
276
272
|
def rev_search_pattern
|
|
277
|
-
if ["", "HEAD"].include?
|
|
273
|
+
if ["", "HEAD"].include? new_resource.revision
|
|
278
274
|
"HEAD"
|
|
279
275
|
else
|
|
280
|
-
|
|
276
|
+
new_resource.revision + "*"
|
|
281
277
|
end
|
|
282
278
|
end
|
|
283
279
|
|
|
284
280
|
def git_ls_remote(rev_pattern)
|
|
285
|
-
git("ls-remote", "\"#{
|
|
281
|
+
git("ls-remote", "\"#{new_resource.repository}\"", "\"#{rev_pattern}\"").stdout
|
|
286
282
|
end
|
|
287
283
|
|
|
288
284
|
def refs_search(refs, pattern)
|
|
@@ -293,28 +289,28 @@ class Chef
|
|
|
293
289
|
|
|
294
290
|
def run_options(run_opts = {})
|
|
295
291
|
env = {}
|
|
296
|
-
if
|
|
297
|
-
run_opts[:user] =
|
|
292
|
+
if new_resource.user
|
|
293
|
+
run_opts[:user] = new_resource.user
|
|
298
294
|
# Certain versions of `git` misbehave if git configuration is
|
|
299
295
|
# inaccessible in $HOME. We need to ensure $HOME matches the
|
|
300
296
|
# user who is executing `git` not the user running Chef.
|
|
301
297
|
env["HOME"] = begin
|
|
302
298
|
require "etc"
|
|
303
|
-
case
|
|
299
|
+
case new_resource.user
|
|
304
300
|
when Integer
|
|
305
|
-
Etc.getpwuid(
|
|
301
|
+
Etc.getpwuid(new_resource.user).dir
|
|
306
302
|
else
|
|
307
|
-
Etc.getpwnam(
|
|
303
|
+
Etc.getpwnam(new_resource.user.to_s).dir
|
|
308
304
|
end
|
|
309
305
|
rescue ArgumentError # user not found
|
|
310
|
-
raise Chef::Exceptions::User, "Could not determine HOME for specified user '#{
|
|
306
|
+
raise Chef::Exceptions::User, "Could not determine HOME for specified user '#{new_resource.user}' for resource '#{new_resource.name}'"
|
|
311
307
|
end
|
|
312
308
|
end
|
|
313
|
-
run_opts[:group] =
|
|
314
|
-
env["GIT_SSH"] =
|
|
315
|
-
run_opts[:log_tag] =
|
|
316
|
-
run_opts[:timeout] =
|
|
317
|
-
env.merge!(
|
|
309
|
+
run_opts[:group] = new_resource.group if new_resource.group
|
|
310
|
+
env["GIT_SSH"] = new_resource.ssh_wrapper if new_resource.ssh_wrapper
|
|
311
|
+
run_opts[:log_tag] = new_resource.to_s
|
|
312
|
+
run_opts[:timeout] = new_resource.timeout if new_resource.timeout
|
|
313
|
+
env.merge!(new_resource.environment) if new_resource.environment
|
|
318
314
|
run_opts[:environment] = env unless env.empty?
|
|
319
315
|
run_opts
|
|
320
316
|
end
|
data/lib/chef/provider/group.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: AJ Christensen (<aj@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");
|
|
@@ -18,21 +18,15 @@
|
|
|
18
18
|
|
|
19
19
|
require "chef/provider"
|
|
20
20
|
require "chef/mixin/shell_out"
|
|
21
|
-
require "chef/mixin/command"
|
|
22
21
|
require "etc"
|
|
23
22
|
|
|
24
23
|
class Chef
|
|
25
24
|
class Provider
|
|
26
25
|
class Group < Chef::Provider
|
|
27
26
|
include Chef::Mixin::ShellOut
|
|
28
|
-
include Chef::Mixin::Command
|
|
29
27
|
attr_accessor :group_exists
|
|
30
28
|
attr_accessor :change_desc
|
|
31
29
|
|
|
32
|
-
def whyrun_supported?
|
|
33
|
-
true
|
|
34
|
-
end
|
|
35
|
-
|
|
36
30
|
def initialize(new_resource, run_context)
|
|
37
31
|
super
|
|
38
32
|
@group_exists = true
|
|
@@ -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");
|
|
@@ -27,83 +27,79 @@ class Chef
|
|
|
27
27
|
|
|
28
28
|
attr_accessor :http
|
|
29
29
|
|
|
30
|
-
def whyrun_supported?
|
|
31
|
-
true
|
|
32
|
-
end
|
|
33
|
-
|
|
34
30
|
def load_current_resource
|
|
35
|
-
@http = Chef::HTTP::Simple.new(
|
|
31
|
+
@http = Chef::HTTP::Simple.new(new_resource.url)
|
|
36
32
|
end
|
|
37
33
|
|
|
38
|
-
# Send a HEAD request to
|
|
34
|
+
# Send a HEAD request to new_resource.url
|
|
39
35
|
def action_head
|
|
40
|
-
message = check_message(
|
|
36
|
+
message = check_message(new_resource.message)
|
|
41
37
|
# CHEF-4762: we expect a nil return value from Chef::HTTP for a "200 Success" response
|
|
42
38
|
# and false for a "304 Not Modified" response
|
|
43
39
|
modified = @http.head(
|
|
44
|
-
"#{
|
|
45
|
-
|
|
40
|
+
"#{new_resource.url}",
|
|
41
|
+
new_resource.headers
|
|
46
42
|
)
|
|
47
|
-
Chef::Log.info("#{
|
|
48
|
-
Chef::Log.debug("#{
|
|
43
|
+
Chef::Log.info("#{new_resource} HEAD to #{new_resource.url} successful")
|
|
44
|
+
Chef::Log.debug("#{new_resource} HEAD request response: #{modified}")
|
|
49
45
|
# :head is usually used to trigger notifications, which converge_by now does
|
|
50
46
|
if modified != false
|
|
51
|
-
converge_by("#{
|
|
47
|
+
converge_by("#{new_resource} HEAD to #{new_resource.url} returned modified, trigger notifications") {}
|
|
52
48
|
end
|
|
53
49
|
end
|
|
54
50
|
|
|
55
|
-
# Send a GET request to
|
|
51
|
+
# Send a GET request to new_resource.url
|
|
56
52
|
def action_get
|
|
57
|
-
converge_by("#{
|
|
53
|
+
converge_by("#{new_resource} GET to #{new_resource.url}") do
|
|
58
54
|
|
|
59
|
-
message = check_message(
|
|
55
|
+
message = check_message(new_resource.message)
|
|
60
56
|
body = @http.get(
|
|
61
|
-
"#{
|
|
62
|
-
|
|
57
|
+
"#{new_resource.url}",
|
|
58
|
+
new_resource.headers
|
|
63
59
|
)
|
|
64
|
-
Chef::Log.info("#{
|
|
65
|
-
Chef::Log.debug("#{
|
|
60
|
+
Chef::Log.info("#{new_resource} GET to #{new_resource.url} successful")
|
|
61
|
+
Chef::Log.debug("#{new_resource} GET request response: #{body}")
|
|
66
62
|
end
|
|
67
63
|
end
|
|
68
64
|
|
|
69
|
-
# Send a PUT request to
|
|
65
|
+
# Send a PUT request to new_resource.url, with the message as the payload
|
|
70
66
|
def action_put
|
|
71
|
-
converge_by("#{
|
|
72
|
-
message = check_message(
|
|
67
|
+
converge_by("#{new_resource} PUT to #{new_resource.url}") do
|
|
68
|
+
message = check_message(new_resource.message)
|
|
73
69
|
body = @http.put(
|
|
74
|
-
"#{
|
|
70
|
+
"#{new_resource.url}",
|
|
75
71
|
message,
|
|
76
|
-
|
|
72
|
+
new_resource.headers
|
|
77
73
|
)
|
|
78
|
-
Chef::Log.info("#{
|
|
79
|
-
Chef::Log.debug("#{
|
|
74
|
+
Chef::Log.info("#{new_resource} PUT to #{new_resource.url} successful")
|
|
75
|
+
Chef::Log.debug("#{new_resource} PUT request response: #{body}")
|
|
80
76
|
end
|
|
81
77
|
end
|
|
82
78
|
|
|
83
|
-
# Send a POST request to
|
|
79
|
+
# Send a POST request to new_resource.url, with the message as the payload
|
|
84
80
|
def action_post
|
|
85
|
-
converge_by("#{
|
|
86
|
-
message = check_message(
|
|
81
|
+
converge_by("#{new_resource} POST to #{new_resource.url}") do
|
|
82
|
+
message = check_message(new_resource.message)
|
|
87
83
|
body = @http.post(
|
|
88
|
-
"#{
|
|
84
|
+
"#{new_resource.url}",
|
|
89
85
|
message,
|
|
90
|
-
|
|
86
|
+
new_resource.headers
|
|
91
87
|
)
|
|
92
|
-
Chef::Log.info("#{
|
|
93
|
-
Chef::Log.debug("#{
|
|
88
|
+
Chef::Log.info("#{new_resource} POST to #{new_resource.url} message: #{message.inspect} successful")
|
|
89
|
+
Chef::Log.debug("#{new_resource} POST request response: #{body}")
|
|
94
90
|
end
|
|
95
91
|
end
|
|
96
92
|
|
|
97
|
-
# Send a DELETE request to
|
|
93
|
+
# Send a DELETE request to new_resource.url
|
|
98
94
|
def action_delete
|
|
99
|
-
converge_by("#{
|
|
95
|
+
converge_by("#{new_resource} DELETE to #{new_resource.url}") do
|
|
100
96
|
body = @http.delete(
|
|
101
|
-
"#{
|
|
102
|
-
|
|
97
|
+
"#{new_resource.url}",
|
|
98
|
+
new_resource.headers
|
|
103
99
|
)
|
|
104
|
-
|
|
105
|
-
Chef::Log.info("#{
|
|
106
|
-
Chef::Log.debug("#{
|
|
100
|
+
new_resource.updated_by_last_action(true)
|
|
101
|
+
Chef::Log.info("#{new_resource} DELETE to #{new_resource.url} successful")
|
|
102
|
+
Chef::Log.debug("#{new_resource} DELETE request response: #{body}")
|
|
107
103
|
end
|
|
108
104
|
end
|
|
109
105
|
|
|
@@ -22,7 +22,7 @@ class Chef
|
|
|
22
22
|
class Provider
|
|
23
23
|
class Ifconfig
|
|
24
24
|
class Redhat < Chef::Provider::Ifconfig
|
|
25
|
-
provides :ifconfig, platform_family: %w{fedora rhel}
|
|
25
|
+
provides :ifconfig, platform_family: %w{fedora rhel amazon}
|
|
26
26
|
|
|
27
27
|
def initialize(new_resource, run_context)
|
|
28
28
|
super(new_resource, run_context)
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require "chef/log"
|
|
20
|
-
require "chef/mixin/command"
|
|
21
20
|
require "chef/mixin/shell_out"
|
|
22
21
|
require "chef/provider"
|
|
23
22
|
require "chef/resource/file"
|
|
@@ -42,7 +41,6 @@ class Chef
|
|
|
42
41
|
provides :ifconfig
|
|
43
42
|
|
|
44
43
|
include Chef::Mixin::ShellOut
|
|
45
|
-
include Chef::Mixin::Command
|
|
46
44
|
|
|
47
45
|
attr_accessor :config_template
|
|
48
46
|
attr_accessor :config_path
|
|
@@ -53,10 +51,6 @@ class Chef
|
|
|
53
51
|
@config_path = nil
|
|
54
52
|
end
|
|
55
53
|
|
|
56
|
-
def whyrun_supported?
|
|
57
|
-
true
|
|
58
|
-
end
|
|
59
|
-
|
|
60
54
|
def load_current_resource
|
|
61
55
|
@current_resource = Chef::Resource::Ifconfig.new(new_resource.name)
|
|
62
56
|
|
|
@@ -30,7 +30,7 @@ class Chef
|
|
|
30
30
|
extend Forwardable
|
|
31
31
|
provides :launchd, os: "darwin"
|
|
32
32
|
|
|
33
|
-
def_delegators
|
|
33
|
+
def_delegators :new_resource, *[
|
|
34
34
|
:backup,
|
|
35
35
|
:cookbook,
|
|
36
36
|
:group,
|
|
@@ -85,6 +85,10 @@ class Chef
|
|
|
85
85
|
manage_service(:disable)
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
+
def action_restart
|
|
89
|
+
manage_service(:restart)
|
|
90
|
+
end
|
|
91
|
+
|
|
88
92
|
def manage_plist(action)
|
|
89
93
|
if source
|
|
90
94
|
res = cookbook_file_resource
|
|
@@ -150,7 +154,7 @@ class Chef
|
|
|
150
154
|
end
|
|
151
155
|
|
|
152
156
|
def content
|
|
153
|
-
plist_hash = new_resource.
|
|
157
|
+
plist_hash = new_resource.plist_hash || gen_hash
|
|
154
158
|
Plist::Emit.dump(plist_hash) unless plist_hash.nil?
|
|
155
159
|
end
|
|
156
160
|
|