chef 14.15.6 → 15.0.293
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 +26 -5
- data/LICENSE +0 -0
- data/README.md +11 -198
- data/Rakefile +13 -8
- data/chef-universal-mingw32.gemspec +2 -4
- data/chef.gemspec +12 -14
- data/lib/chef.rb +15 -14
- data/lib/chef/action_collection.rb +252 -0
- data/lib/chef/api_client.rb +7 -7
- data/lib/chef/api_client/registration.rb +3 -3
- data/lib/chef/api_client_v1.rb +10 -10
- data/lib/chef/application.rb +22 -11
- data/lib/chef/application/apply.rb +24 -27
- data/lib/chef/application/client.rb +76 -89
- data/lib/chef/application/exit_code.rb +7 -14
- data/lib/chef/application/knife.rb +27 -26
- data/lib/chef/application/solo.rb +47 -53
- data/lib/chef/application/windows_service.rb +27 -26
- data/lib/chef/application/windows_service_manager.rb +9 -8
- data/lib/chef/applications.rb +4 -4
- data/lib/chef/blacklist.rb +1 -1
- data/lib/chef/chef_class.rb +7 -7
- data/lib/chef/chef_fs.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +5 -5
- data/lib/chef/chef_fs/command_line.rb +3 -3
- data/lib/chef/chef_fs/config.rb +4 -4
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +2 -2
- data/lib/chef/chef_fs/data_handler/client_key_data_handler.rb +2 -2
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +2 -2
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +3 -3
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +0 -0
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +2 -2
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +2 -2
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +2 -2
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +2 -2
- 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.rb +3 -3
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +6 -6
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +24 -24
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +7 -7
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +4 -4
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +4 -4
- data/lib/chef/chef_fs/file_system/chef_server/org_entry.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +8 -7
- data/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb +4 -4
- data/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +5 -5
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/exceptions.rb +0 -0
- data/lib/chef/chef_fs/file_system/memory/memory_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/memory/memory_root.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/acl.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +29 -29
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/client.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/client_key.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/clients_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/container.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/containers_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/data_bag.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/data_bag_item.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/environment.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/environments_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +4 -4
- data/lib/chef/chef_fs/file_system/repository/group.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/groups_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/node.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +4 -4
- data/lib/chef/chef_fs/file_system/repository/policies_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/policy.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/policy_group.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/role.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/roles_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/user.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/users_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system_cache.rb +1 -1
- data/lib/chef/chef_fs/knife.rb +6 -6
- data/lib/chef/chef_fs/parallelizer.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -0
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +1 -1
- data/lib/chef/client.rb +139 -242
- data/lib/chef/config.rb +2 -2
- data/lib/chef/config_fetcher.rb +4 -4
- data/lib/chef/constants.rb +0 -0
- data/lib/chef/cookbook/chefignore.rb +1 -2
- data/lib/chef/cookbook/cookbook_collection.rb +2 -3
- data/lib/chef/cookbook/cookbook_version_loader.rb +73 -62
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -2
- data/lib/chef/cookbook/file_vendor.rb +0 -1
- data/lib/chef/cookbook/gem_installer.rb +3 -10
- data/lib/chef/cookbook/manifest_v0.rb +2 -2
- data/lib/chef/cookbook/manifest_v2.rb +2 -2
- data/lib/chef/cookbook/metadata.rb +30 -82
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -2
- data/lib/chef/cookbook/synchronizer.rb +20 -4
- data/lib/chef/cookbook/syntax_check.rb +3 -4
- data/lib/chef/cookbook_loader.rb +88 -111
- data/lib/chef/cookbook_manifest.rb +5 -5
- data/lib/chef/cookbook_site_streaming_uploader.rb +0 -0
- data/lib/chef/cookbook_uploader.rb +10 -10
- data/lib/chef/cookbook_version.rb +7 -7
- data/lib/chef/daemon.rb +2 -2
- data/lib/chef/data_bag.rb +12 -12
- data/lib/chef/data_bag_item.rb +12 -12
- data/lib/chef/data_collector.rb +213 -454
- data/lib/chef/data_collector/config_validation.rb +88 -0
- data/lib/chef/data_collector/error_handlers.rb +116 -0
- data/lib/chef/data_collector/message_helpers.rb +50 -0
- data/lib/chef/data_collector/run_end_message.rb +172 -0
- data/lib/chef/data_collector/run_start_message.rb +60 -0
- data/lib/chef/decorator.rb +0 -0
- data/lib/chef/decorator/lazy.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +1 -1
- data/lib/chef/decorator/unchain.rb +0 -0
- data/lib/chef/delayed_evaluator.rb +0 -0
- data/lib/chef/deprecated.rb +6 -13
- data/lib/chef/deprecation/warnings.rb +1 -1
- data/lib/chef/digester.rb +0 -0
- data/lib/chef/dist.rb +19 -0
- data/lib/chef/dsl.rb +6 -6
- data/lib/chef/dsl/cheffish.rb +0 -0
- data/lib/chef/dsl/core.rb +4 -4
- data/lib/chef/dsl/data_query.rb +5 -5
- data/lib/chef/dsl/declare_resource.rb +2 -2
- data/lib/chef/dsl/definitions.rb +0 -0
- data/lib/chef/dsl/include_attribute.rb +1 -1
- data/lib/chef/dsl/include_recipe.rb +1 -7
- data/lib/chef/dsl/platform_introspection.rb +0 -0
- data/lib/chef/dsl/powershell.rb +1 -1
- data/lib/chef/dsl/reboot_pending.rb +2 -2
- data/lib/chef/dsl/recipe.rb +8 -10
- data/lib/chef/dsl/registry_helper.rb +0 -0
- data/lib/chef/dsl/resources.rb +5 -7
- data/lib/chef/dsl/universal.rb +10 -8
- data/lib/chef/encrypted_data_bag_item.rb +4 -4
- data/lib/chef/encrypted_data_bag_item/assertions.rb +2 -2
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/decryption_failure.rb +0 -0
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +46 -41
- data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +0 -0
- data/lib/chef/encrypted_data_bag_item/encryption_failure.rb +0 -0
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +4 -4
- data/lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb +0 -0
- data/lib/chef/encrypted_data_bag_item/unsupported_cipher.rb +0 -0
- data/lib/chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format.rb +0 -0
- data/lib/chef/environment.rb +7 -7
- data/lib/chef/event_dispatch/base.rb +18 -32
- data/lib/chef/event_dispatch/dispatcher.rb +41 -15
- data/lib/chef/event_dispatch/dsl.rb +3 -3
- data/lib/chef/event_dispatch/events_output_stream.rb +0 -0
- data/lib/chef/event_loggers/base.rb +1 -1
- data/lib/chef/event_loggers/windows_eventlog.rb +5 -5
- data/lib/chef/exceptions.rb +6 -35
- data/lib/chef/file_access_control.rb +3 -3
- data/lib/chef/file_access_control/unix.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +2 -2
- data/lib/chef/file_cache.rb +5 -5
- data/lib/chef/file_content_management/content_base.rb +0 -0
- data/lib/chef/file_content_management/deploy.rb +3 -3
- data/lib/chef/file_content_management/deploy/cp.rb +0 -0
- data/lib/chef/file_content_management/deploy/mv_unix.rb +0 -0
- data/lib/chef/file_content_management/deploy/mv_windows.rb +2 -2
- data/lib/chef/file_content_management/tempfile.rb +0 -0
- data/lib/chef/formatters/base.rb +5 -5
- data/lib/chef/formatters/doc.rb +15 -57
- data/lib/chef/formatters/error_description.rb +1 -1
- data/lib/chef/formatters/error_inspectors.rb +7 -7
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +15 -14
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +0 -0
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +3 -3
- data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +9 -8
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +18 -17
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -2
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +10 -9
- data/lib/chef/formatters/error_mapper.rb +0 -0
- data/lib/chef/formatters/indentable_output_stream.rb +0 -0
- data/lib/chef/formatters/minimal.rb +7 -5
- data/lib/chef/guard_interpreter.rb +2 -2
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -7
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +1 -1
- data/lib/chef/handler.rb +1 -1
- data/lib/chef/handler/error_report.rb +2 -2
- data/lib/chef/handler/json_file.rb +2 -2
- data/lib/chef/http.rb +6 -6
- data/lib/chef/http/api_versions.rb +2 -2
- data/lib/chef/http/auth_credentials.rb +1 -1
- data/lib/chef/http/authenticator.rb +2 -2
- data/lib/chef/http/basic_client.rb +2 -2
- data/lib/chef/http/cookie_jar.rb +0 -0
- data/lib/chef/http/cookie_manager.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/http/json_input.rb +1 -1
- data/lib/chef/http/json_output.rb +2 -2
- data/lib/chef/http/json_to_model_output.rb +1 -1
- data/lib/chef/http/remote_request_id.rb +1 -1
- data/lib/chef/http/simple.rb +5 -5
- data/lib/chef/http/simple_json.rb +5 -5
- data/lib/chef/http/socketless_chef_zero_client.rb +8 -8
- data/lib/chef/http/ssl_policies.rb +1 -1
- data/lib/chef/http/validate_content_length.rb +1 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +4 -4
- data/lib/chef/knife.rb +55 -37
- data/lib/chef/knife/bootstrap.rb +728 -196
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +4 -5
- data/lib/chef/knife/bootstrap/templates/README.md +0 -0
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +5 -5
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +276 -0
- data/lib/chef/knife/bootstrap/train_connector.rb +325 -0
- data/lib/chef/knife/client_bulk_delete.rb +3 -3
- data/lib/chef/knife/client_create.rb +5 -14
- data/lib/chef/knife/client_delete.rb +3 -3
- data/lib/chef/knife/client_edit.rb +2 -2
- data/lib/chef/knife/client_key_create.rb +3 -3
- data/lib/chef/knife/client_key_delete.rb +2 -2
- data/lib/chef/knife/client_key_edit.rb +3 -3
- data/lib/chef/knife/client_key_list.rb +3 -3
- data/lib/chef/knife/client_key_show.rb +2 -2
- data/lib/chef/knife/client_list.rb +3 -3
- data/lib/chef/knife/client_reregister.rb +3 -3
- data/lib/chef/knife/client_show.rb +2 -2
- data/lib/chef/knife/config_get.rb +2 -3
- data/lib/chef/knife/config_get_profile.rb +1 -1
- data/lib/chef/knife/config_list_profiles.rb +2 -2
- data/lib/chef/knife/config_use_profile.rb +1 -1
- data/lib/chef/knife/configure.rb +3 -3
- data/lib/chef/knife/configure_client.rb +1 -1
- data/lib/chef/knife/cookbook_bulk_delete.rb +3 -3
- data/lib/chef/knife/cookbook_delete.rb +2 -2
- data/lib/chef/knife/cookbook_download.rb +5 -5
- data/lib/chef/knife/cookbook_list.rb +2 -2
- data/lib/chef/knife/cookbook_metadata.rb +5 -5
- data/lib/chef/knife/cookbook_metadata_from_file.rb +3 -3
- data/lib/chef/knife/cookbook_show.rb +7 -7
- data/lib/chef/knife/cookbook_site_download.rb +3 -3
- data/lib/chef/knife/cookbook_site_install.rb +3 -3
- data/lib/chef/knife/cookbook_site_list.rb +3 -3
- data/lib/chef/knife/cookbook_site_search.rb +3 -3
- data/lib/chef/knife/cookbook_site_share.rb +3 -3
- data/lib/chef/knife/cookbook_site_show.rb +3 -3
- data/lib/chef/knife/cookbook_site_unshare.rb +3 -3
- data/lib/chef/knife/cookbook_upload.rb +11 -46
- data/lib/chef/knife/core/bootstrap_context.rb +18 -32
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/gem_glob_loader.rb +4 -4
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_editor.rb +2 -2
- data/lib/chef/knife/core/node_presenter.rb +10 -10
- data/lib/chef/knife/core/object_loader.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +2 -2
- data/lib/chef/knife/core/subcommand_loader.rb +4 -4
- data/lib/chef/knife/core/text_formatter.rb +0 -0
- data/lib/chef/knife/core/ui.rb +26 -3
- data/lib/chef/knife/core/windows_bootstrap_context.rb +379 -0
- data/lib/chef/knife/data_bag_create.rb +4 -4
- data/lib/chef/knife/data_bag_delete.rb +2 -2
- data/lib/chef/knife/data_bag_edit.rb +4 -4
- data/lib/chef/knife/data_bag_from_file.rb +7 -7
- data/lib/chef/knife/data_bag_list.rb +2 -2
- data/lib/chef/knife/data_bag_secret_options.rb +3 -3
- data/lib/chef/knife/data_bag_show.rb +4 -4
- data/lib/chef/knife/delete.rb +2 -2
- data/lib/chef/knife/deps.rb +6 -4
- data/lib/chef/knife/diff.rb +4 -5
- data/lib/chef/knife/download.rb +2 -2
- data/lib/chef/knife/edit.rb +3 -3
- data/lib/chef/knife/environment_compare.rb +2 -2
- data/lib/chef/knife/environment_create.rb +2 -2
- data/lib/chef/knife/environment_delete.rb +2 -2
- data/lib/chef/knife/environment_edit.rb +2 -2
- data/lib/chef/knife/environment_from_file.rb +3 -3
- data/lib/chef/knife/environment_list.rb +2 -2
- data/lib/chef/knife/environment_show.rb +2 -2
- data/lib/chef/knife/exec.rb +5 -5
- data/lib/chef/knife/key_create.rb +4 -4
- data/lib/chef/knife/key_create_base.rb +0 -0
- data/lib/chef/knife/key_delete.rb +1 -1
- data/lib/chef/knife/key_edit.rb +4 -4
- data/lib/chef/knife/key_edit_base.rb +0 -0
- data/lib/chef/knife/key_list.rb +4 -4
- data/lib/chef/knife/key_list_base.rb +0 -0
- data/lib/chef/knife/key_show.rb +3 -3
- data/lib/chef/knife/list.rb +15 -10
- data/lib/chef/knife/node_bulk_delete.rb +3 -3
- data/lib/chef/knife/node_create.rb +3 -3
- data/lib/chef/knife/node_delete.rb +3 -3
- data/lib/chef/knife/node_edit.rb +5 -5
- data/lib/chef/knife/node_environment_set.rb +2 -2
- data/lib/chef/knife/node_from_file.rb +4 -4
- data/lib/chef/knife/node_list.rb +4 -4
- data/lib/chef/knife/node_policy_set.rb +3 -3
- data/lib/chef/knife/node_run_list_add.rb +7 -7
- data/lib/chef/knife/node_run_list_remove.rb +3 -3
- data/lib/chef/knife/node_run_list_set.rb +3 -3
- data/lib/chef/knife/node_show.rb +4 -4
- data/lib/chef/knife/null.rb +3 -0
- data/lib/chef/knife/raw.rb +9 -9
- data/lib/chef/knife/recipe_list.rb +1 -1
- data/lib/chef/knife/rehash.rb +2 -2
- data/lib/chef/knife/role_bulk_delete.rb +3 -3
- data/lib/chef/knife/role_create.rb +3 -3
- data/lib/chef/knife/role_delete.rb +3 -3
- data/lib/chef/knife/role_edit.rb +3 -3
- data/lib/chef/knife/role_env_run_list_add.rb +3 -3
- data/lib/chef/knife/role_env_run_list_clear.rb +3 -3
- data/lib/chef/knife/role_env_run_list_remove.rb +3 -3
- data/lib/chef/knife/role_env_run_list_replace.rb +3 -3
- data/lib/chef/knife/role_env_run_list_set.rb +3 -3
- data/lib/chef/knife/role_from_file.rb +4 -4
- data/lib/chef/knife/role_list.rb +3 -3
- data/lib/chef/knife/role_run_list_add.rb +3 -3
- data/lib/chef/knife/role_run_list_clear.rb +3 -3
- data/lib/chef/knife/role_run_list_remove.rb +2 -2
- data/lib/chef/knife/role_run_list_replace.rb +3 -3
- data/lib/chef/knife/role_run_list_set.rb +2 -2
- data/lib/chef/knife/role_show.rb +2 -2
- data/lib/chef/knife/search.rb +6 -6
- data/lib/chef/knife/serve.rb +2 -2
- data/lib/chef/knife/show.rb +3 -3
- data/lib/chef/knife/ssh.rb +6 -12
- data/lib/chef/knife/ssl_check.rb +7 -7
- data/lib/chef/knife/ssl_fetch.rb +4 -4
- data/lib/chef/knife/status.rb +4 -17
- data/lib/chef/knife/supermarket_download.rb +1 -1
- data/lib/chef/knife/supermarket_install.rb +4 -4
- data/lib/chef/knife/supermarket_list.rb +1 -1
- data/lib/chef/knife/supermarket_search.rb +1 -1
- data/lib/chef/knife/supermarket_share.rb +5 -5
- data/lib/chef/knife/supermarket_show.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +2 -2
- data/lib/chef/knife/tag_create.rb +2 -2
- data/lib/chef/knife/tag_delete.rb +2 -2
- data/lib/chef/knife/tag_list.rb +2 -2
- data/lib/chef/knife/upload.rb +2 -2
- data/lib/chef/knife/user_create.rb +36 -80
- data/lib/chef/knife/user_delete.rb +3 -55
- data/lib/chef/knife/user_edit.rb +10 -40
- data/lib/chef/knife/user_key_create.rb +3 -3
- data/lib/chef/knife/user_key_delete.rb +2 -2
- data/lib/chef/knife/user_key_edit.rb +3 -3
- data/lib/chef/knife/user_key_list.rb +3 -3
- data/lib/chef/knife/user_key_show.rb +2 -2
- data/lib/chef/knife/user_list.rb +2 -4
- data/lib/chef/knife/user_reregister.rb +11 -42
- data/lib/chef/knife/user_show.rb +3 -34
- data/lib/chef/knife/xargs.rb +4 -4
- data/lib/chef/local_mode.rb +6 -9
- data/lib/chef/log.rb +4 -4
- data/lib/chef/log/syslog.rb +3 -2
- data/lib/chef/log/winevt.rb +3 -3
- data/lib/chef/mash.rb +0 -0
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +1 -1
- data/lib/chef/mixin/convert_to_class_name.rb +0 -0
- data/lib/chef/mixin/create_path.rb +0 -0
- data/lib/chef/mixin/deep_merge.rb +0 -0
- data/lib/chef/mixin/deprecation.rb +0 -0
- data/lib/chef/mixin/descendants_tracker.rb +0 -0
- data/lib/chef/mixin/enforce_ownership_and_permissions.rb +1 -1
- data/lib/chef/mixin/file_class.rb +1 -1
- data/lib/chef/mixin/from_file.rb +0 -0
- data/lib/chef/mixin/get_source_from_package.rb +0 -0
- data/lib/chef/mixin/homebrew_user.rb +1 -1
- data/lib/chef/mixin/lazy_module_include.rb +0 -0
- data/lib/chef/mixin/notifying_block.rb +0 -0
- data/lib/chef/mixin/openssl_helper.rb +0 -0
- data/lib/chef/mixin/params_validate.rb +4 -4
- data/lib/chef/mixin/path_sanity.rb +0 -0
- data/lib/chef/mixin/powershell_exec.rb +1 -1
- data/lib/chef/mixin/powershell_out.rb +2 -2
- data/lib/chef/mixin/powershell_type_coercions.rb +0 -0
- data/lib/chef/mixin/properties.rb +39 -7
- data/lib/chef/mixin/provides.rb +1 -1
- data/lib/chef/mixin/proxified_socket.rb +0 -0
- data/lib/chef/mixin/securable.rb +0 -0
- data/lib/chef/mixin/shell_out.rb +6 -77
- data/lib/chef/mixin/subclass_directive.rb +0 -0
- data/lib/chef/mixin/template.rb +9 -14
- data/lib/chef/mixin/train_or_shell.rb +83 -0
- data/lib/chef/mixin/unformatter.rb +0 -0
- data/lib/chef/mixin/uris.rb +0 -0
- data/lib/chef/mixin/user_context.rb +1 -1
- data/lib/chef/mixin/versioned_api.rb +0 -0
- data/lib/chef/mixin/which.rb +1 -1
- data/lib/chef/mixin/why_run.rb +0 -0
- data/lib/chef/mixin/wide_string.rb +0 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +4 -4
- data/lib/chef/mixin/windows_env_helper.rb +6 -6
- data/lib/chef/mixin/xml_escape.rb +7 -7
- data/lib/chef/mixins.rb +12 -12
- data/lib/chef/monkey_patches/net_http.rb +0 -0
- data/lib/chef/monkey_patches/webrick-utils.rb +0 -0
- data/lib/chef/monkey_patches/win32/registry.rb +3 -29
- data/lib/chef/monologger.rb +0 -0
- data/lib/chef/nil_argument.rb +0 -0
- data/lib/chef/node.rb +65 -21
- data/lib/chef/node/attribute.rb +22 -20
- data/lib/chef/node/attribute_collections.rb +14 -49
- data/lib/chef/node/common_api.rb +0 -0
- data/lib/chef/node/immutable_collections.rb +4 -4
- data/lib/chef/node/mixin/deep_merge_cache.rb +0 -0
- data/lib/chef/node/mixin/immutablize_array.rb +0 -1
- data/lib/chef/node/mixin/immutablize_hash.rb +0 -0
- data/lib/chef/node/mixin/mashy_array.rb +68 -0
- data/lib/chef/node/mixin/state_tracking.rb +0 -0
- data/lib/chef/node_map.rb +16 -3
- data/lib/chef/null_logger.rb +0 -0
- data/lib/chef/org.rb +3 -3
- data/lib/chef/platform.rb +2 -2
- data/lib/chef/platform/priority_map.rb +1 -1
- data/lib/chef/platform/provider_handler_map.rb +1 -1
- data/lib/chef/platform/provider_mapping.rb +5 -5
- data/lib/chef/platform/provider_priority_map.rb +1 -1
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/platform/rebooter.rb +5 -5
- data/lib/chef/platform/resource_handler_map.rb +1 -1
- data/lib/chef/platform/resource_priority_map.rb +1 -1
- data/lib/chef/platform/service_helpers.rb +1 -1
- data/lib/chef/policy_builder.rb +3 -3
- data/lib/chef/policy_builder/dynamic.rb +8 -7
- data/lib/chef/policy_builder/expand_node_object.rb +42 -33
- data/lib/chef/policy_builder/policyfile.rb +18 -16
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +4 -4
- data/lib/chef/provider.rb +34 -25
- data/lib/chef/provider/apt_preference.rb +4 -4
- data/lib/chef/provider/apt_repository.rb +5 -5
- data/lib/chef/provider/apt_update.rb +3 -3
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/cookbook_file.rb +1 -1
- data/lib/chef/provider/cookbook_file/content.rb +2 -2
- data/lib/chef/provider/cron.rb +5 -5
- data/lib/chef/provider/cron/aix.rb +1 -1
- data/lib/chef/provider/cron/solaris.rb +1 -1
- data/lib/chef/provider/cron/unix.rb +3 -3
- data/lib/chef/provider/directory.rb +5 -5
- data/lib/chef/provider/dsc_resource.rb +4 -4
- data/lib/chef/provider/dsc_script.rb +4 -4
- data/lib/chef/provider/execute.rb +7 -4
- data/lib/chef/provider/file.rb +14 -13
- data/lib/chef/provider/file/content.rb +2 -2
- data/lib/chef/provider/git.rb +22 -20
- data/lib/chef/provider/group.rb +2 -2
- data/lib/chef/provider/group/aix.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +0 -0
- data/lib/chef/provider/group/gpasswd.rb +1 -1
- data/lib/chef/provider/group/groupadd.rb +1 -1
- data/lib/chef/provider/group/groupmod.rb +0 -0
- data/lib/chef/provider/group/pw.rb +0 -0
- data/lib/chef/provider/group/solaris.rb +62 -0
- data/lib/chef/provider/group/suse.rb +2 -3
- data/lib/chef/provider/group/usermod.rb +4 -7
- data/lib/chef/provider/group/windows.rb +2 -2
- data/lib/chef/provider/http_request.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +13 -24
- data/lib/chef/provider/ifconfig/aix.rb +1 -1
- data/lib/chef/provider/ifconfig/debian.rb +2 -2
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/launchd.rb +4 -4
- data/lib/chef/provider/link.rb +7 -7
- data/lib/chef/provider/log.rb +0 -0
- data/lib/chef/provider/lwrp_base.rb +3 -3
- data/lib/chef/provider/mdadm.rb +2 -2
- data/lib/chef/provider/mount.rb +3 -3
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/mount/solaris.rb +2 -2
- data/lib/chef/provider/mount/windows.rb +3 -3
- data/lib/chef/provider/noop.rb +0 -0
- data/lib/chef/provider/ohai.rb +0 -0
- data/lib/chef/provider/osx_profile.rb +4 -4
- data/lib/chef/provider/package.rb +12 -99
- data/lib/chef/provider/package/apt.rb +7 -22
- data/lib/chef/provider/package/bff.rb +3 -3
- data/lib/chef/provider/package/cab.rb +5 -5
- data/lib/chef/provider/package/chocolatey.rb +4 -4
- data/lib/chef/provider/package/deb.rb +131 -0
- data/lib/chef/provider/package/dnf.rb +7 -7
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -15
- data/lib/chef/provider/package/dnf/python_helper.rb +4 -6
- data/lib/chef/provider/package/dnf/version.rb +0 -0
- data/lib/chef/provider/package/dpkg.rb +7 -21
- data/lib/chef/provider/package/freebsd/base.rb +3 -3
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
- data/lib/chef/provider/package/freebsd/port.rb +2 -6
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/ips.rb +2 -2
- data/lib/chef/provider/package/macports.rb +0 -0
- data/lib/chef/provider/package/msu.rb +7 -7
- data/lib/chef/provider/package/openbsd.rb +4 -4
- data/lib/chef/provider/package/pacman.rb +2 -2
- data/lib/chef/provider/package/paludis.rb +2 -2
- data/lib/chef/provider/package/portage.rb +4 -4
- data/lib/chef/provider/package/powershell.rb +3 -3
- data/lib/chef/provider/package/rpm.rb +4 -4
- data/lib/chef/provider/package/rubygems.rb +5 -5
- data/lib/chef/provider/package/smartos.rb +3 -3
- data/lib/chef/provider/package/snap.rb +358 -0
- data/lib/chef/provider/package/solaris.rb +3 -3
- data/lib/chef/provider/package/windows.rb +7 -7
- data/lib/chef/provider/package/windows/exe.rb +1 -1
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +0 -0
- data/lib/chef/provider/package/yum.rb +9 -9
- data/lib/chef/provider/package/yum/python_helper.rb +4 -4
- data/lib/chef/provider/package/yum/rpm_utils.rb +6 -16
- data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -0
- data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -0
- data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/tool.py +0 -0
- data/lib/chef/provider/package/yum/version.rb +4 -0
- data/lib/chef/provider/package/yum/yum_cache.rb +2 -2
- data/lib/chef/provider/package/yum/yum_helper.py +0 -0
- data/lib/chef/provider/package/zypper.rb +3 -3
- data/lib/chef/provider/powershell_script.rb +6 -36
- data/lib/chef/provider/reboot.rb +2 -2
- data/lib/chef/provider/registry_key.rb +7 -7
- data/lib/chef/provider/remote_directory.rb +7 -7
- data/lib/chef/provider/remote_file.rb +1 -1
- data/lib/chef/provider/remote_file/cache_control_data.rb +4 -4
- data/lib/chef/provider/remote_file/content.rb +2 -2
- data/lib/chef/provider/remote_file/fetcher.rb +0 -0
- data/lib/chef/provider/remote_file/ftp.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -4
- data/lib/chef/provider/remote_file/local_file.rb +1 -1
- data/lib/chef/provider/remote_file/network_file.rb +2 -2
- data/lib/chef/provider/remote_file/sftp.rb +2 -2
- data/lib/chef/provider/resource_update.rb +0 -0
- data/lib/chef/provider/route.rb +36 -36
- data/lib/chef/provider/ruby_block.rb +0 -0
- data/lib/chef/provider/script.rb +2 -6
- data/lib/chef/provider/service.rb +10 -10
- data/lib/chef/provider/service/aix.rb +1 -1
- data/lib/chef/provider/service/aixinit.rb +2 -2
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +3 -3
- data/lib/chef/provider/service/freebsd.rb +2 -2
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/init.rb +2 -2
- data/lib/chef/provider/service/insserv.rb +3 -5
- data/lib/chef/provider/service/invokercd.rb +1 -1
- data/lib/chef/provider/service/macosx.rb +4 -4
- data/lib/chef/provider/service/openbsd.rb +3 -3
- data/lib/chef/provider/service/redhat.rb +3 -3
- data/lib/chef/provider/service/simple.rb +2 -2
- data/lib/chef/provider/service/solaris.rb +2 -2
- data/lib/chef/provider/service/systemd.rb +3 -19
- data/lib/chef/provider/service/upstart.rb +4 -4
- data/lib/chef/provider/service/windows.rb +18 -21
- data/lib/chef/provider/subversion.rb +3 -3
- data/lib/chef/provider/support/yum_repo.erb +0 -0
- data/lib/chef/provider/support/zypper_repo.erb +0 -0
- data/lib/chef/provider/systemd_unit.rb +7 -31
- data/lib/chef/provider/template.rb +2 -2
- data/lib/chef/provider/template/content.rb +2 -2
- data/lib/chef/provider/template_finder.rb +0 -0
- data/lib/chef/provider/user.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +41 -121
- data/lib/chef/provider/user/linux.rb +1 -1
- data/lib/chef/provider/user/pw.rb +1 -1
- data/lib/chef/provider/user/solaris.rb +1 -1
- data/lib/chef/provider/user/windows.rb +4 -6
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +0 -0
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_path.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +23 -24
- data/lib/chef/provider/yum_repository.rb +4 -4
- data/lib/chef/provider/zypper_repository.rb +4 -4
- data/lib/chef/provider_resolver.rb +2 -2
- data/lib/chef/providers.rb +120 -119
- data/lib/chef/recipe.rb +3 -18
- data/lib/chef/request_id.rb +0 -0
- data/lib/chef/reserved_names.rb +0 -0
- data/lib/chef/resource.rb +54 -55
- data/lib/chef/resource/action_class.rb +3 -3
- data/lib/chef/resource/apt_package.rb +9 -1
- data/lib/chef/resource/apt_preference.rb +1 -1
- data/lib/chef/resource/apt_repository.rb +1 -1
- data/lib/chef/resource/apt_update.rb +1 -1
- data/lib/chef/resource/archive_file.rb +172 -0
- data/lib/chef/resource/bash.rb +2 -2
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +1 -1
- data/lib/chef/resource/breakpoint.rb +3 -2
- data/lib/chef/resource/build_essential.rb +4 -3
- data/lib/chef/resource/cab_package.rb +2 -2
- data/lib/chef/resource/chef_gem.rb +7 -4
- data/lib/chef/resource/chef_handler.rb +4 -1
- data/lib/chef/resource/chocolatey_config.rb +0 -1
- data/lib/chef/resource/chocolatey_package.rb +1 -1
- data/lib/chef/resource/chocolatey_source.rb +0 -1
- data/lib/chef/resource/conditional.rb +2 -2
- data/lib/chef/resource/conditional_action_not_nothing.rb +0 -0
- data/lib/chef/resource/cookbook_file.rb +5 -4
- data/lib/chef/resource/cron.rb +2 -2
- data/lib/chef/resource/cron_access.rb +1 -2
- data/lib/chef/resource/cron_d.rb +1 -2
- data/lib/chef/resource/csh.rb +2 -2
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/dnf_package.rb +7 -6
- data/lib/chef/resource/dpkg_package.rb +9 -1
- data/lib/chef/resource/dsc_resource.rb +1 -1
- data/lib/chef/resource/dsc_script.rb +3 -3
- data/lib/chef/resource/execute.rb +14 -15
- data/lib/chef/resource/file.rb +7 -6
- data/lib/chef/resource/file/verification.rb +3 -3
- data/lib/chef/resource/file/verification/systemd_unit.rb +1 -1
- data/lib/chef/resource/freebsd_package.rb +5 -23
- data/lib/chef/resource/gem_package.rb +3 -2
- data/lib/chef/resource/git.rb +1 -1
- data/lib/chef/resource/group.rb +0 -0
- data/lib/chef/resource/homebrew_cask.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +4 -3
- data/lib/chef/resource/homebrew_tap.rb +5 -2
- data/lib/chef/resource/hostname.rb +3 -1
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +2 -2
- data/lib/chef/resource/kernel_module.rb +1 -63
- data/lib/chef/resource/ksh.rb +1 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/link.rb +6 -7
- data/lib/chef/resource/locale.rb +101 -46
- data/lib/chef/resource/log.rb +1 -1
- data/lib/chef/resource/lwrp_base.rb +8 -8
- data/lib/chef/resource/macos_userdefaults.rb +1 -1
- data/lib/chef/resource/macosx_service.rb +1 -5
- data/lib/chef/resource/macports_package.rb +1 -1
- data/lib/chef/resource/mdadm.rb +1 -1
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/msu_package.rb +2 -2
- data/lib/chef/resource/ohai.rb +4 -7
- data/lib/chef/resource/ohai_hint.rb +3 -1
- data/lib/chef/resource/openbsd_package.rb +3 -3
- data/lib/chef/resource/openssl_dhparam.rb +4 -4
- data/lib/chef/resource/openssl_ec_private_key.rb +4 -5
- data/lib/chef/resource/openssl_ec_public_key.rb +4 -5
- data/lib/chef/resource/openssl_rsa_private_key.rb +4 -4
- data/lib/chef/resource/openssl_rsa_public_key.rb +4 -4
- data/lib/chef/resource/openssl_x509_certificate.rb +4 -5
- data/lib/chef/resource/openssl_x509_crl.rb +4 -5
- data/lib/chef/resource/openssl_x509_request.rb +4 -5
- data/lib/chef/resource/osx_profile.rb +1 -1
- data/lib/chef/resource/package.rb +2 -10
- data/lib/chef/resource/pacman_package.rb +1 -1
- data/lib/chef/resource/paludis_package.rb +2 -2
- data/lib/chef/resource/perl.rb +2 -2
- data/lib/chef/resource/portage_package.rb +1 -1
- data/lib/chef/resource/powershell_package.rb +3 -3
- data/lib/chef/resource/powershell_package_source.rb +2 -3
- data/lib/chef/resource/powershell_script.rb +37 -1
- data/lib/chef/resource/python.rb +2 -2
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/registry_key.rb +2 -2
- data/lib/chef/resource/remote_directory.rb +41 -44
- data/lib/chef/resource/remote_file.rb +4 -4
- data/lib/chef/resource/resource_notification.rb +14 -18
- data/lib/chef/resource/rhsm_errata.rb +1 -1
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +1 -1
- data/lib/chef/resource/rhsm_repo.rb +1 -1
- data/lib/chef/resource/rhsm_subscription.rb +1 -1
- data/lib/chef/resource/route.rb +25 -15
- data/lib/chef/resource/rpm_package.rb +2 -2
- data/lib/chef/resource/ruby.rb +2 -2
- data/lib/chef/resource/ruby_block.rb +4 -3
- data/lib/chef/resource/scm.rb +1 -1
- data/lib/chef/resource/script.rb +2 -2
- data/lib/chef/resource/service.rb +54 -159
- data/lib/chef/resource/smartos_package.rb +1 -1
- data/{bin/chef-solo → lib/chef/resource/snap_package.rb} +19 -7
- data/lib/chef/resource/solaris_package.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +3 -4
- data/lib/chef/resource/subversion.rb +3 -2
- data/lib/chef/resource/sudo.rb +1 -1
- data/lib/chef/resource/support/cron.d.erb +0 -0
- data/lib/chef/resource/support/cron_access.erb +0 -0
- data/lib/chef/resource/support/ssh_known_hosts.erb +0 -0
- data/lib/chef/resource/support/sudoer.erb +0 -0
- data/lib/chef/resource/swap_file.rb +1 -1
- data/lib/chef/resource/sysctl.rb +1 -1
- data/lib/chef/resource/systemd_unit.rb +1 -2
- data/lib/chef/resource/template.rb +4 -3
- data/lib/chef/resource/timezone.rb +2 -3
- data/lib/chef/resource/user.rb +45 -127
- data/lib/chef/resource/user/aix_user.rb +1 -1
- data/lib/chef/resource/user/dscl_user.rb +5 -1
- data/lib/chef/resource/user/linux_user.rb +1 -1
- 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/whyrun_safe_ruby_block.rb +0 -0
- data/lib/chef/resource/windows_ad_join.rb +2 -2
- data/lib/chef/resource/windows_auto_run.rb +1 -1
- data/lib/chef/resource/windows_certificate.rb +7 -7
- data/lib/chef/resource/windows_dfs_folder.rb +75 -0
- data/lib/chef/resource/windows_dfs_namespace.rb +114 -0
- data/lib/chef/resource/windows_dfs_server.rb +76 -0
- data/lib/chef/resource/windows_dns_record.rb +76 -0
- data/lib/chef/resource/windows_dns_zone.rb +80 -0
- data/lib/chef/resource/windows_env.rb +1 -1
- data/lib/chef/resource/windows_feature.rb +1 -1
- data/lib/chef/resource/windows_feature_dism.rb +2 -2
- data/lib/chef/resource/windows_feature_powershell.rb +4 -4
- data/lib/chef/resource/windows_firewall_rule.rb +1 -2
- data/lib/chef/resource/windows_font.rb +2 -2
- data/lib/chef/resource/windows_package.rb +4 -4
- data/lib/chef/resource/windows_pagefile.rb +1 -1
- data/lib/chef/resource/windows_path.rb +1 -1
- data/lib/chef/resource/windows_printer.rb +1 -1
- data/lib/chef/resource/windows_printer_port.rb +1 -1
- data/lib/chef/resource/windows_script.rb +3 -3
- data/lib/chef/resource/windows_service.rb +6 -12
- data/lib/chef/resource/windows_share.rb +3 -4
- data/lib/chef/resource/windows_shortcut.rb +1 -1
- data/lib/chef/resource/windows_task.rb +3 -3
- data/lib/chef/resource/windows_uac.rb +94 -0
- data/lib/chef/resource/windows_workgroup.rb +2 -2
- data/lib/chef/resource/yum_package.rb +5 -3
- data/lib/chef/resource/yum_repository.rb +1 -1
- data/lib/chef/resource/zypper_package.rb +4 -2
- data/lib/chef/resource/zypper_repository.rb +1 -1
- data/lib/chef/resource_builder.rb +3 -3
- data/lib/chef/resource_collection.rb +6 -13
- data/lib/chef/resource_collection/resource_collection_serialization.rb +1 -1
- data/lib/chef/resource_collection/resource_list.rb +4 -4
- data/lib/chef/resource_collection/resource_set.rb +5 -5
- data/lib/chef/resource_collection/stepable_iterator.rb +0 -0
- data/lib/chef/resource_definition.rb +2 -2
- data/lib/chef/resource_definition_list.rb +2 -2
- data/lib/chef/resource_inspector.rb +8 -8
- data/lib/chef/resource_reporter.rb +47 -138
- data/lib/chef/resource_resolver.rb +3 -3
- data/lib/chef/resources.rb +138 -130
- data/lib/chef/role.rb +8 -8
- data/lib/chef/run_context.rb +84 -73
- data/lib/chef/run_context/cookbook_compiler.rb +18 -19
- data/lib/chef/run_list.rb +4 -4
- data/lib/chef/run_list/run_list_expansion.rb +5 -5
- data/lib/chef/run_list/run_list_item.rb +4 -4
- data/lib/chef/run_list/versioned_recipe_list.rb +2 -2
- data/lib/chef/run_lock.rb +6 -5
- data/lib/chef/run_status.rb +2 -1
- data/lib/chef/runner.rb +16 -52
- data/lib/chef/sandbox.rb +0 -0
- data/lib/chef/scan_access_control.rb +0 -0
- data/lib/chef/search/query.rb +3 -3
- data/lib/chef/server_api.rb +10 -10
- data/lib/chef/server_api_versions.rb +0 -0
- data/lib/chef/shell.rb +17 -16
- data/lib/chef/shell/ext.rb +7 -7
- data/lib/chef/shell/model_wrapper.rb +2 -2
- data/lib/chef/shell/shell_session.rb +10 -10
- data/lib/chef/train_transport.rb +129 -0
- data/lib/chef/user.rb +7 -7
- data/lib/chef/user_v1.rb +9 -9
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +0 -0
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/dsc/local_configuration_manager.rb +2 -2
- data/lib/chef/util/dsc/resource_info.rb +0 -0
- data/lib/chef/util/dsc/resource_store.rb +3 -3
- data/lib/chef/util/editor.rb +0 -0
- data/lib/chef/util/file_edit.rb +1 -1
- data/lib/chef/util/path_helper.rb +0 -0
- data/lib/chef/util/powershell/cmdlet.rb +2 -2
- data/lib/chef/util/powershell/cmdlet_result.rb +1 -1
- data/lib/chef/util/powershell/ps_credential.rb +1 -1
- data/lib/chef/util/selinux.rb +2 -2
- data/lib/chef/util/threaded_job_queue.rb +0 -0
- data/lib/chef/util/windows.rb +0 -0
- data/lib/chef/util/windows/logon_session.rb +2 -2
- data/lib/chef/util/windows/net_group.rb +2 -2
- data/lib/chef/util/windows/net_use.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +4 -4
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +3 -3
- data/lib/chef/version/platform.rb +1 -1
- data/lib/chef/version_class.rb +0 -0
- data/lib/chef/version_constraint.rb +2 -2
- data/lib/chef/version_constraint/platform.rb +2 -2
- data/lib/chef/version_string.rb +0 -0
- data/lib/chef/whitelist.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/crypto.rb +1 -1
- data/lib/chef/win32/api/error.rb +1 -1
- data/lib/chef/win32/api/file.rb +4 -4
- data/lib/chef/win32/api/installer.rb +3 -3
- data/lib/chef/win32/api/memory.rb +1 -1
- data/lib/chef/win32/api/net.rb +2 -2
- data/lib/chef/win32/api/process.rb +1 -1
- data/lib/chef/win32/api/psapi.rb +1 -1
- data/lib/chef/win32/api/registry.rb +1 -1
- data/lib/chef/win32/api/security.rb +1 -1
- data/lib/chef/win32/api/synchronization.rb +1 -1
- data/lib/chef/win32/api/system.rb +1 -1
- data/lib/chef/win32/api/unicode.rb +1 -1
- data/lib/chef/win32/crypto.rb +4 -4
- data/lib/chef/win32/error.rb +4 -4
- data/lib/chef/win32/eventlog.rb +0 -0
- data/lib/chef/win32/file.rb +8 -8
- data/lib/chef/win32/file/info.rb +1 -1
- data/lib/chef/win32/file/version_info.rb +1 -1
- data/lib/chef/win32/handle.rb +4 -4
- data/lib/chef/win32/memory.rb +2 -2
- data/lib/chef/win32/mutex.rb +2 -2
- data/lib/chef/win32/net.rb +3 -3
- data/lib/chef/win32/process.rb +4 -4
- data/lib/chef/win32/registry.rb +5 -5
- data/lib/chef/win32/security.rb +12 -12
- data/lib/chef/win32/security/ace.rb +3 -3
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/security/securable_object.rb +3 -3
- data/lib/chef/win32/security/security_descriptor.rb +3 -3
- data/lib/chef/win32/security/sid.rb +3 -3
- data/lib/chef/win32/security/token.rb +3 -3
- data/lib/chef/win32/system.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +2 -2
- data/lib/chef/win32_service_constants.rb +0 -0
- data/lib/chef/workstation_config_loader.rb +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/control +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/files +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/control +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/files +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/changelog +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.debhelper.log +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.substvars +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/conffiles +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/control +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/md5sums +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/compat +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/conffiles +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/control +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/copyright +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/files +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/source/format +0 -0
- data/spec/data/apt/chef-integration-test2_1.0-1.debian.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test2_1.0-1.dsc +0 -0
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.build +0 -0
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.changes +0 -0
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test2_1.0.orig.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +0 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +0 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
- data/spec/data/apt/var/www/apt/conf/distributions +0 -0
- data/spec/data/apt/var/www/apt/conf/incoming +0 -0
- data/spec/data/apt/var/www/apt/conf/pulls +0 -0
- data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
- data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
- data/spec/data/apt/var/www/apt/db/packages.db +0 -0
- data/spec/data/apt/var/www/apt/db/references.db +0 -0
- data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
- data/spec/data/apt/var/www/apt/db/version +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/Release +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/bad-config.rb +0 -0
- data/spec/data/bootstrap/encrypted_data_bag_secret +0 -0
- data/spec/data/bootstrap/no_proxy.erb +0 -0
- data/spec/data/bootstrap/secret.erb +0 -0
- data/spec/data/bootstrap/test-hints.erb +0 -0
- data/spec/data/bootstrap/test.erb +0 -0
- data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
- data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/README.rdoc +0 -0
- data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz +0 -0
- data/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/recipes/default.rb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb +0 -0
- data/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb +0 -0
- data/spec/data/checksum/random.txt +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +0 -0
- data/spec/data/client.d_00/00-foo.rb +0 -0
- data/spec/data/client.d_00/01-bar.rb +0 -0
- data/spec/data/client.d_00/02-strings.rb +0 -0
- data/spec/data/client.d_00/bar +0 -0
- data/spec/data/client.d_01/foo/bar.rb +0 -0
- data/spec/data/client.d_02/foo.rb/foo.txt +0 -0
- data/spec/data/config.rb +0 -0
- data/spec/data/cookbooks/angrybash/metadata.rb +0 -0
- data/spec/data/cookbooks/angrybash/recipes/default.rb +0 -0
- data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +0 -0
- data/spec/data/cookbooks/apache2/metadata.rb +0 -0
- data/spec/data/cookbooks/apache2/recipes/default.rb +0 -0
- data/spec/data/cookbooks/borken/metadata.rb +0 -0
- data/spec/data/cookbooks/borken/recipes/default.rb +0 -0
- data/spec/data/cookbooks/borken/templates/default/borken.erb +0 -0
- data/spec/data/cookbooks/chefignore +0 -0
- data/spec/data/cookbooks/ignorken/files/default/not_me.rb +0 -0
- data/spec/data/cookbooks/ignorken/metadata.rb +0 -0
- data/spec/data/cookbooks/ignorken/recipes/default.rb +0 -0
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +0 -0
- data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +0 -0
- data/spec/data/cookbooks/irssi/files/default/irssi.response +2 -0
- data/spec/data/cookbooks/java/files/default/java.response +0 -0
- data/spec/data/cookbooks/java/metadata.rb +0 -0
- data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +0 -0
- data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +0 -0
- data/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb +0 -0
- data/spec/data/cookbooks/openldap/.root_dotfile +0 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +0 -0
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +0 -0
- data/spec/data/cookbooks/openldap/definitions/client.rb +0 -0
- data/spec/data/cookbooks/openldap/definitions/server.rb +0 -0
- data/spec/data/cookbooks/openldap/files/default/.dotfile +0 -0
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +0 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +0 -0
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +0 -0
- data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +0 -0
- data/spec/data/cookbooks/openldap/metadata.rb +0 -0
- data/spec/data/cookbooks/openldap/recipes/default.rb +0 -0
- data/spec/data/cookbooks/openldap/recipes/gigantor.rb +0 -0
- data/spec/data/cookbooks/openldap/recipes/one.rb +0 -0
- data/spec/data/cookbooks/openldap/recipes/return.rb +0 -0
- data/spec/data/cookbooks/openldap/spec/spec_helper.rb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/helpers.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/nested_openldap_partials.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/nested_partial.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/test.erb +0 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +0 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +0 -0
- data/spec/data/cookbooks/preseed/metadata.rb +0 -0
- data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +0 -0
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +0 -0
- data/spec/data/cookbooks/supports-platform-constraints/metadata.rb +0 -0
- data/spec/data/cookbooks/wget/files/default/wget.response +2 -0
- data/spec/data/definitions/test.rb +0 -0
- data/spec/data/dsc_lcm.pfx +0 -0
- data/spec/data/environment-config.rb +0 -0
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +0 -0
- data/spec/data/fileedit/blank +0 -0
- data/spec/data/fileedit/hosts +0 -0
- data/spec/data/gems/chef-integration-test-0.1.0.gem +0 -0
- data/spec/data/git_bundles/example-repo.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app.gitbundle +0 -0
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +0 -0
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +0 -0
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb +0 -0
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +0 -0
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb +0 -0
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb +0 -0
- data/spec/data/kitchen/chefignore +0 -0
- data/spec/data/kitchen/openldap/attributes/default.rb +0 -0
- data/spec/data/kitchen/openldap/attributes/robinson.rb +0 -0
- data/spec/data/kitchen/openldap/definitions/client.rb +0 -0
- data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +0 -0
- data/spec/data/kitchen/openldap/recipes/gigantor.rb +0 -0
- data/spec/data/kitchen/openldap/recipes/ignoreme.rb +0 -0
- data/spec/data/kitchen/openldap/recipes/woot.rb +0 -0
- data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
- data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
- data/spec/data/knife_subcommand/test_explicit_category.rb +0 -0
- data/spec/data/knife_subcommand/test_name_mapping.rb +0 -0
- data/spec/data/knife_subcommand/test_yourself.rb +0 -0
- data/spec/data/lwrp/providers/buck_passer.rb +0 -0
- data/spec/data/lwrp/providers/buck_passer_2.rb +0 -0
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +0 -0
- data/spec/data/lwrp/providers/inline_compiler.rb +0 -0
- data/spec/data/lwrp/providers/monkey_name_printer.rb +0 -0
- data/spec/data/lwrp/providers/paint_drying_watcher.rb +0 -0
- data/spec/data/lwrp/providers/thumb_twiddler.rb +0 -0
- data/spec/data/lwrp/resources/bar.rb +0 -0
- data/spec/data/lwrp/resources/buck_passer.rb +0 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +0 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +0 -0
- data/spec/data/lwrp/resources/foo.rb +0 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +0 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +0 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +0 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +0 -0
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +0 -0
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +0 -0
- data/spec/data/lwrp_override/providers/buck_passer.rb +0 -0
- data/spec/data/lwrp_override/resources/foo.rb +0 -0
- data/spec/data/mac_users/10.9.plist.xml +0 -0
- data/spec/data/mac_users/10.9.shadow.xml +0 -0
- data/spec/data/metadata/quick_start/metadata.rb +0 -0
- data/spec/data/mixin/invalid_data.rb +0 -0
- data/spec/data/mixin/real_data.rb +0 -0
- data/spec/data/nested.json +0 -0
- data/spec/data/nodes/default.rb +0 -0
- data/spec/data/nodes/test.example.com.rb +0 -0
- data/spec/data/nodes/test.rb +0 -0
- data/spec/data/null_config.rb +0 -0
- data/spec/data/object_loader/environments/test.json +0 -0
- data/spec/data/object_loader/environments/test.rb +0 -0
- data/spec/data/object_loader/environments/test_json_class.json +0 -0
- data/spec/data/object_loader/nodes/test.json +0 -0
- data/spec/data/object_loader/nodes/test.rb +0 -0
- data/spec/data/object_loader/nodes/test_json_class.json +0 -0
- data/spec/data/object_loader/roles/test.json +0 -0
- data/spec/data/object_loader/roles/test.rb +0 -0
- data/spec/data/object_loader/roles/test_json_class.json +0 -0
- data/spec/data/old_home_dir/my-dot-emacs +0 -0
- data/spec/data/old_home_dir/my-dot-vim +0 -0
- data/spec/data/partial_one.erb +0 -0
- data/spec/data/prefer_metadata_json/metadata.json +0 -0
- data/spec/data/prefer_metadata_json/metadata.rb +0 -0
- data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
- data/spec/data/recipes.tgz +0 -0
- data/spec/data/recipes/test.rb +0 -0
- data/spec/data/remote_directory_data/remote_dir_file.txt +0 -0
- data/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt +0 -0
- data/spec/data/remote_file/nyan_cat.png +0 -0
- data/spec/data/remote_file/nyan_cat.png.gz +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +0 -0
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +0 -0
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/unparsed_file +1 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/unparsed_file +1 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/unparsed_file +1 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/unparsed_file +1 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/unparsed_file +1 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/unparsed_file +1 -0
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/include/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/include/recipes/includee.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +0 -0
- data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +0 -0
- data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +0 -0
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +0 -0
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +0 -0
- data/spec/data/run_context/cookbooks/test/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/recipes/one.rb +0 -0
- data/spec/data/run_context/cookbooks/test/recipes/two.rb +0 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +0 -0
- data/spec/data/run_context/nodes/run_context.rb +0 -0
- data/spec/data/sample_msu1.xml +0 -0
- data/spec/data/sample_msu2.xml +0 -0
- data/spec/data/sample_msu3.xml +0 -0
- data/spec/data/search_queries_to_transform.txt +0 -0
- data/spec/data/shef-config.rb +0 -0
- data/spec/data/snap_package/async_result_success.json +6 -0
- data/spec/data/snap_package/change_id_result.json +175 -0
- data/spec/data/snap_package/find_result_failure.json +10 -0
- data/spec/data/snap_package/find_result_success.json +70 -0
- data/spec/data/snap_package/get_by_name_result_failure.json +10 -0
- data/spec/data/snap_package/get_by_name_result_success.json +38 -0
- data/spec/data/snap_package/get_conf_success.json +10 -0
- data/spec/data/snap_package/result_failure.json +9 -0
- data/spec/data/ssl/5e707473.0 +0 -0
- data/spec/data/ssl/chef-rspec.cert +0 -0
- data/spec/data/ssl/chef-rspec.key +0 -0
- data/spec/data/ssl/key.pem +0 -0
- data/spec/data/ssl/private_key.pem +0 -0
- data/spec/data/ssl/private_key_with_whitespace.pem +0 -0
- data/spec/data/standalone_cookbook/Gemfile +0 -0
- data/spec/data/standalone_cookbook/chefignore +0 -0
- data/spec/data/standalone_cookbook/recipes/default.rb +0 -0
- data/spec/data/standalone_cookbook/vendor/bundle/ruby/2.0.0/gems/multi_json-1.9.0/lib/multi_json.rb +0 -0
- data/spec/data/templates/chef-seattle20160930-4388-1crv7ef.txt +0 -0
- data/spec/data/templates/chef-seattle20160930-4388-jjfoae.txt +0 -0
- data/spec/data/templates/chef-seattle20160930-4388-umeq2c.txt +0 -0
- data/spec/data/templates/seattle.txt +0 -0
- data/spec/data/trusted_certs/example.crt +0 -0
- data/spec/data/trusted_certs/example_no_cn.crt +0 -0
- data/spec/data/trusted_certs/intermediate.pem +0 -0
- data/spec/data/trusted_certs/opscode.pem +0 -0
- data/spec/data/trusted_certs/root.pem +0 -0
- data/spec/data/trusted_certs_empty/.gitkeep +0 -0
- data/spec/data/trusted_certs_empty/README.md +1 -0
- data/spec/data/windows_certificates/base64_test.cer +0 -0
- data/spec/data/windows_certificates/othertest.cer +0 -0
- data/spec/data/windows_certificates/test.cer +0 -0
- data/spec/data/windows_certificates/test.p7b +0 -0
- data/spec/data/windows_certificates/test.pem +0 -0
- data/spec/data/windows_certificates/test.pfx +0 -0
- data/spec/functional/application_spec.rb +0 -0
- data/spec/functional/assets/PkgA.1.0.0.0.bff +0 -0
- data/spec/functional/assets/PkgA.2.0.0.0.bff +0 -0
- data/spec/functional/assets/chocolatey_feed/test-A.1.0.nupkg +0 -0
- data/spec/functional/assets/chocolatey_feed/test-A.1.5.nupkg +0 -0
- data/spec/functional/assets/chocolatey_feed/test-A.2.0.nupkg +0 -0
- data/spec/functional/assets/chocolatey_feed/test-B.1.0.nupkg +0 -0
- data/spec/functional/assets/dummy-1-0.aix6.1.noarch.rpm +0 -0
- data/spec/functional/assets/dummy-2-0.aix6.1.noarch.rpm +0 -0
- data/spec/functional/assets/mytest-1.0-1.noarch.rpm +0 -0
- data/spec/functional/assets/mytest-2.0-1.noarch.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.i686.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.s390x.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.src.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.i686.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.s390x.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.src.rpm +0 -0
- data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
- data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/repomd.xml +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.i686.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.s390x.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.src.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.i686.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.s390x.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.src.rpm +0 -0
- data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +6 -7
- data/spec/functional/dsl/registry_helper_spec.rb +0 -0
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -8
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +21 -21
- data/spec/functional/http/simple_spec.rb +0 -0
- data/spec/functional/knife/configure_spec.rb +0 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -0
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/knife/rehash_spec.rb +0 -0
- data/spec/functional/knife/smoke_test.rb +0 -0
- data/spec/functional/knife/ssh_spec.rb +3 -3
- data/spec/functional/mixin/from_file_spec.rb +0 -0
- data/spec/functional/mixin/powershell_out_spec.rb +0 -0
- data/spec/functional/mixin/shell_out_spec.rb +0 -30
- data/spec/functional/mixin/user_context_spec.rb +1 -3
- data/spec/functional/notifications_spec.rb +0 -0
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +0 -0
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/apt_package_spec.rb +0 -0
- data/spec/functional/resource/base.rb +0 -0
- data/spec/functional/resource/bash_spec.rb +0 -0
- data/spec/functional/resource/batch_spec.rb +0 -0
- data/spec/functional/resource/bff_spec.rb +0 -0
- data/spec/functional/resource/chocolatey_package_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +3 -1
- data/spec/functional/resource/cron_spec.rb +0 -1
- data/spec/functional/resource/directory_spec.rb +0 -0
- data/spec/functional/resource/dnf_package_spec.rb +5 -5
- data/spec/functional/resource/dpkg_package_spec.rb +4 -4
- data/spec/functional/resource/dsc_resource_spec.rb +1 -2
- data/spec/functional/resource/dsc_script_spec.rb +11 -7
- data/spec/functional/resource/execute_spec.rb +0 -0
- data/spec/functional/resource/file_spec.rb +0 -0
- data/spec/functional/resource/git_spec.rb +5 -5
- data/spec/functional/resource/group_spec.rb +8 -43
- data/spec/functional/resource/ifconfig_spec.rb +5 -3
- data/spec/functional/resource/link_spec.rb +2 -2
- data/spec/functional/resource/locale_spec.rb +97 -0
- data/spec/functional/resource/mount_spec.rb +7 -3
- data/spec/functional/resource/msu_package_spec.rb +0 -0
- data/spec/functional/resource/ohai_spec.rb +0 -0
- data/spec/functional/resource/powershell_script_spec.rb +21 -16
- data/spec/functional/resource/reboot_spec.rb +1 -1
- data/spec/functional/resource/registry_spec.rb +0 -0
- data/spec/functional/resource/remote_directory_spec.rb +0 -0
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/rpm_spec.rb +0 -0
- data/spec/functional/resource/template_spec.rb +1 -1
- data/spec/functional/resource/timezone_spec.rb +0 -0
- data/spec/functional/resource/user/dscl_spec.rb +3 -10
- data/spec/functional/resource/user/windows_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_env_spec.rb +0 -0
- data/spec/functional/resource/windows_package_spec.rb +0 -0
- data/spec/functional/resource/windows_path_spec.rb +0 -0
- data/spec/functional/resource/windows_service_spec.rb +3 -3
- data/spec/functional/resource/windows_task_spec.rb +13 -12
- data/spec/functional/resource/yum_package_spec.rb +20 -1
- data/spec/functional/resource/zypper_package_spec.rb +0 -0
- data/spec/functional/root_alias_spec.rb +0 -0
- data/spec/functional/run_lock_spec.rb +3 -10
- data/spec/functional/shell_spec.rb +1 -2
- data/spec/functional/tiny_server_spec.rb +0 -0
- data/spec/functional/util/path_helper_spec.rb +0 -0
- data/spec/functional/util/powershell/cmdlet_spec.rb +3 -3
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/crypto_spec.rb +0 -0
- data/spec/functional/win32/registry_spec.rb +0 -0
- data/spec/functional/win32/security_spec.rb +7 -12
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/functional/win32/sid_spec.rb +0 -0
- data/spec/functional/win32/version_info_spec.rb +4 -4
- data/spec/functional/win32/versions_spec.rb +0 -0
- data/spec/integration/client/client_spec.rb +142 -135
- data/spec/integration/client/exit_code_spec.rb +3 -31
- data/spec/integration/client/ipv6_spec.rb +2 -2
- data/spec/integration/knife/chef_fs_data_store_spec.rb +25 -25
- data/spec/integration/knife/chef_repo_path_spec.rb +6 -8
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -0
- data/spec/integration/knife/chefignore_spec.rb +0 -0
- data/spec/integration/knife/client_bulk_delete_spec.rb +0 -0
- data/spec/integration/knife/client_create_spec.rb +0 -0
- data/spec/integration/knife/client_delete_spec.rb +0 -0
- data/spec/integration/knife/client_key_create_spec.rb +0 -0
- data/spec/integration/knife/client_key_delete_spec.rb +0 -0
- data/spec/integration/knife/client_key_list_spec.rb +0 -0
- data/spec/integration/knife/client_key_show_spec.rb +0 -0
- data/spec/integration/knife/client_list_spec.rb +0 -0
- data/spec/integration/knife/client_show_spec.rb +0 -0
- data/spec/integration/knife/common_options_spec.rb +0 -0
- data/spec/integration/knife/config_get_profile_spec.rb +0 -0
- data/spec/integration/knife/config_get_spec.rb +1 -8
- data/spec/integration/knife/config_list_profiles_spec.rb +1 -2
- data/spec/integration/knife/config_use_profile_spec.rb +0 -0
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -0
- data/spec/integration/knife/cookbook_download_spec.rb +1 -1
- data/spec/integration/knife/cookbook_list_spec.rb +0 -0
- data/spec/integration/knife/cookbook_show_spec.rb +0 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +0 -0
- data/spec/integration/knife/data_bag_create_spec.rb +0 -0
- data/spec/integration/knife/data_bag_delete_spec.rb +0 -0
- data/spec/integration/knife/data_bag_edit_spec.rb +0 -0
- data/spec/integration/knife/data_bag_from_file_spec.rb +0 -0
- data/spec/integration/knife/data_bag_list_spec.rb +0 -0
- data/spec/integration/knife/data_bag_show_spec.rb +0 -0
- data/spec/integration/knife/delete_spec.rb +0 -0
- data/spec/integration/knife/deps_spec.rb +0 -0
- data/spec/integration/knife/diff_spec.rb +9 -9
- data/spec/integration/knife/download_spec.rb +1 -1
- data/spec/integration/knife/environment_compare_spec.rb +0 -0
- data/spec/integration/knife/environment_create_spec.rb +0 -0
- data/spec/integration/knife/environment_delete_spec.rb +0 -0
- data/spec/integration/knife/environment_from_file_spec.rb +0 -0
- data/spec/integration/knife/environment_list_spec.rb +0 -0
- data/spec/integration/knife/environment_show_spec.rb +0 -0
- data/spec/integration/knife/list_spec.rb +0 -0
- data/spec/integration/knife/node_bulk_delete_spec.rb +0 -0
- data/spec/integration/knife/node_create_spec.rb +0 -0
- data/spec/integration/knife/node_delete_spec.rb +0 -0
- data/spec/integration/knife/node_environment_set_spec.rb +0 -0
- data/spec/integration/knife/node_from_file_spec.rb +0 -0
- data/spec/integration/knife/node_list_spec.rb +0 -0
- data/spec/integration/knife/node_run_list_add_spec.rb +0 -0
- data/spec/integration/knife/node_run_list_remove_spec.rb +0 -0
- data/spec/integration/knife/node_run_list_set_spec.rb +0 -0
- data/spec/integration/knife/node_show_spec.rb +0 -0
- data/spec/integration/knife/raw_spec.rb +6 -6
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/role_bulk_delete_spec.rb +0 -0
- data/spec/integration/knife/role_create_spec.rb +0 -0
- data/spec/integration/knife/role_delete_spec.rb +0 -0
- data/spec/integration/knife/role_from_file_spec.rb +0 -0
- data/spec/integration/knife/role_list_spec.rb +0 -0
- data/spec/integration/knife/role_show_spec.rb +0 -0
- data/spec/integration/knife/search_node_spec.rb +0 -0
- data/spec/integration/knife/serve_spec.rb +0 -0
- data/spec/integration/knife/show_spec.rb +4 -4
- data/spec/integration/knife/upload_spec.rb +4 -4
- data/spec/integration/recipes/accumulator_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +6 -6
- data/spec/integration/recipes/lwrp_spec.rb +3 -3
- data/spec/integration/recipes/noop_resource_spec.rb +0 -0
- data/spec/integration/recipes/notifies_spec.rb +21 -21
- data/spec/integration/recipes/notifying_block_spec.rb +6 -6
- data/spec/integration/recipes/provider_choice.rb +2 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
- data/spec/integration/recipes/remote_directory.rb +3 -3
- data/spec/integration/recipes/resource_action_spec.rb +0 -0
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +0 -0
- data/spec/integration/recipes/resource_load_spec.rb +0 -0
- data/spec/integration/solo/solo_spec.rb +24 -24
- data/spec/rcov.opts +0 -0
- data/spec/scripts/ssl-serve.rb +0 -0
- data/spec/spec_helper.rb +13 -16
- data/spec/stress/win32/file_spec.rb +0 -0
- data/spec/stress/win32/memory_spec.rb +0 -0
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +3 -4
- data/spec/support/key_helpers.rb +0 -0
- data/spec/support/lib/chef/provider/easy.rb +0 -0
- data/spec/support/lib/chef/provider/openldap_includer.rb +0 -0
- data/spec/support/lib/chef/provider/snakeoil.rb +0 -0
- data/spec/support/lib/chef/resource/cat.rb +0 -0
- data/spec/support/lib/chef/resource/one_two_three_four.rb +0 -0
- data/spec/support/lib/chef/resource/openldap_includer.rb +0 -0
- data/spec/support/lib/chef/resource/with_state.rb +0 -0
- data/spec/support/lib/chef/resource/zen_follower.rb +1 -1
- data/spec/support/lib/chef/resource/zen_master.rb +1 -1
- data/spec/support/lib/library_load_order.rb +0 -0
- data/spec/support/matchers/leak.rb +0 -0
- data/spec/support/mock/constant.rb +0 -0
- data/spec/support/mock/platform.rb +2 -2
- data/spec/support/platform_helpers.rb +0 -34
- data/spec/support/platforms/prof/gc.rb +1 -1
- data/spec/support/platforms/prof/win32.rb +0 -0
- data/spec/support/platforms/win32/spec_service.rb +10 -6
- data/spec/support/shared/context/config.rb +0 -0
- data/spec/support/shared/context/win32.rb +0 -0
- data/spec/support/shared/functional/diff_disabled.rb +0 -0
- data/spec/support/shared/functional/directory_resource.rb +0 -0
- data/spec/support/shared/functional/execute_resource.rb +4 -4
- data/spec/support/shared/functional/file_resource.rb +3 -1
- data/spec/support/shared/functional/http.rb +39 -15
- data/spec/support/shared/functional/knife.rb +0 -0
- data/spec/support/shared/functional/securable_resource.rb +8 -4
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -0
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +1 -2
- data/spec/support/shared/integration/app_server_support.rb +4 -3
- data/spec/support/shared/integration/integration_helper.rb +0 -1
- data/spec/support/shared/integration/knife_support.rb +5 -5
- data/spec/support/shared/matchers/exit_with_code.rb +0 -0
- data/spec/support/shared/matchers/match_environment_variable.rb +0 -0
- data/spec/support/shared/shared_examples.rb +0 -0
- data/spec/support/shared/unit/api_error_inspector.rb +0 -0
- data/spec/support/shared/unit/api_versioning.rb +0 -0
- data/spec/support/shared/unit/application_dot_d.rb +4 -10
- data/spec/support/shared/unit/execute_resource.rb +0 -0
- data/spec/support/shared/unit/file_system_support.rb +2 -3
- data/spec/support/shared/unit/knife_shared.rb +0 -0
- data/spec/support/shared/unit/mock_shellout.rb +0 -0
- data/spec/support/shared/unit/platform_introspector.rb +12 -12
- data/spec/support/shared/unit/provider/file.rb +1 -1
- data/spec/support/shared/unit/provider/package/package_shared.rb +95 -0
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +0 -0
- data/spec/support/shared/unit/resource/static_provider_resolution.rb +0 -0
- data/spec/support/shared/unit/script_resource.rb +2 -2
- data/spec/support/shared/unit/user_and_client_shared.rb +0 -0
- data/spec/support/shared/unit/windows_script_resource.rb +1 -1
- data/spec/tiny_server.rb +1 -1
- data/{bin/chef-apply → spec/unit/action_collection_spec.rb} +4 -9
- data/spec/unit/api_client/registration_spec.rb +1 -1
- data/spec/unit/api_client_spec.rb +5 -5
- data/spec/unit/api_client_v1_spec.rb +6 -6
- data/spec/unit/application/agent_spec.rb +0 -0
- data/spec/unit/application/apply_spec.rb +0 -0
- data/spec/unit/application/client_spec.rb +117 -81
- data/spec/unit/application/exit_code_spec.rb +2 -13
- data/spec/unit/application/knife_spec.rb +3 -6
- data/spec/unit/application/server_spec.rb +0 -0
- data/spec/unit/application/solo_spec.rb +2 -7
- data/spec/unit/application_spec.rb +9 -2
- data/spec/unit/chef_class_spec.rb +0 -0
- data/spec/unit/chef_fs/config_spec.rb +3 -3
- data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +0 -0
- data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +0 -0
- data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +0 -0
- data/spec/unit/chef_fs/diff_spec.rb +0 -0
- data/spec/unit/chef_fs/file_pattern_spec.rb +0 -0
- data/spec/unit/chef_fs/file_system/cookbook_subdir_spec.rb +0 -0
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +0 -0
- data/spec/unit/chef_fs/file_system/repository/base_file_spec.rb +0 -0
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system_spec.rb +0 -0
- data/spec/unit/chef_fs/parallelizer.rb +2 -4
- data/spec/unit/chef_fs/path_util_spec.rb +0 -0
- data/spec/unit/chef_spec.rb +0 -0
- data/spec/unit/client_spec.rb +260 -70
- data/spec/unit/config_fetcher_spec.rb +1 -1
- data/spec/unit/config_spec.rb +0 -0
- data/spec/unit/cookbook/chefignore_spec.rb +0 -0
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +2 -2
- data/spec/unit/cookbook/file_vendor_spec.rb +0 -0
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -23
- data/spec/unit/cookbook/manifest_v0_spec.rb +0 -0
- data/spec/unit/cookbook/manifest_v2_spec.rb +0 -0
- data/spec/unit/cookbook/metadata_spec.rb +4 -296
- data/spec/unit/cookbook/synchronizer_spec.rb +4 -4
- data/spec/unit/cookbook/syntax_check_spec.rb +0 -0
- data/spec/unit/cookbook_loader_spec.rb +26 -63
- data/spec/unit/cookbook_manifest_spec.rb +0 -0
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +2 -1
- data/spec/unit/cookbook_spec.rb +0 -0
- data/spec/unit/cookbook_uploader_spec.rb +0 -0
- data/spec/unit/cookbook_version_file_specificity_spec.rb +9 -9
- data/spec/unit/cookbook_version_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +0 -0
- data/spec/unit/data_bag_item_spec.rb +7 -7
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +667 -661
- data/spec/unit/decorator/lazy_array_spec.rb +0 -0
- data/spec/unit/decorator/lazy_spec.rb +0 -0
- data/spec/unit/decorator_spec.rb +2 -2
- data/spec/unit/deprecated_spec.rb +2 -2
- data/spec/unit/deprecation_spec.rb +0 -0
- data/spec/unit/digester_spec.rb +0 -0
- data/spec/unit/dsl/data_query_spec.rb +2 -3
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +2 -2
- data/spec/unit/dsl/reboot_pending_spec.rb +0 -0
- data/spec/unit/dsl/recipe_spec.rb +0 -0
- data/spec/unit/dsl/registry_helper_spec.rb +0 -0
- data/spec/unit/dsl/resources_spec.rb +0 -0
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +1 -2
- data/spec/unit/encrypted_data_bag_item_spec.rb +1 -2
- data/spec/unit/environment_spec.rb +9 -9
- data/spec/unit/event_dispatch/dispatcher_spec.rb +51 -4
- data/spec/unit/event_dispatch/dsl_spec.rb +1 -1
- data/spec/unit/exceptions_spec.rb +0 -0
- data/spec/unit/file_access_control_spec.rb +0 -0
- data/spec/unit/file_cache_spec.rb +0 -0
- data/spec/unit/file_content_management/deploy/cp_spec.rb +0 -0
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +2 -2
- data/spec/unit/file_content_management/tempfile_spec.rb +0 -0
- data/spec/unit/formatters/base_spec.rb +0 -0
- data/spec/unit/formatters/doc_spec.rb +0 -18
- data/spec/unit/formatters/error_description_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/api_error_formatting_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +0 -0
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +0 -0
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
- data/spec/unit/guard_interpreter_spec.rb +0 -0
- data/spec/unit/handler/json_file_spec.rb +0 -0
- data/spec/unit/handler_spec.rb +0 -0
- data/spec/unit/http/api_versions_spec.rb +0 -0
- data/spec/unit/http/authenticator_spec.rb +2 -3
- data/spec/unit/http/basic_client_spec.rb +0 -0
- data/spec/unit/http/http_request_spec.rb +0 -0
- data/spec/unit/http/json_input_spec.rb +1 -1
- data/spec/unit/http/simple_spec.rb +0 -0
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +0 -0
- data/spec/unit/http/ssl_policies_spec.rb +0 -0
- data/spec/unit/http/validate_content_length_spec.rb +0 -0
- data/spec/unit/http_spec.rb +0 -0
- data/spec/unit/json_compat_spec.rb +0 -0
- data/spec/unit/key_spec.rb +7 -7
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -0
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -0
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +216 -0
- data/spec/unit/knife/bootstrap_spec.rb +1438 -255
- data/spec/unit/knife/client_bulk_delete_spec.rb +4 -4
- data/spec/unit/knife/client_create_spec.rb +1 -18
- data/spec/unit/knife/client_delete_spec.rb +0 -0
- data/spec/unit/knife/client_edit_spec.rb +0 -0
- data/spec/unit/knife/client_list_spec.rb +0 -0
- data/spec/unit/knife/client_reregister_spec.rb +0 -0
- data/spec/unit/knife/client_show_spec.rb +0 -0
- data/spec/unit/knife/configure_client_spec.rb +1 -1
- data/spec/unit/knife/configure_spec.rb +1 -1
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_list_spec.rb +0 -0
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -0
- data/spec/unit/knife/cookbook_metadata_spec.rb +4 -4
- data/spec/unit/knife/cookbook_show_spec.rb +0 -1
- data/spec/unit/knife/cookbook_upload_spec.rb +4 -33
- data/spec/unit/knife/core/bootstrap_context_spec.rb +38 -55
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -0
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +4 -4
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +2 -4
- data/spec/unit/knife/core/node_editor_spec.rb +8 -8
- data/spec/unit/knife/core/object_loader_spec.rb +0 -0
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -0
- data/spec/unit/knife/core/ui_spec.rb +0 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +278 -0
- data/spec/unit/knife/data_bag_create_spec.rb +0 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +0 -0
- data/spec/unit/knife/data_bag_from_file_spec.rb +1 -2
- data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -0
- data/spec/unit/knife/data_bag_show_spec.rb +1 -2
- data/spec/unit/knife/environment_compare_spec.rb +0 -0
- data/spec/unit/knife/environment_create_spec.rb +0 -0
- data/spec/unit/knife/environment_delete_spec.rb +0 -0
- data/spec/unit/knife/environment_edit_spec.rb +0 -0
- data/spec/unit/knife/environment_from_file_spec.rb +0 -0
- data/spec/unit/knife/environment_list_spec.rb +0 -0
- data/spec/unit/knife/environment_show_spec.rb +0 -0
- data/spec/unit/knife/key_create_spec.rb +1 -1
- data/spec/unit/knife/key_delete_spec.rb +3 -3
- data/spec/unit/knife/key_edit_spec.rb +4 -4
- data/spec/unit/knife/key_helper.rb +0 -0
- data/spec/unit/knife/key_list_spec.rb +1 -1
- data/spec/unit/knife/key_show_spec.rb +3 -3
- data/spec/unit/knife/node_bulk_delete_spec.rb +3 -3
- data/spec/unit/knife/node_delete_spec.rb +2 -2
- data/spec/unit/knife/node_edit_spec.rb +1 -1
- data/spec/unit/knife/node_environment_set_spec.rb +1 -1
- data/spec/unit/knife/node_from_file_spec.rb +1 -1
- data/spec/unit/knife/node_list_spec.rb +0 -0
- data/spec/unit/knife/node_policy_set_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/node_show_spec.rb +1 -1
- data/spec/unit/knife/raw_spec.rb +2 -2
- data/spec/unit/knife/role_bulk_delete_spec.rb +2 -2
- data/spec/unit/knife/role_create_spec.rb +1 -1
- data/spec/unit/knife/role_delete_spec.rb +1 -1
- data/spec/unit/knife/role_edit_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_from_file_spec.rb +1 -1
- data/spec/unit/knife/role_list_spec.rb +0 -0
- data/spec/unit/knife/role_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_show_spec.rb +0 -0
- data/spec/unit/knife/ssh_spec.rb +17 -27
- data/spec/unit/knife/ssl_check_spec.rb +0 -0
- data/spec/unit/knife/ssl_fetch_spec.rb +0 -0
- data/spec/unit/knife/status_spec.rb +2 -3
- data/spec/unit/knife/supermarket_download_spec.rb +0 -0
- data/spec/unit/knife/supermarket_install_spec.rb +4 -5
- data/spec/unit/knife/supermarket_share_spec.rb +1 -1
- data/spec/unit/knife/supermarket_unshare_spec.rb +0 -0
- data/spec/unit/knife/tag_create_spec.rb +0 -0
- data/spec/unit/knife/tag_delete_spec.rb +0 -0
- data/spec/unit/knife/tag_list_spec.rb +0 -0
- data/spec/unit/knife/user_create_spec.rb +0 -30
- data/spec/unit/knife/user_delete_spec.rb +1 -20
- data/spec/unit/knife/user_edit_spec.rb +0 -18
- data/spec/unit/knife/user_list_spec.rb +0 -0
- data/spec/unit/knife/user_reregister_spec.rb +0 -18
- data/spec/unit/knife/user_show_spec.rb +0 -19
- data/spec/unit/knife_spec.rb +77 -53
- data/spec/unit/log/syslog_spec.rb +0 -0
- data/spec/unit/log/winevt_spec.rb +0 -0
- data/spec/unit/log_spec.rb +0 -0
- data/spec/unit/lwrp_spec.rb +19 -19
- data/spec/unit/mash_spec.rb +0 -0
- data/spec/unit/mixin/api_version_request_handling_spec.rb +0 -0
- data/spec/unit/mixin/checksum_spec.rb +0 -0
- data/spec/unit/mixin/convert_to_class_name_spec.rb +0 -0
- data/spec/unit/mixin/deep_merge_spec.rb +0 -0
- data/spec/unit/mixin/deprecation_spec.rb +0 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +0 -0
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
- data/spec/unit/mixin/lazy_module_include.rb +0 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +0 -0
- data/spec/unit/mixin/params_validate_spec.rb +10 -10
- data/spec/unit/mixin/path_sanity_spec.rb +0 -0
- data/spec/unit/mixin/powershell_exec_spec.rb +0 -0
- data/spec/unit/mixin/powershell_out_spec.rb +0 -0
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +0 -0
- data/spec/unit/mixin/properties_spec.rb +4 -4
- data/spec/unit/mixin/proxified_socket_spec.rb +0 -0
- data/spec/unit/mixin/securable_spec.rb +0 -0
- data/spec/unit/mixin/shell_out_spec.rb +3 -135
- data/spec/unit/mixin/subclass_directive_spec.rb +0 -0
- data/spec/unit/mixin/template_spec.rb +8 -49
- data/spec/unit/mixin/unformatter_spec.rb +2 -1
- data/spec/unit/mixin/uris_spec.rb +0 -0
- data/spec/unit/mixin/user_context_spec.rb +2 -1
- data/spec/unit/mixin/versioned_api_spec.rb +0 -0
- data/spec/unit/mixin/which.rb +0 -2
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +3 -3
- data/spec/unit/mixin/xml_escape_spec.rb +0 -0
- data/spec/unit/monkey_patches/uri_spec.rb +0 -0
- data/spec/unit/monologger_spec.rb +0 -0
- data/spec/unit/node/attribute_spec.rb +45 -21
- data/spec/unit/node/immutable_collections_spec.rb +49 -50
- data/spec/unit/node/vivid_mash_spec.rb +106 -1
- data/spec/unit/node_map_spec.rb +37 -3
- data/spec/unit/node_spec.rb +12 -20
- data/spec/unit/org_spec.rb +3 -3
- data/spec/unit/platform/query_helpers_spec.rb +0 -0
- data/spec/unit/policy_builder/dynamic_spec.rb +0 -12
- data/spec/unit/policy_builder/expand_node_object_spec.rb +3 -3
- data/spec/unit/policy_builder/policyfile_spec.rb +2 -2
- data/spec/unit/policy_builder_spec.rb +0 -0
- data/spec/unit/property/state_spec.rb +25 -26
- data/spec/unit/property/validation_spec.rb +13 -14
- data/spec/unit/property_spec.rb +102 -10
- data/spec/unit/provider/apt_preference_spec.rb +0 -0
- data/spec/unit/provider/apt_repository_spec.rb +0 -0
- data/spec/unit/provider/apt_update_spec.rb +6 -6
- data/spec/unit/provider/cookbook_file/content_spec.rb +0 -0
- data/spec/unit/provider/cookbook_file_spec.rb +0 -0
- data/spec/unit/provider/cron/unix_spec.rb +0 -0
- data/spec/unit/provider/cron_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +0 -0
- data/spec/unit/provider/dsc_resource_spec.rb +3 -6
- data/spec/unit/provider/dsc_script_spec.rb +1 -1
- data/spec/unit/provider/execute_spec.rb +0 -0
- data/spec/unit/provider/file/content_spec.rb +0 -0
- data/spec/unit/provider/file_spec.rb +0 -0
- data/spec/unit/provider/git_spec.rb +38 -38
- data/spec/unit/provider/group/dscl_spec.rb +1 -1
- data/spec/unit/provider/group/gpasswd_spec.rb +0 -0
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/group/groupmod_spec.rb +0 -0
- data/spec/unit/provider/group/pw_spec.rb +0 -0
- data/spec/unit/provider/group/solaris_spec.rb +106 -0
- data/spec/unit/provider/group/suse_spec.rb +0 -0
- data/spec/unit/provider/group/usermod_spec.rb +0 -3
- data/spec/unit/provider/group/windows_spec.rb +0 -0
- data/spec/unit/provider/group_spec.rb +3 -2
- data/spec/unit/provider/http_request_spec.rb +0 -0
- data/spec/unit/provider/ifconfig/aix_spec.rb +0 -0
- data/spec/unit/provider/ifconfig/debian_spec.rb +0 -0
- data/spec/unit/provider/ifconfig/redhat_spec.rb +0 -0
- data/spec/unit/provider/ifconfig_spec.rb +13 -53
- data/spec/unit/provider/launchd_spec.rb +8 -16
- data/spec/unit/provider/link_spec.rb +11 -22
- data/spec/unit/provider/log_spec.rb +0 -0
- data/spec/unit/provider/mdadm_spec.rb +0 -0
- data/spec/unit/provider/mount/aix_spec.rb +0 -0
- data/spec/unit/provider/mount/mount_spec.rb +31 -31
- data/spec/unit/provider/mount/solaris_spec.rb +11 -11
- data/spec/unit/provider/mount/windows_spec.rb +0 -0
- data/spec/unit/provider/mount_spec.rb +0 -0
- data/spec/unit/provider/ohai_spec.rb +1 -1
- data/spec/unit/provider/osx_profile_spec.rb +7 -5
- data/spec/unit/provider/package/apt_spec.rb +31 -9
- data/spec/unit/provider/package/bff_spec.rb +1 -1
- data/spec/unit/provider/package/cab_spec.rb +1 -1
- data/spec/unit/provider/package/chocolatey_spec.rb +8 -8
- data/spec/unit/provider/package/deb_spec.rb +135 -0
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +0 -0
- data/spec/unit/provider/package/dpkg_spec.rb +28 -1
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +0 -1
- data/spec/unit/provider/package/freebsd/port_spec.rb +2 -14
- data/spec/unit/provider/package/homebrew_spec.rb +0 -0
- data/spec/unit/provider/package/ips_spec.rb +0 -0
- data/spec/unit/provider/package/macports_spec.rb +0 -0
- data/spec/unit/provider/package/msu_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +11 -15
- data/spec/unit/provider/package/pacman_spec.rb +0 -0
- data/spec/unit/provider/package/paludis_spec.rb +0 -0
- data/spec/unit/provider/package/portage_spec.rb +0 -0
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/rpm_spec.rb +18 -7
- data/spec/unit/provider/package/rubygems_spec.rb +0 -0
- data/spec/unit/provider/package/smartos_spec.rb +3 -3
- data/spec/unit/provider/package/snap_spec.rb +208 -0
- data/spec/unit/provider/package/solaris_spec.rb +0 -0
- data/spec/unit/provider/package/windows/exe_spec.rb +9 -9
- data/spec/unit/provider/package/windows/msi_spec.rb +7 -7
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +0 -0
- data/spec/unit/provider/package/windows_spec.rb +1 -2
- data/spec/unit/provider/package/yum/python_helper_spec.rb +0 -0
- data/spec/unit/provider/package/yum/yum_cache_spec.rb +1 -1
- data/spec/unit/provider/package/zypper_spec.rb +22 -31
- data/spec/unit/provider/package_spec.rb +1 -223
- data/spec/unit/provider/powershell_script_spec.rb +25 -16
- data/spec/unit/provider/registry_key_spec.rb +1 -1
- data/spec/unit/provider/remote_directory_spec.rb +6 -6
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +0 -0
- data/spec/unit/provider/remote_file/content_spec.rb +0 -0
- data/spec/unit/provider/remote_file/fetcher_spec.rb +0 -0
- data/spec/unit/provider/remote_file/ftp_spec.rb +0 -0
- data/spec/unit/provider/remote_file/http_spec.rb +0 -0
- data/spec/unit/provider/remote_file/local_file_spec.rb +0 -0
- data/spec/unit/provider/remote_file/network_file_spec.rb +0 -0
- data/spec/unit/provider/remote_file/sftp_spec.rb +0 -0
- data/spec/unit/provider/remote_file_spec.rb +0 -0
- data/spec/unit/provider/route_spec.rb +11 -11
- data/spec/unit/provider/ruby_block_spec.rb +0 -0
- data/spec/unit/provider/script_spec.rb +0 -0
- data/spec/unit/provider/service/aix_service_spec.rb +0 -0
- data/spec/unit/provider/service/aixinit_service_spec.rb +0 -0
- data/spec/unit/provider/service/arch_service_spec.rb +11 -11
- data/spec/unit/provider/service/debian_service_spec.rb +1 -2
- data/spec/unit/provider/service/freebsd_service_spec.rb +19 -23
- data/spec/unit/provider/service/gentoo_service_spec.rb +2 -2
- data/spec/unit/provider/service/init_service_spec.rb +9 -9
- data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
- data/spec/unit/provider/service/invokercd_service_spec.rb +9 -9
- data/spec/unit/provider/service/macosx_spec.rb +1 -1
- data/spec/unit/provider/service/openbsd_service_spec.rb +11 -15
- data/spec/unit/provider/service/redhat_spec.rb +0 -0
- data/spec/unit/provider/service/simple_service_spec.rb +5 -5
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +0 -0
- data/spec/unit/provider/service/systemd_service_spec.rb +2 -26
- data/spec/unit/provider/service/upstart_service_spec.rb +14 -14
- data/spec/unit/provider/service/windows_spec.rb +168 -144
- data/spec/unit/provider/service_spec.rb +0 -0
- data/spec/unit/provider/subversion_spec.rb +4 -8
- data/spec/unit/provider/systemd_unit_spec.rb +148 -197
- data/spec/unit/provider/template/content_spec.rb +28 -28
- data/spec/unit/provider/template_spec.rb +0 -0
- data/spec/unit/provider/user/aix_spec.rb +0 -0
- data/spec/unit/provider/user/dscl_spec.rb +99 -321
- data/spec/unit/provider/user/linux_spec.rb +0 -1
- data/spec/unit/provider/user/pw_spec.rb +0 -0
- data/spec/unit/provider/user/solaris_spec.rb +0 -0
- data/spec/unit/provider/user/windows_spec.rb +0 -0
- data/spec/unit/provider/user_spec.rb +46 -62
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -0
- data/spec/unit/provider/windows_env_spec.rb +0 -0
- data/spec/unit/provider/windows_path_spec.rb +0 -0
- data/spec/unit/provider/windows_task_spec.rb +2 -7
- data/spec/unit/provider/yum_repository_spec.rb +0 -0
- data/spec/unit/provider/zypper_repository_spec.rb +0 -0
- data/spec/unit/provider_resolver_spec.rb +8 -31
- data/spec/unit/provider_spec.rb +4 -2
- data/spec/unit/pure_application_spec.rb +0 -0
- data/spec/unit/recipe_spec.rb +3 -8
- data/spec/unit/resource/apt_package_spec.rb +10 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -0
- data/spec/unit/resource/apt_repository_spec.rb +0 -0
- data/spec/unit/resource/apt_update_spec.rb +0 -0
- data/spec/unit/resource/archive_file_spec.rb +47 -0
- data/spec/unit/resource/bash_spec.rb +0 -0
- data/spec/unit/resource/batch_spec.rb +1 -1
- data/spec/unit/resource/bff_package_spec.rb +0 -0
- data/spec/unit/resource/breakpoint_spec.rb +0 -0
- data/spec/unit/resource/build_essential_spec.rb +0 -0
- data/spec/unit/resource/cab_package_spec.rb +0 -0
- data/spec/unit/resource/chef_gem_spec.rb +1 -4
- data/spec/unit/resource/chef_handler_spec.rb +0 -0
- data/spec/unit/resource/chocolatey_config_spec.rb +0 -5
- data/spec/unit/resource/chocolatey_package_spec.rb +0 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +0 -5
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +0 -0
- data/spec/unit/resource/conditional_spec.rb +0 -0
- data/spec/unit/resource/cookbook_file_spec.rb +0 -0
- data/spec/unit/resource/cron_access_spec.rb +0 -0
- data/spec/unit/resource/cron_d_spec.rb +0 -0
- data/spec/unit/resource/cron_spec.rb +0 -0
- data/spec/unit/resource/csh_spec.rb +0 -0
- data/spec/unit/resource/directory_spec.rb +1 -1
- data/spec/unit/resource/dmg_package_spec.rb +0 -0
- data/spec/unit/resource/dnf_package_spec.rb +1 -1
- data/spec/unit/resource/dpkg_package_spec.rb +10 -0
- data/spec/unit/resource/dsc_resource_spec.rb +1 -1
- data/spec/unit/resource/dsc_script_spec.rb +0 -0
- data/spec/unit/resource/execute_spec.rb +0 -0
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +0 -0
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/file_spec.rb +1 -1
- data/spec/unit/resource/freebsd_package_spec.rb +1 -27
- data/spec/unit/resource/gem_package_spec.rb +0 -0
- data/spec/unit/resource/git_spec.rb +0 -0
- data/spec/unit/resource/group_spec.rb +1 -1
- data/spec/unit/resource/homebrew_cask_spec.rb +0 -0
- data/spec/unit/resource/homebrew_package_spec.rb +0 -0
- data/spec/unit/resource/homebrew_tap_spec.rb +0 -0
- data/spec/unit/resource/hostname_spec.rb +0 -0
- data/spec/unit/resource/http_request_spec.rb +0 -0
- data/spec/unit/resource/ifconfig_spec.rb +0 -0
- data/spec/unit/resource/ips_package_spec.rb +0 -0
- data/spec/unit/resource/kernel_module_spec.rb +0 -5
- data/spec/unit/resource/ksh_spec.rb +0 -0
- data/spec/unit/resource/launchd_spec.rb +0 -0
- data/spec/unit/resource/link_spec.rb +1 -1
- data/spec/unit/resource/locale_spec.rb +185 -22
- data/spec/unit/resource/log_spec.rb +0 -0
- data/spec/unit/resource/macos_user_defaults_spec.rb +0 -0
- data/spec/unit/{knife/osc_user_list_spec.rb → resource/macosx_service.rb} +14 -14
- data/spec/unit/resource/macports_package_spec.rb +0 -0
- data/spec/unit/resource/mdadm_spec.rb +0 -0
- data/spec/unit/resource/mount_spec.rb +0 -0
- data/spec/unit/resource/msu_package_spec.rb +0 -0
- data/spec/unit/resource/ohai_hint_spec.rb +0 -0
- data/spec/unit/resource/ohai_spec.rb +0 -4
- data/spec/unit/resource/openbsd_package_spec.rb +0 -0
- data/spec/unit/resource/{openssl_dhparam.rb → openssl_dhparam_spec.rb} +0 -0
- data/spec/unit/resource/openssl_ec_private_key_spec.rb +0 -0
- data/spec/unit/resource/openssl_ec_public_key_spec.rb +0 -0
- data/spec/unit/resource/openssl_rsa_private_key_spec.rb +0 -0
- data/spec/unit/resource/openssl_rsa_public_key_spec.rb +0 -0
- data/spec/unit/resource/openssl_x509_certificate_spec.rb +0 -0
- data/spec/unit/resource/openssl_x509_crl_spec.rb +0 -0
- data/spec/unit/resource/openssl_x509_request.rb +0 -0
- data/spec/unit/resource/osx_profile_spec.rb +1 -2
- data/spec/unit/resource/package_spec.rb +0 -10
- data/spec/unit/resource/pacman_package_spec.rb +0 -0
- data/spec/unit/resource/paludis_package_spec.rb +0 -0
- data/spec/unit/resource/perl_spec.rb +0 -0
- data/spec/unit/resource/portage_package_spec.rb +0 -0
- data/spec/unit/resource/powershell_package_source_spec.rb +0 -0
- data/spec/unit/resource/powershell_package_spec.rb +0 -0
- data/spec/unit/resource/powershell_script_spec.rb +30 -13
- data/spec/unit/resource/python_spec.rb +0 -0
- data/spec/unit/resource/reboot_spec.rb +0 -0
- data/spec/unit/resource/registry_key_spec.rb +3 -3
- data/spec/unit/resource/remote_directory_spec.rb +22 -9
- data/spec/unit/resource/remote_file_spec.rb +0 -0
- data/spec/unit/resource/resource_notification_spec.rb +0 -0
- data/spec/unit/resource/rhsm_errata_level_spec.rb +0 -0
- data/spec/unit/resource/rhsm_errata_spec.rb +0 -0
- data/spec/unit/resource/rhsm_register_spec.rb +0 -0
- data/spec/unit/resource/rhsm_repo_spec.rb +0 -0
- data/spec/unit/resource/rhsm_subscription_spec.rb +0 -0
- data/spec/unit/resource/route_spec.rb +7 -2
- data/spec/unit/resource/rpm_package_spec.rb +0 -0
- data/spec/unit/resource/ruby_block_spec.rb +0 -0
- data/spec/unit/resource/ruby_spec.rb +0 -0
- data/spec/unit/resource/scm_spec.rb +0 -0
- data/spec/unit/resource/script_spec.rb +0 -0
- data/spec/unit/resource/service_spec.rb +76 -83
- data/spec/unit/resource/smartos_package_spec.rb +0 -0
- data/spec/unit/resource/snap_package_spec.rb +60 -0
- data/spec/unit/resource/solaris_package_spec.rb +0 -0
- data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +0 -5
- data/spec/unit/resource/subversion_spec.rb +0 -0
- data/spec/unit/resource/sudo_spec.rb +0 -0
- data/spec/unit/resource/swap_file_spec.rb +0 -0
- data/spec/unit/resource/sysctl_spec.rb +0 -0
- data/spec/unit/resource/systemd_unit_spec.rb +0 -0
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/{timezone.rb → timezone_spec.rb} +0 -0
- data/spec/unit/resource/user_spec.rb +21 -22
- data/spec/unit/resource/windows_ad_join_spec.rb +0 -0
- data/spec/unit/resource/windows_auto_run_spec.rb +0 -0
- data/spec/unit/resource/{windows_certificate.rb → windows_certificate_spec.rb} +0 -0
- data/spec/unit/resource/windows_dfs_folder_spec.rb +39 -0
- data/spec/unit/resource/windows_dfs_namespace_spec.rb +39 -0
- data/spec/unit/{audit/rspec_formatter_spec.rb → resource/windows_dfs_server_spec.rb} +14 -9
- data/spec/unit/resource/windows_dns_record_spec.rb +55 -0
- data/spec/unit/resource/windows_dns_zone_spec.rb +51 -0
- data/spec/unit/resource/windows_env_spec.rb +1 -1
- data/spec/unit/resource/{windows_feature_dism.rb → windows_feature_dism_spec.rb} +0 -0
- data/spec/unit/resource/{windows_feature_powershell.rb → windows_feature_powershell_spec.rb} +0 -0
- data/spec/unit/resource/{windows_feature.rb → windows_feature_spec.rb} +0 -0
- data/spec/unit/resource/windows_firewall_rule_spec.rb +0 -0
- data/spec/unit/resource/windows_font_spec.rb +0 -0
- data/spec/unit/resource/windows_package_spec.rb +0 -0
- data/spec/unit/resource/windows_pagefile_spec.rb +0 -0
- data/spec/unit/resource/windows_path_spec.rb +0 -0
- data/spec/unit/resource/windows_printer_port_spec.rb +0 -0
- data/spec/unit/resource/windows_printer_spec.rb +0 -0
- data/spec/unit/resource/windows_service_spec.rb +33 -18
- data/spec/unit/resource/{windows_share.rb → windows_share_spec.rb} +0 -0
- data/spec/unit/resource/windows_shortcut_spec.rb +0 -0
- data/spec/unit/resource/windows_task_spec.rb +2 -2
- data/spec/unit/resource/windows_uac_spec.rb +50 -0
- data/spec/unit/resource/windows_workgroup_spec.rb +0 -0
- data/spec/unit/resource/yum_package_spec.rb +1 -1
- data/spec/unit/resource/yum_repository_spec.rb +0 -0
- data/spec/unit/resource/zypper_package_spec.rb +0 -0
- data/spec/unit/resource/zypper_repository_spec.rb +0 -0
- data/spec/unit/resource_builder_spec.rb +0 -0
- data/spec/unit/resource_collection/resource_list_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +7 -7
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +2 -2
- data/spec/unit/resource_collection_spec.rb +4 -12
- data/spec/unit/resource_definition_spec.rb +2 -2
- data/spec/unit/resource_inspector_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +224 -198
- data/spec/unit/resource_resolver_spec.rb +0 -0
- data/spec/unit/resource_spec.rb +44 -21
- data/spec/unit/role_spec.rb +2 -2
- data/spec/unit/run_context/child_run_context_spec.rb +0 -7
- data/spec/unit/run_context/cookbook_compiler_spec.rb +36 -24
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/run_list/run_list_expansion_spec.rb +6 -9
- data/spec/unit/run_list/run_list_item_spec.rb +0 -0
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +0 -0
- data/spec/unit/run_list_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +0 -0
- data/spec/unit/run_status_spec.rb +0 -0
- data/spec/unit/runner_spec.rb +3 -3
- data/spec/unit/scan_access_control_spec.rb +0 -0
- data/spec/unit/search/query_spec.rb +2 -3
- data/spec/unit/server_api_spec.rb +0 -0
- data/spec/unit/server_api_versions_spec.rb +0 -0
- data/spec/unit/shell/model_wrapper_spec.rb +1 -1
- data/spec/unit/shell/shell_ext_spec.rb +0 -0
- data/spec/unit/shell/shell_session_spec.rb +11 -8
- data/spec/unit/shell_spec.rb +2 -1
- data/spec/unit/train_transport_spec.rb +79 -0
- data/spec/unit/user_spec.rb +4 -4
- data/spec/unit/user_v1_spec.rb +3 -3
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +0 -0
- data/spec/unit/util/dsc/configuration_generator_spec.rb +0 -0
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +0 -0
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +0 -0
- data/spec/unit/util/dsc/resource_store.rb +0 -0
- data/spec/unit/util/editor_spec.rb +1 -1
- data/spec/unit/util/file_edit_spec.rb +0 -0
- data/spec/unit/util/powershell/cmdlet_spec.rb +0 -0
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -3
- data/spec/unit/util/selinux_spec.rb +0 -0
- data/spec/unit/util/threaded_job_queue_spec.rb +2 -2
- data/spec/unit/util/windows/logon_session_spec.rb +0 -0
- data/spec/unit/version/platform_spec.rb +0 -0
- data/spec/unit/version_class_spec.rb +4 -4
- data/spec/unit/version_constraint/platform_spec.rb +0 -0
- data/spec/unit/version_constraint_spec.rb +0 -0
- data/spec/unit/version_string_spec.rb +0 -0
- data/spec/unit/win32/error_spec.rb +0 -0
- data/spec/unit/win32/link_spec.rb +0 -0
- data/spec/unit/win32/registry_spec.rb +5 -5
- data/spec/unit/win32/security_spec.rb +1 -2
- data/spec/unit/windows_service_spec.rb +0 -0
- data/tasks/announce.rb +0 -0
- data/tasks/bin/run_external_test +5 -1
- data/tasks/dependencies.rb +0 -0
- data/tasks/rspec.rb +0 -0
- data/tasks/templates/release.md.erb +0 -0
- metadata +169 -162
- data/bin/chef-client +0 -25
- data/bin/chef-resource-inspector +0 -26
- data/bin/chef-shell +0 -31
- data/lib/chef/audit/audit_event_proxy.rb +0 -93
- data/lib/chef/audit/audit_reporter.rb +0 -176
- data/lib/chef/audit/control_group_data.rb +0 -145
- data/lib/chef/audit/logger.rb +0 -36
- data/lib/chef/audit/rspec_formatter.rb +0 -37
- data/lib/chef/audit/runner.rb +0 -196
- data/lib/chef/data_collector/messages.rb +0 -100
- data/lib/chef/data_collector/messages/helpers.rb +0 -159
- data/lib/chef/data_collector/resource_report.rb +0 -123
- data/lib/chef/dsl/audit.rb +0 -51
- data/lib/chef/dsl/chef_provisioning.rb +0 -57
- data/lib/chef/knife/cookbook_create.rb +0 -29
- data/lib/chef/knife/cookbook_test.rb +0 -95
- data/lib/chef/knife/osc_user_create.rb +0 -97
- data/lib/chef/knife/osc_user_delete.rb +0 -51
- data/lib/chef/knife/osc_user_edit.rb +0 -58
- data/lib/chef/knife/osc_user_list.rb +0 -47
- data/lib/chef/knife/osc_user_reregister.rb +0 -64
- data/lib/chef/knife/osc_user_show.rb +0 -53
- data/lib/chef/provider/package/freebsd/pkg.rb +0 -114
- data/lib/chef/provider/user/useradd.rb +0 -161
- data/spec/data/mac_users/10.7-8.plist.xml +0 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
- data/spec/data/mac_users/10.7.plist.xml +0 -559
- data/spec/data/mac_users/10.7.shadow.xml +0 -11
- data/spec/data/mac_users/10.8.plist.xml +0 -559
- data/spec/data/mac_users/10.8.shadow.xml +0 -21
- data/spec/data/templates/failed.erb +0 -5
- data/spec/functional/assets/inittest +0 -36
- data/spec/functional/audit/rspec_formatter_spec.rb +0 -54
- data/spec/functional/audit/runner_spec.rb +0 -121
- data/spec/functional/resource/insserv_spec.rb +0 -206
- data/spec/integration/recipes/unified_mode_spec.rb +0 -876
- data/spec/support/shared/context/client.rb +0 -306
- data/spec/support/shared/examples/client.rb +0 -104
- data/spec/unit/audit/audit_event_proxy_spec.rb +0 -325
- data/spec/unit/audit/audit_reporter_spec.rb +0 -444
- data/spec/unit/audit/control_group_data_spec.rb +0 -487
- data/spec/unit/audit/logger_spec.rb +0 -42
- data/spec/unit/audit/runner_spec.rb +0 -144
- data/spec/unit/data_collector/messages/helpers_spec.rb +0 -202
- data/spec/unit/data_collector/messages_spec.rb +0 -329
- data/spec/unit/data_collector/resource_report_spec.rb +0 -145
- data/spec/unit/dsl/audit_spec.rb +0 -43
- data/spec/unit/knife/cookbook_create_spec.rb +0 -42
- data/spec/unit/knife/cookbook_test_spec.rb +0 -84
- data/spec/unit/knife/osc_user_create_spec.rb +0 -93
- data/spec/unit/knife/osc_user_delete_spec.rb +0 -44
- data/spec/unit/knife/osc_user_edit_spec.rb +0 -52
- data/spec/unit/knife/osc_user_reregister_spec.rb +0 -58
- data/spec/unit/knife/osc_user_show_spec.rb +0 -46
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +0 -274
data/lib/chef/json_compat.rb
CHANGED
data/lib/chef/key.rb
CHANGED
@@ -16,10 +16,10 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
require_relative "json_compat"
|
20
|
+
require_relative "mixin/params_validate"
|
21
|
+
require_relative "exceptions"
|
22
|
+
require_relative "server_api"
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
# Class for interacting with a chef key object. Can be used to create new keys,
|
data/lib/chef/knife.rb
CHANGED
@@ -18,24 +18,25 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require "forwardable"
|
21
|
-
|
21
|
+
require_relative "version"
|
22
22
|
require "mixlib/cli"
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
23
|
+
require_relative "workstation_config_loader"
|
24
|
+
require_relative "mixin/convert_to_class_name"
|
25
|
+
require_relative "mixin/path_sanity"
|
26
|
+
require_relative "knife/core/subcommand_loader"
|
27
|
+
require_relative "knife/core/ui"
|
28
|
+
require_relative "local_mode"
|
29
|
+
require_relative "server_api"
|
30
|
+
require_relative "http/authenticator"
|
31
|
+
require_relative "http/http_request"
|
32
|
+
require_relative "http"
|
33
33
|
require "pp"
|
34
|
+
require_relative "dist"
|
34
35
|
|
35
36
|
class Chef
|
36
37
|
class Knife
|
37
38
|
|
38
|
-
Chef::HTTP::HTTPRequest.user_agent = "Chef Knife#{Chef::HTTP::HTTPRequest::UA_COMMON}"
|
39
|
+
Chef::HTTP::HTTPRequest.user_agent = "#{Chef::Dist::PRODUCT} Knife#{Chef::HTTP::HTTPRequest::UA_COMMON}"
|
39
40
|
|
40
41
|
include Mixlib::CLI
|
41
42
|
include Chef::Mixin::PathSanity
|
@@ -63,12 +64,6 @@ class Chef
|
|
63
64
|
attr_accessor :name_args
|
64
65
|
attr_accessor :ui
|
65
66
|
|
66
|
-
# knife acl subcommands are grouped in this category using this constant to verify.
|
67
|
-
OPSCODE_HOSTED_CHEF_ACCESS_CONTROL = %w{acl group user}.freeze
|
68
|
-
|
69
|
-
# knife opc subcommands are grouped in this category using this constant to verify.
|
70
|
-
CHEF_ORGANIZATION_MANAGEMENT = %w{opc}.freeze
|
71
|
-
|
72
67
|
# Configure mixlib-cli to always separate defaults from user-supplied CLI options
|
73
68
|
def self.use_separate_defaults?
|
74
69
|
true
|
@@ -275,14 +270,10 @@ class Chef
|
|
275
270
|
ui.info("If this is a recently installed plugin, please run 'knife rehash' to update the subcommands cache.")
|
276
271
|
end
|
277
272
|
|
278
|
-
if
|
279
|
-
list_commands("CHEF ORGANIZATION MANAGEMENT")
|
280
|
-
elsif OPSCODE_HOSTED_CHEF_ACCESS_CONTROL.include?(args[0])
|
281
|
-
list_commands("OPSCODE HOSTED CHEF ACCESS CONTROL")
|
282
|
-
elsif category_commands = guess_category(args)
|
273
|
+
if category_commands = guess_category(args)
|
283
274
|
list_commands(category_commands)
|
284
275
|
elsif OFFICIAL_PLUGINS.include?(args[0]) # command was an uninstalled official chef knife plugin
|
285
|
-
ui.info("Use
|
276
|
+
ui.info("Use `#{Chef::Dist::EXEC} gem install knife-#{args[0]}` to install the plugin into ChefDK")
|
286
277
|
else
|
287
278
|
list_commands
|
288
279
|
end
|
@@ -326,6 +317,10 @@ class Chef
|
|
326
317
|
exit 1
|
327
318
|
end
|
328
319
|
|
320
|
+
# Grab a copy before config merge occurs, so that we can later identify
|
321
|
+
# whare a given config value is sourced from.
|
322
|
+
@original_config = config.dup
|
323
|
+
|
329
324
|
# copy Mixlib::CLI over so that it can be configured in config.rb/knife.rb
|
330
325
|
# config file
|
331
326
|
Chef::Config[:verbosity] = config[:verbosity] if config[:verbosity]
|
@@ -354,7 +349,9 @@ class Chef
|
|
354
349
|
# overwrite.
|
355
350
|
def config_file_settings
|
356
351
|
cli_keys.each_with_object({}) do |key, memo|
|
357
|
-
|
352
|
+
if Chef::Config[:knife].key?(key)
|
353
|
+
memo[key] = Chef::Config[:knife][key]
|
354
|
+
end
|
358
355
|
end
|
359
356
|
end
|
360
357
|
|
@@ -363,11 +360,32 @@ class Chef
|
|
363
360
|
# config_file_settings - Chef::Config[:knife] sub-hash
|
364
361
|
# config - mixlib-cli settings (accessor from the mixin)
|
365
362
|
def merge_configs
|
363
|
+
# Update our original_config - if someone has created a knife command
|
364
|
+
# instance directly, they are likely ot have set cmd.config values directly
|
365
|
+
# as well, at which point our saved original config is no longer up to date.
|
366
|
+
@original_config = config.dup
|
366
367
|
# other code may have a handle to the config object, so use Hash#replace to deliberately
|
367
368
|
# update-in-place.
|
368
|
-
config.replace(
|
369
|
-
|
370
|
-
|
369
|
+
config.replace(default_config.merge(config_file_settings).merge(config))
|
370
|
+
end
|
371
|
+
|
372
|
+
#
|
373
|
+
# Determine the source of a given configuration key
|
374
|
+
#
|
375
|
+
# @argument key [Symbol] a configuration key
|
376
|
+
# @return [Symbol,NilClass] return the source of the config key,
|
377
|
+
# one of:
|
378
|
+
# - :cli - this was explicitly provided on the CLI
|
379
|
+
# - :config - this came from Chef::Config[:knife]
|
380
|
+
# - :cli_default - came from a declared CLI `option`'s `default` value.
|
381
|
+
# - nil - if the key could not be found in any source.
|
382
|
+
# This can happen when it is invalid, or has been
|
383
|
+
# set directly into #config without then calling #merge_config
|
384
|
+
def config_source(key)
|
385
|
+
return :cli if @original_config.include? key
|
386
|
+
return :config if config_file_settings.key? key
|
387
|
+
return :cli_default if default_config.include? key
|
388
|
+
nil
|
371
389
|
end
|
372
390
|
|
373
391
|
# Catch-all method that does any massaging needed for various config
|
@@ -456,7 +474,7 @@ class Chef
|
|
456
474
|
run
|
457
475
|
end
|
458
476
|
rescue Exception => e
|
459
|
-
raise if raise_exception ||
|
477
|
+
raise if raise_exception || Chef::Config[:verbosity] == 2
|
460
478
|
humanize_exception(e)
|
461
479
|
exit 100
|
462
480
|
end
|
@@ -470,7 +488,7 @@ class Chef
|
|
470
488
|
when OpenSSL::SSL::SSLError
|
471
489
|
ui.error "Could not establish a secure connection to the server."
|
472
490
|
ui.info "Use `knife ssl check` to troubleshoot your SSL configuration."
|
473
|
-
ui.info "If your
|
491
|
+
ui.info "If your server uses a self-signed certificate, you can use"
|
474
492
|
ui.info "`knife ssl fetch` to make knife trust the server's certificates."
|
475
493
|
ui.info ""
|
476
494
|
ui.info "Original Exception: #{e.class.name}: #{e.message}"
|
@@ -503,7 +521,7 @@ class Chef
|
|
503
521
|
ui.error "You authenticated successfully to #{server_url} as #{username} but you are not authorized for this action."
|
504
522
|
proxy_env_vars = ENV.to_hash.keys.map(&:downcase) & %w{http_proxy https_proxy ftp_proxy socks_proxy no_proxy}
|
505
523
|
unless proxy_env_vars.empty?
|
506
|
-
ui.error "There are proxy servers configured, your
|
524
|
+
ui.error "There are proxy servers configured, your server url may need to be added to NO_PROXY."
|
507
525
|
end
|
508
526
|
ui.info "Response: #{format_rest_error(response)}"
|
509
527
|
when Net::HTTPBadRequest
|
@@ -526,10 +544,10 @@ class Chef
|
|
526
544
|
client_api_version = version_header["request_version"]
|
527
545
|
min_server_version = version_header["min_version"]
|
528
546
|
max_server_version = version_header["max_version"]
|
529
|
-
ui.error "The version
|
530
|
-
ui.info "The request that Knife sent was using API version #{client_api_version}"
|
531
|
-
ui.info "The
|
532
|
-
ui.info "Please either update your Chef
|
547
|
+
ui.error "The API version that Knife is using is not supported by the server you sent this request to."
|
548
|
+
ui.info "The request that Knife sent was using API version #{client_api_version}."
|
549
|
+
ui.info "The server you sent the request to supports a min API verson of #{min_server_version} and a max API version of #{max_server_version}."
|
550
|
+
ui.info "Please either update your #{Chef::Dist::PRODUCT} or the server to be a compatible set."
|
533
551
|
else
|
534
552
|
ui.error response.message
|
535
553
|
ui.info "Response: #{format_rest_error(response)}"
|
@@ -604,14 +622,14 @@ class Chef
|
|
604
622
|
|
605
623
|
def rest
|
606
624
|
@rest ||= begin
|
607
|
-
|
625
|
+
require_relative "server_api"
|
608
626
|
Chef::ServerAPI.new(Chef::Config[:chef_server_url])
|
609
627
|
end
|
610
628
|
end
|
611
629
|
|
612
630
|
def noauth_rest
|
613
631
|
@rest ||= begin
|
614
|
-
|
632
|
+
require_relative "http/simple_json"
|
615
633
|
Chef::HTTP::SimpleJSON.new(Chef::Config[:chef_server_url])
|
616
634
|
end
|
617
635
|
end
|
data/lib/chef/knife/bootstrap.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright 2010-
|
3
|
+
# Copyright:: Copyright 2010-2019, 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");
|
@@ -16,233 +16,330 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
require "
|
23
|
-
require "
|
24
|
-
require "chef/util/path_helper"
|
25
|
-
require_relative "../version_string"
|
19
|
+
require_relative "../knife"
|
20
|
+
require_relative "data_bag_secret_options"
|
21
|
+
require_relative "../dist"
|
22
|
+
require "license_acceptance/cli_flags/mixlib_cli"
|
23
|
+
require "license_acceptance/acceptor"
|
26
24
|
|
27
25
|
class Chef
|
28
26
|
class Knife
|
29
27
|
class Bootstrap < Knife
|
30
28
|
include DataBagSecretOptions
|
29
|
+
include LicenseAcceptance::CLIFlags::MixlibCLI
|
31
30
|
|
32
|
-
|
33
|
-
|
31
|
+
SUPPORTED_CONNECTION_PROTOCOLS = %w{ssh winrm}.freeze
|
32
|
+
WINRM_AUTH_PROTOCOL_LIST = %w{plaintext kerberos ssl negotiate}.freeze
|
34
33
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
require "net/ssh"
|
41
|
-
require "net/ssh/multi"
|
42
|
-
require "chef/knife/ssh"
|
43
|
-
Chef::Knife::Ssh.load_deps
|
44
|
-
end
|
34
|
+
# Common connectivity options
|
35
|
+
option :connection_user,
|
36
|
+
short: "-U USERNAME",
|
37
|
+
long: "--connection-user USERNAME",
|
38
|
+
description: "Authenticate to the target host with this user account."
|
45
39
|
|
46
|
-
|
47
|
-
|
48
|
-
option :ssh_user,
|
49
|
-
short: "-x USERNAME",
|
50
|
-
long: "--ssh-user USERNAME",
|
51
|
-
description: "The ssh username",
|
52
|
-
default: "root"
|
53
|
-
|
54
|
-
option :ssh_password,
|
40
|
+
option :connection_password,
|
55
41
|
short: "-P PASSWORD",
|
56
|
-
long: "--
|
57
|
-
description: "
|
42
|
+
long: "--connection-password PASSWORD",
|
43
|
+
description: "Authenticate to the target host with this password."
|
58
44
|
|
59
|
-
option :
|
45
|
+
option :connection_port,
|
60
46
|
short: "-p PORT",
|
61
|
-
long: "--
|
62
|
-
description: "The
|
63
|
-
|
47
|
+
long: "--connection-port PORT",
|
48
|
+
description: "The port on the target node to connect to."
|
49
|
+
|
50
|
+
option :connection_protocol,
|
51
|
+
short: "-o PROTOCOL",
|
52
|
+
long: "--connection-protocol PROTOCOL",
|
53
|
+
description: "The protocol to use to connect to the target node.",
|
54
|
+
in: SUPPORTED_CONNECTION_PROTOCOLS
|
55
|
+
|
56
|
+
option :max_wait,
|
57
|
+
short: "-W SECONDS",
|
58
|
+
long: "--max-wait SECONDS",
|
59
|
+
description: "The maximum time to wait for the initial connection to be established."
|
60
|
+
|
61
|
+
option :session_timeout,
|
62
|
+
long: "--session-timeout SECONDS",
|
63
|
+
description: "The number of seconds to wait for each connection operation to be acknowledged while running bootstrap.",
|
64
|
+
proc: Proc.new { |protocol| Chef::Config[:knife][:session_timeout] = protocol },
|
65
|
+
default: 60
|
66
|
+
|
67
|
+
# WinRM Authentication
|
68
|
+
option :winrm_ssl_peer_fingerprint,
|
69
|
+
long: "--winrm-ssl-peer-fingerprint FINGERPRINT",
|
70
|
+
description: "SSL certificate fingerprint expected from the target."
|
71
|
+
|
72
|
+
option :ca_trust_file,
|
73
|
+
short: "-f CA_TRUST_PATH",
|
74
|
+
long: "--ca-trust-file CA_TRUST_PATH",
|
75
|
+
description: "The Certificate Authority (CA) trust file used for SSL transport."
|
76
|
+
|
77
|
+
option :winrm_no_verify_cert,
|
78
|
+
long: "--winrm-no-verify-cert",
|
79
|
+
description: "Do not verify the SSL certificate of the target node for WinRM.",
|
80
|
+
boolean: true
|
64
81
|
|
82
|
+
option :winrm_ssl,
|
83
|
+
long: "--winrm-ssl",
|
84
|
+
description: "Use SSL in the WinRM connection."
|
85
|
+
|
86
|
+
option :winrm_auth_method,
|
87
|
+
short: "-w AUTH-METHOD",
|
88
|
+
long: "--winrm-auth-method AUTH-METHOD",
|
89
|
+
description: "The WinRM authentication method to use.",
|
90
|
+
proc: Proc.new { |protocol| Chef::Config[:knife][:winrm_auth_method] = protocol },
|
91
|
+
in: WINRM_AUTH_PROTOCOL_LIST
|
92
|
+
|
93
|
+
option :winrm_basic_auth_only,
|
94
|
+
long: "--winrm-basic-auth-only",
|
95
|
+
description: "For WinRM basic authentication when using the 'ssl' auth method.",
|
96
|
+
boolean: true
|
97
|
+
|
98
|
+
# This option was provided in knife bootstrap windows winrm,
|
99
|
+
# but it is ignored in knife-windows/WinrmSession, and so remains unimplemeneted here.
|
100
|
+
# option :kerberos_keytab_file,
|
101
|
+
# :short => "-T KEYTAB_FILE",
|
102
|
+
# :long => "--keytab-file KEYTAB_FILE",
|
103
|
+
# :description => "The Kerberos keytab file used for authentication",
|
104
|
+
# :proc => Proc.new { |keytab| Chef::Config[:knife][:kerberos_keytab_file] = keytab }
|
105
|
+
|
106
|
+
option :kerberos_realm,
|
107
|
+
short: "-R KERBEROS_REALM",
|
108
|
+
long: "--kerberos-realm KERBEROS_REALM",
|
109
|
+
description: "The Kerberos realm used for authentication.",
|
110
|
+
proc: Proc.new { |protocol| Chef::Config[:knife][:kerberos_realm] = protocol }
|
111
|
+
|
112
|
+
option :kerberos_service,
|
113
|
+
short: "-S KERBEROS_SERVICE",
|
114
|
+
long: "--kerberos-service KERBEROS_SERVICE",
|
115
|
+
description: "The Kerberos service used for authentication.",
|
116
|
+
proc: Proc.new { |protocol| Chef::Config[:knife][:kerberos_service] = protocol }
|
117
|
+
|
118
|
+
## SSH Authentication
|
65
119
|
option :ssh_gateway,
|
66
120
|
short: "-G GATEWAY",
|
67
121
|
long: "--ssh-gateway GATEWAY",
|
68
|
-
description: "The
|
122
|
+
description: "The SSH gateway.",
|
69
123
|
proc: Proc.new { |key| Chef::Config[:knife][:ssh_gateway] = key }
|
70
124
|
|
71
125
|
option :ssh_gateway_identity,
|
72
126
|
long: "--ssh-gateway-identity SSH_GATEWAY_IDENTITY",
|
73
|
-
description: "The SSH identity file used for gateway authentication",
|
127
|
+
description: "The SSH identity file used for gateway authentication.",
|
74
128
|
proc: Proc.new { |key| Chef::Config[:knife][:ssh_gateway_identity] = key }
|
75
129
|
|
76
|
-
option :
|
130
|
+
option :ssh_forward_agent,
|
77
131
|
short: "-A",
|
78
|
-
long: "--forward-agent",
|
79
|
-
description: "Enable SSH agent forwarding",
|
132
|
+
long: "--ssh-forward-agent",
|
133
|
+
description: "Enable SSH agent forwarding.",
|
80
134
|
boolean: true
|
81
135
|
|
82
|
-
option :identity_file,
|
83
|
-
long: "--identity-file IDENTITY_FILE",
|
84
|
-
description: "The SSH identity file used for authentication. [DEPRECATED] Use --ssh-identity-file instead."
|
85
|
-
|
86
136
|
option :ssh_identity_file,
|
87
137
|
short: "-i IDENTITY_FILE",
|
88
138
|
long: "--ssh-identity-file IDENTITY_FILE",
|
89
|
-
description: "The SSH identity file used for authentication"
|
139
|
+
description: "The SSH identity file used for authentication."
|
90
140
|
|
91
|
-
option :
|
92
|
-
|
93
|
-
|
94
|
-
|
141
|
+
option :ssh_verify_host_key,
|
142
|
+
long: "--ssh-verify-host-key VALUE",
|
143
|
+
description: "Verify host key. Default is 'always'.",
|
144
|
+
in: %w{always accept_new accept_new_or_local_tunnel never}
|
95
145
|
|
96
|
-
|
97
|
-
|
98
|
-
|
146
|
+
#
|
147
|
+
# bootstrap options
|
148
|
+
#
|
99
149
|
|
150
|
+
# client.rb content via chef-full/bootstrap_context
|
100
151
|
option :bootstrap_version,
|
101
152
|
long: "--bootstrap-version VERSION",
|
102
|
-
description: "The version of Chef to install",
|
153
|
+
description: "The version of #{Chef::Dist::PRODUCT} to install.",
|
103
154
|
proc: lambda { |v| Chef::Config[:knife][:bootstrap_version] = v }
|
104
155
|
|
156
|
+
option :channel,
|
157
|
+
long: "--channel CHANNEL",
|
158
|
+
description: "Install from the given channel. Default is 'stable'.",
|
159
|
+
default: "stable",
|
160
|
+
in: %w{stable current unstable}
|
161
|
+
|
162
|
+
# client.rb content via chef-full/bootstrap_context
|
105
163
|
option :bootstrap_proxy,
|
106
164
|
long: "--bootstrap-proxy PROXY_URL",
|
107
|
-
description: "The proxy server for the node being bootstrapped",
|
165
|
+
description: "The proxy server for the node being bootstrapped.",
|
108
166
|
proc: Proc.new { |p| Chef::Config[:knife][:bootstrap_proxy] = p }
|
109
167
|
|
168
|
+
# client.rb content via bootstrap_context
|
110
169
|
option :bootstrap_proxy_user,
|
111
170
|
long: "--bootstrap-proxy-user PROXY_USER",
|
112
|
-
description: "The proxy authentication username for the node being bootstrapped"
|
171
|
+
description: "The proxy authentication username for the node being bootstrapped."
|
113
172
|
|
173
|
+
# client.rb content via bootstrap_context
|
114
174
|
option :bootstrap_proxy_pass,
|
115
175
|
long: "--bootstrap-proxy-pass PROXY_PASS",
|
116
|
-
description: "The proxy authentication password for the node being bootstrapped"
|
176
|
+
description: "The proxy authentication password for the node being bootstrapped."
|
117
177
|
|
178
|
+
# client.rb content via bootstrap_context
|
118
179
|
option :bootstrap_no_proxy,
|
119
180
|
long: "--bootstrap-no-proxy [NO_PROXY_URL|NO_PROXY_IP]",
|
120
|
-
description: "Do not proxy locations for the node being bootstrapped; this option is used internally by
|
181
|
+
description: "Do not proxy locations for the node being bootstrapped; this option is used internally by Chef.",
|
121
182
|
proc: Proc.new { |np| Chef::Config[:knife][:bootstrap_no_proxy] = np }
|
122
183
|
|
184
|
+
# client.rb content via bootstrap_context
|
123
185
|
option :bootstrap_template,
|
124
186
|
short: "-t TEMPLATE",
|
125
187
|
long: "--bootstrap-template TEMPLATE",
|
126
|
-
description: "Bootstrap Chef using a built-in or custom template. Set to the full path of an erb template or use one of the built-in templates."
|
188
|
+
description: "Bootstrap #{Chef::Dist::PRODUCT} using a built-in or custom template. Set to the full path of an erb template or use one of the built-in templates."
|
127
189
|
|
190
|
+
# client.rb content via bootstrap_context
|
191
|
+
option :node_ssl_verify_mode,
|
192
|
+
long: "--node-ssl-verify-mode [peer|none]",
|
193
|
+
description: "Whether or not to verify the SSL cert for all HTTPS requests.",
|
194
|
+
proc: Proc.new { |v|
|
195
|
+
valid_values = %w{none peer}
|
196
|
+
unless valid_values.include?(v)
|
197
|
+
raise "Invalid value '#{v}' for --node-ssl-verify-mode. Valid values are: #{valid_values.join(", ")}"
|
198
|
+
end
|
199
|
+
v
|
200
|
+
}
|
201
|
+
|
202
|
+
# bootstrap_context - client.rb
|
203
|
+
option :node_verify_api_cert,
|
204
|
+
long: "--[no-]node-verify-api-cert",
|
205
|
+
description: "Verify the SSL cert for HTTPS requests to the #{Chef::Dist::SERVER_PRODUCT} API.",
|
206
|
+
boolean: true
|
207
|
+
|
208
|
+
# runtime - sudo settings (train handles sudo)
|
128
209
|
option :use_sudo,
|
129
210
|
long: "--sudo",
|
130
|
-
description: "Execute the bootstrap via sudo",
|
211
|
+
description: "Execute the bootstrap via sudo.",
|
131
212
|
boolean: true
|
132
213
|
|
214
|
+
# runtime - sudo settings (train handles sudo)
|
133
215
|
option :preserve_home,
|
134
216
|
long: "--sudo-preserve-home",
|
135
|
-
description: "Preserve non-root user HOME environment variable with sudo",
|
217
|
+
description: "Preserve non-root user HOME environment variable with sudo.",
|
136
218
|
boolean: true
|
137
219
|
|
220
|
+
# runtime - sudo settings (train handles sudo)
|
138
221
|
option :use_sudo_password,
|
139
222
|
long: "--use-sudo-password",
|
140
|
-
description: "Execute the bootstrap via sudo with password",
|
223
|
+
description: "Execute the bootstrap via sudo with password.",
|
141
224
|
boolean: false
|
142
225
|
|
226
|
+
# runtime - client_builder
|
227
|
+
option :chef_node_name,
|
228
|
+
short: "-N NAME",
|
229
|
+
long: "--node-name NAME",
|
230
|
+
description: "The node name for your new node."
|
231
|
+
|
232
|
+
# runtime - client_builder - set runlist when creating node
|
143
233
|
option :run_list,
|
144
234
|
short: "-r RUN_LIST",
|
145
235
|
long: "--run-list RUN_LIST",
|
146
|
-
description: "Comma separated list of roles/recipes to apply",
|
236
|
+
description: "Comma separated list of roles/recipes to apply.",
|
147
237
|
proc: lambda { |o| o.split(/[\s,]+/) },
|
148
238
|
default: []
|
149
239
|
|
240
|
+
# runtime - client_builder - set policy name when creating node
|
150
241
|
option :policy_name,
|
151
242
|
long: "--policy-name POLICY_NAME",
|
152
|
-
description: "Policyfile name to use (--policy-group must also be given)",
|
243
|
+
description: "Policyfile name to use (--policy-group must also be given).",
|
153
244
|
default: nil
|
154
245
|
|
246
|
+
# runtime - client_builder - set policy group when creating node
|
155
247
|
option :policy_group,
|
156
248
|
long: "--policy-group POLICY_GROUP",
|
157
|
-
description: "Policy group name to use (--policy-name must also be given)",
|
249
|
+
description: "Policy group name to use (--policy-name must also be given).",
|
158
250
|
default: nil
|
159
251
|
|
252
|
+
# runtime - client_builder - node tags
|
160
253
|
option :tags,
|
161
254
|
long: "--tags TAGS",
|
162
|
-
description: "Comma separated list of tags to apply to the node",
|
255
|
+
description: "Comma separated list of tags to apply to the node.",
|
163
256
|
proc: lambda { |o| o.split(/[\s,]+/) },
|
164
257
|
default: []
|
165
258
|
|
259
|
+
# bootstrap template
|
166
260
|
option :first_boot_attributes,
|
167
261
|
short: "-j JSON_ATTRIBS",
|
168
262
|
long: "--json-attributes",
|
169
|
-
description: "A JSON string to be added to the first run of
|
263
|
+
description: "A JSON string to be added to the first run of #{Chef::Dist::CLIENT}.",
|
170
264
|
proc: lambda { |o| Chef::JSONCompat.parse(o) },
|
171
265
|
default: nil
|
172
266
|
|
267
|
+
# bootstrap template
|
173
268
|
option :first_boot_attributes_from_file,
|
174
269
|
long: "--json-attribute-file FILE",
|
175
|
-
description: "A JSON file to be used to the first run of
|
270
|
+
description: "A JSON file to be used to the first run of #{Chef::Dist::CLIENT}.",
|
176
271
|
proc: lambda { |o| Chef::JSONCompat.parse(File.read(o)) },
|
177
272
|
default: nil
|
178
273
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
274
|
+
# Note that several of the below options are used by bootstrap template,
|
275
|
+
# but only from the passed-in knife config; it does not use the
|
276
|
+
# config from the CLI for those values. We cannot always used the merged
|
277
|
+
# config, because in some cases the knife keys thIn those cases, the option
|
278
|
+
# will have a proc that assigns the value into Chef::Config[:knife]
|
184
279
|
|
280
|
+
# bootstrap template
|
281
|
+
# Create ohai hints in /etc/chef/ohai/hints, fname=hintname, content=value
|
185
282
|
option :hint,
|
186
283
|
long: "--hint HINT_NAME[=HINT_FILE]",
|
187
|
-
description: "Specify Ohai
|
284
|
+
description: "Specify an Ohai hint to be set on the bootstrap target. Use multiple --hint options to specify multiple hints.",
|
188
285
|
proc: Proc.new { |h|
|
189
286
|
Chef::Config[:knife][:hints] ||= Hash.new
|
190
287
|
name, path = h.split("=")
|
191
288
|
Chef::Config[:knife][:hints][name] = path ? Chef::JSONCompat.parse(::File.read(path)) : Hash.new
|
192
289
|
}
|
193
290
|
|
291
|
+
# bootstrap override: url of a an installer shell script touse in place of omnitruck
|
292
|
+
# Note that the bootstrap template _only_ references this out of Chef::Config, and not from
|
293
|
+
# the provided options to knife bootstrap, so we set the Chef::Config option here.
|
194
294
|
option :bootstrap_url,
|
195
295
|
long: "--bootstrap-url URL",
|
196
|
-
description: "URL to a custom installation script",
|
296
|
+
description: "URL to a custom installation script.",
|
197
297
|
proc: Proc.new { |u| Chef::Config[:knife][:bootstrap_url] = u }
|
198
298
|
|
299
|
+
option :msi_url, # Windows target only
|
300
|
+
short: "-m URL",
|
301
|
+
long: "--msi-url URL",
|
302
|
+
description: "Location of the #{Chef::Dist::PRODUCT} MSI. The default templates will prefer to download from this location. The MSI will be downloaded from #{Chef::Dist::WEBSITE} if not provided (Windows).",
|
303
|
+
default: ""
|
304
|
+
|
305
|
+
# bootstrap override: Do this instead of our own setup.sh from omnitruck. Causes bootstrap_url to be ignored.
|
199
306
|
option :bootstrap_install_command,
|
200
307
|
long: "--bootstrap-install-command COMMANDS",
|
201
|
-
description: "Custom command to install
|
308
|
+
description: "Custom command to install #{Chef::Dist::PRODUCT}.",
|
202
309
|
proc: Proc.new { |ic| Chef::Config[:knife][:bootstrap_install_command] = ic }
|
203
310
|
|
311
|
+
# bootstrap template: Run this command first in the bootstrap script
|
204
312
|
option :bootstrap_preinstall_command,
|
205
|
-
|
206
|
-
|
207
|
-
|
313
|
+
long: "--bootstrap-preinstall-command COMMANDS",
|
314
|
+
description: "Custom commands to run before installing #{Chef::Dist::PRODUCT}.",
|
315
|
+
proc: Proc.new { |preic| Chef::Config[:knife][:bootstrap_preinstall_command] = preic }
|
208
316
|
|
317
|
+
# bootstrap template
|
209
318
|
option :bootstrap_wget_options,
|
210
319
|
long: "--bootstrap-wget-options OPTIONS",
|
211
|
-
description: "Add options to wget when installing
|
320
|
+
description: "Add options to wget when installing #{Chef::Dist::PRODUCT}.",
|
212
321
|
proc: Proc.new { |wo| Chef::Config[:knife][:bootstrap_wget_options] = wo }
|
213
322
|
|
323
|
+
# bootstrap template
|
214
324
|
option :bootstrap_curl_options,
|
215
325
|
long: "--bootstrap-curl-options OPTIONS",
|
216
|
-
description: "Add options to curl when install
|
326
|
+
description: "Add options to curl when install #{Chef::Dist::PRODUCT}.",
|
217
327
|
proc: Proc.new { |co| Chef::Config[:knife][:bootstrap_curl_options] = co }
|
218
328
|
|
219
|
-
|
220
|
-
long: "--node-ssl-verify-mode [peer|none]",
|
221
|
-
description: "Whether or not to verify the SSL cert for all HTTPS requests.",
|
222
|
-
proc: Proc.new { |v|
|
223
|
-
valid_values = %w{none peer}
|
224
|
-
unless valid_values.include?(v)
|
225
|
-
raise "Invalid value '#{v}' for --node-ssl-verify-mode. Valid values are: #{valid_values.join(", ")}"
|
226
|
-
end
|
227
|
-
v
|
228
|
-
}
|
229
|
-
|
230
|
-
option :node_verify_api_cert,
|
231
|
-
long: "--[no-]node-verify-api-cert",
|
232
|
-
description: "Verify the SSL cert for HTTPS requests to the Chef server API.",
|
233
|
-
boolean: true
|
234
|
-
|
329
|
+
# chef_vault_handler
|
235
330
|
option :bootstrap_vault_file,
|
236
331
|
long: "--bootstrap-vault-file VAULT_FILE",
|
237
|
-
description: "A JSON file with a list of vault(s) and item(s) to be updated"
|
332
|
+
description: "A JSON file with a list of vault(s) and item(s) to be updated."
|
238
333
|
|
334
|
+
# chef_vault_handler
|
239
335
|
option :bootstrap_vault_json,
|
240
336
|
long: "--bootstrap-vault-json VAULT_JSON",
|
241
|
-
description: "A JSON string with the vault(s) and item(s) to be updated"
|
337
|
+
description: "A JSON string with the vault(s) and item(s) to be updated."
|
242
338
|
|
339
|
+
# chef_vault_handler
|
243
340
|
option :bootstrap_vault_item,
|
244
341
|
long: "--bootstrap-vault-item VAULT_ITEM",
|
245
|
-
description: 'A single vault and item to update as "vault:item"',
|
342
|
+
description: 'A single vault and item to update as "vault:item".',
|
246
343
|
proc: Proc.new { |i|
|
247
344
|
(vault, item) = i.split(/:/)
|
248
345
|
Chef::Config[:knife][:bootstrap_vault_item] ||= {}
|
@@ -251,30 +348,104 @@ class Chef
|
|
251
348
|
Chef::Config[:knife][:bootstrap_vault_item]
|
252
349
|
}
|
253
350
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
351
|
+
DEPRECATED_FLAGS = {
|
352
|
+
# deprecated_key: [new_key, deprecated_long]
|
353
|
+
# optional third element: replacement_value - if converting from bool
|
354
|
+
# (--bool-option) to valued flag (--new-option VALUE)
|
355
|
+
# this will be the value that is assigned the new flag when the old flag is used.
|
356
|
+
auth_timeout: [:max_wait, "--max-wait SECONDS" ],
|
357
|
+
host_key_verify:
|
358
|
+
[:ssh_verify_host_key, "--[no-]host-key-verify"],
|
359
|
+
prerelease:
|
360
|
+
[:channel, "--prerelease", "current"],
|
361
|
+
ssh_user:
|
362
|
+
[:connection_user, "--ssh-user USER"],
|
363
|
+
ssh_password:
|
364
|
+
[:connection_password, "--ssh-password PASSWORD"],
|
365
|
+
ssh_port:
|
366
|
+
[:connection_port, "-ssh-port" ],
|
367
|
+
ssl_peer_fingerprint:
|
368
|
+
[:winrm_ssl_peer_fingerprint, "--ssl-peer-fingerprint FINGERPRINT"],
|
369
|
+
winrm_user:
|
370
|
+
[:connection_user, "--winrm-user USER"],
|
371
|
+
winrm_password:
|
372
|
+
[:connection_password, "--winrm-password"],
|
373
|
+
winrm_port:
|
374
|
+
[:connection_port, "--winrm-port"],
|
375
|
+
winrm_authentication_protocol:
|
376
|
+
[:winrm_auth_method, "--winrm-authentication-protocol PROTOCOL"],
|
377
|
+
winrm_session_timeout:
|
378
|
+
[:session_timeout, "--winrm-session-timeout MINUTES"],
|
379
|
+
}.freeze
|
380
|
+
|
381
|
+
DEPRECATED_FLAGS.each do |deprecated_key, deprecation_entry|
|
382
|
+
new_key, deprecated_long, replacement_value = deprecation_entry
|
383
|
+
new_long = options[new_key][:long]
|
384
|
+
new_long_desc = if replacement_value.nil?
|
385
|
+
new_long
|
386
|
+
else
|
387
|
+
"#{new_long.split(" ").first} #{replacement_value}"
|
388
|
+
end
|
389
|
+
option(deprecated_key, long: deprecated_long,
|
390
|
+
description: "This flag is deprecated. Please use '#{new_long_desc}' instead.",
|
391
|
+
boolean: options[new_key][:boolean] || !replacement_value.nil?,
|
392
|
+
# Put deprecated options at the end of the options list
|
393
|
+
on: :tail)
|
394
|
+
end
|
395
|
+
|
396
|
+
attr_reader :connection
|
397
|
+
|
398
|
+
deps do
|
399
|
+
require "erubis"
|
400
|
+
|
401
|
+
require_relative "../json_compat"
|
402
|
+
require_relative "../util/path_helper"
|
403
|
+
require_relative "bootstrap/chef_vault_handler"
|
404
|
+
require_relative "bootstrap/client_builder"
|
405
|
+
require_relative "bootstrap/train_connector"
|
406
|
+
end
|
407
|
+
|
408
|
+
banner "knife bootstrap [PROTOCOL://][USER@]FQDN (options)"
|
258
409
|
|
259
|
-
def
|
260
|
-
|
261
|
-
@client_builder = Chef::Knife::Bootstrap::ClientBuilder.new(
|
410
|
+
def client_builder
|
411
|
+
@client_builder ||= Chef::Knife::Bootstrap::ClientBuilder.new(
|
262
412
|
chef_config: Chef::Config,
|
263
413
|
knife_config: config,
|
264
414
|
ui: ui
|
265
415
|
)
|
266
|
-
|
416
|
+
end
|
417
|
+
|
418
|
+
def chef_vault_handler
|
419
|
+
@chef_vault_handler ||= Chef::Knife::Bootstrap::ChefVaultHandler.new(
|
267
420
|
knife_config: config,
|
268
421
|
ui: ui
|
269
422
|
)
|
270
423
|
end
|
271
424
|
|
272
|
-
#
|
273
|
-
#
|
425
|
+
# Determine if we need to accept the Chef Infra license locally in order to successfully bootstrap
|
426
|
+
# the remote node. Remote 'chef-client' run will fail if it is >= 15 and the license is not accepted locally.
|
427
|
+
def check_license
|
428
|
+
Chef::Log.debug("Checking if we need to accept Chef license to bootstrap node")
|
429
|
+
version = config[:bootstrap_version] || Chef::VERSION.split(".").first
|
430
|
+
acceptor = LicenseAcceptance::Acceptor.new(logger: Chef::Log, provided: Chef::Config[:chef_license])
|
431
|
+
if acceptor.license_required?("chef", version)
|
432
|
+
Chef::Log.debug("License acceptance required for chef version: #{version}")
|
433
|
+
license_id = acceptor.id_from_mixlib("chef")
|
434
|
+
acceptor.check_and_persist(license_id, version)
|
435
|
+
Chef::Config[:chef_license] ||= acceptor.acceptance_value
|
436
|
+
end
|
437
|
+
end
|
438
|
+
|
439
|
+
# The default bootstrap template to use to bootstrap a server.
|
440
|
+
# This is a public API hook which knife plugins use or inherit and override.
|
274
441
|
#
|
275
442
|
# @return [String] Default bootstrap template
|
276
443
|
def default_bootstrap_template
|
277
|
-
|
444
|
+
if connection.windows?
|
445
|
+
"windows-#{Chef::Dist::CLIENT}-msi"
|
446
|
+
else
|
447
|
+
"chef-full"
|
448
|
+
end
|
278
449
|
end
|
279
450
|
|
280
451
|
def host_descriptor
|
@@ -292,15 +463,9 @@ class Chef
|
|
292
463
|
end
|
293
464
|
end
|
294
465
|
|
295
|
-
|
296
|
-
if host_descriptor
|
297
|
-
@user_name ||= host_descriptor.split("@").reverse[1]
|
298
|
-
end
|
299
|
-
end
|
300
|
-
|
466
|
+
# @return [String] The CLI specific bootstrap template or the default
|
301
467
|
def bootstrap_template
|
302
468
|
# Allow passing a bootstrap template or use the default
|
303
|
-
# @return [String] The CLI specific bootstrap template or the default
|
304
469
|
config[:bootstrap_template] || default_bootstrap_template
|
305
470
|
end
|
306
471
|
|
@@ -331,7 +496,7 @@ class Chef
|
|
331
496
|
raise Errno::ENOENT
|
332
497
|
end
|
333
498
|
|
334
|
-
Chef::Log.trace("Found bootstrap template
|
499
|
+
Chef::Log.trace("Found bootstrap template in #{File.dirname(template_file)}")
|
335
500
|
|
336
501
|
template_file
|
337
502
|
end
|
@@ -340,13 +505,18 @@ class Chef
|
|
340
505
|
@secret ||= encryption_secret_provided_ignore_encrypt_flag? ? read_secret : nil
|
341
506
|
end
|
342
507
|
|
508
|
+
# Establish bootstrap context for template rendering.
|
509
|
+
# Requires connection to be a live connection in order to determine
|
510
|
+
# the correct platform.
|
343
511
|
def bootstrap_context
|
344
|
-
@bootstrap_context ||=
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
512
|
+
@bootstrap_context ||=
|
513
|
+
if connection.windows?
|
514
|
+
require_relative "core/windows_bootstrap_context"
|
515
|
+
Knife::Core::WindowsBootstrapContext.new(config, config[:run_list], Chef::Config, secret)
|
516
|
+
else
|
517
|
+
require_relative "core/bootstrap_context"
|
518
|
+
Knife::Core::BootstrapContext.new(config, config[:run_list], Chef::Config, secret)
|
519
|
+
end
|
350
520
|
end
|
351
521
|
|
352
522
|
def first_boot_attributes
|
@@ -361,58 +531,189 @@ class Chef
|
|
361
531
|
end
|
362
532
|
|
363
533
|
def run
|
364
|
-
|
365
|
-
|
366
|
-
end
|
534
|
+
check_license
|
535
|
+
verify_deprecated_flags!
|
367
536
|
|
368
537
|
validate_name_args!
|
369
|
-
|
370
|
-
|
538
|
+
validate_protocol!
|
539
|
+
validate_first_boot_attributes!
|
540
|
+
validate_winrm_transport_opts!
|
541
|
+
validate_policy_options!
|
542
|
+
|
543
|
+
winrm_warn_no_ssl_verification
|
544
|
+
warn_on_short_session_timeout
|
371
545
|
|
372
546
|
$stdout.sync = true
|
547
|
+
register_client
|
548
|
+
connect!
|
549
|
+
|
550
|
+
unless client_builder.client_path.nil?
|
551
|
+
bootstrap_context.client_pem = client_builder.client_path
|
552
|
+
end
|
553
|
+
content = render_template
|
554
|
+
bootstrap_path = upload_bootstrap(content)
|
555
|
+
perform_bootstrap(bootstrap_path)
|
556
|
+
ensure
|
557
|
+
connection.del_file!(bootstrap_path) if connection && bootstrap_path
|
558
|
+
end
|
373
559
|
|
560
|
+
def register_client
|
374
561
|
# chef-vault integration must use the new client-side hawtness, otherwise to use the
|
375
562
|
# new client-side hawtness, just delete your validation key.
|
376
563
|
if chef_vault_handler.doing_chef_vault? ||
|
377
|
-
(Chef::Config[:validation_key] &&
|
564
|
+
(Chef::Config[:validation_key] &&
|
565
|
+
!File.exist?(File.expand_path(Chef::Config[:validation_key])))
|
378
566
|
|
379
567
|
unless config[:chef_node_name]
|
380
568
|
ui.error("You must pass a node name with -N when bootstrapping with user credentials")
|
381
569
|
exit 1
|
382
570
|
end
|
383
|
-
|
384
571
|
client_builder.run
|
385
|
-
|
386
572
|
chef_vault_handler.run(client_builder.client)
|
387
|
-
|
388
|
-
bootstrap_context.client_pem = client_builder.client_path
|
389
573
|
else
|
390
|
-
ui.info
|
391
|
-
|
392
|
-
|
574
|
+
ui.info <<~EOM
|
575
|
+
Performing legacy client registration with the validation key at #{Chef::Config[:validation_key]}..."
|
576
|
+
Delete your validation key in order to use your user credentials for client registration instead.
|
577
|
+
EOM
|
578
|
+
|
393
579
|
end
|
580
|
+
end
|
581
|
+
|
582
|
+
def perform_bootstrap(remote_bootstrap_script_path)
|
583
|
+
ui.info("Bootstrapping #{ui.color(server_name, :bold)}")
|
584
|
+
cmd = bootstrap_command(remote_bootstrap_script_path)
|
585
|
+
r = connection.run_command(cmd) do |data|
|
586
|
+
ui.msg("#{ui.color(" [#{connection.hostname}]", :cyan)} #{data}")
|
587
|
+
end
|
588
|
+
if r.exit_status != 0
|
589
|
+
ui.error("The following error occurred on #{server_name}:")
|
590
|
+
ui.error(r.stderr)
|
591
|
+
exit 1
|
592
|
+
end
|
593
|
+
end
|
394
594
|
|
595
|
+
def connect!
|
395
596
|
ui.info("Connecting to #{ui.color(server_name, :bold)}")
|
597
|
+
opts = connection_opts.dup
|
598
|
+
do_connect(opts)
|
599
|
+
rescue Train::Transports::SSHFailed => e
|
600
|
+
if e.message =~ /fingerprint (\S+) is unknown for "(.+)"/
|
601
|
+
fingerprint = $1
|
602
|
+
hostname, ip = $2.split(",")
|
603
|
+
# TODO: convert the SHA256 base64 value to hex with colons
|
604
|
+
# 'ssh' example output:
|
605
|
+
# RSA key fingerprint is e5:cb:c0:e2:21:3b:12:52:f8:ce:cb:00:24:e2:0c:92.
|
606
|
+
# ECDSA key fingerprint is 5d:67:61:08:a9:d7:01:fd:5e:ae:7e:09:40:ef:c0:3c.
|
607
|
+
puts "The authenticity of host '#{hostname} (#{ip})' can't be established."
|
608
|
+
puts "fingerprint is #{fingerprint}."
|
609
|
+
ui.confirm("Are you sure you want to continue connecting") # will exit 3 on N
|
610
|
+
# FIXME: this should save the key to known_hosts but doesn't appear to be
|
611
|
+
config[:ssh_verify_host_key] = :accept_new
|
612
|
+
connection_opts(reset: true)
|
613
|
+
retry
|
614
|
+
end
|
396
615
|
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
616
|
+
raise e
|
617
|
+
rescue Train::Error => e
|
618
|
+
require "net/ssh"
|
619
|
+
if e.cause && e.cause.class == Net::SSH::AuthenticationFailed
|
620
|
+
if connection.password_auth?
|
401
621
|
raise
|
402
622
|
else
|
403
|
-
ui.
|
404
|
-
|
623
|
+
ui.warn("Failed to authenticate #{opts[:user]} to #{server_name} - trying password auth")
|
624
|
+
password = ui.ask("Enter password for #{opts[:user]}@#{server_name}.") do |q|
|
625
|
+
q.echo = false
|
626
|
+
end
|
627
|
+
end
|
628
|
+
opts.merge! force_ssh_password_opts(password)
|
629
|
+
do_connect(opts)
|
630
|
+
else
|
631
|
+
raise
|
632
|
+
end
|
633
|
+
end
|
634
|
+
|
635
|
+
# url values override CLI flags, if you provide both
|
636
|
+
# we'll use the one that you gave in the URL.
|
637
|
+
def connection_protocol
|
638
|
+
return @connection_protocol if @connection_protocol
|
639
|
+
from_url = host_descriptor =~ /^(.*):\/\// ? $1 : nil
|
640
|
+
from_cli = config[:connection_protocol]
|
641
|
+
from_knife = Chef::Config[:knife][:connection_protocol]
|
642
|
+
@connection_protocol = from_url || from_cli || from_knife || "ssh"
|
643
|
+
end
|
644
|
+
|
645
|
+
def do_connect(conn_options)
|
646
|
+
@connection = TrainConnector.new(host_descriptor, connection_protocol, conn_options)
|
647
|
+
connection.connect!
|
648
|
+
end
|
649
|
+
|
650
|
+
# Fail if both first_boot_attributes and first_boot_attributes_from_file
|
651
|
+
# are set.
|
652
|
+
def validate_first_boot_attributes!
|
653
|
+
if @config[:first_boot_attributes] && @config[:first_boot_attributes_from_file]
|
654
|
+
raise Chef::Exceptions::BootstrapCommandInputError
|
655
|
+
end
|
656
|
+
true
|
657
|
+
end
|
658
|
+
|
659
|
+
# Fail if using plaintext auth without ssl because
|
660
|
+
# this can expose keys in plaintext on the wire.
|
661
|
+
# TODO test for this method
|
662
|
+
# TODO check that the protoocol is valid.
|
663
|
+
def validate_winrm_transport_opts!
|
664
|
+
return true unless winrm?
|
665
|
+
|
666
|
+
if Chef::Config[:validation_key] && !File.exist?(File.expand_path(Chef::Config[:validation_key]))
|
667
|
+
if config_value(:winrm_auth_method) == "plaintext" &&
|
668
|
+
config_value(:winrm_ssl) != true
|
669
|
+
ui.error <<~EOM
|
670
|
+
Validatorless bootstrap over unsecure winrm channels could expose your
|
671
|
+
key to network sniffing.
|
672
|
+
Please use a 'winrm_auth_method' other than 'plaintext',
|
673
|
+
or enable ssl on #{server_name} then use the --ssl flag
|
674
|
+
to connect.
|
675
|
+
EOM
|
676
|
+
|
677
|
+
exit 1
|
678
|
+
end
|
679
|
+
end
|
680
|
+
true
|
681
|
+
end
|
682
|
+
|
683
|
+
# If any deprecated flags are used, let the user know and
|
684
|
+
# update config[new-key] to the value given to the deprecated flag,
|
685
|
+
# or to the mapped value in case of changing flag type.
|
686
|
+
# If a deprecated flag and its corresponding replacement
|
687
|
+
# are both used, exit
|
688
|
+
def verify_deprecated_flags!
|
689
|
+
DEPRECATED_FLAGS.each do |deprecated_key, deprecation_entry|
|
690
|
+
new_key, deprecated_long, replacement_value = deprecation_entry
|
691
|
+
if config.key?(deprecated_key) && config_source(deprecated_key) == :cli
|
692
|
+
if config.key?(new_key) && config_source(new_key) == :cli
|
693
|
+
new_long = options[new_key][:long].split(" ").first
|
694
|
+
deprecated_long = deprecated_long.split(" ").first
|
695
|
+
ui.error <<~EOM
|
696
|
+
You provided both #{new_long} and #{deprecated_long}.
|
697
|
+
|
698
|
+
Please use one or the other, but note that
|
699
|
+
#{deprecated_long} is deprecated.
|
700
|
+
EOM
|
701
|
+
exit 1
|
702
|
+
else
|
703
|
+
config[new_key] = replacement_value || config[deprecated_key]
|
704
|
+
unless Chef::Config[:silence_deprecation_warnings] == true
|
705
|
+
ui.warn "You provided #{deprecated_long.split(" ").first}. #{options[deprecated_key][:description]}"
|
706
|
+
end
|
707
|
+
end
|
405
708
|
end
|
406
709
|
end
|
407
710
|
end
|
408
711
|
|
712
|
+
# fail if the server_name is nil
|
409
713
|
def validate_name_args!
|
410
714
|
if server_name.nil?
|
411
715
|
ui.error("Must pass an FQDN or ip to bootstrap")
|
412
716
|
exit 1
|
413
|
-
elsif server_name == "windows"
|
414
|
-
# catches "knife bootstrap windows" when that command is not installed
|
415
|
-
ui.warn("'knife bootstrap windows' specified, but the knife-windows plugin is not installed. Please install 'knife-windows' if you are attempting to bootstrap a Windows node via WinRM.")
|
416
717
|
end
|
417
718
|
end
|
418
719
|
|
@@ -423,7 +724,7 @@ class Chef
|
|
423
724
|
# * Policyfile options are set and --run-list is set as well
|
424
725
|
#
|
425
726
|
# @return [TrueClass] If options are valid.
|
426
|
-
def
|
727
|
+
def validate_policy_options!
|
427
728
|
if incomplete_policyfile_options?
|
428
729
|
ui.error("--policy-name and --policy-group must be specified together")
|
429
730
|
exit 1
|
@@ -431,67 +732,305 @@ class Chef
|
|
431
732
|
ui.error("Policyfile options and --run-list are exclusive")
|
432
733
|
exit 1
|
433
734
|
end
|
434
|
-
true
|
435
735
|
end
|
436
736
|
|
437
|
-
# Ensure
|
737
|
+
# Ensure a valid protocol is provided for target host connection
|
438
738
|
#
|
439
739
|
# The method call will cause the program to exit(1) if:
|
440
|
-
# *
|
441
|
-
# *
|
740
|
+
# * Conflicting protocols are given via the target URI and the --protocol option
|
741
|
+
# * The protocol is not a supported protocol
|
442
742
|
#
|
443
743
|
# @return [TrueClass] If options are valid.
|
444
|
-
def
|
445
|
-
|
446
|
-
|
744
|
+
def validate_protocol!
|
745
|
+
from_cli = config[:connection_protocol]
|
746
|
+
if from_cli && connection_protocol != from_cli
|
747
|
+
# Hanging indent to align with the ERROR: prefix
|
748
|
+
ui.error <<~EOM
|
749
|
+
The URL '#{host_descriptor}' indicates protocol is '#{connection_protocol}'
|
750
|
+
while the --protocol flag specifies '#{from_cli}'. Please include
|
751
|
+
only one or the other.
|
752
|
+
EOM
|
447
753
|
exit 1
|
448
754
|
end
|
449
755
|
|
756
|
+
unless SUPPORTED_CONNECTION_PROTOCOLS.include?(connection_protocol)
|
757
|
+
ui.error <<~EOM
|
758
|
+
Unsupported protocol '#{connection_protocol}'.
|
759
|
+
|
760
|
+
Supported protocols are: #{SUPPORTED_CONNECTION_PROTOCOLS.join(" ")}
|
761
|
+
EOM
|
762
|
+
exit 1
|
763
|
+
end
|
450
764
|
true
|
451
765
|
end
|
452
766
|
|
453
|
-
#
|
454
|
-
#
|
455
|
-
#
|
456
|
-
|
457
|
-
ssh = Chef::Knife::Ssh.new
|
458
|
-
ssh.ui = ui
|
459
|
-
ssh.name_args = [ server_name, ssh_command ]
|
460
|
-
ssh.config[:ssh_user] = user_name || config[:ssh_user]
|
461
|
-
ssh.config[:ssh_password] = config[:ssh_password]
|
462
|
-
ssh.config[:ssh_port] = config[:ssh_port]
|
463
|
-
ssh.config[:ssh_gateway] = config[:ssh_gateway]
|
464
|
-
ssh.config[:ssh_gateway_identity] = config[:ssh_gateway_identity]
|
465
|
-
ssh.config[:forward_agent] = config[:forward_agent]
|
466
|
-
ssh.config[:ssh_identity_file] = config[:ssh_identity_file] || config[:identity_file]
|
467
|
-
ssh.config[:manual] = true
|
468
|
-
ssh.config[:host_key_verify] = config[:host_key_verify]
|
469
|
-
ssh.config[:on_error] = true
|
470
|
-
ssh
|
471
|
-
end
|
472
|
-
|
473
|
-
# prompt for a password then return a knife ssh object with that password set
|
474
|
-
# and with ssh_identity_file set to nil
|
767
|
+
# If session_timeout is too short, it is likely
|
768
|
+
# a holdover from "--winrm-session-timeout" which used
|
769
|
+
# minutes as its unit, instead of seconds.
|
770
|
+
# Warn the human so that they are not surprised.
|
475
771
|
#
|
476
|
-
#
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
772
|
+
# This will also erroneously warn if a string value is given,
|
773
|
+
# but argument type validation is something that needs addressing
|
774
|
+
# more broadly.
|
775
|
+
def warn_on_short_session_timeout
|
776
|
+
timeout = config_value(:session_timeout).to_i
|
777
|
+
if timeout <= 15
|
778
|
+
ui.warn <<~EOM
|
779
|
+
--session-timeout is set to #{config[:session_timeout]} minutes.
|
780
|
+
Did you mean "--session-timeout #{config[:session_timeout] * 60}" seconds?
|
781
|
+
EOM
|
782
|
+
end
|
482
783
|
end
|
483
784
|
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
785
|
+
def winrm_warn_no_ssl_verification
|
786
|
+
return unless winrm?
|
787
|
+
|
788
|
+
# REVIEWER NOTE
|
789
|
+
# The original check from knife plugin did not include winrm_ssl_peer_fingerprint
|
790
|
+
# Reference:
|
791
|
+
# https://github.com/chef/knife-windows/blob/92d151298142be4a4750c5b54bb264f8d5b81b8a/lib/chef/knife/winrm_knife_base.rb#L271-L273
|
792
|
+
# TODO Seems like we should also do a similar warning if ssh_verify_host == false
|
793
|
+
if config_value(:ca_trust_file).nil? &&
|
794
|
+
config_value(:winrm_no_verify_cert) &&
|
795
|
+
config_value(:winrm_ssl_peer_fingerprint).nil?
|
796
|
+
ui.warn <<~WARN
|
797
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
798
|
+
SSL validation of HTTPS requests for the WinRM transport is disabled.
|
799
|
+
HTTPS WinRM connections are still encrypted, but knife is not able
|
800
|
+
to detect forged replies or spoofing attacks.
|
801
|
+
|
802
|
+
To work around this issue you can use the flag `--winrm-no-verify-cert`
|
803
|
+
or add an entry like this to your knife configuration file:
|
804
|
+
|
805
|
+
# Verify all WinRM HTTPS connections
|
806
|
+
knife[:winrm_no_verify_cert] = true
|
807
|
+
|
808
|
+
You can also specify a ca_trust_file via --ca-trust-file,
|
809
|
+
or the expected fingerprint of the target host's certificate
|
810
|
+
via --winrm-ssl-peer-fingerprint.
|
811
|
+
WARN
|
812
|
+
end
|
813
|
+
end
|
488
814
|
|
815
|
+
# @return a configuration hash suitable for connecting to the remote
|
816
|
+
# host via train
|
817
|
+
def connection_opts(reset: false)
|
818
|
+
return @connection_opts unless @connection_opts.nil? || reset == true
|
819
|
+
@connection_opts = {}
|
820
|
+
@connection_opts.merge! base_opts
|
821
|
+
@connection_opts.merge! host_verify_opts
|
822
|
+
@connection_opts.merge! gateway_opts
|
823
|
+
@connection_opts.merge! sudo_opts
|
824
|
+
@connection_opts.merge! winrm_opts
|
825
|
+
@connection_opts.merge! ssh_opts
|
826
|
+
@connection_opts.merge! ssh_identity_opts
|
827
|
+
@connection_opts
|
828
|
+
end
|
829
|
+
|
830
|
+
def winrm?
|
831
|
+
connection_protocol == "winrm"
|
832
|
+
end
|
833
|
+
|
834
|
+
def ssh?
|
835
|
+
connection_protocol == "ssh"
|
836
|
+
end
|
837
|
+
|
838
|
+
# Common configuration for all protocols
|
839
|
+
def base_opts
|
840
|
+
port = config_value(:connection_port,
|
841
|
+
knife_key_for_protocol(connection_protocol, :port))
|
842
|
+
user = config_value(:connection_user,
|
843
|
+
knife_key_for_protocol(connection_protocol, :user))
|
844
|
+
{}.tap do |opts|
|
845
|
+
opts[:logger] = Chef::Log
|
846
|
+
# We do not store password in Chef::Config, so only use CLI `config` here
|
847
|
+
opts[:password] = config[:connection_password] if config.key?(:connection_password)
|
848
|
+
opts[:user] = user if user
|
849
|
+
opts[:max_wait_until_ready] = config_value(:max_wait).to_f unless config_value(:max_wait).nil?
|
850
|
+
# TODO - when would we need to provide rdp_port vs port? Or are they not mutually exclusive?
|
851
|
+
opts[:port] = port if port
|
852
|
+
end
|
853
|
+
end
|
854
|
+
|
855
|
+
def host_verify_opts
|
856
|
+
if winrm?
|
857
|
+
{ self_signed: config_value(:winrm_no_verify_cert) === true }
|
858
|
+
elsif ssh?
|
859
|
+
# Fall back to the old knife config key name for back compat.
|
860
|
+
{ verify_host_key: config_value(:ssh_verify_host_key, :host_key_verify, "always") }
|
861
|
+
else
|
862
|
+
{}
|
863
|
+
end
|
864
|
+
end
|
865
|
+
|
866
|
+
def ssh_opts
|
867
|
+
opts = {}
|
868
|
+
return opts if winrm?
|
869
|
+
opts[:non_interactive] = true # Prevent password prompts from underlying net/ssh
|
870
|
+
opts[:forward_agent] = (config_value(:ssh_forward_agent) === true)
|
871
|
+
opts[:connection_timeout] = config_value(:session_timeout).to_i
|
872
|
+
opts
|
873
|
+
end
|
874
|
+
|
875
|
+
def ssh_identity_opts
|
876
|
+
opts = {}
|
877
|
+
return opts if winrm?
|
878
|
+
identity_file = config_value(:ssh_identity_file)
|
879
|
+
if identity_file
|
880
|
+
opts[:key_files] = [identity_file]
|
881
|
+
# We only set keys_only based on the explicit ssh_identity_file;
|
882
|
+
# someone may use a gateway key and still expect password auth
|
883
|
+
# on the target. Similarly, someone may have a default key specified
|
884
|
+
# in knife config, but have provided a password on the CLI.
|
885
|
+
|
886
|
+
# REVIEW NOTE: this is a new behavior. Originally, ssh_identity_file
|
887
|
+
# could only be populated from CLI options, so there was no need to check
|
888
|
+
# for this. We will also set keys_only to false only if there are keys
|
889
|
+
# and no password.
|
890
|
+
# If both are present, train(via net/ssh) will prefer keys, falling back to password.
|
891
|
+
# Reference: https://github.com/chef/chef/blob/master/lib/chef/knife/ssh.rb#L272
|
892
|
+
opts[:keys_only] = config.key?(:connection_password) == false
|
893
|
+
else
|
894
|
+
opts[:key_files] = []
|
895
|
+
opts[:keys_only] = false
|
896
|
+
end
|
897
|
+
|
898
|
+
gateway_identity_file = config_value(:ssh_gateway) ? config_value(:ssh_gateway_identity) : nil
|
899
|
+
unless gateway_identity_file.nil?
|
900
|
+
opts[:key_files] << gateway_identity_file
|
901
|
+
end
|
902
|
+
|
903
|
+
opts
|
904
|
+
end
|
905
|
+
|
906
|
+
def gateway_opts
|
907
|
+
opts = {}
|
908
|
+
if config_value(:ssh_gateway)
|
909
|
+
split = config_value(:ssh_gateway).split("@", 2)
|
910
|
+
if split.length == 1
|
911
|
+
gw_host = split[0]
|
912
|
+
else
|
913
|
+
gw_user = split[0]
|
914
|
+
gw_host = split[1]
|
915
|
+
end
|
916
|
+
gw_host, gw_port = gw_host.split(":", 2)
|
917
|
+
# TODO - validate convertable port in config validation?
|
918
|
+
gw_port = Integer(gw_port) rescue nil
|
919
|
+
opts[:bastion_host] = gw_host
|
920
|
+
opts[:bastion_user] = gw_user
|
921
|
+
opts[:bastion_port] = gw_port
|
922
|
+
end
|
923
|
+
opts
|
924
|
+
end
|
925
|
+
|
926
|
+
# use_sudo - tells bootstrap to use the sudo command to run bootstrap
|
927
|
+
# use_sudo_password - tells bootstrap to use the sudo command to run bootstrap
|
928
|
+
# and to use the password specified with --password
|
929
|
+
# TODO: I'd like to make our sudo options sane:
|
930
|
+
# --sudo (bool) - use sudo
|
931
|
+
# --sudo-password PASSWORD (default: :password) - use this password for sudo
|
932
|
+
# --sudo-options "opt,opt,opt" to pass into sudo
|
933
|
+
# --sudo-command COMMAND sudo command other than sudo
|
934
|
+
# REVIEW NOTE: knife bootstrap did not pull sudo values from Chef::Config,
|
935
|
+
# should we change that for consistency?
|
936
|
+
def sudo_opts
|
937
|
+
return {} if winrm?
|
938
|
+
opts = { sudo: false }
|
489
939
|
if config[:use_sudo]
|
490
|
-
|
491
|
-
|
940
|
+
opts[:sudo] = true
|
941
|
+
if config[:use_sudo_password]
|
942
|
+
opts[:sudo_password] = config[:connection_password]
|
943
|
+
end
|
944
|
+
if config[:preserve_home]
|
945
|
+
opts[:sudo_options] = "-H"
|
946
|
+
end
|
947
|
+
end
|
948
|
+
opts
|
949
|
+
end
|
950
|
+
|
951
|
+
def winrm_opts
|
952
|
+
return {} unless winrm?
|
953
|
+
auth_method = config_value(:winrm_auth_method, :winrm_auth_method, "negotiate")
|
954
|
+
opts = {
|
955
|
+
winrm_transport: auth_method, # winrm gem and train calls auth method 'transport'
|
956
|
+
winrm_basic_auth_only: config_value(:winrm_basic_auth_only) || false,
|
957
|
+
ssl: config_value(:winrm_ssl) === true,
|
958
|
+
ssl_peer_fingerprint: config_value(:winrm_ssl_peer_fingerprint),
|
959
|
+
}
|
960
|
+
|
961
|
+
if auth_method == "kerberos"
|
962
|
+
opts[:kerberos_service] = config_value(:kerberos_service) if config_value(:kerberos_service)
|
963
|
+
opts[:kerberos_realm] = config_value(:kerberos_realm) if config_value(:kerberos_service)
|
964
|
+
end
|
965
|
+
|
966
|
+
if config_value(:ca_trust_file)
|
967
|
+
opts[:ca_trust_file] = config_value(:ca_trust_file)
|
968
|
+
end
|
969
|
+
|
970
|
+
opts[:operation_timeout] = config_value(:session_timeout).to_i
|
971
|
+
|
972
|
+
opts
|
973
|
+
end
|
974
|
+
|
975
|
+
# Config overrides to force password auth.
|
976
|
+
def force_ssh_password_opts(password)
|
977
|
+
{
|
978
|
+
password: password,
|
979
|
+
non_interactive: false,
|
980
|
+
keys_only: false,
|
981
|
+
key_files: [],
|
982
|
+
auth_methods: [:password, :keyboard_interactive],
|
983
|
+
}
|
984
|
+
end
|
985
|
+
|
986
|
+
# Looks up configuration entries, first in the class member
|
987
|
+
# `config` which contains options populated from CLI flags.
|
988
|
+
# If the entry is not found there, Chef::Config[:knife][KEY]
|
989
|
+
# is checked.
|
990
|
+
#
|
991
|
+
# knife_config_key should be specified if the knife config lookup
|
992
|
+
# key is different from the CLI flag lookup key.
|
993
|
+
#
|
994
|
+
def config_value(key, knife_config_key = nil, default = nil)
|
995
|
+
if config.key? key
|
996
|
+
config[key]
|
997
|
+
else
|
998
|
+
lookup_key = knife_config_key || key
|
999
|
+
if Chef::Config[:knife].key?(lookup_key)
|
1000
|
+
Chef::Config[:knife][lookup_key]
|
1001
|
+
else
|
1002
|
+
default
|
1003
|
+
end
|
492
1004
|
end
|
1005
|
+
end
|
1006
|
+
|
1007
|
+
def upload_bootstrap(content)
|
1008
|
+
script_name = connection.windows? ? "bootstrap.bat" : "bootstrap.sh"
|
1009
|
+
remote_path = connection.normalize_path(File.join(connection.temp_dir, script_name))
|
1010
|
+
connection.upload_file_content!(content, remote_path)
|
1011
|
+
remote_path
|
1012
|
+
end
|
493
1013
|
|
494
|
-
|
1014
|
+
# build the command string for bootrapping
|
1015
|
+
# @return String
|
1016
|
+
def bootstrap_command(remote_path)
|
1017
|
+
if connection.windows?
|
1018
|
+
"cmd.exe /C #{remote_path}"
|
1019
|
+
else
|
1020
|
+
"sh #{remote_path}"
|
1021
|
+
end
|
1022
|
+
end
|
1023
|
+
|
1024
|
+
# To avoid cluttering the CLI options, some flags (such as port and user)
|
1025
|
+
# are shared between protocols. However, there is still a need to allow the operator
|
1026
|
+
# to specify defaults separately, since they may not be the same values for different
|
1027
|
+
# protocols.
|
1028
|
+
|
1029
|
+
# These keys are available in Chef::Config, and are prefixed with the protocol name.
|
1030
|
+
# For example, :user CLI option will map to :winrm_user and :ssh_user Chef::Config keys,
|
1031
|
+
# based on the connection protocol in use.
|
1032
|
+
def knife_key_for_protocol(protocol, option)
|
1033
|
+
"#{connection_protocol}_#{option}".to_sym
|
495
1034
|
end
|
496
1035
|
|
497
1036
|
private
|
@@ -513,13 +1052,6 @@ class Chef
|
|
513
1052
|
def incomplete_policyfile_options?
|
514
1053
|
(!!config[:policy_name] ^ config[:policy_group])
|
515
1054
|
end
|
516
|
-
|
517
|
-
# True if the bootstrap version is greater than or equal to 15 or latest.
|
518
|
-
def bootstrap_version_gte_15?
|
519
|
-
config[:prerelease] ||
|
520
|
-
(!!config[:bootstrap_version] &&
|
521
|
-
(config[:bootstrap_version] == "latest" || Chef::VersionString.new(config[:bootstrap_version]) >= 15.0))
|
522
|
-
end
|
523
1055
|
end
|
524
1056
|
end
|
525
1057
|
end
|