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
|
@@ -127,7 +127,7 @@ module Shell
|
|
|
127
127
|
|
|
128
128
|
def shorten_node_inspect
|
|
129
129
|
def @node.inspect # rubocop:disable Lint/NestedMethodDefinition
|
|
130
|
-
"<Chef::Node:0x#{
|
|
130
|
+
"<Chef::Node:0x#{object_id.to_s(16)} @name=\"#{name}\">"
|
|
131
131
|
end
|
|
132
132
|
end
|
|
133
133
|
|
|
@@ -159,9 +159,9 @@ module Shell
|
|
|
159
159
|
|
|
160
160
|
end
|
|
161
161
|
|
|
162
|
-
class
|
|
162
|
+
class SoloLegacySession < ShellSession
|
|
163
163
|
|
|
164
|
-
session_type :
|
|
164
|
+
session_type :solo_legacy_mode
|
|
165
165
|
|
|
166
166
|
def definitions
|
|
167
167
|
@run_context.definitions
|
|
@@ -191,10 +191,14 @@ module Shell
|
|
|
191
191
|
|
|
192
192
|
end
|
|
193
193
|
|
|
194
|
-
class ClientSession <
|
|
194
|
+
class ClientSession < ShellSession
|
|
195
195
|
|
|
196
196
|
session_type :client
|
|
197
197
|
|
|
198
|
+
def definitions
|
|
199
|
+
@run_context.definitions
|
|
200
|
+
end
|
|
201
|
+
|
|
198
202
|
def save_node
|
|
199
203
|
@client.save_node
|
|
200
204
|
end
|
|
@@ -223,6 +227,12 @@ module Shell
|
|
|
223
227
|
|
|
224
228
|
end
|
|
225
229
|
|
|
230
|
+
class SoloSession < ClientSession
|
|
231
|
+
|
|
232
|
+
session_type :solo
|
|
233
|
+
|
|
234
|
+
end
|
|
235
|
+
|
|
226
236
|
class DoppelGangerClient < Chef::Client
|
|
227
237
|
|
|
228
238
|
attr_reader :node_name
|
data/lib/chef/shell.rb
CHANGED
|
@@ -27,6 +27,7 @@ require "chef/config"
|
|
|
27
27
|
require "chef/config_fetcher"
|
|
28
28
|
|
|
29
29
|
require "chef/shell/shell_session"
|
|
30
|
+
require "chef/workstation_config_loader"
|
|
30
31
|
require "chef/shell/ext"
|
|
31
32
|
require "chef/json_compat"
|
|
32
33
|
require "chef/util/path_helper"
|
|
@@ -62,6 +63,12 @@ module Shell
|
|
|
62
63
|
|
|
63
64
|
irb = IRB::Irb.new
|
|
64
65
|
|
|
66
|
+
if solo_mode?
|
|
67
|
+
# Setup the mocked ChefServer
|
|
68
|
+
Chef::Config.local_mode = true
|
|
69
|
+
Chef::LocalMode.setup_server_connectivity
|
|
70
|
+
end
|
|
71
|
+
|
|
65
72
|
init(irb.context.main)
|
|
66
73
|
|
|
67
74
|
irb_conf[:IRB_RC].call(irb.context) if irb_conf[:IRB_RC]
|
|
@@ -74,6 +81,13 @@ module Shell
|
|
|
74
81
|
catch(:IRB_EXIT) do
|
|
75
82
|
irb.eval_input
|
|
76
83
|
end
|
|
84
|
+
ensure
|
|
85
|
+
# We destroy the mocked ChefServer
|
|
86
|
+
Chef::LocalMode.destroy_server_connectivity if solo_mode?
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def self.solo_mode?
|
|
90
|
+
Chef::Config[:solo]
|
|
77
91
|
end
|
|
78
92
|
|
|
79
93
|
def self.setup_logger
|
|
@@ -167,8 +181,9 @@ module Shell
|
|
|
167
181
|
|
|
168
182
|
def self.client_type
|
|
169
183
|
type = Shell::StandAloneSession
|
|
170
|
-
type = Shell::SoloSession
|
|
171
|
-
type = Shell::
|
|
184
|
+
type = Shell::SoloSession if solo_mode?
|
|
185
|
+
type = Shell::SoloLegacySession if Chef::Config[:solo_legacy_shell]
|
|
186
|
+
type = Shell::ClientSession if Chef::Config[:client]
|
|
172
187
|
type = Shell::DoppelGangerSession if Chef::Config[:doppelganger]
|
|
173
188
|
type
|
|
174
189
|
end
|
|
@@ -196,8 +211,10 @@ module Shell
|
|
|
196
211
|
When no CONFIG is specified, chef-shell attempts to load a default configuration file:
|
|
197
212
|
* If a NAMED_CONF is given, chef-shell will load ~/.chef/NAMED_CONF/chef_shell.rb
|
|
198
213
|
* If no NAMED_CONF is given chef-shell will load ~/.chef/chef_shell.rb if it exists
|
|
199
|
-
* chef-shell falls back to
|
|
200
|
-
|
|
214
|
+
* If no chef_shell.rb can be found, chef-shell falls back to load:
|
|
215
|
+
/etc/chef/client.rb if -z option is given.
|
|
216
|
+
/etc/chef/solo.rb if --solo-legacy-mode option is given.
|
|
217
|
+
.chef/knife.rb if -s option is given.
|
|
201
218
|
FOOTER
|
|
202
219
|
|
|
203
220
|
option :config_file,
|
|
@@ -226,7 +243,7 @@ FOOTER
|
|
|
226
243
|
:default => true,
|
|
227
244
|
:boolean => true
|
|
228
245
|
|
|
229
|
-
option :
|
|
246
|
+
option :solo_shell,
|
|
230
247
|
:short => "-s",
|
|
231
248
|
:long => "--solo",
|
|
232
249
|
:description => "chef-solo session",
|
|
@@ -239,6 +256,12 @@ FOOTER
|
|
|
239
256
|
:description => "chef-client session",
|
|
240
257
|
:boolean => true
|
|
241
258
|
|
|
259
|
+
option :solo_legacy_shell,
|
|
260
|
+
:long => "--solo-legacy-mode",
|
|
261
|
+
:description => "chef-solo legacy session",
|
|
262
|
+
:boolean => true,
|
|
263
|
+
:proc => proc { Chef::Config[:solo_legacy_mode] = true }
|
|
264
|
+
|
|
242
265
|
option :json_attribs,
|
|
243
266
|
:short => "-j JSON_ATTRIBS",
|
|
244
267
|
:long => "--json-attributes JSON_ATTRIBS",
|
|
@@ -281,7 +304,7 @@ FOOTER
|
|
|
281
304
|
end
|
|
282
305
|
|
|
283
306
|
def self.setup!
|
|
284
|
-
|
|
307
|
+
new.parse_opts
|
|
285
308
|
end
|
|
286
309
|
|
|
287
310
|
def parse_opts
|
|
@@ -313,10 +336,12 @@ FOOTER
|
|
|
313
336
|
config_file_to_try
|
|
314
337
|
elsif dot_chef_dir && ::File.exist?(File.join(dot_chef_dir, "chef_shell.rb"))
|
|
315
338
|
File.join(dot_chef_dir, "chef_shell.rb")
|
|
316
|
-
elsif config[:
|
|
339
|
+
elsif config[:solo_legacy_shell]
|
|
317
340
|
Chef::Config.platform_specific_path("/etc/chef/solo.rb")
|
|
318
341
|
elsif config[:client]
|
|
319
342
|
Chef::Config.platform_specific_path("/etc/chef/client.rb")
|
|
343
|
+
elsif config[:solo_shell]
|
|
344
|
+
Chef::WorkstationConfigLoader.new(nil, Chef::Log).config_location
|
|
320
345
|
else
|
|
321
346
|
nil
|
|
322
347
|
end
|
data/lib/chef/user.rb
CHANGED
|
@@ -97,10 +97,10 @@ class Chef
|
|
|
97
97
|
end
|
|
98
98
|
|
|
99
99
|
def create
|
|
100
|
-
payload = { :name =>
|
|
100
|
+
payload = { :name => name, :admin => admin, :password => password }
|
|
101
101
|
payload[:public_key] = public_key if public_key
|
|
102
102
|
new_user = chef_rest_v0.post("users", payload)
|
|
103
|
-
Chef::User.from_hash(
|
|
103
|
+
Chef::User.from_hash(to_hash.merge(new_user))
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def update(new_key = false)
|
|
@@ -108,18 +108,16 @@ class Chef
|
|
|
108
108
|
payload[:private_key] = new_key if new_key
|
|
109
109
|
payload[:password] = password if password
|
|
110
110
|
updated_user = chef_rest_v0.put("users/#{name}", payload)
|
|
111
|
-
Chef::User.from_hash(
|
|
111
|
+
Chef::User.from_hash(to_hash.merge(updated_user))
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
def save(new_key = false)
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
raise e
|
|
122
|
-
end
|
|
115
|
+
create
|
|
116
|
+
rescue Net::HTTPServerException => e
|
|
117
|
+
if e.response.code == "409"
|
|
118
|
+
update(new_key)
|
|
119
|
+
else
|
|
120
|
+
raise e
|
|
123
121
|
end
|
|
124
122
|
end
|
|
125
123
|
|
|
@@ -154,11 +152,6 @@ class Chef
|
|
|
154
152
|
Chef::User.from_hash(Chef::JSONCompat.from_json(json))
|
|
155
153
|
end
|
|
156
154
|
|
|
157
|
-
def self.json_create(json)
|
|
158
|
-
Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::User#from_json or Chef::User#load.")
|
|
159
|
-
Chef::User.from_json(json)
|
|
160
|
-
end
|
|
161
|
-
|
|
162
155
|
def self.list(inflate = false)
|
|
163
156
|
response = Chef::ServerAPI.new(Chef::Config[:chef_server_url], { :api_version => "0" }).get("users")
|
|
164
157
|
users = if response.is_a?(Array)
|
data/lib/chef/user_v1.rb
CHANGED
|
@@ -180,7 +180,7 @@ class Chef
|
|
|
180
180
|
new_user = chef_root_rest_v0.post("users", payload)
|
|
181
181
|
end
|
|
182
182
|
|
|
183
|
-
Chef::UserV1.from_hash(
|
|
183
|
+
Chef::UserV1.from_hash(to_hash.merge(new_user))
|
|
184
184
|
end
|
|
185
185
|
|
|
186
186
|
def update(new_key = false)
|
|
@@ -213,25 +213,23 @@ class Chef
|
|
|
213
213
|
end
|
|
214
214
|
updated_user = chef_root_rest_v0.put("users/#{username}", payload)
|
|
215
215
|
end
|
|
216
|
-
Chef::UserV1.from_hash(
|
|
216
|
+
Chef::UserV1.from_hash(to_hash.merge(updated_user))
|
|
217
217
|
end
|
|
218
218
|
|
|
219
219
|
def save(new_key = false)
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
raise e
|
|
227
|
-
end
|
|
220
|
+
create
|
|
221
|
+
rescue Net::HTTPServerException => e
|
|
222
|
+
if e.response.code == "409"
|
|
223
|
+
update(new_key)
|
|
224
|
+
else
|
|
225
|
+
raise e
|
|
228
226
|
end
|
|
229
227
|
end
|
|
230
228
|
|
|
231
229
|
# Note: remove after API v0 no longer supported by client (and knife command).
|
|
232
230
|
def reregister
|
|
233
231
|
begin
|
|
234
|
-
payload =
|
|
232
|
+
payload = to_hash.merge({ "private_key" => true })
|
|
235
233
|
reregistered_self = chef_root_rest_v0.put("users/#{username}", payload)
|
|
236
234
|
private_key(reregistered_self["private_key"])
|
|
237
235
|
# only V0 supported for reregister
|
|
@@ -276,11 +274,6 @@ class Chef
|
|
|
276
274
|
Chef::UserV1.from_hash(Chef::JSONCompat.from_json(json))
|
|
277
275
|
end
|
|
278
276
|
|
|
279
|
-
def self.json_create(json)
|
|
280
|
-
Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::UserV1#from_json or Chef::UserV1#load.")
|
|
281
|
-
Chef::UserV1.from_json(json)
|
|
282
|
-
end
|
|
283
|
-
|
|
284
277
|
def self.list(inflate = false)
|
|
285
278
|
response = Chef::ServerAPI.new(Chef::Config[:chef_server_url]).get("users")
|
|
286
279
|
users = if response.is_a?(Array)
|
data/lib/chef/util/diff.rb
CHANGED
data/lib/chef/util/selinux.rb
CHANGED
|
@@ -35,50 +35,38 @@ class Chef::Util::Windows::NetGroup
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def local_get_members
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
raise ArgumentError, e
|
|
42
|
-
end
|
|
38
|
+
Chef::ReservedNames::Win32::NetUser.net_local_group_get_members(nil, groupname)
|
|
39
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
40
|
+
raise ArgumentError, e
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
def local_add
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
raise ArgumentError, e
|
|
50
|
-
end
|
|
44
|
+
Chef::ReservedNames::Win32::NetUser.net_local_group_add(nil, groupname)
|
|
45
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
46
|
+
raise ArgumentError, e
|
|
51
47
|
end
|
|
52
48
|
|
|
53
49
|
def local_set_members(members)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
raise ArgumentError, e
|
|
58
|
-
end
|
|
50
|
+
Chef::ReservedNames::Win32::NetUser.net_local_group_set_members(nil, groupname, members)
|
|
51
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
52
|
+
raise ArgumentError, e
|
|
59
53
|
end
|
|
60
54
|
|
|
61
55
|
def local_add_members(members)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
raise ArgumentError, e
|
|
66
|
-
end
|
|
56
|
+
Chef::ReservedNames::Win32::NetUser.net_local_group_add_members(nil, groupname, members)
|
|
57
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
58
|
+
raise ArgumentError, e
|
|
67
59
|
end
|
|
68
60
|
|
|
69
61
|
def local_delete_members(members)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
raise ArgumentError, e
|
|
74
|
-
end
|
|
62
|
+
Chef::ReservedNames::Win32::NetUser.net_local_group_del_members(nil, groupname, members)
|
|
63
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
64
|
+
raise ArgumentError, e
|
|
75
65
|
end
|
|
76
66
|
|
|
77
67
|
def local_delete
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
raise ArgumentError, e
|
|
82
|
-
end
|
|
68
|
+
Chef::ReservedNames::Win32::NetUser.net_local_group_del(nil, groupname)
|
|
69
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
70
|
+
raise ArgumentError, e
|
|
83
71
|
end
|
|
84
72
|
end
|
|
@@ -59,12 +59,10 @@ class Chef::Util::Windows::NetUse < Chef::Util::Windows
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def get_info
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
raise ArgumentError, e
|
|
67
|
-
end
|
|
62
|
+
ui2 = Chef::ReservedNames::Win32::Net.net_use_get_info_l2(nil, use_name)
|
|
63
|
+
from_use_info_struct(ui2)
|
|
64
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
65
|
+
raise ArgumentError, e
|
|
68
66
|
end
|
|
69
67
|
|
|
70
68
|
def device
|
|
@@ -72,11 +70,9 @@ class Chef::Util::Windows::NetUse < Chef::Util::Windows
|
|
|
72
70
|
end
|
|
73
71
|
|
|
74
72
|
def delete
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
raise ArgumentError, e
|
|
79
|
-
end
|
|
73
|
+
Chef::ReservedNames::Win32::Net.net_use_del(nil, use_name, :use_noforce)
|
|
74
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
75
|
+
raise ArgumentError, e
|
|
80
76
|
end
|
|
81
77
|
|
|
82
78
|
def use_name
|
|
@@ -78,11 +78,9 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
|
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
def set_info(args)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
raise ArgumentError, e
|
|
85
|
-
end
|
|
81
|
+
rc = NetUser.net_user_set_info_l3(nil, @username, transform_usri3(args))
|
|
82
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
83
|
+
raise ArgumentError, e
|
|
86
84
|
end
|
|
87
85
|
|
|
88
86
|
public
|
|
@@ -95,13 +93,11 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
|
|
|
95
93
|
LOGON32_LOGON_NETWORK = Security::LOGON32_LOGON_NETWORK
|
|
96
94
|
#XXX for an extra painful alternative, see: http://support.microsoft.com/kb/180548
|
|
97
95
|
def validate_credentials(passwd)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return false
|
|
104
|
-
end
|
|
96
|
+
token = Security.logon_user(@username, nil, passwd,
|
|
97
|
+
LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT)
|
|
98
|
+
return true
|
|
99
|
+
rescue Chef::Exceptions::Win32APIError
|
|
100
|
+
return false
|
|
105
101
|
end
|
|
106
102
|
|
|
107
103
|
def get_info
|
|
@@ -116,7 +112,7 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
|
|
|
116
112
|
def add(args)
|
|
117
113
|
transformed_args = transform_usri3(args)
|
|
118
114
|
NetUser.net_user_add_l3(nil, transformed_args)
|
|
119
|
-
NetUser.net_local_group_add_member(nil,
|
|
115
|
+
NetUser.net_local_group_add_member(nil, Chef::ReservedNames::Win32::Security::SID.BuiltinUsers.account_simple_name, args[:name])
|
|
120
116
|
end
|
|
121
117
|
|
|
122
118
|
# FIXME: yard with @yield
|
|
@@ -137,11 +133,9 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
|
|
|
137
133
|
end
|
|
138
134
|
|
|
139
135
|
def delete
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
raise ArgumentError, e
|
|
144
|
-
end
|
|
136
|
+
NetUser.net_user_del(nil, @username)
|
|
137
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
138
|
+
raise ArgumentError, e
|
|
145
139
|
end
|
|
146
140
|
|
|
147
141
|
def disable_account
|
|
@@ -30,27 +30,21 @@ class Chef::Util::Windows::Volume < Chef::Util::Windows
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def device
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
raise ArgumentError, e
|
|
37
|
-
end
|
|
33
|
+
Chef::ReservedNames::Win32::File.get_volume_name_for_volume_mount_point(mount_point)
|
|
34
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
35
|
+
raise ArgumentError, e
|
|
38
36
|
end
|
|
39
37
|
|
|
40
38
|
def delete
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
raise ArgumentError, e
|
|
45
|
-
end
|
|
39
|
+
Chef::ReservedNames::Win32::File.delete_volume_mount_point(mount_point)
|
|
40
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
41
|
+
raise ArgumentError, e
|
|
46
42
|
end
|
|
47
43
|
|
|
48
44
|
def add(args)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
raise ArgumentError, e
|
|
53
|
-
end
|
|
45
|
+
Chef::ReservedNames::Win32::File.set_volume_mount_point(mount_point, args[:remote])
|
|
46
|
+
rescue Chef::Exceptions::Win32APIError => e
|
|
47
|
+
raise ArgumentError, e
|
|
54
48
|
end
|
|
55
49
|
|
|
56
50
|
def mount_point
|
data/lib/chef/version.rb
CHANGED
data/lib/chef/version_class.rb
CHANGED
|
@@ -34,7 +34,7 @@ class Chef
|
|
|
34
34
|
|
|
35
35
|
def <=>(other)
|
|
36
36
|
[:major, :minor, :patch].each do |method|
|
|
37
|
-
version =
|
|
37
|
+
version = send(method)
|
|
38
38
|
begin
|
|
39
39
|
ans = (version <=> other.send(method))
|
|
40
40
|
rescue NoMethodError # if the other thing isn't a version object, return nil
|
data/lib/chef/win32/api/file.rb
CHANGED
|
@@ -537,24 +537,22 @@ BOOL WINAPI VerQueryValue(
|
|
|
537
537
|
# ensures the handle is closed on exit of the block
|
|
538
538
|
# FIXME: yard with @yield
|
|
539
539
|
def file_search_handle(path)
|
|
540
|
-
begin
|
|
541
540
|
# Workaround for CHEF-4419:
|
|
542
541
|
# Make sure paths starting with "/" has a drive letter
|
|
543
542
|
# assigned from the current working diretory.
|
|
544
543
|
# Note: With CHEF-4427 this issue will be fixed with a
|
|
545
544
|
# broader fix to map all the paths starting with "/" to
|
|
546
545
|
# SYSTEM_DRIVE on windows.
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
end
|
|
554
|
-
yield(handle, find_data)
|
|
555
|
-
ensure
|
|
556
|
-
FindClose(handle) if handle && handle != INVALID_HANDLE_VALUE
|
|
546
|
+
path = ::File.expand_path(path) if path.start_with? "/"
|
|
547
|
+
path = canonical_encode_path(path)
|
|
548
|
+
find_data = WIN32_FIND_DATA.new
|
|
549
|
+
handle = FindFirstFileW(path, find_data)
|
|
550
|
+
if handle == INVALID_HANDLE_VALUE
|
|
551
|
+
Chef::ReservedNames::Win32::Error.raise!
|
|
557
552
|
end
|
|
553
|
+
yield(handle, find_data)
|
|
554
|
+
ensure
|
|
555
|
+
FindClose(handle) if handle && handle != INVALID_HANDLE_VALUE
|
|
558
556
|
end
|
|
559
557
|
|
|
560
558
|
# retrieves a file handle and passes it
|
|
@@ -562,34 +560,30 @@ BOOL WINAPI VerQueryValue(
|
|
|
562
560
|
# ensures the handle is closed on exit of the block
|
|
563
561
|
# FIXME: yard with @yield
|
|
564
562
|
def file_handle(path)
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, nil)
|
|
563
|
+
path = canonical_encode_path(path)
|
|
564
|
+
handle = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ,
|
|
565
|
+
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, nil)
|
|
569
566
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
end
|
|
573
|
-
yield(handle)
|
|
574
|
-
ensure
|
|
575
|
-
CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
|
|
567
|
+
if handle == INVALID_HANDLE_VALUE
|
|
568
|
+
Chef::ReservedNames::Win32::Error.raise!
|
|
576
569
|
end
|
|
570
|
+
yield(handle)
|
|
571
|
+
ensure
|
|
572
|
+
CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
|
|
577
573
|
end
|
|
578
574
|
|
|
579
575
|
# FIXME: yard with @yield
|
|
580
576
|
def symlink_file_handle(path)
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
nil, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, nil)
|
|
577
|
+
path = encode_path(path)
|
|
578
|
+
handle = CreateFileW(path, FILE_READ_EA, FILE_SHARE_READ,
|
|
579
|
+
nil, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, nil)
|
|
585
580
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
end
|
|
589
|
-
yield(handle)
|
|
590
|
-
ensure
|
|
591
|
-
CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
|
|
581
|
+
if handle == INVALID_HANDLE_VALUE
|
|
582
|
+
Chef::ReservedNames::Win32::Error.raise!
|
|
592
583
|
end
|
|
584
|
+
yield(handle)
|
|
585
|
+
ensure
|
|
586
|
+
CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
|
|
593
587
|
end
|
|
594
588
|
|
|
595
589
|
def retrieve_file_info(file_name)
|
|
@@ -107,7 +107,7 @@ UINT MsiCloseHandle(
|
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
msi_close_handle(pkg_ptr.read_pointer)
|
|
110
|
-
|
|
110
|
+
buffer.chomp(0.chr)
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
# Opens a Microsoft Installer (MSI) file from an absolute path and returns a pointer to a handle
|
|
@@ -124,7 +124,7 @@ UINT MsiCloseHandle(
|
|
|
124
124
|
else
|
|
125
125
|
raise Chef::Exceptions::Package, "msi_open_package: unexpected status #{status}: #{Chef::ReservedNames::Win32::Error.format_message(status)}"
|
|
126
126
|
end
|
|
127
|
-
|
|
127
|
+
pkg_ptr
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
# All installed product_codes should have a VersionString
|
data/lib/chef/win32/api.rb
CHANGED
|
@@ -29,12 +29,10 @@ class Chef
|
|
|
29
29
|
# function into the calling module. If this fails a dummy method is
|
|
30
30
|
# defined which when called, raises a helpful exception to the end-user.
|
|
31
31
|
def safe_attach_function(win32_func, *args)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
raise Chef::Exceptions::Win32APIFunctionNotImplemented, "This version of Windows does not implement the Win32 function [#{win32_func}]."
|
|
37
|
-
end
|
|
32
|
+
attach_function(win32_func.to_sym, *args)
|
|
33
|
+
rescue FFI::NotFoundError
|
|
34
|
+
define_method(win32_func.to_sym) do |*margs|
|
|
35
|
+
raise Chef::Exceptions::Win32APIFunctionNotImplemented, "This version of Windows does not implement the Win32 function [#{win32_func}]."
|
|
38
36
|
end
|
|
39
37
|
end
|
|
40
38
|
|
data/lib/chef/win32/file.rb
CHANGED
|
@@ -155,13 +155,11 @@ class Chef
|
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
def self.verify_links_supported!
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
rescue Exception
|
|
158
|
+
CreateSymbolicLinkW(nil)
|
|
159
|
+
rescue Chef::Exceptions::Win32APIFunctionNotImplemented => e
|
|
160
|
+
raise e
|
|
161
|
+
rescue Exception
|
|
163
162
|
# things are ok.
|
|
164
|
-
end
|
|
165
163
|
end
|
|
166
164
|
|
|
167
165
|
def self.file_access_check(path, desired_access)
|