summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/chef.rb28
-rw-r--r--lib/chef/action_collection.rb2
-rw-r--r--lib/chef/api_client.rb14
-rw-r--r--lib/chef/api_client/registration.rb6
-rw-r--r--lib/chef/api_client_v1.rb20
-rw-r--r--lib/chef/application.rb29
-rw-r--r--lib/chef/application/apply.rb19
-rw-r--r--lib/chef/application/client.rb38
-rw-r--r--lib/chef/application/exit_code.rb2
-rw-r--r--lib/chef/application/knife.rb6
-rw-r--r--lib/chef/application/solo.rb23
-rw-r--r--lib/chef/application/windows_service.rb20
-rw-r--r--lib/chef/application/windows_service_manager.rb4
-rw-r--r--lib/chef/applications.rb8
-rw-r--r--lib/chef/blacklist.rb2
-rw-r--r--lib/chef/chef_class.rb14
-rw-r--r--lib/chef/chef_fs.rb2
-rw-r--r--lib/chef/chef_fs/chef_fs_data_store.rb10
-rw-r--r--lib/chef/chef_fs/command_line.rb29
-rw-r--r--lib/chef/chef_fs/config.rb8
-rw-r--r--lib/chef/chef_fs/data_handler/acl_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/client_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/client_key_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/container_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/cookbook_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/environment_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/group_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/node_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/organization_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/organization_members_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/policy_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/policy_group_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/data_handler/role_data_handler.rb4
-rw-r--r--lib/chef/chef_fs/data_handler/user_data_handler.rb2
-rw-r--r--lib/chef/chef_fs/file_pattern.rb4
-rw-r--r--lib/chef/chef_fs/file_system.rb6
-rw-r--r--lib/chef/chef_fs/file_system/base_fs_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/base_fs_object.rb6
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/acl_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/acl_entry.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/acls_dir.rb12
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb48
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb14
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb10
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb8
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/environments_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb8
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/org_entry.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb6
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb6
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/policies_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb2
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb8
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb4
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb10
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/memory/memory_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/memory/memory_file.rb2
-rw-r--r--lib/chef/chef_fs/file_system/memory/memory_root.rb2
-rw-r--r--lib/chef/chef_fs/file_system/multiplexed_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/nonexistent_fs_object.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/acl.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/acls_dir.rb10
-rw-r--r--lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/base_file.rb2
-rw-r--r--lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb10
-rw-r--r--lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb56
-rw-r--r--lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb2
-rw-r--r--lib/chef/chef_fs/file_system/repository/client.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/client_key.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/client_keys_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/clients_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/container.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/containers_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/data_bag.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/data_bag_item.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/data_bags_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/directory.rb2
-rw-r--r--lib/chef/chef_fs/file_system/repository/environment.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/environments_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/file_system_entry.rb8
-rw-r--r--lib/chef/chef_fs/file_system/repository/group.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/groups_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/node.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/nodes_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/policies_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/policy.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/policy_group.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/role.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/roles_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/user.rb4
-rw-r--r--lib/chef/chef_fs/file_system/repository/users_dir.rb6
-rw-r--r--lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb4
-rw-r--r--lib/chef/chef_fs/file_system_cache.rb2
-rw-r--r--lib/chef/chef_fs/knife.rb12
-rw-r--r--lib/chef/chef_fs/parallelizer.rb2
-rw-r--r--lib/chef/chef_fs/parallelizer/parallel_enumerable.rb2
-rw-r--r--lib/chef/chef_fs/path_utils.rb2
-rw-r--r--lib/chef/client.rb117
-rw-r--r--lib/chef/config.rb4
-rw-r--r--lib/chef/config_fetcher.rb8
-rw-r--r--lib/chef/cookbook/cookbook_collection.rb4
-rw-r--r--lib/chef/cookbook/cookbook_version_loader.rb8
-rw-r--r--lib/chef/cookbook/file_system_file_vendor.rb2
-rw-r--r--lib/chef/cookbook/gem_installer.rb2
-rw-r--r--lib/chef/cookbook/manifest_v0.rb4
-rw-r--r--lib/chef/cookbook/manifest_v2.rb4
-rw-r--r--lib/chef/cookbook/metadata.rb18
-rw-r--r--lib/chef/cookbook/remote_file_vendor.rb2
-rw-r--r--lib/chef/cookbook/synchronizer.rb8
-rw-r--r--lib/chef/cookbook/syntax_check.rb6
-rw-r--r--lib/chef/cookbook_loader.rb12
-rw-r--r--lib/chef/cookbook_manifest.rb10
-rw-r--r--lib/chef/cookbook_uploader.rb20
-rw-r--r--lib/chef/cookbook_version.rb14
-rw-r--r--lib/chef/daemon.rb4
-rw-r--r--lib/chef/data_bag.rb14
-rw-r--r--lib/chef/data_bag_item.rb14
-rw-r--r--lib/chef/data_collector.rb16
-rw-r--r--lib/chef/data_collector/run_end_message.rb2
-rw-r--r--lib/chef/data_collector/run_start_message.rb2
-rw-r--r--lib/chef/decorator/lazy.rb2
-rw-r--r--lib/chef/decorator/lazy_array.rb2
-rw-r--r--lib/chef/deprecated.rb6
-rw-r--r--lib/chef/deprecation/warnings.rb2
-rw-r--r--lib/chef/dsl.rb12
-rw-r--r--lib/chef/dsl/core.rb8
-rw-r--r--lib/chef/dsl/data_query.rb36
-rw-r--r--lib/chef/dsl/declare_resource.rb2
-rw-r--r--lib/chef/dsl/include_attribute.rb2
-rw-r--r--lib/chef/dsl/include_recipe.rb2
-rw-r--r--lib/chef/dsl/powershell.rb2
-rw-r--r--lib/chef/dsl/reboot_pending.rb4
-rw-r--r--lib/chef/dsl/recipe.rb24
-rw-r--r--lib/chef/dsl/resources.rb2
-rw-r--r--lib/chef/dsl/universal.rb25
-rw-r--r--lib/chef/encrypted_data_bag_item.rb8
-rw-r--r--lib/chef/encrypted_data_bag_item/assertions.rb4
-rw-r--r--lib/chef/encrypted_data_bag_item/check_encrypted.rb2
-rw-r--r--lib/chef/encrypted_data_bag_item/decryptor.rb10
-rw-r--r--lib/chef/encrypted_data_bag_item/encryptor.rb8
-rw-r--r--lib/chef/environment.rb12
-rw-r--r--lib/chef/event_dispatch/dispatcher.rb2
-rw-r--r--lib/chef/event_dispatch/dsl.rb6
-rw-r--r--lib/chef/event_loggers/base.rb2
-rw-r--r--lib/chef/event_loggers/windows_eventlog.rb6
-rw-r--r--lib/chef/exceptions.rb4
-rw-r--r--lib/chef/file_access_control.rb6
-rw-r--r--lib/chef/file_access_control/unix.rb2
-rw-r--r--lib/chef/file_access_control/windows.rb4
-rw-r--r--lib/chef/file_cache.rb10
-rw-r--r--lib/chef/file_content_management/deploy.rb6
-rw-r--r--lib/chef/file_content_management/deploy/mv_windows.rb4
-rw-r--r--lib/chef/formatters/base.rb10
-rw-r--r--lib/chef/formatters/doc.rb7
-rw-r--r--lib/chef/formatters/error_description.rb2
-rw-r--r--lib/chef/formatters/error_inspectors.rb14
-rw-r--r--lib/chef/formatters/error_inspectors/api_error_formatting.rb4
-rw-r--r--lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb2
-rw-r--r--lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb2
-rw-r--r--lib/chef/formatters/error_inspectors/node_load_error_inspector.rb4
-rw-r--r--lib/chef/formatters/error_inspectors/registration_error_inspector.rb2
-rw-r--r--lib/chef/formatters/error_inspectors/resource_failure_inspector.rb4
-rw-r--r--lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb4
-rw-r--r--lib/chef/formatters/minimal.rb5
-rw-r--r--lib/chef/guard_interpreter.rb4
-rw-r--r--lib/chef/guard_interpreter/default_guard_interpreter.rb11
-rw-r--r--lib/chef/guard_interpreter/resource_guard_interpreter.rb2
-rw-r--r--lib/chef/handler.rb2
-rw-r--r--lib/chef/handler/error_report.rb4
-rw-r--r--lib/chef/handler/json_file.rb4
-rw-r--r--lib/chef/http.rb12
-rw-r--r--lib/chef/http/api_versions.rb4
-rw-r--r--lib/chef/http/auth_credentials.rb2
-rw-r--r--lib/chef/http/authenticator.rb4
-rw-r--r--lib/chef/http/basic_client.rb4
-rw-r--r--lib/chef/http/cookie_manager.rb2
-rw-r--r--lib/chef/http/decompressor.rb2
-rw-r--r--lib/chef/http/http_request.rb4
-rw-r--r--lib/chef/http/json_input.rb2
-rw-r--r--lib/chef/http/json_output.rb4
-rw-r--r--lib/chef/http/json_to_model_output.rb2
-rw-r--r--lib/chef/http/remote_request_id.rb2
-rw-r--r--lib/chef/http/simple.rb10
-rw-r--r--lib/chef/http/simple_json.rb10
-rw-r--r--lib/chef/http/ssl_policies.rb2
-rw-r--r--lib/chef/http/validate_content_length.rb2
-rw-r--r--lib/chef/json_compat.rb2
-rw-r--r--lib/chef/key.rb8
-rw-r--r--lib/chef/knife.rb57
-rw-r--r--lib/chef/knife/bootstrap.rb137
-rw-r--r--lib/chef/knife/bootstrap/client_builder.rb8
-rw-r--r--lib/chef/knife/bootstrap/templates/chef-full.erb4
-rw-r--r--lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb15
-rw-r--r--lib/chef/knife/bootstrap/train_connector.rb3
-rw-r--r--lib/chef/knife/client_bulk_delete.rb4
-rw-r--r--lib/chef/knife/client_create.rb20
-rw-r--r--lib/chef/knife/client_delete.rb4
-rw-r--r--lib/chef/knife/client_edit.rb4
-rw-r--r--lib/chef/knife/client_key_create.rb6
-rw-r--r--lib/chef/knife/client_key_delete.rb4
-rw-r--r--lib/chef/knife/client_key_edit.rb6
-rw-r--r--lib/chef/knife/client_key_list.rb6
-rw-r--r--lib/chef/knife/client_key_show.rb4
-rw-r--r--lib/chef/knife/client_list.rb4
-rw-r--r--lib/chef/knife/client_reregister.rb4
-rw-r--r--lib/chef/knife/client_show.rb4
-rw-r--r--lib/chef/knife/config_get.rb2
-rw-r--r--lib/chef/knife/config_get_profile.rb2
-rw-r--r--lib/chef/knife/config_list_profiles.rb6
-rw-r--r--lib/chef/knife/config_use_profile.rb2
-rw-r--r--lib/chef/knife/configure.rb4
-rw-r--r--lib/chef/knife/configure_client.rb2
-rw-r--r--lib/chef/knife/cookbook_bulk_delete.rb6
-rw-r--r--lib/chef/knife/cookbook_delete.rb4
-rw-r--r--lib/chef/knife/cookbook_download.rb4
-rw-r--r--lib/chef/knife/cookbook_list.rb2
-rw-r--r--lib/chef/knife/cookbook_metadata.rb6
-rw-r--r--lib/chef/knife/cookbook_metadata_from_file.rb4
-rw-r--r--lib/chef/knife/cookbook_show.rb6
-rw-r--r--lib/chef/knife/cookbook_site_download.rb4
-rw-r--r--lib/chef/knife/cookbook_site_install.rb4
-rw-r--r--lib/chef/knife/cookbook_site_list.rb4
-rw-r--r--lib/chef/knife/cookbook_site_search.rb4
-rw-r--r--lib/chef/knife/cookbook_site_share.rb4
-rw-r--r--lib/chef/knife/cookbook_site_show.rb4
-rw-r--r--lib/chef/knife/cookbook_site_unshare.rb4
-rw-r--r--lib/chef/knife/cookbook_upload.rb10
-rw-r--r--lib/chef/knife/core/bootstrap_context.rb33
-rw-r--r--lib/chef/knife/core/cookbook_scm_repo.rb2
-rw-r--r--lib/chef/knife/core/gem_glob_loader.rb4
-rw-r--r--lib/chef/knife/core/generic_presenter.rb2
-rw-r--r--lib/chef/knife/core/hashed_command_loader.rb2
-rw-r--r--lib/chef/knife/core/node_editor.rb4
-rw-r--r--lib/chef/knife/core/node_presenter.rb4
-rw-r--r--lib/chef/knife/core/object_loader.rb4
-rw-r--r--lib/chef/knife/core/status_presenter.rb4
-rw-r--r--lib/chef/knife/core/subcommand_loader.rb8
-rw-r--r--lib/chef/knife/core/ui.rb4
-rw-r--r--lib/chef/knife/core/windows_bootstrap_context.rb30
-rw-r--r--lib/chef/knife/data_bag_create.rb8
-rw-r--r--lib/chef/knife/data_bag_delete.rb4
-rw-r--r--lib/chef/knife/data_bag_edit.rb8
-rw-r--r--lib/chef/knife/data_bag_from_file.rb14
-rw-r--r--lib/chef/knife/data_bag_list.rb4
-rw-r--r--lib/chef/knife/data_bag_secret_options.rb6
-rw-r--r--lib/chef/knife/data_bag_show.rb8
-rw-r--r--lib/chef/knife/delete.rb4
-rw-r--r--lib/chef/knife/deps.rb6
-rw-r--r--lib/chef/knife/diff.rb4
-rw-r--r--lib/chef/knife/download.rb4
-rw-r--r--lib/chef/knife/edit.rb6
-rw-r--r--lib/chef/knife/environment_compare.rb4
-rw-r--r--lib/chef/knife/environment_create.rb4
-rw-r--r--lib/chef/knife/environment_delete.rb4
-rw-r--r--lib/chef/knife/environment_edit.rb4
-rw-r--r--lib/chef/knife/environment_from_file.rb6
-rw-r--r--lib/chef/knife/environment_list.rb4
-rw-r--r--lib/chef/knife/environment_show.rb4
-rw-r--r--lib/chef/knife/exec.rb6
-rw-r--r--lib/chef/knife/key_create.rb6
-rw-r--r--lib/chef/knife/key_delete.rb2
-rw-r--r--lib/chef/knife/key_edit.rb6
-rw-r--r--lib/chef/knife/key_list.rb6
-rw-r--r--lib/chef/knife/key_show.rb6
-rw-r--r--lib/chef/knife/list.rb4
-rw-r--r--lib/chef/knife/node_bulk_delete.rb6
-rw-r--r--lib/chef/knife/node_create.rb6
-rw-r--r--lib/chef/knife/node_delete.rb6
-rw-r--r--lib/chef/knife/node_edit.rb8
-rw-r--r--lib/chef/knife/node_environment_set.rb4
-rw-r--r--lib/chef/knife/node_from_file.rb8
-rw-r--r--lib/chef/knife/node_list.rb6
-rw-r--r--lib/chef/knife/node_policy_set.rb6
-rw-r--r--lib/chef/knife/node_run_list_add.rb6
-rw-r--r--lib/chef/knife/node_run_list_remove.rb6
-rw-r--r--lib/chef/knife/node_run_list_set.rb6
-rw-r--r--lib/chef/knife/node_show.rb8
-rw-r--r--lib/chef/knife/raw.rb18
-rw-r--r--lib/chef/knife/recipe_list.rb2
-rw-r--r--lib/chef/knife/rehash.rb4
-rw-r--r--lib/chef/knife/role_bulk_delete.rb6
-rw-r--r--lib/chef/knife/role_create.rb6
-rw-r--r--lib/chef/knife/role_delete.rb6
-rw-r--r--lib/chef/knife/role_edit.rb6
-rw-r--r--lib/chef/knife/role_env_run_list_add.rb6
-rw-r--r--lib/chef/knife/role_env_run_list_clear.rb6
-rw-r--r--lib/chef/knife/role_env_run_list_remove.rb6
-rw-r--r--lib/chef/knife/role_env_run_list_replace.rb6
-rw-r--r--lib/chef/knife/role_env_run_list_set.rb6
-rw-r--r--lib/chef/knife/role_from_file.rb8
-rw-r--r--lib/chef/knife/role_list.rb6
-rw-r--r--lib/chef/knife/role_run_list_add.rb6
-rw-r--r--lib/chef/knife/role_run_list_clear.rb6
-rw-r--r--lib/chef/knife/role_run_list_remove.rb4
-rw-r--r--lib/chef/knife/role_run_list_replace.rb6
-rw-r--r--lib/chef/knife/role_run_list_set.rb4
-rw-r--r--lib/chef/knife/role_show.rb4
-rw-r--r--lib/chef/knife/search.rb12
-rw-r--r--lib/chef/knife/serve.rb4
-rw-r--r--lib/chef/knife/show.rb6
-rw-r--r--lib/chef/knife/ssh.rb10
-rw-r--r--lib/chef/knife/ssl_check.rb8
-rw-r--r--lib/chef/knife/ssl_fetch.rb6
-rw-r--r--lib/chef/knife/status.rb8
-rw-r--r--lib/chef/knife/supermarket_download.rb2
-rw-r--r--lib/chef/knife/supermarket_install.rb8
-rw-r--r--lib/chef/knife/supermarket_list.rb2
-rw-r--r--lib/chef/knife/supermarket_search.rb2
-rw-r--r--lib/chef/knife/supermarket_share.rb10
-rw-r--r--lib/chef/knife/supermarket_show.rb2
-rw-r--r--lib/chef/knife/supermarket_unshare.rb4
-rw-r--r--lib/chef/knife/tag_create.rb4
-rw-r--r--lib/chef/knife/tag_delete.rb4
-rw-r--r--lib/chef/knife/tag_list.rb4
-rw-r--r--lib/chef/knife/upload.rb4
-rw-r--r--lib/chef/knife/user_create.rb6
-rw-r--r--lib/chef/knife/user_delete.rb4
-rw-r--r--lib/chef/knife/user_edit.rb4
-rw-r--r--lib/chef/knife/user_key_create.rb6
-rw-r--r--lib/chef/knife/user_key_delete.rb4
-rw-r--r--lib/chef/knife/user_key_edit.rb6
-rw-r--r--lib/chef/knife/user_key_list.rb6
-rw-r--r--lib/chef/knife/user_key_show.rb4
-rw-r--r--lib/chef/knife/user_list.rb4
-rw-r--r--lib/chef/knife/user_reregister.rb4
-rw-r--r--lib/chef/knife/user_show.rb4
-rw-r--r--lib/chef/knife/xargs.rb6
-rw-r--r--lib/chef/local_mode.rb6
-rw-r--r--lib/chef/log.rb6
-rw-r--r--lib/chef/log/syslog.rb4
-rw-r--r--lib/chef/log/winevt.rb6
-rw-r--r--lib/chef/mixin/checksum.rb2
-rw-r--r--lib/chef/mixin/enforce_ownership_and_permissions.rb2
-rw-r--r--lib/chef/mixin/file_class.rb2
-rw-r--r--lib/chef/mixin/homebrew_user.rb2
-rw-r--r--lib/chef/mixin/params_validate.rb8
-rw-r--r--lib/chef/mixin/powershell_exec.rb2
-rw-r--r--lib/chef/mixin/powershell_out.rb4
-rw-r--r--lib/chef/mixin/properties.rb6
-rw-r--r--lib/chef/mixin/provides.rb2
-rw-r--r--lib/chef/mixin/shell_out.rb4
-rw-r--r--lib/chef/mixin/train_or_shell.rb83
-rw-r--r--lib/chef/mixin/which.rb2
-rw-r--r--lib/chef/mixin/windows_architecture_helper.rb4
-rw-r--r--lib/chef/mixin/windows_env_helper.rb6
-rw-r--r--lib/chef/mixin/xml_escape.rb2
-rw-r--r--lib/chef/mixins.rb24
-rw-r--r--lib/chef/monkey_patches/win32/registry.rb4
-rw-r--r--lib/chef/node.rb32
-rw-r--r--lib/chef/node/attribute.rb16
-rw-r--r--lib/chef/node/attribute_collections.rb10
-rw-r--r--lib/chef/node/immutable_collections.rb8
-rw-r--r--lib/chef/node_map.rb44
-rw-r--r--lib/chef/org.rb6
-rw-r--r--lib/chef/platform.rb4
-rw-r--r--lib/chef/platform/priority_map.rb2
-rw-r--r--lib/chef/platform/provider_handler_map.rb2
-rw-r--r--lib/chef/platform/provider_mapping.rb10
-rw-r--r--lib/chef/platform/provider_priority_map.rb2
-rw-r--r--lib/chef/platform/query_helpers.rb2
-rw-r--r--lib/chef/platform/rebooter.rb10
-rw-r--r--lib/chef/platform/resource_handler_map.rb2
-rw-r--r--lib/chef/platform/resource_priority_map.rb2
-rw-r--r--lib/chef/platform/service_helpers.rb2
-rw-r--r--lib/chef/policy_builder.rb6
-rw-r--r--lib/chef/policy_builder/dynamic.rb10
-rw-r--r--lib/chef/policy_builder/expand_node_object.rb12
-rw-r--r--lib/chef/policy_builder/policyfile.rb12
-rw-r--r--lib/chef/powershell.rb2
-rw-r--r--lib/chef/property.rb8
-rw-r--r--lib/chef/provider.rb30
-rw-r--r--lib/chef/provider/apt_preference.rb8
-rw-r--r--lib/chef/provider/apt_repository.rb10
-rw-r--r--lib/chef/provider/apt_update.rb6
-rw-r--r--lib/chef/provider/batch.rb2
-rw-r--r--lib/chef/provider/cookbook_file.rb2
-rw-r--r--lib/chef/provider/cookbook_file/content.rb4
-rw-r--r--lib/chef/provider/cron.rb20
-rw-r--r--lib/chef/provider/cron/aix.rb2
-rw-r--r--lib/chef/provider/cron/solaris.rb2
-rw-r--r--lib/chef/provider/cron/unix.rb6
-rw-r--r--lib/chef/provider/directory.rb10
-rw-r--r--lib/chef/provider/dsc_resource.rb8
-rw-r--r--lib/chef/provider/dsc_script.rb8
-rw-r--r--lib/chef/provider/execute.rb11
-rw-r--r--lib/chef/provider/file.rb26
-rw-r--r--lib/chef/provider/file/content.rb4
-rw-r--r--lib/chef/provider/git.rb6
-rw-r--r--lib/chef/provider/group.rb4
-rw-r--r--lib/chef/provider/group/aix.rb2
-rw-r--r--lib/chef/provider/group/gpasswd.rb2
-rw-r--r--lib/chef/provider/group/solaris.rb2
-rw-r--r--lib/chef/provider/group/suse.rb2
-rw-r--r--lib/chef/provider/group/usermod.rb2
-rw-r--r--lib/chef/provider/group/windows.rb4
-rw-r--r--lib/chef/provider/http_request.rb2
-rw-r--r--lib/chef/provider/ifconfig.rb10
-rw-r--r--lib/chef/provider/ifconfig/aix.rb2
-rw-r--r--lib/chef/provider/ifconfig/debian.rb4
-rw-r--r--lib/chef/provider/ifconfig/redhat.rb2
-rw-r--r--lib/chef/provider/launchd.rb8
-rw-r--r--lib/chef/provider/link.rb14
-rw-r--r--lib/chef/provider/lwrp_base.rb6
-rw-r--r--lib/chef/provider/mdadm.rb4
-rw-r--r--lib/chef/provider/mount.rb6
-rw-r--r--lib/chef/provider/mount/aix.rb2
-rw-r--r--lib/chef/provider/mount/mount.rb4
-rw-r--r--lib/chef/provider/mount/solaris.rb4
-rw-r--r--lib/chef/provider/mount/windows.rb6
-rw-r--r--lib/chef/provider/osx_profile.rb8
-rw-r--r--lib/chef/provider/package.rb103
-rw-r--r--lib/chef/provider/package/apt.rb23
-rw-r--r--lib/chef/provider/package/bff.rb6
-rw-r--r--lib/chef/provider/package/cab.rb10
-rw-r--r--lib/chef/provider/package/chocolatey.rb6
-rw-r--r--lib/chef/provider/package/deb.rb131
-rw-r--r--lib/chef/provider/package/dnf.rb14
-rw-r--r--lib/chef/provider/package/dnf/python_helper.rb6
-rw-r--r--lib/chef/provider/package/dpkg.rb22
-rw-r--r--lib/chef/provider/package/freebsd/base.rb6
-rw-r--r--lib/chef/provider/package/freebsd/pkgng.rb2
-rw-r--r--lib/chef/provider/package/freebsd/port.rb2
-rw-r--r--lib/chef/provider/package/homebrew.rb2
-rw-r--r--lib/chef/provider/package/ips.rb4
-rw-r--r--lib/chef/provider/package/msu.rb14
-rw-r--r--lib/chef/provider/package/openbsd.rb8
-rw-r--r--lib/chef/provider/package/pacman.rb4
-rw-r--r--lib/chef/provider/package/paludis.rb4
-rw-r--r--lib/chef/provider/package/portage.rb6
-rw-r--r--lib/chef/provider/package/powershell.rb6
-rw-r--r--lib/chef/provider/package/rpm.rb8
-rw-r--r--lib/chef/provider/package/rubygems.rb8
-rw-r--r--lib/chef/provider/package/smartos.rb6
-rw-r--r--lib/chef/provider/package/snap.rb6
-rw-r--r--lib/chef/provider/package/solaris.rb6
-rw-r--r--lib/chef/provider/package/windows.rb14
-rw-r--r--lib/chef/provider/package/windows/exe.rb2
-rw-r--r--lib/chef/provider/package/windows/msi.rb2
-rw-r--r--lib/chef/provider/package/yum.rb16
-rw-r--r--lib/chef/provider/package/yum/python_helper.rb6
-rw-r--r--lib/chef/provider/package/yum/rpm_utils.rb2
-rw-r--r--lib/chef/provider/package/yum/yum_cache.rb4
-rw-r--r--lib/chef/provider/package/zypper.rb4
-rw-r--r--lib/chef/provider/powershell_script.rb4
-rw-r--r--lib/chef/provider/reboot.rb4
-rw-r--r--lib/chef/provider/registry_key.rb14
-rw-r--r--lib/chef/provider/remote_directory.rb14
-rw-r--r--lib/chef/provider/remote_file.rb2
-rw-r--r--lib/chef/provider/remote_file/cache_control_data.rb8
-rw-r--r--lib/chef/provider/remote_file/content.rb4
-rw-r--r--lib/chef/provider/remote_file/ftp.rb4
-rw-r--r--lib/chef/provider/remote_file/http.rb8
-rw-r--r--lib/chef/provider/remote_file/local_file.rb2
-rw-r--r--lib/chef/provider/remote_file/network_file.rb4
-rw-r--r--lib/chef/provider/remote_file/sftp.rb4
-rw-r--r--lib/chef/provider/route.rb4
-rw-r--r--lib/chef/provider/script.rb2
-rw-r--r--lib/chef/provider/service.rb20
-rw-r--r--lib/chef/provider/service/aix.rb2
-rw-r--r--lib/chef/provider/service/aixinit.rb2
-rw-r--r--lib/chef/provider/service/arch.rb2
-rw-r--r--lib/chef/provider/service/debian.rb2
-rw-r--r--lib/chef/provider/service/freebsd.rb4
-rw-r--r--lib/chef/provider/service/gentoo.rb4
-rw-r--r--lib/chef/provider/service/init.rb4
-rw-r--r--lib/chef/provider/service/insserv.rb4
-rw-r--r--lib/chef/provider/service/invokercd.rb2
-rw-r--r--lib/chef/provider/service/macosx.rb8
-rw-r--r--lib/chef/provider/service/openbsd.rb6
-rw-r--r--lib/chef/provider/service/redhat.rb2
-rw-r--r--lib/chef/provider/service/simple.rb4
-rw-r--r--lib/chef/provider/service/solaris.rb4
-rw-r--r--lib/chef/provider/service/systemd.rb6
-rw-r--r--lib/chef/provider/service/upstart.rb6
-rw-r--r--lib/chef/provider/service/windows.rb6
-rw-r--r--lib/chef/provider/subversion.rb4
-rw-r--r--lib/chef/provider/systemd_unit.rb10
-rw-r--r--lib/chef/provider/template.rb4
-rw-r--r--lib/chef/provider/template/content.rb4
-rw-r--r--lib/chef/provider/user.rb2
-rw-r--r--lib/chef/provider/user/aix.rb2
-rw-r--r--lib/chef/provider/user/dscl.rb8
-rw-r--r--lib/chef/provider/user/linux.rb2
-rw-r--r--lib/chef/provider/user/pw.rb2
-rw-r--r--lib/chef/provider/user/solaris.rb2
-rw-r--r--lib/chef/provider/user/windows.rb4
-rw-r--r--lib/chef/provider/windows_env.rb6
-rw-r--r--lib/chef/provider/windows_path.rb4
-rw-r--r--lib/chef/provider/windows_script.rb4
-rw-r--r--lib/chef/provider/windows_task.rb8
-rw-r--r--lib/chef/provider/yum_repository.rb8
-rw-r--r--lib/chef/provider/zypper_repository.rb8
-rw-r--r--lib/chef/provider_resolver.rb4
-rw-r--r--lib/chef/providers.rb240
-rw-r--r--lib/chef/recipe.rb6
-rw-r--r--lib/chef/resource.rb63
-rw-r--r--lib/chef/resource/action_class.rb6
-rw-r--r--lib/chef/resource/apt_package.rb10
-rw-r--r--lib/chef/resource/apt_preference.rb2
-rw-r--r--lib/chef/resource/apt_repository.rb2
-rw-r--r--lib/chef/resource/apt_update.rb2
-rw-r--r--lib/chef/resource/archive_file.rb2
-rw-r--r--lib/chef/resource/bash.rb4
-rw-r--r--lib/chef/resource/batch.rb2
-rw-r--r--lib/chef/resource/bff_package.rb2
-rw-r--r--lib/chef/resource/breakpoint.rb4
-rw-r--r--lib/chef/resource/build_essential.rb2
-rw-r--r--lib/chef/resource/cab_package.rb4
-rw-r--r--lib/chef/resource/chef_gem.rb6
-rw-r--r--lib/chef/resource/chef_handler.rb2
-rw-r--r--lib/chef/resource/chocolatey_package.rb2
-rw-r--r--lib/chef/resource/conditional.rb4
-rw-r--r--lib/chef/resource/cookbook_file.rb8
-rw-r--r--lib/chef/resource/cron.rb2
-rw-r--r--lib/chef/resource/cron_access.rb2
-rw-r--r--lib/chef/resource/cron_d.rb2
-rw-r--r--lib/chef/resource/csh.rb4
-rw-r--r--lib/chef/resource/directory.rb4
-rw-r--r--lib/chef/resource/dmg_package.rb2
-rw-r--r--lib/chef/resource/dnf_package.rb8
-rw-r--r--lib/chef/resource/dpkg_package.rb10
-rw-r--r--lib/chef/resource/dsc_resource.rb2
-rw-r--r--lib/chef/resource/dsc_script.rb6
-rw-r--r--lib/chef/resource/execute.rb7
-rw-r--r--lib/chef/resource/file.rb10
-rw-r--r--lib/chef/resource/file/verification.rb6
-rw-r--r--lib/chef/resource/file/verification/systemd_unit.rb2
-rw-r--r--lib/chef/resource/freebsd_package.rb8
-rw-r--r--lib/chef/resource/gem_package.rb4
-rw-r--r--lib/chef/resource/git.rb2
-rw-r--r--lib/chef/resource/homebrew_cask.rb4
-rw-r--r--lib/chef/resource/homebrew_package.rb6
-rw-r--r--lib/chef/resource/homebrew_tap.rb4
-rw-r--r--lib/chef/resource/hostname.rb2
-rw-r--r--lib/chef/resource/http_request.rb2
-rw-r--r--lib/chef/resource/ifconfig.rb2
-rw-r--r--lib/chef/resource/ips_package.rb4
-rw-r--r--lib/chef/resource/kernel_module.rb2
-rw-r--r--lib/chef/resource/ksh.rb2
-rw-r--r--lib/chef/resource/launchd.rb2
-rw-r--r--lib/chef/resource/link.rb6
-rw-r--r--lib/chef/resource/locale.rb2
-rw-r--r--lib/chef/resource/log.rb2
-rw-r--r--lib/chef/resource/lwrp_base.rb14
-rw-r--r--lib/chef/resource/macos_userdefaults.rb2
-rw-r--r--lib/chef/resource/macosx_service.rb2
-rw-r--r--lib/chef/resource/macports_package.rb2
-rw-r--r--lib/chef/resource/mdadm.rb2
-rw-r--r--lib/chef/resource/mount.rb2
-rw-r--r--lib/chef/resource/msu_package.rb4
-rw-r--r--lib/chef/resource/ohai.rb4
-rw-r--r--lib/chef/resource/ohai_hint.rb2
-rw-r--r--lib/chef/resource/openbsd_package.rb6
-rw-r--r--lib/chef/resource/openssl_dhparam.rb4
-rw-r--r--lib/chef/resource/openssl_ec_private_key.rb4
-rw-r--r--lib/chef/resource/openssl_ec_public_key.rb4
-rw-r--r--lib/chef/resource/openssl_rsa_private_key.rb4
-rw-r--r--lib/chef/resource/openssl_rsa_public_key.rb4
-rw-r--r--lib/chef/resource/openssl_x509_certificate.rb4
-rw-r--r--lib/chef/resource/openssl_x509_crl.rb4
-rw-r--r--lib/chef/resource/openssl_x509_request.rb4
-rw-r--r--lib/chef/resource/osx_profile.rb2
-rw-r--r--lib/chef/resource/package.rb10
-rw-r--r--lib/chef/resource/pacman_package.rb2
-rw-r--r--lib/chef/resource/paludis_package.rb4
-rw-r--r--lib/chef/resource/perl.rb4
-rw-r--r--lib/chef/resource/portage_package.rb2
-rw-r--r--lib/chef/resource/powershell_package.rb4
-rw-r--r--lib/chef/resource/powershell_package_source.rb4
-rw-r--r--lib/chef/resource/powershell_script.rb2
-rw-r--r--lib/chef/resource/python.rb4
-rw-r--r--lib/chef/resource/reboot.rb2
-rw-r--r--lib/chef/resource/registry_key.rb4
-rw-r--r--lib/chef/resource/remote_directory.rb6
-rw-r--r--lib/chef/resource/remote_file.rb8
-rw-r--r--lib/chef/resource/resource_notification.rb2
-rw-r--r--lib/chef/resource/rhsm_errata.rb2
-rw-r--r--lib/chef/resource/rhsm_errata_level.rb2
-rw-r--r--lib/chef/resource/rhsm_register.rb2
-rw-r--r--lib/chef/resource/rhsm_repo.rb2
-rw-r--r--lib/chef/resource/rhsm_subscription.rb2
-rw-r--r--lib/chef/resource/route.rb2
-rw-r--r--lib/chef/resource/rpm_package.rb2
-rw-r--r--lib/chef/resource/ruby.rb4
-rw-r--r--lib/chef/resource/ruby_block.rb6
-rw-r--r--lib/chef/resource/scm.rb2
-rw-r--r--lib/chef/resource/script.rb2
-rw-r--r--lib/chef/resource/service.rb4
-rw-r--r--lib/chef/resource/smartos_package.rb2
-rw-r--r--lib/chef/resource/snap_package.rb2
-rw-r--r--lib/chef/resource/solaris_package.rb2
-rw-r--r--lib/chef/resource/ssh_known_hosts_entry.rb2
-rw-r--r--lib/chef/resource/subversion.rb4
-rw-r--r--lib/chef/resource/sudo.rb2
-rw-r--r--lib/chef/resource/swap_file.rb2
-rw-r--r--lib/chef/resource/sysctl.rb2
-rw-r--r--lib/chef/resource/systemd_unit.rb2
-rw-r--r--lib/chef/resource/template.rb6
-rw-r--r--lib/chef/resource/timezone.rb2
-rw-r--r--lib/chef/resource/user.rb2
-rw-r--r--lib/chef/resource/user/aix_user.rb2
-rw-r--r--lib/chef/resource/user/dscl_user.rb2
-rw-r--r--lib/chef/resource/user/linux_user.rb2
-rw-r--r--lib/chef/resource/user/pw_user.rb2
-rw-r--r--lib/chef/resource/user/solaris_user.rb2
-rw-r--r--lib/chef/resource/user/windows_user.rb2
-rw-r--r--lib/chef/resource/windows_ad_join.rb4
-rw-r--r--lib/chef/resource/windows_auto_run.rb2
-rw-r--r--lib/chef/resource/windows_certificate.rb6
-rw-r--r--lib/chef/resource/windows_dfs_folder.rb2
-rw-r--r--lib/chef/resource/windows_dfs_namespace.rb2
-rw-r--r--lib/chef/resource/windows_dfs_server.rb2
-rw-r--r--lib/chef/resource/windows_dns_record.rb2
-rw-r--r--lib/chef/resource/windows_dns_zone.rb2
-rw-r--r--lib/chef/resource/windows_env.rb2
-rw-r--r--lib/chef/resource/windows_feature.rb2
-rw-r--r--lib/chef/resource/windows_feature_dism.rb4
-rw-r--r--lib/chef/resource/windows_feature_powershell.rb10
-rw-r--r--lib/chef/resource/windows_firewall_rule.rb2
-rw-r--r--lib/chef/resource/windows_font.rb4
-rw-r--r--lib/chef/resource/windows_package.rb6
-rw-r--r--lib/chef/resource/windows_pagefile.rb2
-rw-r--r--lib/chef/resource/windows_path.rb2
-rw-r--r--lib/chef/resource/windows_printer.rb2
-rw-r--r--lib/chef/resource/windows_printer_port.rb2
-rw-r--r--lib/chef/resource/windows_script.rb6
-rw-r--r--lib/chef/resource/windows_service.rb4
-rw-r--r--lib/chef/resource/windows_share.rb6
-rw-r--r--lib/chef/resource/windows_shortcut.rb2
-rw-r--r--lib/chef/resource/windows_task.rb2
-rw-r--r--lib/chef/resource/windows_uac.rb2
-rw-r--r--lib/chef/resource/windows_workgroup.rb4
-rw-r--r--lib/chef/resource/yum_package.rb4
-rw-r--r--lib/chef/resource/yum_repository.rb2
-rw-r--r--lib/chef/resource/zypper_package.rb2
-rw-r--r--lib/chef/resource/zypper_repository.rb2
-rw-r--r--lib/chef/resource_builder.rb6
-rw-r--r--lib/chef/resource_collection.rb8
-rw-r--r--lib/chef/resource_collection/resource_collection_serialization.rb2
-rw-r--r--lib/chef/resource_collection/resource_list.rb6
-rw-r--r--lib/chef/resource_collection/resource_set.rb4
-rw-r--r--lib/chef/resource_definition.rb4
-rw-r--r--lib/chef/resource_definition_list.rb4
-rw-r--r--lib/chef/resource_inspector.rb16
-rw-r--r--lib/chef/resource_reporter.rb2
-rw-r--r--lib/chef/resource_resolver.rb6
-rw-r--r--lib/chef/resources.rb274
-rw-r--r--lib/chef/role.rb16
-rw-r--r--lib/chef/run_context.rb35
-rw-r--r--lib/chef/run_context/cookbook_compiler.rb10
-rw-r--r--lib/chef/run_list.rb8
-rw-r--r--lib/chef/run_list/run_list_expansion.rb10
-rw-r--r--lib/chef/run_list/versioned_recipe_list.rb4
-rw-r--r--lib/chef/run_lock.rb10
-rw-r--r--lib/chef/runner.rb8
-rw-r--r--lib/chef/search/query.rb6
-rw-r--r--lib/chef/server_api.rb20
-rw-r--r--lib/chef/shell.rb25
-rw-r--r--lib/chef/shell/ext.rb14
-rw-r--r--lib/chef/shell/model_wrapper.rb4
-rw-r--r--lib/chef/shell/shell_session.rb20
-rw-r--r--lib/chef/train_transport.rb129
-rw-r--r--lib/chef/user.rb14
-rw-r--r--lib/chef/user_v1.rb18
-rw-r--r--lib/chef/util/backup.rb2
-rw-r--r--lib/chef/util/dsc/configuration_generator.rb2
-rw-r--r--lib/chef/util/dsc/lcm_output_parser.rb6
-rw-r--r--lib/chef/util/dsc/local_configuration_manager.rb4
-rw-r--r--lib/chef/util/dsc/resource_store.rb6
-rw-r--r--lib/chef/util/file_edit.rb2
-rw-r--r--lib/chef/util/powershell/cmdlet.rb4
-rw-r--r--lib/chef/util/powershell/cmdlet_result.rb2
-rw-r--r--lib/chef/util/selinux.rb4
-rw-r--r--lib/chef/util/windows/logon_session.rb2
-rw-r--r--lib/chef/util/windows/net_group.rb4
-rw-r--r--lib/chef/util/windows/net_use.rb4
-rw-r--r--lib/chef/util/windows/net_user.rb8
-rw-r--r--lib/chef/util/windows/volume.rb4
-rw-r--r--lib/chef/version.rb4
-rw-r--r--lib/chef/version/platform.rb2
-rw-r--r--lib/chef/version_constraint.rb2
-rw-r--r--lib/chef/version_constraint/platform.rb4
-rw-r--r--lib/chef/whitelist.rb2
-rw-r--r--lib/chef/win32/api.rb4
-rw-r--r--lib/chef/win32/api/crypto.rb2
-rw-r--r--lib/chef/win32/api/error.rb2
-rw-r--r--lib/chef/win32/api/file.rb8
-rw-r--r--lib/chef/win32/api/installer.rb6
-rw-r--r--lib/chef/win32/api/memory.rb2
-rw-r--r--lib/chef/win32/api/net.rb4
-rw-r--r--lib/chef/win32/api/process.rb2
-rw-r--r--lib/chef/win32/api/psapi.rb2
-rw-r--r--lib/chef/win32/api/registry.rb2
-rw-r--r--lib/chef/win32/api/security.rb2
-rw-r--r--lib/chef/win32/api/synchronization.rb2
-rw-r--r--lib/chef/win32/api/system.rb2
-rw-r--r--lib/chef/win32/api/unicode.rb2
-rw-r--r--lib/chef/win32/crypto.rb8
-rw-r--r--lib/chef/win32/error.rb8
-rw-r--r--lib/chef/win32/file.rb16
-rw-r--r--lib/chef/win32/file/info.rb2
-rw-r--r--lib/chef/win32/file/version_info.rb2
-rw-r--r--lib/chef/win32/handle.rb8
-rw-r--r--lib/chef/win32/memory.rb4
-rw-r--r--lib/chef/win32/mutex.rb4
-rw-r--r--lib/chef/win32/net.rb6
-rw-r--r--lib/chef/win32/process.rb8
-rw-r--r--lib/chef/win32/registry.rb10
-rw-r--r--lib/chef/win32/security.rb24
-rw-r--r--lib/chef/win32/security/ace.rb6
-rw-r--r--lib/chef/win32/security/acl.rb4
-rw-r--r--lib/chef/win32/security/securable_object.rb6
-rw-r--r--lib/chef/win32/security/security_descriptor.rb6
-rw-r--r--lib/chef/win32/security/sid.rb6
-rw-r--r--lib/chef/win32/security/token.rb6
-rw-r--r--[-rwxr-xr-x]lib/chef/win32/system.rb4
-rw-r--r--lib/chef/win32/unicode.rb4
-rw-r--r--lib/chef/win32/version.rb4
737 files changed, 2984 insertions, 2608 deletions
diff --git a/lib/chef.rb b/lib/chef.rb
index 8869a5a890..945e9a6fe8 100644
--- a/lib/chef.rb
+++ b/lib/chef.rb
@@ -16,20 +16,20 @@
# limitations under the License.
#
-require "chef/version"
+require_relative "chef/version"
-require "chef/nil_argument"
-require "chef/mash"
-require "chef/exceptions"
-require "chef/log"
-require "chef/config"
-require "chef/providers"
-require "chef/resources"
+require_relative "chef/nil_argument"
+require_relative "chef/mash"
+require_relative "chef/exceptions"
+require_relative "chef/log"
+require_relative "chef/config"
+require_relative "chef/providers"
+require_relative "chef/resources"
-require "chef/daemon"
+require_relative "chef/daemon"
-require "chef/run_status"
-require "chef/handler"
-require "chef/handler/json_file"
-require "chef/event_dispatch/dsl"
-require "chef/chef_class"
+require_relative "chef/run_status"
+require_relative "chef/handler"
+require_relative "chef/handler/json_file"
+require_relative "chef/event_dispatch/dsl"
+require_relative "chef/chef_class"
diff --git a/lib/chef/action_collection.rb b/lib/chef/action_collection.rb
index a74ae5c449..af28bf8542 100644
--- a/lib/chef/action_collection.rb
+++ b/lib/chef/action_collection.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/event_dispatch/base"
+require_relative "event_dispatch/base"
class Chef
class ActionCollection < EventDispatch::Base
diff --git a/lib/chef/api_client.rb b/lib/chef/api_client.rb
index 1bd06652c5..5c78da41ec 100644
--- a/lib/chef/api_client.rb
+++ b/lib/chef/api_client.rb
@@ -17,13 +17,13 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/search/query"
-require "chef/server_api"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "search/query"
+require_relative "server_api"
# DEPRECATION NOTE
#
diff --git a/lib/chef/api_client/registration.rb b/lib/chef/api_client/registration.rb
index dd214d7812..21ce6f9179 100644
--- a/lib/chef/api_client/registration.rb
+++ b/lib/chef/api_client/registration.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/server_api"
-require "chef/exceptions"
+require_relative "../config"
+require_relative "../server_api"
+require_relative "../exceptions"
require "fileutils"
class Chef
diff --git a/lib/chef/api_client_v1.rb b/lib/chef/api_client_v1.rb
index 3a2dafa3a8..513d546e64 100644
--- a/lib/chef/api_client_v1.rb
+++ b/lib/chef/api_client_v1.rb
@@ -17,16 +17,16 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/search/query"
-require "chef/exceptions"
-require "chef/mixin/api_version_request_handling"
-require "chef/server_api"
-require "chef/api_client"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "search/query"
+require_relative "exceptions"
+require_relative "mixin/api_version_request_handling"
+require_relative "server_api"
+require_relative "api_client"
# COMPATIBILITY NOTE
#
diff --git a/lib/chef/application.rb b/lib/chef/application.rb
index 549d8b4482..7a69d549c4 100644
--- a/lib/chef/application.rb
+++ b/lib/chef/application.rb
@@ -18,17 +18,18 @@
require "pp"
require "socket"
-require "chef/config"
-require "chef/config_fetcher"
-require "chef/exceptions"
-require "chef/local_mode"
-require "chef/log"
-require "chef/platform"
+require_relative "config"
+require_relative "config_fetcher"
+require_relative "exceptions"
+require_relative "local_mode"
+require_relative "log"
+require_relative "platform"
require "mixlib/cli"
require "tmpdir"
require "rbconfig"
-require "chef/application/exit_code"
-require "chef/dist"
+require_relative "application/exit_code"
+require_relative "dist"
+require "license_acceptance/acceptor"
class Chef
class Application
@@ -60,10 +61,11 @@ class Chef
end
# Get this party started
- def run
+ def run(enforce_license: false)
setup_signal_handlers
reconfigure
setup_application
+ check_license_acceptance if enforce_license
run_application
end
@@ -248,6 +250,15 @@ class Chef
raise Chef::Exceptions::Application, "#{self}: you must override setup_application"
end
+ def check_license_acceptance
+ LicenseAcceptance::Acceptor.check_and_persist!(
+ "infra-client",
+ Chef::VERSION.to_s,
+ logger: logger,
+ provided: Chef::Config[:chef_license]
+ )
+ end
+
# Actually run the application
def run_application
raise Chef::Exceptions::Application, "#{self}: you must override run_application"
diff --git a/lib/chef/application/apply.rb b/lib/chef/application/apply.rb
index 34f0973b40..40544f753a 100644
--- a/lib/chef/application/apply.rb
+++ b/lib/chef/application/apply.rb
@@ -17,16 +17,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef"
-require "chef/application"
-require "chef/client"
-require "chef/config"
-require "chef/log"
+require_relative "../../chef"
+require_relative "../application"
+require_relative "../client"
+require_relative "../config"
+require_relative "../log"
require "fileutils"
require "tempfile"
-require "chef/providers"
-require "chef/resources"
-require "chef/dist"
+require_relative "../providers"
+require_relative "../resources"
+require_relative "../dist"
class Chef::Application::Apply < Chef::Application
@@ -214,8 +214,9 @@ class Chef::Application::Apply < Chef::Application
end
# Get this party started
- def run
+ def run(enforce_license = false)
reconfigure
+ check_license_acceptance if enforce_license
run_application
end
diff --git a/lib/chef/application/client.rb b/lib/chef/application/client.rb
index 390acfba04..ab358fdcb6 100644
--- a/lib/chef/application/client.rb
+++ b/lib/chef/application/client.rb
@@ -17,23 +17,25 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/application"
-require "chef/client"
-require "chef/config"
-require "chef/daemon"
-require "chef/log"
-require "chef/config_fetcher"
-require "chef/handler/error_report"
-require "chef/workstation_config_loader"
-require "chef/mixin/shell_out"
+require_relative "../application"
+require_relative "../client"
+require_relative "../config"
+require_relative "../daemon"
+require_relative "../log"
+require_relative "../config_fetcher"
+require_relative "../handler/error_report"
+require_relative "../workstation_config_loader"
+require_relative "../mixin/shell_out"
require "chef-config/mixin/dot_d"
require "mixlib/archive"
require "uri"
-require "chef/dist"
+require_relative "../dist"
+require "license_acceptance/cli_flags/mixlib_cli"
class Chef::Application::Client < Chef::Application
include Chef::Mixin::ShellOut
include ChefConfig::Mixin::DotD
+ include LicenseAcceptance::CLIFlags::MixlibCLI
# Mimic self_pipe sleep from Unicorn to capture signals safely
SELF_PIPE = [] # rubocop:disable Style/MutableConstant
@@ -220,6 +222,7 @@ class Chef::Application::Client < Chef::Application
Chef::RunList::RunListItem.new(item)
end
}
+
option :why_run,
short: "-W",
long: "--why-run",
@@ -298,6 +301,15 @@ class Chef::Application::Client < Chef::Application
description: "Use cached cookbooks without overwriting local differences from the #{Chef::Dist::SERVER_PRODUCT}.",
boolean: false
+ option :target,
+ short: "-t TARGET",
+ long: "--target TARGET",
+ description: "Target #{Chef::Dist::PRODUCT} against a remote system or device",
+ proc: lambda { |target|
+ Chef::Log.warn "-- EXPERIMENTAL -- Target mode activated, resources and dsl may change without warning -- EXPERIMENTAL --"
+ target
+ }
+
IMMEDIATE_RUN_SIGNAL = "1".freeze
RECONFIGURE_SIGNAL = "H".freeze
@@ -348,6 +360,12 @@ class Chef::Application::Client < Chef::Application
Chef::Config.chef_zero.host = config[:chef_zero_host] if config[:chef_zero_host]
Chef::Config.chef_zero.port = config[:chef_zero_port] if config[:chef_zero_port]
+ if config[:target] || Chef::Config.target
+ Chef::Config.target_mode.enabled = true
+ Chef::Config.target_mode.host = config[:target] || Chef::Config.target
+ Chef::Config.node_name = Chef::Config.target_mode.host unless Chef::Config.node_name
+ end
+
if Chef::Config[:daemonize]
Chef::Config[:interval] ||= 1800
end
diff --git a/lib/chef/application/exit_code.rb b/lib/chef/application/exit_code.rb
index 5330db2456..7001cb1837 100644
--- a/lib/chef/application/exit_code.rb
+++ b/lib/chef/application/exit_code.rb
@@ -22,7 +22,7 @@ class Chef
# These are the exit codes defined in Chef RFC 062
# https://github.com/chef/chef-rfc/blob/master/rfc062-exit-status.md
class ExitCode
- require "chef/dist"
+ require_relative "../dist"
# -1 is defined as DEPRECATED_FAILURE in RFC 062, so it is
# not enumerated in an active constant.
diff --git a/lib/chef/application/knife.rb b/lib/chef/application/knife.rb
index 52d447891f..82493d5140 100644
--- a/lib/chef/application/knife.rb
+++ b/lib/chef/application/knife.rb
@@ -15,12 +15,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/knife"
-require "chef/application"
+require_relative "../knife"
+require_relative "../application"
require "mixlib/log"
require "ohai/config"
require "chef/monkey_patches/net_http.rb"
-require "chef/dist"
+require_relative "../dist"
class Chef::Application::Knife < Chef::Application
diff --git a/lib/chef/application/solo.rb b/lib/chef/application/solo.rb
index 04cc9265ff..542088fefe 100644
--- a/lib/chef/application/solo.rb
+++ b/lib/chef/application/solo.rb
@@ -16,20 +16,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef"
-require "chef/application"
-require "chef/application/client"
-require "chef/client"
-require "chef/config"
-require "chef/daemon"
-require "chef/log"
-require "chef/config_fetcher"
+require_relative "../../chef"
+require_relative "../application"
+require_relative "client"
+require_relative "../client"
+require_relative "../config"
+require_relative "../daemon"
+require_relative "../log"
+require_relative "../config_fetcher"
require "fileutils"
-require "chef/mixin/shell_out"
+require_relative "../mixin/shell_out"
require "pathname"
require "chef-config/mixin/dot_d"
require "mixlib/archive"
-require "chef/dist"
+require_relative "../dist"
class Chef::Application::Solo < Chef::Application
include Chef::Mixin::ShellOut
@@ -217,10 +217,11 @@ class Chef::Application::Solo < Chef::Application
attr_reader :chef_client_json
# Get this party started
- def run
+ def run(enforce_license: false)
setup_signal_handlers
setup_application
reconfigure
+ check_license_acceptance if enforce_license
for_ezra if Chef::Config[:ez]
if !Chef::Config[:solo_legacy_mode]
Chef::Application::Client.new.run
diff --git a/lib/chef/application/windows_service.rb b/lib/chef/application/windows_service.rb
index cba0dc9781..ebf7533956 100644
--- a/lib/chef/application/windows_service.rb
+++ b/lib/chef/application/windows_service.rb
@@ -16,20 +16,20 @@
# limitations under the License.
#
-require "chef"
-require "chef/monologger"
-require "chef/application"
-require "chef/client"
-require "chef/config"
-require "chef/handler/error_report"
-require "chef/log"
-require "chef/http"
+require_relative "../../chef"
+require_relative "../monologger"
+require_relative "../application"
+require_relative "../client"
+require_relative "../config"
+require_relative "../handler/error_report"
+require_relative "../log"
+require_relative "../http"
require "mixlib/cli"
require "socket"
require "uri"
require "win32/daemon"
-require "chef/mixin/shell_out"
-require "chef/dist"
+require_relative "../mixin/shell_out"
+require_relative "../dist"
class Chef
class Application
diff --git a/lib/chef/application/windows_service_manager.rb b/lib/chef/application/windows_service_manager.rb
index 2646d98624..4a2bfa258e 100644
--- a/lib/chef/application/windows_service_manager.rb
+++ b/lib/chef/application/windows_service_manager.rb
@@ -19,9 +19,9 @@
if RUBY_PLATFORM =~ /mswin|mingw32|windows/
require "win32/service"
end
-require "chef/config"
+require_relative "../config"
require "mixlib/cli"
-require "chef/dist"
+require_relative "../dist"
class Chef
class Application
diff --git a/lib/chef/applications.rb b/lib/chef/applications.rb
index 97c896e12e..a30b765c77 100644
--- a/lib/chef/applications.rb
+++ b/lib/chef/applications.rb
@@ -1,4 +1,4 @@
-require "chef/application/client"
-require "chef/application/knife"
-require "chef/application/solo"
-require "chef/application/apply"
+require_relative "application/client"
+require_relative "application/knife"
+require_relative "application/solo"
+require_relative "application/apply"
diff --git a/lib/chef/blacklist.rb b/lib/chef/blacklist.rb
index a49c318295..b304934a98 100644
--- a/lib/chef/blacklist.rb
+++ b/lib/chef/blacklist.rb
@@ -1,5 +1,5 @@
-require "chef/exceptions"
+require_relative "exceptions"
class Chef
class Blacklist
diff --git a/lib/chef/chef_class.rb b/lib/chef/chef_class.rb
index 95b03f1c5c..dccab726ed 100644
--- a/lib/chef/chef_class.rb
+++ b/lib/chef/chef_class.rb
@@ -26,13 +26,13 @@
# injected" into this class by other objects and do not reference the class symbols in those files
# directly and we do not need to require those files here.
-require "chef/platform/provider_priority_map"
-require "chef/platform/resource_priority_map"
-require "chef/platform/provider_handler_map"
-require "chef/platform/resource_handler_map"
-require "chef/deprecated"
-require "chef/event_dispatch/dsl"
-require "chef/deprecated"
+require_relative "platform/provider_priority_map"
+require_relative "platform/resource_priority_map"
+require_relative "platform/provider_handler_map"
+require_relative "platform/resource_handler_map"
+require_relative "deprecated"
+require_relative "event_dispatch/dsl"
+require_relative "deprecated"
class Chef
class << self
diff --git a/lib/chef/chef_fs.rb b/lib/chef/chef_fs.rb
index 43a9efd5e2..dbf02bd103 100644
--- a/lib/chef/chef_fs.rb
+++ b/lib/chef/chef_fs.rb
@@ -1,4 +1,4 @@
-require "chef/platform"
+require_relative "platform"
#
# ChefFS was designed to be a near-1:1 translation between Chef server endpoints
diff --git a/lib/chef/chef_fs/chef_fs_data_store.rb b/lib/chef/chef_fs/chef_fs_data_store.rb
index 3f8a047c6d..b00c28e252 100644
--- a/lib/chef/chef_fs/chef_fs_data_store.rb
+++ b/lib/chef/chef_fs/chef_fs_data_store.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/cookbook_manifest"
+require_relative "../cookbook_manifest"
require "chef_zero/data_store/memory_store"
require "chef_zero/data_store/data_already_exists_error"
require "chef_zero/data_store/data_not_found_error"
-require "chef/chef_fs/file_pattern"
-require "chef/chef_fs/file_system"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/file_system/memory/memory_root"
+require_relative "file_pattern"
+require_relative "file_system"
+require_relative "file_system/exceptions"
+require_relative "file_system/memory/memory_root"
require "fileutils"
class Chef
diff --git a/lib/chef/chef_fs/command_line.rb b/lib/chef/chef_fs/command_line.rb
index 5f449bad04..56c0c574e8 100644
--- a/lib/chef/chef_fs/command_line.rb
+++ b/lib/chef/chef_fs/command_line.rb
@@ -1,6 +1,6 @@
#
# Author:: John Keiser (<jkeiser@chef.io>)
-# Copyright:: Copyright 2012-2016, Chef Software Inc.
+# Copyright:: Copyright 2012-2019, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/util/diff"
+require_relative "file_system"
+require_relative "file_system/exceptions"
+require_relative "../util/diff"
class Chef
module ChefFS
@@ -271,19 +271,18 @@ class Chef
new_tempfile.write(new_value)
new_tempfile.close
- begin
- old_tempfile = Tempfile.new("old")
- old_tempfile.write(old_value)
- old_tempfile.close
+ old_tempfile = Tempfile.new("old")
+ old_tempfile.write(old_value)
+ old_tempfile.close
- result = Chef::Util::Diff.new.udiff(old_tempfile.path, new_tempfile.path)
- result = result.gsub(/^--- #{old_tempfile.path}/, "--- #{old_path}")
- result = result.gsub(/^\+\+\+ #{new_tempfile.path}/, "+++ #{new_path}")
- result
- ensure
- old_tempfile.close!
- end
+ result = Chef::Util::Diff.new.udiff(old_tempfile.path, new_tempfile.path)
+ result = result.gsub(/^--- #{old_tempfile.path}/, "--- #{old_path}")
+ result = result.gsub(/^\+\+\+ #{new_tempfile.path}/, "+++ #{new_path}")
+ result
+ rescue => e
+ "!!! Unable to diff #{old_path} and #{new_path} due to #{e}"
ensure
+ old_tempfile.close!
new_tempfile.close!
end
end
diff --git a/lib/chef/chef_fs/config.rb b/lib/chef/chef_fs/config.rb
index 83efdad063..c6f6878c00 100644
--- a/lib/chef/chef_fs/config.rb
+++ b/lib/chef/chef_fs/config.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/chef_fs/path_utils"
+require_relative "../log"
+require_relative "path_utils"
class Chef
module ChefFS
@@ -172,7 +172,7 @@ class Chef
end
def create_chef_fs
- require "chef/chef_fs/file_system/chef_server/chef_server_root_dir"
+ require_relative "file_system/chef_server/chef_server_root_dir"
Chef::ChefFS::FileSystem::ChefServer::ChefServerRootDir.new("remote", @chef_config, cookbook_version: @cookbook_version)
end
@@ -181,7 +181,7 @@ class Chef
end
def create_local_fs
- require "chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir"
+ require_relative "file_system/repository/chef_repository_file_system_root_dir"
Chef::ChefFS::FileSystem::Repository::ChefRepositoryFileSystemRootDir.new(object_paths, Array(chef_config[:chef_repo_path]).flatten, @chef_config)
end
diff --git a/lib/chef/chef_fs/data_handler/acl_data_handler.rb b/lib/chef/chef_fs/data_handler/acl_data_handler.rb
index 834fc5ca0b..e64f3d245c 100644
--- a/lib/chef/chef_fs/data_handler/acl_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/acl_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/client_data_handler.rb b/lib/chef/chef_fs/data_handler/client_data_handler.rb
index 6c01d8d54c..3e5c4f1b84 100644
--- a/lib/chef/chef_fs/data_handler/client_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/client_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/api_client"
+require_relative "data_handler_base"
+require_relative "../../api_client"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/client_key_data_handler.rb b/lib/chef/chef_fs/data_handler/client_key_data_handler.rb
index 6276413bcf..fc81a658cf 100644
--- a/lib/chef/chef_fs/data_handler/client_key_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/client_key_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/api_client"
+require_relative "data_handler_base"
+require_relative "../../api_client"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/container_data_handler.rb b/lib/chef/chef_fs/data_handler/container_data_handler.rb
index a8bd5f084c..63663ea4ae 100644
--- a/lib/chef/chef_fs/data_handler/container_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/container_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb b/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb
index 2861c5d3eb..222e6069f3 100644
--- a/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/cookbook/metadata"
+require_relative "data_handler_base"
+require_relative "../../cookbook/metadata"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb b/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb
index 1254d8543c..855bb06dd7 100644
--- a/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/data_bag_item"
+require_relative "data_handler_base"
+require_relative "../../data_bag_item"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/environment_data_handler.rb b/lib/chef/chef_fs/data_handler/environment_data_handler.rb
index ab8104b483..e3aa242fc9 100644
--- a/lib/chef/chef_fs/data_handler/environment_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/environment_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/environment"
+require_relative "data_handler_base"
+require_relative "../../environment"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/group_data_handler.rb b/lib/chef/chef_fs/data_handler/group_data_handler.rb
index 8daced2e2e..3fffec5d11 100644
--- a/lib/chef/chef_fs/data_handler/group_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/group_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/api_client"
+require_relative "data_handler_base"
+require_relative "../../api_client"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/node_data_handler.rb b/lib/chef/chef_fs/data_handler/node_data_handler.rb
index a0087ec5d6..c4698afd2b 100644
--- a/lib/chef/chef_fs/data_handler/node_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/node_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/node"
+require_relative "data_handler_base"
+require_relative "../../node"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/organization_data_handler.rb b/lib/chef/chef_fs/data_handler/organization_data_handler.rb
index 0a697ab69a..ebac7051f7 100644
--- a/lib/chef/chef_fs/data_handler/organization_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/organization_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb b/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb
index 7ae08823b8..b3be2a962f 100644
--- a/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb b/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb
index 8e452a413c..944d3fa0a5 100644
--- a/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/policy_data_handler.rb b/lib/chef/chef_fs/data_handler/policy_data_handler.rb
index 91c59f2a0b..082dc9ec09 100644
--- a/lib/chef/chef_fs/data_handler/policy_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/policy_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb b/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb
index 397abdcc3e..bb0d4efb1c 100644
--- a/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/role_data_handler.rb b/lib/chef/chef_fs/data_handler/role_data_handler.rb
index b26271f3e8..1007a29c8a 100644
--- a/lib/chef/chef_fs/data_handler/role_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/role_data_handler.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/data_handler/data_handler_base"
-require "chef/role"
+require_relative "data_handler_base"
+require_relative "../../role"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/data_handler/user_data_handler.rb b/lib/chef/chef_fs/data_handler/user_data_handler.rb
index 4da2f8225d..50a0c0682d 100644
--- a/lib/chef/chef_fs/data_handler/user_data_handler.rb
+++ b/lib/chef/chef_fs/data_handler/user_data_handler.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/data_handler/data_handler_base"
+require_relative "data_handler_base"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_pattern.rb b/lib/chef/chef_fs/file_pattern.rb
index 835e06eab7..88604e2b8f 100644
--- a/lib/chef/chef_fs/file_pattern.rb
+++ b/lib/chef/chef_fs/file_pattern.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs"
-require "chef/chef_fs/path_utils"
+require_relative "../chef_fs"
+require_relative "path_utils"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system.rb b/lib/chef/chef_fs/file_system.rb
index cbd8aa71d9..ff85a4a1b1 100644
--- a/lib/chef/chef_fs/file_system.rb
+++ b/lib/chef/chef_fs/file_system.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/path_utils"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/parallelizer"
+require_relative "path_utils"
+require_relative "file_system/exceptions"
+require_relative "parallelizer"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/base_fs_dir.rb b/lib/chef/chef_fs/file_system/base_fs_dir.rb
index 2827e5b384..2212d0b23f 100644
--- a/lib/chef/chef_fs/file_system/base_fs_dir.rb
+++ b/lib/chef/chef_fs/file_system/base_fs_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_object"
-require "chef/chef_fs/file_system/nonexistent_fs_object"
+require_relative "base_fs_object"
+require_relative "nonexistent_fs_object"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/base_fs_object.rb b/lib/chef/chef_fs/file_system/base_fs_object.rb
index 9767b5b1ba..f7516232ac 100644
--- a/lib/chef/chef_fs/file_system/base_fs_object.rb
+++ b/lib/chef/chef_fs/file_system/base_fs_object.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/path_utils"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "../path_utils"
+require_relative "exceptions"
class Chef
module ChefFS
@@ -184,4 +184,4 @@ class Chef
end
end
-require "chef/chef_fs/file_system/nonexistent_fs_object"
+require_relative "nonexistent_fs_object"
diff --git a/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb b/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb
index 006098a0c9..8794d0dbb1 100644
--- a/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/acl_entry"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "../base_fs_dir"
+require_relative "acl_entry"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb b/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb
index 98091eaf9a..e08ac8f6fc 100644
--- a/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "rest_list_entry"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb b/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb
index dbc895f85e..03b003586b 100644
--- a/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/acl_dir"
-require "chef/chef_fs/file_system/chef_server/cookbooks_acl_dir"
-require "chef/chef_fs/file_system/chef_server/policies_acl_dir"
-require "chef/chef_fs/file_system/chef_server/acl_entry"
-require "chef/chef_fs/data_handler/acl_data_handler"
+require_relative "../base_fs_dir"
+require_relative "acl_dir"
+require_relative "cookbooks_acl_dir"
+require_relative "policies_acl_dir"
+require_relative "acl_entry"
+require_relative "../../data_handler/acl_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb b/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb
index 3447e3500a..d1d92f508e 100644
--- a/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb
@@ -16,30 +16,30 @@
# limitations under the License.
#
-require "chef/server_api"
-require "chef/chef_fs/file_system/chef_server/acls_dir"
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/chef_server/cookbooks_dir"
-require "chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir"
-require "chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir"
-require "chef/chef_fs/file_system/chef_server/data_bags_dir"
-require "chef/chef_fs/file_system/chef_server/nodes_dir"
-require "chef/chef_fs/file_system/chef_server/org_entry"
-require "chef/chef_fs/file_system/chef_server/organization_invites_entry"
-require "chef/chef_fs/file_system/chef_server/organization_members_entry"
-require "chef/chef_fs/file_system/chef_server/policies_dir"
-require "chef/chef_fs/file_system/chef_server/policy_groups_dir"
-require "chef/chef_fs/file_system/chef_server/environments_dir"
-require "chef/chef_fs/data_handler/acl_data_handler"
-require "chef/chef_fs/data_handler/client_data_handler"
-require "chef/chef_fs/data_handler/environment_data_handler"
-require "chef/chef_fs/data_handler/node_data_handler"
-require "chef/chef_fs/data_handler/role_data_handler"
-require "chef/chef_fs/data_handler/user_data_handler"
-require "chef/chef_fs/data_handler/group_data_handler"
-require "chef/chef_fs/data_handler/container_data_handler"
-require "chef/chef_fs/data_handler/policy_group_data_handler"
+require_relative "../../../server_api"
+require_relative "acls_dir"
+require_relative "../base_fs_dir"
+require_relative "rest_list_dir"
+require_relative "cookbooks_dir"
+require_relative "cookbook_artifacts_dir"
+require_relative "versioned_cookbooks_dir"
+require_relative "data_bags_dir"
+require_relative "nodes_dir"
+require_relative "org_entry"
+require_relative "organization_invites_entry"
+require_relative "organization_members_entry"
+require_relative "policies_dir"
+require_relative "policy_groups_dir"
+require_relative "environments_dir"
+require_relative "../../data_handler/acl_data_handler"
+require_relative "../../data_handler/client_data_handler"
+require_relative "../../data_handler/environment_data_handler"
+require_relative "../../data_handler/node_data_handler"
+require_relative "../../data_handler/role_data_handler"
+require_relative "../../data_handler/user_data_handler"
+require_relative "../../data_handler/group_data_handler"
+require_relative "../../data_handler/container_data_handler"
+require_relative "../../data_handler/policy_group_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb b/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb
index faea96e944..68468f62a0 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/cookbook_dir"
+require_relative "cookbook_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb b/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb
index e4df7858a7..6c1610876c 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/cookbooks_dir"
-require "chef/chef_fs/file_system/chef_server/cookbook_artifact_dir"
+require_relative "cookbooks_dir"
+require_relative "cookbook_artifact_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb b/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb
index a619dc75bf..b8e1b7b43c 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb
@@ -16,13 +16,13 @@
# limitations under the License.
#
-require "chef/chef_fs/command_line"
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/chef_server/cookbook_subdir"
-require "chef/chef_fs/file_system/chef_server/cookbook_file"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/cookbook_version"
-require "chef/cookbook_uploader"
+require_relative "../../command_line"
+require_relative "rest_list_dir"
+require_relative "cookbook_subdir"
+require_relative "cookbook_file"
+require_relative "../exceptions"
+require_relative "../../../cookbook_version"
+require_relative "../../../cookbook_uploader"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb b/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb
index a680daacc0..0ee277abea 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_object"
-require "chef/http/simple"
+require_relative "../base_fs_object"
+require_relative "../../../http/simple"
require "openssl"
class Chef
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb b/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb
index 01297a39ba..d1b415baf1 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
+require_relative "../base_fs_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb b/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb
index e020d0fb34..548eb0200a 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/acl_dir"
+require_relative "acl_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb b/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb
index 04d48d4e8e..c1bd3e5812 100644
--- a/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/chef_server/cookbook_dir"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir"
-require "chef/mixin/file_class"
+require_relative "rest_list_dir"
+require_relative "cookbook_dir"
+require_relative "../exceptions"
+require_relative "../repository/chef_repository_file_system_cookbook_dir"
+require_relative "../../../mixin/file_class"
require "tmpdir"
diff --git a/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb b/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb
index 0102ea2844..fb8a537596 100644
--- a/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/chef_server/data_bag_entry"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/data_handler/data_bag_item_data_handler"
+require_relative "rest_list_dir"
+require_relative "data_bag_entry"
+require_relative "../exceptions"
+require_relative "../../data_handler/data_bag_item_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb b/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb
index c0093058b7..19e0fb409e 100644
--- a/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/data_handler/data_bag_item_data_handler"
+require_relative "rest_list_entry"
+require_relative "../../data_handler/data_bag_item_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb b/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb
index 6c7dd7b477..08793257dc 100644
--- a/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/chef_server/data_bag_dir"
+require_relative "rest_list_dir"
+require_relative "data_bag_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb b/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb
index e4714cf089..09ab30c799 100644
--- a/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "../base_fs_dir"
+require_relative "rest_list_entry"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb b/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb
index e56c68ffae..76897df093 100644
--- a/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/data_handler/node_data_handler"
+require_relative "../base_fs_dir"
+require_relative "rest_list_entry"
+require_relative "../exceptions"
+require_relative "../../data_handler/node_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/org_entry.rb b/lib/chef/chef_fs/file_system/chef_server/org_entry.rb
index 7253de3449..f2dfc944cd 100644
--- a/lib/chef/chef_fs/file_system/chef_server/org_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/org_entry.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/data_handler/organization_data_handler"
+require_relative "rest_list_entry"
+require_relative "../../data_handler/organization_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb b/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb
index 02cde95880..bcb6b94edf 100644
--- a/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb
@@ -1,6 +1,6 @@
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/data_handler/organization_invites_data_handler"
-require "chef/json_compat"
+require_relative "rest_list_entry"
+require_relative "../../data_handler/organization_invites_data_handler"
+require_relative "../../../json_compat"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb b/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb
index a31922d7c8..31c5f880f8 100644
--- a/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb
@@ -1,6 +1,6 @@
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/data_handler/organization_members_data_handler"
-require "chef/json_compat"
+require_relative "rest_list_entry"
+require_relative "../../data_handler/organization_members_data_handler"
+require_relative "../../../json_compat"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb b/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb
index fa1d184b7d..ef9014505d 100644
--- a/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/acl_dir"
+require_relative "acl_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb b/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb
index df589a6cc0..d0674075c6 100644
--- a/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/chef_server/policy_revision_entry"
+require_relative "rest_list_dir"
+require_relative "policy_revision_entry"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb b/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb
index f0d51a692f..3ecb7695cb 100644
--- a/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/exceptions"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb b/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb
index 0452fa4573..23f7572a0b 100644
--- a/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/file_system/chef_server/policy_group_entry"
+require_relative "../base_fs_dir"
+require_relative "rest_list_entry"
+require_relative "../exceptions"
+require_relative "policy_group_entry"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb b/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb
index 325b18e429..9b99fea730 100644
--- a/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/data_handler/policy_data_handler"
+require_relative "rest_list_entry"
+require_relative "../../data_handler/policy_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb b/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb
index a58a01ae8c..7c5e01bf7e 100644
--- a/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/rest_list_entry"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "../base_fs_dir"
+require_relative "rest_list_entry"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb b/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb
index 9eaae9c73f..94c6ee0656 100644
--- a/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_object"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/role"
-require "chef/node"
-require "chef/json_compat"
+require_relative "../base_fs_object"
+require_relative "../exceptions"
+require_relative "../../../role"
+require_relative "../../../node"
+require_relative "../../../json_compat"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb b/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb
index ae4422b82e..a091ddaf12 100644
--- a/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/cookbook_dir"
+require_relative "cookbook_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb b/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb
index 94c1a5b695..5973e01e41 100644
--- a/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb
+++ b/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/chef_server/cookbooks_dir"
-require "chef/chef_fs/file_system/chef_server/versioned_cookbook_dir"
+require_relative "cookbooks_dir"
+require_relative "versioned_cookbook_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/memory/memory_dir.rb b/lib/chef/chef_fs/file_system/memory/memory_dir.rb
index 6049f404b1..fdef10ff56 100644
--- a/lib/chef/chef_fs/file_system/memory/memory_dir.rb
+++ b/lib/chef/chef_fs/file_system/memory/memory_dir.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/memory/memory_file"
+require_relative "../base_fs_dir"
+require_relative "memory_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/memory/memory_file.rb b/lib/chef/chef_fs/file_system/memory/memory_file.rb
index 6dcefc72eb..9201893dda 100644
--- a/lib/chef/chef_fs/file_system/memory/memory_file.rb
+++ b/lib/chef/chef_fs/file_system/memory/memory_file.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/file_system/base_fs_object"
+require_relative "../base_fs_object"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/memory/memory_root.rb b/lib/chef/chef_fs/file_system/memory/memory_root.rb
index 4881b3d951..4a8b281389 100644
--- a/lib/chef/chef_fs/file_system/memory/memory_root.rb
+++ b/lib/chef/chef_fs/file_system/memory/memory_root.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/file_system/memory/memory_dir"
+require_relative "memory_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/multiplexed_dir.rb b/lib/chef/chef_fs/file_system/multiplexed_dir.rb
index 969a579532..2930dd5d8c 100644
--- a/lib/chef/chef_fs/file_system/multiplexed_dir.rb
+++ b/lib/chef/chef_fs/file_system/multiplexed_dir.rb
@@ -1,5 +1,5 @@
-require "chef/chef_fs/file_system/base_fs_object"
-require "chef/chef_fs/file_system/nonexistent_fs_object"
+require_relative "base_fs_object"
+require_relative "nonexistent_fs_object"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb b/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb
index 1a48d23047..e232c6bd07 100644
--- a/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb
+++ b/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_object"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "base_fs_object"
+require_relative "exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/acl.rb b/lib/chef/chef_fs/file_system/repository/acl.rb
index 023ae11379..389c1fd38b 100644
--- a/lib/chef/chef_fs/file_system/repository/acl.rb
+++ b/lib/chef/chef_fs/file_system/repository/acl.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/acl_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/acl_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/acls_dir.rb b/lib/chef/chef_fs/file_system/repository/acls_dir.rb
index ef30bef725..f97796d6b5 100644
--- a/lib/chef/chef_fs/file_system/repository/acls_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/acls_dir.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/acl"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/repository/acls_sub_dir"
-require "chef/chef_fs/file_system/chef_server/acls_dir"
-require "chef/chef_fs/data_handler/acl_data_handler"
+require_relative "acl"
+require_relative "directory"
+require_relative "acls_sub_dir"
+require_relative "../chef_server/acls_dir"
+require_relative "../../data_handler/acl_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb b/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb
index 70c7d77480..2386a03d0e 100644
--- a/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/acl"
-require "chef/chef_fs/data_handler/acl_data_handler"
-require "chef/chef_fs/file_system/repository/directory"
+require_relative "acl"
+require_relative "../../data_handler/acl_data_handler"
+require_relative "directory"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/base_file.rb b/lib/chef/chef_fs/file_system/repository/base_file.rb
index 76d242eee5..ade5fc2039 100644
--- a/lib/chef/chef_fs/file_system/repository/base_file.rb
+++ b/lib/chef/chef_fs/file_system/repository/base_file.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system_cache"
+require_relative "../../file_system_cache"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb
index 83c13e5e20..8a6e375fde 100644
--- a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir"
+require_relative "chef_repository_file_system_cookbook_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb
index 8e64e3ca06..5098d55727 100644
--- a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry"
-require "chef/chef_fs/file_system/chef_server/cookbook_dir"
-require "chef/chef_fs/file_system/chef_server/versioned_cookbook_dir"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/cookbook/cookbook_version_loader"
+require_relative "chef_repository_file_system_cookbook_entry"
+require_relative "../chef_server/cookbook_dir"
+require_relative "../chef_server/versioned_cookbook_dir"
+require_relative "../exceptions"
+require_relative "../../../cookbook/cookbook_version_loader"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb
index c840fad126..a6cae64c6d 100644
--- a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb
+++ b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/file_system_entry"
-require "chef/chef_fs/file_system/repository/cookbooks_dir"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "file_system_entry"
+require_relative "cookbooks_dir"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb
index 5abd1c238b..a180cd1e2e 100644
--- a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb
@@ -16,34 +16,34 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/repository/acls_dir"
-require "chef/chef_fs/file_system/repository/clients_dir"
-require "chef/chef_fs/file_system/repository/cookbooks_dir"
-require "chef/chef_fs/file_system/repository/cookbook_artifacts_dir"
-require "chef/chef_fs/file_system/repository/containers_dir"
-require "chef/chef_fs/file_system/repository/data_bags_dir"
-require "chef/chef_fs/file_system/repository/environments_dir"
-require "chef/chef_fs/file_system/repository/groups_dir"
-require "chef/chef_fs/file_system/repository/nodes_dir"
-require "chef/chef_fs/file_system/repository/policy_groups_dir"
-require "chef/chef_fs/file_system/repository/roles_dir"
-require "chef/chef_fs/file_system/repository/users_dir"
-require "chef/chef_fs/file_system/repository/client_keys_dir"
-require "chef/chef_fs/file_system/repository/file_system_entry"
-require "chef/chef_fs/file_system/repository/policies_dir"
-require "chef/chef_fs/file_system/repository/versioned_cookbooks_dir"
-require "chef/chef_fs/file_system/multiplexed_dir"
-require "chef/chef_fs/data_handler/client_data_handler"
-require "chef/chef_fs/data_handler/client_key_data_handler"
-require "chef/chef_fs/data_handler/environment_data_handler"
-require "chef/chef_fs/data_handler/node_data_handler"
-require "chef/chef_fs/data_handler/policy_data_handler"
-require "chef/chef_fs/data_handler/policy_group_data_handler"
-require "chef/chef_fs/data_handler/role_data_handler"
-require "chef/chef_fs/data_handler/user_data_handler"
-require "chef/chef_fs/data_handler/group_data_handler"
-require "chef/chef_fs/data_handler/container_data_handler"
+require_relative "../base_fs_dir"
+require_relative "acls_dir"
+require_relative "clients_dir"
+require_relative "cookbooks_dir"
+require_relative "cookbook_artifacts_dir"
+require_relative "containers_dir"
+require_relative "data_bags_dir"
+require_relative "environments_dir"
+require_relative "groups_dir"
+require_relative "nodes_dir"
+require_relative "policy_groups_dir"
+require_relative "roles_dir"
+require_relative "users_dir"
+require_relative "client_keys_dir"
+require_relative "file_system_entry"
+require_relative "policies_dir"
+require_relative "versioned_cookbooks_dir"
+require_relative "../multiplexed_dir"
+require_relative "../../data_handler/client_data_handler"
+require_relative "../../data_handler/client_key_data_handler"
+require_relative "../../data_handler/environment_data_handler"
+require_relative "../../data_handler/node_data_handler"
+require_relative "../../data_handler/policy_data_handler"
+require_relative "../../data_handler/policy_group_data_handler"
+require_relative "../../data_handler/role_data_handler"
+require_relative "../../data_handler/user_data_handler"
+require_relative "../../data_handler/group_data_handler"
+require_relative "../../data_handler/container_data_handler"
require "chef/win32/security" if Chef::Platform.windows?
class Chef
diff --git a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb
index 5dc74d85da..4fb214cff8 100644
--- a/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir"
+require_relative "chef_repository_file_system_cookbook_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/client.rb b/lib/chef/chef_fs/file_system/repository/client.rb
index 6a99b7f005..6d747aa6cc 100644
--- a/lib/chef/chef_fs/file_system/repository/client.rb
+++ b/lib/chef/chef_fs/file_system/repository/client.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/client_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/client_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/client_key.rb b/lib/chef/chef_fs/file_system/repository/client_key.rb
index 8ca4f85d2f..07b6bafafe 100644
--- a/lib/chef/chef_fs/file_system/repository/client_key.rb
+++ b/lib/chef/chef_fs/file_system/repository/client_key.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/client_key_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/client_key_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb b/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb
index 9e7e7b3d5c..7b5b29ea02 100644
--- a/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/client_keys_sub_dir"
-require "chef/chef_fs/data_handler/client_key_data_handler"
-require "chef/chef_fs/file_system/repository/directory"
+require_relative "client_keys_sub_dir"
+require_relative "../../data_handler/client_key_data_handler"
+require_relative "directory"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb b/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb
index 6aafcfe294..0c6ad449b3 100644
--- a/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/client_key"
-require "chef/chef_fs/data_handler/client_key_data_handler"
-require "chef/chef_fs/file_system/repository/directory"
+require_relative "client_key"
+require_relative "../../data_handler/client_key_data_handler"
+require_relative "directory"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/clients_dir.rb b/lib/chef/chef_fs/file_system/repository/clients_dir.rb
index 01027f83ac..e3e7979cd2 100644
--- a/lib/chef/chef_fs/file_system/repository/clients_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/clients_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/client"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "client"
+require_relative "directory"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/container.rb b/lib/chef/chef_fs/file_system/repository/container.rb
index e14a2ded73..7aefa3d482 100644
--- a/lib/chef/chef_fs/file_system/repository/container.rb
+++ b/lib/chef/chef_fs/file_system/repository/container.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/container_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/container_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/containers_dir.rb b/lib/chef/chef_fs/file_system/repository/containers_dir.rb
index 2af496f418..892fe73244 100644
--- a/lib/chef/chef_fs/file_system/repository/containers_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/containers_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/container"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "container"
+require_relative "directory"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb b/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb
index 773d9a5e5a..c94430ea51 100644
--- a/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/cookbooks_dir"
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir"
+require_relative "cookbooks_dir"
+require_relative "chef_repository_file_system_cookbook_artifact_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb b/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb
index 86eca95ba8..1dfc1fcbc3 100644
--- a/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir"
-require "chef/cookbook/chefignore"
+require_relative "directory"
+require_relative "chef_repository_file_system_cookbook_dir"
+require_relative "../../../cookbook/chefignore"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/data_bag.rb b/lib/chef/chef_fs/file_system/repository/data_bag.rb
index fb3ad9da77..8d7fb977cf 100644
--- a/lib/chef/chef_fs/file_system/repository/data_bag.rb
+++ b/lib/chef/chef_fs/file_system/repository/data_bag.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/repository/data_bag_item"
+require_relative "directory"
+require_relative "data_bag_item"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/data_bag_item.rb b/lib/chef/chef_fs/file_system/repository/data_bag_item.rb
index 2e3fb39606..c88fc3c153 100644
--- a/lib/chef/chef_fs/file_system/repository/data_bag_item.rb
+++ b/lib/chef/chef_fs/file_system/repository/data_bag_item.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/data_bag_item_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/data_bag_item_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb b/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb
index 666fede62b..8a0e03ae3f 100644
--- a/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/repository/data_bag"
+require_relative "directory"
+require_relative "data_bag"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/directory.rb b/lib/chef/chef_fs/file_system/repository/directory.rb
index d3f8d84324..f428e939d3 100644
--- a/lib/chef/chef_fs/file_system/repository/directory.rb
+++ b/lib/chef/chef_fs/file_system/repository/directory.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system_cache"
+require_relative "../../file_system_cache"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/environment.rb b/lib/chef/chef_fs/file_system/repository/environment.rb
index 9ef9741308..bc34ec7e07 100644
--- a/lib/chef/chef_fs/file_system/repository/environment.rb
+++ b/lib/chef/chef_fs/file_system/repository/environment.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/environment_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/environment_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/environments_dir.rb b/lib/chef/chef_fs/file_system/repository/environments_dir.rb
index 4d04348d6e..3354f86329 100644
--- a/lib/chef/chef_fs/file_system/repository/environments_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/environments_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/environment"
-require "chef/chef_fs/data_handler/environment_data_handler"
-require "chef/chef_fs/file_system/repository/directory"
+require_relative "environment"
+require_relative "../../data_handler/environment_data_handler"
+require_relative "directory"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/file_system_entry.rb b/lib/chef/chef_fs/file_system/repository/file_system_entry.rb
index 183fcda26d..f015dc9e51 100644
--- a/lib/chef/chef_fs/file_system/repository/file_system_entry.rb
+++ b/lib/chef/chef_fs/file_system/repository/file_system_entry.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/base_fs_dir"
-require "chef/chef_fs/file_system/chef_server/rest_list_dir"
-require "chef/chef_fs/file_system/exceptions"
-require "chef/chef_fs/path_utils"
+require_relative "../base_fs_dir"
+require_relative "../chef_server/rest_list_dir"
+require_relative "../exceptions"
+require_relative "../../path_utils"
require "fileutils"
class Chef
diff --git a/lib/chef/chef_fs/file_system/repository/group.rb b/lib/chef/chef_fs/file_system/repository/group.rb
index 302e72739b..231d8d1003 100644
--- a/lib/chef/chef_fs/file_system/repository/group.rb
+++ b/lib/chef/chef_fs/file_system/repository/group.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/group_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/group_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/groups_dir.rb b/lib/chef/chef_fs/file_system/repository/groups_dir.rb
index 20728d1248..0ecea2b87d 100644
--- a/lib/chef/chef_fs/file_system/repository/groups_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/groups_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/group"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "group"
+require_relative "directory"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/node.rb b/lib/chef/chef_fs/file_system/repository/node.rb
index d8f0dec7c4..d3b9c26533 100644
--- a/lib/chef/chef_fs/file_system/repository/node.rb
+++ b/lib/chef/chef_fs/file_system/repository/node.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/node_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/node_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/nodes_dir.rb b/lib/chef/chef_fs/file_system/repository/nodes_dir.rb
index a0dd0c9e51..267c255cf0 100644
--- a/lib/chef/chef_fs/file_system/repository/nodes_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/nodes_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/node"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "node"
+require_relative "directory"
+require_relative "../exceptions"
require "chef/win32/security" if Chef::Platform.windows?
class Chef
diff --git a/lib/chef/chef_fs/file_system/repository/policies_dir.rb b/lib/chef/chef_fs/file_system/repository/policies_dir.rb
index c74ea5469b..282a1db4ff 100644
--- a/lib/chef/chef_fs/file_system/repository/policies_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/policies_dir.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/policy"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/data_handler/policy_data_handler"
+require_relative "policy"
+require_relative "directory"
+require_relative "../../data_handler/policy_data_handler"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/policy.rb b/lib/chef/chef_fs/file_system/repository/policy.rb
index 695bf17e83..7cadd82498 100644
--- a/lib/chef/chef_fs/file_system/repository/policy.rb
+++ b/lib/chef/chef_fs/file_system/repository/policy.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/policy_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/policy_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/policy_group.rb b/lib/chef/chef_fs/file_system/repository/policy_group.rb
index e4182847b6..31fad664ef 100644
--- a/lib/chef/chef_fs/file_system/repository/policy_group.rb
+++ b/lib/chef/chef_fs/file_system/repository/policy_group.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/policy_group_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/policy_group_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb b/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb
index 4db85a93f7..89c3f13d6c 100644
--- a/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/policy_group"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "policy_group"
+require_relative "directory"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/role.rb b/lib/chef/chef_fs/file_system/repository/role.rb
index d97ae0e7a1..2d55ef152c 100644
--- a/lib/chef/chef_fs/file_system/repository/role.rb
+++ b/lib/chef/chef_fs/file_system/repository/role.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/role_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/role_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/roles_dir.rb b/lib/chef/chef_fs/file_system/repository/roles_dir.rb
index 42f4376e71..a18d2e9b70 100644
--- a/lib/chef/chef_fs/file_system/repository/roles_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/roles_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/role"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "role"
+require_relative "directory"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/user.rb b/lib/chef/chef_fs/file_system/repository/user.rb
index 59355cc303..31ca6e6423 100644
--- a/lib/chef/chef_fs/file_system/repository/user.rb
+++ b/lib/chef/chef_fs/file_system/repository/user.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/data_handler/user_data_handler"
-require "chef/chef_fs/file_system/repository/base_file"
+require_relative "../../data_handler/user_data_handler"
+require_relative "base_file"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/users_dir.rb b/lib/chef/chef_fs/file_system/repository/users_dir.rb
index 9e8621575b..76a74e6a1f 100644
--- a/lib/chef/chef_fs/file_system/repository/users_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/users_dir.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/user"
-require "chef/chef_fs/file_system/repository/directory"
-require "chef/chef_fs/file_system/exceptions"
+require_relative "user"
+require_relative "directory"
+require_relative "../exceptions"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb b/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb
index 80f77d02be..a792e5c64e 100644
--- a/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb
+++ b/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/chef_fs/file_system/repository/cookbooks_dir"
-require "chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir"
+require_relative "cookbooks_dir"
+require_relative "chef_repository_file_system_versioned_cookbook_dir"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/file_system_cache.rb b/lib/chef/chef_fs/file_system_cache.rb
index 7b6c4c148f..fe7c600ab3 100644
--- a/lib/chef/chef_fs/file_system_cache.rb
+++ b/lib/chef/chef_fs/file_system_cache.rb
@@ -16,7 +16,7 @@
#
require "singleton"
-require "chef/client"
+require_relative "../client"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/knife.rb b/lib/chef/chef_fs/knife.rb
index 36445e5680..47f34225b7 100644
--- a/lib/chef/chef_fs/knife.rb
+++ b/lib/chef/chef_fs/knife.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
require "pathname"
class Chef
@@ -25,11 +25,11 @@ class Chef
# Workaround for CHEF-3932
def self.deps
super do
- require "chef/config"
- require "chef/chef_fs/parallelizer"
- require "chef/chef_fs/config"
- require "chef/chef_fs/file_pattern"
- require "chef/chef_fs/path_utils"
+ require_relative "../config"
+ require_relative "parallelizer"
+ require_relative "config"
+ require_relative "file_pattern"
+ require_relative "path_utils"
yield
end
end
diff --git a/lib/chef/chef_fs/parallelizer.rb b/lib/chef/chef_fs/parallelizer.rb
index eee555fc93..be7d93c669 100644
--- a/lib/chef/chef_fs/parallelizer.rb
+++ b/lib/chef/chef_fs/parallelizer.rb
@@ -1,5 +1,5 @@
require "thread"
-require "chef/chef_fs/parallelizer/parallel_enumerable"
+require_relative "parallelizer/parallel_enumerable"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb b/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb
index ab578bdb7f..2291220ef8 100644
--- a/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb
+++ b/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb
@@ -1,4 +1,4 @@
-require "chef/chef_fs/parallelizer/flatten_enumerable"
+require_relative "flatten_enumerable"
class Chef
module ChefFS
diff --git a/lib/chef/chef_fs/path_utils.rb b/lib/chef/chef_fs/path_utils.rb
index 4de23f8266..6389fe4d2f 100644
--- a/lib/chef/chef_fs/path_utils.rb
+++ b/lib/chef/chef_fs/path_utils.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_fs"
+require_relative "../chef_fs"
require "pathname"
class Chef
diff --git a/lib/chef/client.rb b/lib/chef/client.rb
index 0c4acc0a8d..eb42b58890 100644
--- a/lib/chef/client.rb
+++ b/lib/chef/client.rb
@@ -18,43 +18,44 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/path_sanity"
-require "chef/log"
-require "chef/deprecated"
-require "chef/server_api"
-require "chef/api_client"
-require "chef/api_client/registration"
-require "chef/node"
-require "chef/role"
-require "chef/file_cache"
-require "chef/run_context"
-require "chef/runner"
-require "chef/run_status"
-require "chef/cookbook/cookbook_collection"
-require "chef/cookbook/file_vendor"
-require "chef/cookbook/file_system_file_vendor"
-require "chef/cookbook/remote_file_vendor"
-require "chef/event_dispatch/dispatcher"
-require "chef/event_loggers/base"
-require "chef/event_loggers/windows_eventlog"
-require "chef/exceptions"
-require "chef/formatters/base"
-require "chef/formatters/doc"
-require "chef/formatters/minimal"
-require "chef/version"
-require "chef/action_collection"
-require "chef/resource_reporter"
-require "chef/data_collector"
-require "chef/run_lock"
-require "chef/policy_builder"
-require "chef/request_id"
-require "chef/platform/rebooter"
-require "chef/mixin/deprecation"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/path_sanity"
+require_relative "log"
+require_relative "deprecated"
+require_relative "server_api"
+require_relative "api_client"
+require_relative "api_client/registration"
+require_relative "node"
+require_relative "role"
+require_relative "file_cache"
+require_relative "run_context"
+require_relative "runner"
+require_relative "run_status"
+require_relative "cookbook/cookbook_collection"
+require_relative "cookbook/file_vendor"
+require_relative "cookbook/file_system_file_vendor"
+require_relative "cookbook/remote_file_vendor"
+require_relative "event_dispatch/dispatcher"
+require_relative "event_loggers/base"
+require_relative "event_loggers/windows_eventlog"
+require_relative "exceptions"
+require_relative "formatters/base"
+require_relative "formatters/doc"
+require_relative "formatters/minimal"
+require_relative "version"
+require_relative "action_collection"
+require_relative "resource_reporter"
+require_relative "data_collector"
+require_relative "run_lock"
+require_relative "policy_builder"
+require_relative "request_id"
+require_relative "platform/rebooter"
+require_relative "mixin/deprecation"
require "ohai"
require "rbconfig"
-require "chef/dist"
+require_relative "dist"
+require "forwardable"
class Chef
# == Chef::Client
@@ -65,6 +66,7 @@ class Chef
extend Chef::Mixin::Deprecation
+ extend Forwardable
#
# The status of the Chef run.
#
@@ -136,6 +138,9 @@ class Chef
attr_reader :events
attr_reader :logger
+
+ def_delegator :@run_context, :transport_connection
+
#
# Creates a new Chef::Client.
#
@@ -244,9 +249,15 @@ class Chef
logger.info("*** #{Chef::Dist::PRODUCT} #{Chef::VERSION} ***")
logger.info("Platform: #{RUBY_PLATFORM}")
logger.info "#{Chef::Dist::CLIENT.capitalize} pid: #{Process.pid}"
+ logger.info "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
logger.debug("#{Chef::Dist::CLIENT.capitalize} request_id: #{request_id}")
enforce_path_sanity
- run_ohai
+
+ if Chef::Config.target_mode?
+ get_ohai_data_remotely
+ else
+ run_ohai
+ end
unless Chef::Config[:solo_legacy_mode]
register
@@ -556,6 +567,32 @@ class Chef
end
#
+ # Populate the minimal ohai attributes defined in #run_ohai with data train collects.
+ #
+ # Eventually ohai may support colleciton of data.
+ #
+ def get_ohai_data_remotely
+ ohai.data[:fqdn] = if transport_connection.respond_to?(:hostname)
+ transport_connection.hostname
+ else
+ Chef::Config[:target_mode][:host]
+ end
+ if transport_connection.respond_to?(:os)
+ ohai.data[:platform] = transport_connection.os.name
+ ohai.data[:platform_version] = transport_connection.os.release
+ ohai.data[:os] = transport_connection.os.family_hierarchy[1]
+ ohai.data[:platform_family] = transport_connection.os.family
+ end
+ # train does not collect these specifically
+ # ohai.data[:machinename] = nil
+ # ohai.data[:hostname] = nil
+ # ohai.data[:os_version] = nil # kernel version
+
+ ohai.data[:ohai_time] = Time.now.to_f
+ events.ohai_completed(node)
+ end
+
+ #
# Run ohai plugins. Runs all ohai plugins unless minimal_ohai is specified.
#
# Sends the ohai_completed event when finished.
@@ -884,7 +921,7 @@ class Chef
end
def has_admin_privileges?
- require "chef/win32/security"
+ require_relative "win32/security"
Chef::ReservedNames::Win32::Security.has_admin_privileges?
end
@@ -892,6 +929,6 @@ class Chef
end
# HACK cannot load this first, but it must be loaded.
-require "chef/cookbook_loader"
-require "chef/cookbook_version"
-require "chef/cookbook/synchronizer"
+require_relative "cookbook_loader"
+require_relative "cookbook_version"
+require_relative "cookbook/synchronizer"
diff --git a/lib/chef/config.rb b/lib/chef/config.rb
index f5466ae145..759818261e 100644
--- a/lib/chef/config.rb
+++ b/lib/chef/config.rb
@@ -19,7 +19,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/log"
+require_relative "log"
require "chef-config/logger"
# DI our logger into ChefConfig before we load the config. Some defaults are
@@ -28,7 +28,7 @@ require "chef-config/logger"
ChefConfig.logger = Chef::Log
require "chef-config/config"
-require "chef/platform/query_helpers"
+require_relative "platform/query_helpers"
# Ohai::Config defines its own log_level and log_location. When loaded, it will
# override the default ChefConfig::Config values. We save them here before
diff --git a/lib/chef/config_fetcher.rb b/lib/chef/config_fetcher.rb
index d9d100ed00..0e4a7935ac 100644
--- a/lib/chef/config_fetcher.rb
+++ b/lib/chef/config_fetcher.rb
@@ -1,7 +1,7 @@
-require "chef/application"
-require "chef/chef_fs/path_utils"
-require "chef/http/simple"
-require "chef/json_compat"
+require_relative "application"
+require_relative "chef_fs/path_utils"
+require_relative "http/simple"
+require_relative "json_compat"
class Chef
class ConfigFetcher
diff --git a/lib/chef/cookbook/cookbook_collection.rb b/lib/chef/cookbook/cookbook_collection.rb
index 0ebf7d8464..692cb1595e 100644
--- a/lib/chef/cookbook/cookbook_collection.rb
+++ b/lib/chef/cookbook/cookbook_collection.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mash"
-require "chef/cookbook/gem_installer"
+require_relative "../mash"
+require_relative "gem_installer"
class Chef
# == Chef::CookbookCollection
diff --git a/lib/chef/cookbook/cookbook_version_loader.rb b/lib/chef/cookbook/cookbook_version_loader.rb
index d5ad9c98d7..ad7ee3b1c2 100644
--- a/lib/chef/cookbook/cookbook_version_loader.rb
+++ b/lib/chef/cookbook/cookbook_version_loader.rb
@@ -13,10 +13,10 @@
# limitations under the License.
#
-require "chef/cookbook_version"
-require "chef/cookbook/chefignore"
-require "chef/cookbook/metadata"
-require "chef/util/path_helper"
+require_relative "../cookbook_version"
+require_relative "chefignore"
+require_relative "metadata"
+require_relative "../util/path_helper"
require "find"
class Chef
diff --git a/lib/chef/cookbook/file_system_file_vendor.rb b/lib/chef/cookbook/file_system_file_vendor.rb
index fe16af26b0..2faeb31815 100644
--- a/lib/chef/cookbook/file_system_file_vendor.rb
+++ b/lib/chef/cookbook/file_system_file_vendor.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/cookbook/file_vendor"
+require_relative "file_vendor"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook/gem_installer.rb b/lib/chef/cookbook/gem_installer.rb
index dafb76f412..830dce757a 100644
--- a/lib/chef/cookbook/gem_installer.rb
+++ b/lib/chef/cookbook/gem_installer.rb
@@ -15,7 +15,7 @@
#
require "tmpdir"
-require "chef/mixin/shell_out"
+require_relative "../mixin/shell_out"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook/manifest_v0.rb b/lib/chef/cookbook/manifest_v0.rb
index 198c7a4741..e285b29fd2 100644
--- a/lib/chef/cookbook/manifest_v0.rb
+++ b/lib/chef/cookbook/manifest_v0.rb
@@ -14,8 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/json_compat"
-require "chef/mixin/versioned_api"
+require_relative "../json_compat"
+require_relative "../mixin/versioned_api"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook/manifest_v2.rb b/lib/chef/cookbook/manifest_v2.rb
index 37cad4b3b7..2b98c3550c 100644
--- a/lib/chef/cookbook/manifest_v2.rb
+++ b/lib/chef/cookbook/manifest_v2.rb
@@ -13,8 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/json_compat"
-require "chef/mixin/versioned_api"
+require_relative "../json_compat"
+require_relative "../mixin/versioned_api"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook/metadata.rb b/lib/chef/cookbook/metadata.rb
index 5db862e500..6d82ae4e30 100644
--- a/lib/chef/cookbook/metadata.rb
+++ b/lib/chef/cookbook/metadata.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/mash"
-require "chef/mixin/from_file"
-require "chef/mixin/params_validate"
-require "chef/log"
-require "chef/version_class"
-require "chef/version_constraint"
-require "chef/version_constraint/platform"
-require "chef/json_compat"
+require_relative "../exceptions"
+require_relative "../mash"
+require_relative "../mixin/from_file"
+require_relative "../mixin/params_validate"
+require_relative "../log"
+require_relative "../version_class"
+require_relative "../version_constraint"
+require_relative "../version_constraint/platform"
+require_relative "../json_compat"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook/remote_file_vendor.rb b/lib/chef/cookbook/remote_file_vendor.rb
index 3160c88eb3..9ccb2ff46c 100644
--- a/lib/chef/cookbook/remote_file_vendor.rb
+++ b/lib/chef/cookbook/remote_file_vendor.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/cookbook/file_vendor"
+require_relative "file_vendor"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook/synchronizer.rb b/lib/chef/cookbook/synchronizer.rb
index 5f098a0538..b1fa1b436d 100644
--- a/lib/chef/cookbook/synchronizer.rb
+++ b/lib/chef/cookbook/synchronizer.rb
@@ -13,11 +13,11 @@
# limitations under the License.
#
-require "chef/client"
-require "chef/util/threaded_job_queue"
-require "chef/server_api"
+require_relative "../client"
+require_relative "../util/threaded_job_queue"
+require_relative "../server_api"
require "singleton"
-require "chef/dist"
+require_relative "../dist"
class Chef
diff --git a/lib/chef/cookbook/syntax_check.rb b/lib/chef/cookbook/syntax_check.rb
index 686abce178..8743e07caf 100644
--- a/lib/chef/cookbook/syntax_check.rb
+++ b/lib/chef/cookbook/syntax_check.rb
@@ -18,9 +18,9 @@
require "pathname"
require "stringio"
require "erubis"
-require "chef/mixin/shell_out"
-require "chef/mixin/checksum"
-require "chef/util/path_helper"
+require_relative "../mixin/shell_out"
+require_relative "../mixin/checksum"
+require_relative "../util/path_helper"
class Chef
class Cookbook
diff --git a/lib/chef/cookbook_loader.rb b/lib/chef/cookbook_loader.rb
index 1a7dec8b03..ada19baed7 100644
--- a/lib/chef/cookbook_loader.rb
+++ b/lib/chef/cookbook_loader.rb
@@ -18,12 +18,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/config"
-require "chef/exceptions"
-require "chef/cookbook/cookbook_version_loader"
-require "chef/cookbook_version"
-require "chef/cookbook/chefignore"
-require "chef/cookbook/metadata"
+require_relative "config"
+require_relative "exceptions"
+require_relative "cookbook/cookbook_version_loader"
+require_relative "cookbook_version"
+require_relative "cookbook/chefignore"
+require_relative "cookbook/metadata"
class Chef
# This class is used by knife, cheffs and legacy chef-solo modes. It is not used by the server mode
diff --git a/lib/chef/cookbook_manifest.rb b/lib/chef/cookbook_manifest.rb
index 3f38f9cf29..2633dfa8ba 100644
--- a/lib/chef/cookbook_manifest.rb
+++ b/lib/chef/cookbook_manifest.rb
@@ -15,11 +15,11 @@
# limitations under the License.
require "forwardable"
-require "chef/mixin/versioned_api"
-require "chef/util/path_helper"
-require "chef/cookbook/manifest_v0"
-require "chef/cookbook/manifest_v2"
-require "chef/log"
+require_relative "mixin/versioned_api"
+require_relative "util/path_helper"
+require_relative "cookbook/manifest_v0"
+require_relative "cookbook/manifest_v2"
+require_relative "log"
class Chef
diff --git a/lib/chef/cookbook_uploader.rb b/lib/chef/cookbook_uploader.rb
index de367f2455..e2393b91f6 100644
--- a/lib/chef/cookbook_uploader.rb
+++ b/lib/chef/cookbook_uploader.rb
@@ -1,15 +1,15 @@
require "set"
-require "chef/exceptions"
-require "chef/knife/cookbook_metadata"
-require "chef/digester"
-require "chef/cookbook_manifest"
-require "chef/cookbook_version"
-require "chef/cookbook/syntax_check"
-require "chef/cookbook/file_system_file_vendor"
-require "chef/util/threaded_job_queue"
-require "chef/sandbox"
-require "chef/server_api"
+require_relative "exceptions"
+require_relative "knife/cookbook_metadata"
+require_relative "digester"
+require_relative "cookbook_manifest"
+require_relative "cookbook_version"
+require_relative "cookbook/syntax_check"
+require_relative "cookbook/file_system_file_vendor"
+require_relative "util/threaded_job_queue"
+require_relative "sandbox"
+require_relative "server_api"
class Chef
class CookbookUploader
diff --git a/lib/chef/cookbook_version.rb b/lib/chef/cookbook_version.rb
index 8d4eb2e8ab..e69b2404b7 100644
--- a/lib/chef/cookbook_version.rb
+++ b/lib/chef/cookbook_version.rb
@@ -19,13 +19,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/log"
-require "chef/cookbook/file_vendor"
-require "chef/cookbook/metadata"
-require "chef/version_class"
-require "chef/digester"
-require "chef/cookbook_manifest"
-require "chef/server_api"
+require_relative "log"
+require_relative "cookbook/file_vendor"
+require_relative "cookbook/metadata"
+require_relative "version_class"
+require_relative "digester"
+require_relative "cookbook_manifest"
+require_relative "server_api"
class Chef
diff --git a/lib/chef/daemon.rb b/lib/chef/daemon.rb
index 70bdddf457..9fdfe6481f 100644
--- a/lib/chef/daemon.rb
+++ b/lib/chef/daemon.rb
@@ -17,8 +17,8 @@
# I love you Merb (lib/merb-core/server.rb)
-require "chef/config"
-require "chef/run_lock"
+require_relative "config"
+require_relative "run_lock"
require "etc"
class Chef
diff --git a/lib/chef/data_bag.rb b/lib/chef/data_bag.rb
index e8545fb1c0..d7e2de7397 100644
--- a/lib/chef/data_bag.rb
+++ b/lib/chef/data_bag.rb
@@ -18,13 +18,13 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/data_bag_item"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/server_api"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "data_bag_item"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "server_api"
class Chef
class DataBag
diff --git a/lib/chef/data_bag_item.rb b/lib/chef/data_bag_item.rb
index 2a02ada605..95626a346a 100644
--- a/lib/chef/data_bag_item.rb
+++ b/lib/chef/data_bag_item.rb
@@ -20,13 +20,13 @@
require "forwardable"
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/data_bag"
-require "chef/mash"
-require "chef/server_api"
-require "chef/json_compat"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "data_bag"
+require_relative "mash"
+require_relative "server_api"
+require_relative "json_compat"
class Chef
class DataBagItem
diff --git a/lib/chef/data_collector.rb b/lib/chef/data_collector.rb
index 66853c58fb..167b9f5d54 100644
--- a/lib/chef/data_collector.rb
+++ b/lib/chef/data_collector.rb
@@ -18,15 +18,15 @@
# limitations under the License.
#
-require "chef/server_api"
-require "chef/http/simple_json"
-require "chef/event_dispatch/base"
+require_relative "server_api"
+require_relative "http/simple_json"
+require_relative "event_dispatch/base"
require "set"
-require "chef/data_collector/run_end_message"
-require "chef/data_collector/run_start_message"
-require "chef/data_collector/config_validation"
-require "chef/data_collector/error_handlers"
-require "chef/dist"
+require_relative "data_collector/run_end_message"
+require_relative "data_collector/run_start_message"
+require_relative "data_collector/config_validation"
+require_relative "data_collector/error_handlers"
+require_relative "dist"
class Chef
class DataCollector
diff --git a/lib/chef/data_collector/run_end_message.rb b/lib/chef/data_collector/run_end_message.rb
index 1aba651d96..70a0b59650 100644
--- a/lib/chef/data_collector/run_end_message.rb
+++ b/lib/chef/data_collector/run_end_message.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/data_collector/message_helpers"
+require_relative "message_helpers"
class Chef
class DataCollector
diff --git a/lib/chef/data_collector/run_start_message.rb b/lib/chef/data_collector/run_start_message.rb
index 448043a48d..fd070da8e4 100644
--- a/lib/chef/data_collector/run_start_message.rb
+++ b/lib/chef/data_collector/run_start_message.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/data_collector/message_helpers"
+require_relative "message_helpers"
class Chef
class DataCollector
diff --git a/lib/chef/decorator/lazy.rb b/lib/chef/decorator/lazy.rb
index 71a2151d65..ae661151ae 100644
--- a/lib/chef/decorator/lazy.rb
+++ b/lib/chef/decorator/lazy.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/decorator"
+require_relative "../decorator"
class Chef
class Decorator
diff --git a/lib/chef/decorator/lazy_array.rb b/lib/chef/decorator/lazy_array.rb
index dc8ea832ee..f67365c458 100644
--- a/lib/chef/decorator/lazy_array.rb
+++ b/lib/chef/decorator/lazy_array.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/decorator/lazy"
+require_relative "lazy"
class Chef
class Decorator
diff --git a/lib/chef/deprecated.rb b/lib/chef/deprecated.rb
index 6516366d49..da29285223 100644
--- a/lib/chef/deprecated.rb
+++ b/lib/chef/deprecated.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/mixin/convert_to_class_name"
+require_relative "mixin/convert_to_class_name"
# Structured deprecations have a unique URL associated with them, which must exist before the deprecation is merged.
class Chef
@@ -207,9 +207,7 @@ class Chef
target 23
end
- class MapCollision < Base
- target 25
- end
+ # id 25 was deleted
# id 3694 was deleted
diff --git a/lib/chef/deprecation/warnings.rb b/lib/chef/deprecation/warnings.rb
index c227739a8d..7120b87f43 100644
--- a/lib/chef/deprecation/warnings.rb
+++ b/lib/chef/deprecation/warnings.rb
@@ -20,7 +20,7 @@ class Chef
module Deprecation
module Warnings
- require "chef/version"
+ require_relative "../version"
def add_deprecation_warnings_for(method_names)
method_names.each do |name|
diff --git a/lib/chef/dsl.rb b/lib/chef/dsl.rb
index 1fa0099e91..6893298d1d 100644
--- a/lib/chef/dsl.rb
+++ b/lib/chef/dsl.rb
@@ -1,6 +1,6 @@
-require "chef/dsl/recipe"
-require "chef/dsl/platform_introspection"
-require "chef/dsl/data_query"
-require "chef/dsl/include_recipe"
-require "chef/dsl/include_attribute"
-require "chef/dsl/registry_helper"
+require_relative "dsl/recipe"
+require_relative "dsl/platform_introspection"
+require_relative "dsl/data_query"
+require_relative "dsl/include_recipe"
+require_relative "dsl/include_attribute"
+require_relative "dsl/registry_helper"
diff --git a/lib/chef/dsl/core.rb b/lib/chef/dsl/core.rb
index d7c5b6a006..a06adc28d0 100644
--- a/lib/chef/dsl/core.rb
+++ b/lib/chef/dsl/core.rb
@@ -17,10 +17,10 @@
# limitations under the License.
#
-require "chef/dsl/declare_resource"
-require "chef/dsl/universal"
-require "chef/mixin/notifying_block"
-require "chef/mixin/lazy_module_include"
+require_relative "declare_resource"
+require_relative "universal"
+require_relative "../mixin/notifying_block"
+require_relative "../mixin/lazy_module_include"
class Chef
module DSL
diff --git a/lib/chef/dsl/data_query.rb b/lib/chef/dsl/data_query.rb
index 8ec466ea35..88562df190 100644
--- a/lib/chef/dsl/data_query.rb
+++ b/lib/chef/dsl/data_query.rb
@@ -1,6 +1,6 @@
#
# Author:: Adam Jacob (<adam@chef.io>)
-# Copyright:: Copyright 2008-2018, Chef Software Inc.
+# Copyright:: Copyright 2008-2019, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,18 +16,18 @@
# limitations under the License.
#
-require "chef/search/query"
-require "chef/data_bag"
-require "chef/data_bag_item"
-require "chef/encrypted_data_bag_item"
-require "chef/encrypted_data_bag_item/check_encrypted"
+require_relative "../search/query"
+require_relative "../data_bag"
+require_relative "../data_bag_item"
+require_relative "../encrypted_data_bag_item"
+require_relative "../encrypted_data_bag_item/check_encrypted"
class Chef
module DSL
- # ==Chef::DSL::DataQuery
- # Provides DSL for querying data from the chef-server via search or data
- # bag.
+ # Provides DSL helper methods for querying the search interface, data bag
+ # interface or node interface.
+ #
module DataQuery
include Chef::EncryptedDataBagItem::CheckEncrypted
@@ -80,6 +80,24 @@ class Chef
raise
end
+ #
+ # Note that this is mixed into the Universal DSL so access to the node needs to be done
+ # through the run_context and not accessing the node method directly, since the node method
+ # is not as universal as the run_context.
+ #
+
+ # True if all the tags are set on the node.
+ #
+ # @param [Array<String>] tags to check against
+ # @return boolean
+ #
+ def tagged?(*tags)
+ tags.each do |tag|
+ return false unless run_context.node.tags.include?(tag)
+ end
+ true
+ end
+
end
end
end
diff --git a/lib/chef/dsl/declare_resource.rb b/lib/chef/dsl/declare_resource.rb
index dc95489d52..bf1a6bcbcc 100644
--- a/lib/chef/dsl/declare_resource.rb
+++ b/lib/chef/dsl/declare_resource.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/exceptions"
+require_relative "../exceptions"
class Chef
module DSL
diff --git a/lib/chef/dsl/include_attribute.rb b/lib/chef/dsl/include_attribute.rb
index c81b37a963..56dc46e1da 100644
--- a/lib/chef/dsl/include_attribute.rb
+++ b/lib/chef/dsl/include_attribute.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/log"
+require_relative "../log"
class Chef
module DSL
diff --git a/lib/chef/dsl/include_recipe.rb b/lib/chef/dsl/include_recipe.rb
index 31b031080a..cea5577285 100644
--- a/lib/chef/dsl/include_recipe.rb
+++ b/lib/chef/dsl/include_recipe.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/log"
+require_relative "../log"
class Chef
module DSL
diff --git a/lib/chef/dsl/powershell.rb b/lib/chef/dsl/powershell.rb
index 7dc7a9a0f6..d12a787d48 100644
--- a/lib/chef/dsl/powershell.rb
+++ b/lib/chef/dsl/powershell.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/util/powershell/ps_credential"
+require_relative "../util/powershell/ps_credential"
class Chef
module DSL
diff --git a/lib/chef/dsl/reboot_pending.rb b/lib/chef/dsl/reboot_pending.rb
index 1dc0a8d41b..e554ca83ad 100644
--- a/lib/chef/dsl/reboot_pending.rb
+++ b/lib/chef/dsl/reboot_pending.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/dsl/platform_introspection"
-require "chef/dsl/registry_helper"
+require_relative "platform_introspection"
+require_relative "registry_helper"
class Chef
module DSL
diff --git a/lib/chef/dsl/recipe.rb b/lib/chef/dsl/recipe.rb
index 4d68a36a81..1d02d9c03e 100644
--- a/lib/chef/dsl/recipe.rb
+++ b/lib/chef/dsl/recipe.rb
@@ -1,7 +1,7 @@
#
# Author:: Adam Jacob (<adam@chef.io>)
# Author:: Christopher Walters (<cw@chef.io>)
-# Copyright:: Copyright 2008-2018, Chef Software Inc.
+# Copyright:: Copyright 2008-2019, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,16 +17,13 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/dsl/resources"
-require "chef/dsl/definitions"
-require "chef/dsl/data_query"
-require "chef/dsl/include_recipe"
-require "chef/dsl/registry_helper"
-require "chef/dsl/reboot_pending"
-require "chef/dsl/powershell"
-require "chef/dsl/core"
-require "chef/mixin/lazy_module_include"
+require_relative "../exceptions"
+require_relative "resources"
+require_relative "definitions"
+require_relative "include_recipe"
+require_relative "reboot_pending"
+require_relative "core"
+require_relative "../mixin/lazy_module_include"
class Chef
module DSL
@@ -50,11 +47,8 @@ class Chef
#
module Recipe
include Chef::DSL::Core
- include Chef::DSL::DataQuery
include Chef::DSL::IncludeRecipe
- include Chef::DSL::RegistryHelper
include Chef::DSL::RebootPending
- include Chef::DSL::Powershell
include Chef::DSL::Resources
include Chef::DSL::Definitions
extend Chef::Mixin::LazyModuleInclude
@@ -77,4 +71,4 @@ class Chef
end
# Avoid circular references for things that are only used in instance methods
-require "chef/resource"
+require_relative "../resource"
diff --git a/lib/chef/dsl/resources.rb b/lib/chef/dsl/resources.rb
index 4e404b44ed..4a87b40e81 100644
--- a/lib/chef/dsl/resources.rb
+++ b/lib/chef/dsl/resources.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/dsl/cheffish"
+require_relative "cheffish"
class Chef
module DSL
diff --git a/lib/chef/dsl/universal.rb b/lib/chef/dsl/universal.rb
index cb7e8591e8..cdcd5ee286 100644
--- a/lib/chef/dsl/universal.rb
+++ b/lib/chef/dsl/universal.rb
@@ -17,11 +17,15 @@
# limitations under the License.
#
-require "chef/dsl/platform_introspection"
-require "chef/mixin/powershell_exec"
-require "chef/mixin/powershell_out"
-require "chef/mixin/shell_out"
-require "chef/mixin/lazy_module_include"
+require_relative "platform_introspection"
+require_relative "data_query"
+require_relative "registry_helper"
+require_relative "powershell"
+require_relative "../mixin/powershell_exec"
+require_relative "../mixin/powershell_out"
+require_relative "../mixin/shell_out"
+require_relative "../mixin/lazy_module_include"
+require_relative "../mixin/train_or_shell"
class Chef
module DSL
@@ -45,17 +49,14 @@ class Chef
#
module Universal
include Chef::DSL::PlatformIntrospection
+ include Chef::DSL::DataQuery
+ include Chef::DSL::RegistryHelper
+ include Chef::DSL::Powershell
include Chef::Mixin::PowershellExec
include Chef::Mixin::PowershellOut
include Chef::Mixin::ShellOut
+ include Chef::Mixin::TrainOrShell
extend Chef::Mixin::LazyModuleInclude
-
- def tagged?(*tags)
- tags.each do |tag|
- return false unless run_context.node.tags.include?(tag)
- end
- true
- end
end
end
end
diff --git a/lib/chef/encrypted_data_bag_item.rb b/lib/chef/encrypted_data_bag_item.rb
index 71b506aba4..314d52cafb 100644
--- a/lib/chef/encrypted_data_bag_item.rb
+++ b/lib/chef/encrypted_data_bag_item.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/data_bag_item"
-require "chef/encrypted_data_bag_item/decryptor"
-require "chef/encrypted_data_bag_item/encryptor"
+require_relative "config"
+require_relative "data_bag_item"
+require_relative "encrypted_data_bag_item/decryptor"
+require_relative "encrypted_data_bag_item/encryptor"
require "open-uri"
# An EncryptedDataBagItem represents a read-only data bag item where
diff --git a/lib/chef/encrypted_data_bag_item/assertions.rb b/lib/chef/encrypted_data_bag_item/assertions.rb
index e8f8bfcbf2..bdd522e039 100644
--- a/lib/chef/encrypted_data_bag_item/assertions.rb
+++ b/lib/chef/encrypted_data_bag_item/assertions.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format"
-require "chef/encrypted_data_bag_item/unsupported_cipher"
+require_relative "unacceptable_encrypted_data_bag_item_format"
+require_relative "unsupported_cipher"
class Chef::EncryptedDataBagItem
diff --git a/lib/chef/encrypted_data_bag_item/check_encrypted.rb b/lib/chef/encrypted_data_bag_item/check_encrypted.rb
index a266df6dd6..9292ce6650 100644
--- a/lib/chef/encrypted_data_bag_item/check_encrypted.rb
+++ b/lib/chef/encrypted_data_bag_item/check_encrypted.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/encrypted_data_bag_item/encryptor"
+require_relative "encryptor"
class Chef::EncryptedDataBagItem
# Common code for checking if a data bag appears encrypted
diff --git a/lib/chef/encrypted_data_bag_item/decryptor.rb b/lib/chef/encrypted_data_bag_item/decryptor.rb
index 59911c7ca7..4d34208ab1 100644
--- a/lib/chef/encrypted_data_bag_item/decryptor.rb
+++ b/lib/chef/encrypted_data_bag_item/decryptor.rb
@@ -17,14 +17,14 @@
#
require "yaml"
-require "chef/json_compat"
+require_relative "../json_compat"
require "openssl"
require "base64"
require "digest/sha2"
-require "chef/encrypted_data_bag_item"
-require "chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format"
-require "chef/encrypted_data_bag_item/decryption_failure"
-require "chef/encrypted_data_bag_item/assertions"
+require_relative "../encrypted_data_bag_item"
+require_relative "unsupported_encrypted_data_bag_item_format"
+require_relative "decryption_failure"
+require_relative "assertions"
class Chef::EncryptedDataBagItem
diff --git a/lib/chef/encrypted_data_bag_item/encryptor.rb b/lib/chef/encrypted_data_bag_item/encryptor.rb
index 21783503f4..17e22b8897 100644
--- a/lib/chef/encrypted_data_bag_item/encryptor.rb
+++ b/lib/chef/encrypted_data_bag_item/encryptor.rb
@@ -20,10 +20,10 @@ require "base64"
require "digest/sha2"
require "openssl"
require "ffi_yajl"
-require "chef/encrypted_data_bag_item"
-require "chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format"
-require "chef/encrypted_data_bag_item/encryption_failure"
-require "chef/encrypted_data_bag_item/assertions"
+require_relative "../encrypted_data_bag_item"
+require_relative "unsupported_encrypted_data_bag_item_format"
+require_relative "encryption_failure"
+require_relative "assertions"
class Chef::EncryptedDataBagItem
diff --git a/lib/chef/environment.rb b/lib/chef/environment.rb
index ec3361adfb..bd966e9b57 100644
--- a/lib/chef/environment.rb
+++ b/lib/chef/environment.rb
@@ -19,12 +19,12 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/mash"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/version_constraint"
-require "chef/server_api"
+require_relative "config"
+require_relative "mash"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "version_constraint"
+require_relative "server_api"
class Chef
class Environment
diff --git a/lib/chef/event_dispatch/dispatcher.rb b/lib/chef/event_dispatch/dispatcher.rb
index d69a7c76e8..84f1d05129 100644
--- a/lib/chef/event_dispatch/dispatcher.rb
+++ b/lib/chef/event_dispatch/dispatcher.rb
@@ -1,4 +1,4 @@
-require "chef/event_dispatch/base"
+require_relative "base"
class Chef
module EventDispatch
diff --git a/lib/chef/event_dispatch/dsl.rb b/lib/chef/event_dispatch/dsl.rb
index 0a9c082fc1..275506a4ec 100644
--- a/lib/chef/event_dispatch/dsl.rb
+++ b/lib/chef/event_dispatch/dsl.rb
@@ -15,9 +15,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/event_dispatch/base"
-require "chef/exceptions"
-require "chef/config"
+require_relative "base"
+require_relative "../exceptions"
+require_relative "../config"
class Chef
module EventDispatch
diff --git a/lib/chef/event_loggers/base.rb b/lib/chef/event_loggers/base.rb
index 3c11e809f6..2fcc0d2458 100644
--- a/lib/chef/event_loggers/base.rb
+++ b/lib/chef/event_loggers/base.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/event_dispatch/base"
+require_relative "../event_dispatch/base"
class Chef
module EventLoggers
diff --git a/lib/chef/event_loggers/windows_eventlog.rb b/lib/chef/event_loggers/windows_eventlog.rb
index e084fac684..e0f611590a 100644
--- a/lib/chef/event_loggers/windows_eventlog.rb
+++ b/lib/chef/event_loggers/windows_eventlog.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/event_loggers/base"
-require "chef/platform/query_helpers"
-require "chef/win32/eventlog"
+require_relative "base"
+require_relative "../platform/query_helpers"
+require_relative "../win32/eventlog"
class Chef
module EventLoggers
diff --git a/lib/chef/exceptions.rb b/lib/chef/exceptions.rb
index 4ab9434906..de5c155c50 100644
--- a/lib/chef/exceptions.rb
+++ b/lib/chef/exceptions.rb
@@ -18,7 +18,7 @@
# limitations under the License.
require "chef-config/exceptions"
-require "chef/dist"
+require_relative "dist"
class Chef
# == Chef::Exceptions
@@ -132,7 +132,7 @@ class Chef
# Can't find a Resource of this type that is valid on this platform.
class NoSuchResourceType < NameError
def initialize(short_name, node)
- super "Cannot find a resource for #{short_name} on #{node[:platform]} version #{node[:platform_version]}"
+ super "Cannot find a resource for #{short_name} on #{node[:platform]} version #{node[:platform_version]} with target_mode? #{Chef::Config.target_mode?}"
end
end
diff --git a/lib/chef/file_access_control.rb b/lib/chef/file_access_control.rb
index 50a1ea29bb..652dbd28f0 100644
--- a/lib/chef/file_access_control.rb
+++ b/lib/chef/file_access_control.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/log"
+require_relative "log"
class Chef
@@ -27,10 +27,10 @@ class Chef
class FileAccessControl
if RUBY_PLATFORM =~ /mswin|mingw|windows/
- require "chef/file_access_control/windows"
+ require_relative "file_access_control/windows"
include FileAccessControl::Windows
else
- require "chef/file_access_control/unix"
+ require_relative "file_access_control/unix"
include FileAccessControl::Unix
end
diff --git a/lib/chef/file_access_control/unix.rb b/lib/chef/file_access_control/unix.rb
index 5d674c2c32..8774ad9498 100644
--- a/lib/chef/file_access_control/unix.rb
+++ b/lib/chef/file_access_control/unix.rb
@@ -18,7 +18,7 @@
# limitations under the License.
#
-require "chef/log"
+require_relative "../log"
class Chef
class FileAccessControl
diff --git a/lib/chef/file_access_control/windows.rb b/lib/chef/file_access_control/windows.rb
index a7cefdc6d7..3a5bcf9278 100644
--- a/lib/chef/file_access_control/windows.rb
+++ b/lib/chef/file_access_control/windows.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/file"
+require_relative "../win32/security"
+require_relative "../win32/file"
class Chef
class FileAccessControl
diff --git a/lib/chef/file_cache.rb b/lib/chef/file_cache.rb
index eb1fd1f582..9403c9b7db 100644
--- a/lib/chef/file_cache.rb
+++ b/lib/chef/file_cache.rb
@@ -15,12 +15,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/mixin/params_validate"
-require "chef/mixin/create_path"
-require "chef/exceptions"
-require "chef/json_compat"
+require_relative "mixin/params_validate"
+require_relative "mixin/create_path"
+require_relative "exceptions"
+require_relative "json_compat"
require "fileutils"
-require "chef/util/path_helper"
+require_relative "util/path_helper"
class Chef
class FileCache
diff --git a/lib/chef/file_content_management/deploy.rb b/lib/chef/file_content_management/deploy.rb
index 1e3ae55c21..2ad3aa19d5 100644
--- a/lib/chef/file_content_management/deploy.rb
+++ b/lib/chef/file_content_management/deploy.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/file_content_management/deploy/cp"
-require "chef/file_content_management/deploy/mv_unix"
+require_relative "deploy/cp"
+require_relative "deploy/mv_unix"
if Chef::Platform.windows?
- require "chef/file_content_management/deploy/mv_windows"
+ require_relative "deploy/mv_windows"
end
class Chef
diff --git a/lib/chef/file_content_management/deploy/mv_windows.rb b/lib/chef/file_content_management/deploy/mv_windows.rb
index 210400bc08..132e9635d0 100644
--- a/lib/chef/file_content_management/deploy/mv_windows.rb
+++ b/lib/chef/file_content_management/deploy/mv_windows.rb
@@ -21,9 +21,9 @@
# ACL information on the dst file.
#
-require "chef/platform/query_helpers"
+require_relative "../../platform/query_helpers"
if Chef::Platform.windows?
- require "chef/win32/security"
+ require_relative "../../win32/security"
end
class Chef
diff --git a/lib/chef/formatters/base.rb b/lib/chef/formatters/base.rb
index fa309b67e7..a295e1390d 100644
--- a/lib/chef/formatters/base.rb
+++ b/lib/chef/formatters/base.rb
@@ -17,11 +17,11 @@
# limitations under the License.
#
-require "chef/event_dispatch/base"
-require "chef/formatters/error_inspectors"
-require "chef/formatters/error_description"
-require "chef/formatters/error_mapper"
-require "chef/formatters/indentable_output_stream"
+require_relative "../event_dispatch/base"
+require_relative "error_inspectors"
+require_relative "error_description"
+require_relative "error_mapper"
+require_relative "indentable_output_stream"
class Chef
diff --git a/lib/chef/formatters/doc.rb b/lib/chef/formatters/doc.rb
index 1fdbb66b1b..77deff5b66 100644
--- a/lib/chef/formatters/doc.rb
+++ b/lib/chef/formatters/doc.rb
@@ -1,6 +1,6 @@
-require "chef/formatters/base"
-require "chef/config"
-require "chef/dist"
+require_relative "base"
+require_relative "../config"
+require_relative "../dist"
class Chef
module Formatters
@@ -42,6 +42,7 @@ class Chef
def run_start(version, run_status)
puts_line "Starting #{Chef::Dist::PRODUCT}, version #{version}"
+ puts_line "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
puts_line "OpenSSL FIPS 140 mode enabled" if Chef::Config[:fips]
end
diff --git a/lib/chef/formatters/error_description.rb b/lib/chef/formatters/error_description.rb
index ceb2f68539..0bd1b20f81 100644
--- a/lib/chef/formatters/error_description.rb
+++ b/lib/chef/formatters/error_description.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/version"
+require_relative "../version"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors.rb b/lib/chef/formatters/error_inspectors.rb
index 9221ecda4d..e83d527e05 100644
--- a/lib/chef/formatters/error_inspectors.rb
+++ b/lib/chef/formatters/error_inspectors.rb
@@ -1,10 +1,10 @@
-require "chef/formatters/error_inspectors/node_load_error_inspector"
-require "chef/formatters/error_inspectors/registration_error_inspector"
-require "chef/formatters/error_inspectors/compile_error_inspector"
-require "chef/formatters/error_inspectors/resource_failure_inspector"
-require "chef/formatters/error_inspectors/run_list_expansion_error_inspector"
-require "chef/formatters/error_inspectors/cookbook_resolve_error_inspector"
-require "chef/formatters/error_inspectors/cookbook_sync_error_inspector"
+require_relative "error_inspectors/node_load_error_inspector"
+require_relative "error_inspectors/registration_error_inspector"
+require_relative "error_inspectors/compile_error_inspector"
+require_relative "error_inspectors/resource_failure_inspector"
+require_relative "error_inspectors/run_list_expansion_error_inspector"
+require_relative "error_inspectors/cookbook_resolve_error_inspector"
+require_relative "error_inspectors/cookbook_sync_error_inspector"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors/api_error_formatting.rb b/lib/chef/formatters/error_inspectors/api_error_formatting.rb
index 6dd6ed292f..dd6d00900d 100644
--- a/lib/chef/formatters/error_inspectors/api_error_formatting.rb
+++ b/lib/chef/formatters/error_inspectors/api_error_formatting.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/http/authenticator"
-require "chef/dist"
+require_relative "../../http/authenticator"
+require_relative "../../dist"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb b/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb
index 6801884aac..89d4ba7bce 100644
--- a/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/formatters/error_inspectors/api_error_formatting"
+require_relative "api_error_formatting"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb b/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb
index 6ab2816a57..83f00bf8ac 100644
--- a/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/formatters/error_inspectors/api_error_formatting"
+require_relative "api_error_formatting"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb b/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb
index 8a94529237..1d75cbb5bd 100644
--- a/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/formatters/error_inspectors/api_error_formatting"
-require "chef/dist"
+require_relative "api_error_formatting"
+require_relative "../../dist"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors/registration_error_inspector.rb b/lib/chef/formatters/error_inspectors/registration_error_inspector.rb
index 7ab309be70..388e6af20d 100644
--- a/lib/chef/formatters/error_inspectors/registration_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/registration_error_inspector.rb
@@ -1,4 +1,4 @@
-require "chef/dist"
+require_relative "../../dist"
class Chef
module Formatters
diff --git a/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb b/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb
index 367bba321e..3fd6094ae0 100644
--- a/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb
@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/dist"
+require_relative "../../dist"
class Chef
module Formatters
@@ -53,7 +53,7 @@ class Chef
end
if Chef::Platform.windows?
- require "chef/win32/security"
+ require_relative "../../win32/security"
if !Chef::ReservedNames::Win32::Security.has_admin_privileges?
error_description.section("Missing Windows Admin Privileges", "#{Chef::Dist::CLIENT} doesn't have administrator privileges. This can be a possible reason for the resource failure.")
diff --git a/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb b/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb
index d6fe3564f7..e33e5cea1a 100644
--- a/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/formatters/error_inspectors/api_error_formatting"
-require "chef/dist"
+require_relative "api_error_formatting"
+require_relative "../../dist"
class Chef
module Formatters
diff --git a/lib/chef/formatters/minimal.rb b/lib/chef/formatters/minimal.rb
index 6b12be71b7..272a89bad0 100644
--- a/lib/chef/formatters/minimal.rb
+++ b/lib/chef/formatters/minimal.rb
@@ -1,5 +1,5 @@
-require "chef/formatters/base"
-require "chef/dist"
+require_relative "base"
+require_relative "../dist"
class Chef
@@ -29,6 +29,7 @@ class Chef
# Called at the very start of a Chef Run
def run_start(version, run_status)
puts_line "Starting #{Chef::Dist::PRODUCT}, version #{version}"
+ puts_line "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
puts_line "OpenSSL FIPS 140 mode enabled" if Chef::Config[:fips]
end
diff --git a/lib/chef/guard_interpreter.rb b/lib/chef/guard_interpreter.rb
index e11201e50b..3a30b0773f 100644
--- a/lib/chef/guard_interpreter.rb
+++ b/lib/chef/guard_interpreter.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/guard_interpreter/default_guard_interpreter"
-require "chef/guard_interpreter/resource_guard_interpreter"
+require_relative "guard_interpreter/default_guard_interpreter"
+require_relative "guard_interpreter/resource_guard_interpreter"
class Chef
class GuardInterpreter
diff --git a/lib/chef/guard_interpreter/default_guard_interpreter.rb b/lib/chef/guard_interpreter/default_guard_interpreter.rb
index c4c09ac47a..57a82cd9d6 100644
--- a/lib/chef/guard_interpreter/default_guard_interpreter.rb
+++ b/lib/chef/guard_interpreter/default_guard_interpreter.rb
@@ -16,24 +16,21 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
+require_relative "../mixin/train_or_shell"
+require_relative "../exceptions"
class Chef
class GuardInterpreter
class DefaultGuardInterpreter
- include Chef::Mixin::ShellOut
-
- protected
+ include Chef::Mixin::TrainOrShell
def initialize(command, opts)
@command = command
@command_opts = opts
end
- public
-
def evaluate
- result = shell_out(@command, default_env: false, **@command_opts)
+ result = train_or_shell(@command, default_env: false, **@command_opts)
Chef::Log.debug "Command failed: #{result.stderr}" unless result.status.success?
result.status.success?
# Timeout fails command rather than chef-client run, see:
diff --git a/lib/chef/guard_interpreter/resource_guard_interpreter.rb b/lib/chef/guard_interpreter/resource_guard_interpreter.rb
index 79134d3dfb..9b7c1517db 100644
--- a/lib/chef/guard_interpreter/resource_guard_interpreter.rb
+++ b/lib/chef/guard_interpreter/resource_guard_interpreter.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/guard_interpreter"
+require_relative "../guard_interpreter"
class Chef
class GuardInterpreter
diff --git a/lib/chef/handler.rb b/lib/chef/handler.rb
index 0d4a3edbaa..775ddd6d89 100644
--- a/lib/chef/handler.rb
+++ b/lib/chef/handler.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/client"
+require_relative "client"
require "forwardable"
class Chef
diff --git a/lib/chef/handler/error_report.rb b/lib/chef/handler/error_report.rb
index e84a817e06..110b4b9a31 100644
--- a/lib/chef/handler/error_report.rb
+++ b/lib/chef/handler/error_report.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/handler"
-require "chef/resource/directory"
+require_relative "../handler"
+require_relative "../resource/directory"
class Chef
class Handler
diff --git a/lib/chef/handler/json_file.rb b/lib/chef/handler/json_file.rb
index 3dc7c51274..f280efc1dd 100644
--- a/lib/chef/handler/json_file.rb
+++ b/lib/chef/handler/json_file.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/handler"
-require "chef/resource/directory"
+require_relative "../handler"
+require_relative "../resource/directory"
class Chef
class Handler
diff --git a/lib/chef/http.rb b/lib/chef/http.rb
index e9f94e6c92..ab78ff7ae4 100644
--- a/lib/chef/http.rb
+++ b/lib/chef/http.rb
@@ -24,11 +24,11 @@
require "tempfile"
require "net/https"
require "uri"
-require "chef/http/basic_client"
-require "chef/monkey_patches/net_http"
-require "chef/config"
-require "chef/platform/query_helpers"
-require "chef/exceptions"
+require_relative "http/basic_client"
+require_relative "monkey_patches/net_http"
+require_relative "config"
+require_relative "platform/query_helpers"
+require_relative "exceptions"
class Chef
@@ -297,7 +297,7 @@ class Chef
# when for most knife/chef-client work we never need/want this loaded.
unless defined?(SocketlessChefZeroClient)
- require "chef/http/socketless_chef_zero_client"
+ require_relative "http/socketless_chef_zero_client"
end
SocketlessChefZeroClient.new(base_url)
diff --git a/lib/chef/http/api_versions.rb b/lib/chef/http/api_versions.rb
index 6c5ede40aa..e1eae4b468 100644
--- a/lib/chef/http/api_versions.rb
+++ b/lib/chef/http/api_versions.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/server_api_versions"
-require "chef/json_compat"
+require_relative "../server_api_versions"
+require_relative "../json_compat"
class Chef
class HTTP
diff --git a/lib/chef/http/auth_credentials.rb b/lib/chef/http/auth_credentials.rb
index 547b5c8a83..e761c97e9b 100644
--- a/lib/chef/http/auth_credentials.rb
+++ b/lib/chef/http/auth_credentials.rb
@@ -20,7 +20,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/log"
+require_relative "../log"
require "mixlib/authentication/signedheaderauth"
class Chef
diff --git a/lib/chef/http/authenticator.rb b/lib/chef/http/authenticator.rb
index daa582f890..6b059c9733 100644
--- a/lib/chef/http/authenticator.rb
+++ b/lib/chef/http/authenticator.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/http/auth_credentials"
-require "chef/exceptions"
+require_relative "auth_credentials"
+require_relative "../exceptions"
require "openssl"
class Chef
diff --git a/lib/chef/http/basic_client.rb b/lib/chef/http/basic_client.rb
index 54da722b3d..a599f2219e 100644
--- a/lib/chef/http/basic_client.rb
+++ b/lib/chef/http/basic_client.rb
@@ -22,8 +22,8 @@
#
require "uri"
require "net/http"
-require "chef/http/ssl_policies"
-require "chef/http/http_request"
+require_relative "ssl_policies"
+require_relative "http_request"
class Chef
class HTTP
diff --git a/lib/chef/http/cookie_manager.rb b/lib/chef/http/cookie_manager.rb
index 723b26ad87..b7b6dddb52 100644
--- a/lib/chef/http/cookie_manager.rb
+++ b/lib/chef/http/cookie_manager.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/http/cookie_jar"
+require_relative "cookie_jar"
class Chef
class HTTP
diff --git a/lib/chef/http/decompressor.rb b/lib/chef/http/decompressor.rb
index cf4a4bc593..f43f054366 100644
--- a/lib/chef/http/decompressor.rb
+++ b/lib/chef/http/decompressor.rb
@@ -17,7 +17,7 @@
#
require "zlib"
-require "chef/http/http_request"
+require_relative "http_request"
class Chef
class HTTP
diff --git a/lib/chef/http/http_request.rb b/lib/chef/http/http_request.rb
index 18a4648443..a8549b32da 100644
--- a/lib/chef/http/http_request.rb
+++ b/lib/chef/http/http_request.rb
@@ -22,7 +22,7 @@
#
require "uri"
require "net/http"
-require "chef/dist"
+require_relative "../dist"
# To load faster, we only want ohai's version string.
# However, in ohai before 0.6.0, the version is defined
@@ -33,7 +33,7 @@ rescue LoadError
require "ohai"
end
-require "chef/version"
+require_relative "../version"
class Chef
class HTTP
diff --git a/lib/chef/http/json_input.rb b/lib/chef/http/json_input.rb
index e2c8b3e2ee..f7204d4ccc 100644
--- a/lib/chef/http/json_input.rb
+++ b/lib/chef/http/json_input.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/json_compat"
+require_relative "../json_compat"
class Chef
class HTTP
diff --git a/lib/chef/http/json_output.rb b/lib/chef/http/json_output.rb
index 25f1380ceb..5fe2622f94 100644
--- a/lib/chef/http/json_output.rb
+++ b/lib/chef/http/json_output.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/json_compat"
-require "chef/log"
+require_relative "../json_compat"
+require_relative "../log"
class Chef
class HTTP
diff --git a/lib/chef/http/json_to_model_output.rb b/lib/chef/http/json_to_model_output.rb
index 997ceb8b1f..c908d0d23d 100644
--- a/lib/chef/http/json_to_model_output.rb
+++ b/lib/chef/http/json_to_model_output.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/http/json_output"
+require_relative "json_output"
class Chef
class HTTP
diff --git a/lib/chef/http/remote_request_id.rb b/lib/chef/http/remote_request_id.rb
index a779df805e..d4fb8eb115 100644
--- a/lib/chef/http/remote_request_id.rb
+++ b/lib/chef/http/remote_request_id.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/request_id"
+require_relative "../request_id"
class Chef
class HTTP
diff --git a/lib/chef/http/simple.rb b/lib/chef/http/simple.rb
index bdbc31c9f1..fcc6ef91d7 100644
--- a/lib/chef/http/simple.rb
+++ b/lib/chef/http/simple.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/http"
-require "chef/http/authenticator"
-require "chef/http/decompressor"
-require "chef/http/cookie_manager"
-require "chef/http/validate_content_length"
+require_relative "../http"
+require_relative "authenticator"
+require_relative "decompressor"
+require_relative "cookie_manager"
+require_relative "validate_content_length"
class Chef
class HTTP
diff --git a/lib/chef/http/simple_json.rb b/lib/chef/http/simple_json.rb
index 7357d859ee..000aadc04d 100644
--- a/lib/chef/http/simple_json.rb
+++ b/lib/chef/http/simple_json.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/http"
-require "chef/http/authenticator"
-require "chef/http/decompressor"
-require "chef/http/cookie_manager"
-require "chef/http/validate_content_length"
+require_relative "../http"
+require_relative "authenticator"
+require_relative "decompressor"
+require_relative "cookie_manager"
+require_relative "validate_content_length"
class Chef
class HTTP
diff --git a/lib/chef/http/ssl_policies.rb b/lib/chef/http/ssl_policies.rb
index a3692b81b6..2708e5b3b1 100644
--- a/lib/chef/http/ssl_policies.rb
+++ b/lib/chef/http/ssl_policies.rb
@@ -22,7 +22,7 @@
#
require "openssl"
-require "chef/util/path_helper"
+require_relative "../util/path_helper"
class Chef
class HTTP
diff --git a/lib/chef/http/validate_content_length.rb b/lib/chef/http/validate_content_length.rb
index c8e8ac53ad..e24ebc0dd5 100644
--- a/lib/chef/http/validate_content_length.rb
+++ b/lib/chef/http/validate_content_length.rb
@@ -17,7 +17,7 @@
#
require "pp"
-require "chef/log"
+require_relative "../log"
class Chef
class HTTP
diff --git a/lib/chef/json_compat.rb b/lib/chef/json_compat.rb
index 1ce54b68bc..e7720e9e2a 100644
--- a/lib/chef/json_compat.rb
+++ b/lib/chef/json_compat.rb
@@ -18,7 +18,7 @@
# Wrapper class for interacting with JSON.
require "ffi_yajl"
-require "chef/exceptions"
+require_relative "exceptions"
# We're requiring this to prevent breaking consumers using Hash.to_json
require "json"
diff --git a/lib/chef/key.rb b/lib/chef/key.rb
index 19ed07f608..1d475d5c1b 100644
--- a/lib/chef/key.rb
+++ b/lib/chef/key.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/json_compat"
-require "chef/mixin/params_validate"
-require "chef/exceptions"
-require "chef/server_api"
+require_relative "json_compat"
+require_relative "mixin/params_validate"
+require_relative "exceptions"
+require_relative "server_api"
class Chef
# Class for interacting with a chef key object. Can be used to create new keys,
diff --git a/lib/chef/knife.rb b/lib/chef/knife.rb
index da9c1ab1e9..1d6392ce52 100644
--- a/lib/chef/knife.rb
+++ b/lib/chef/knife.rb
@@ -18,20 +18,20 @@
#
require "forwardable"
-require "chef/version"
+require_relative "version"
require "mixlib/cli"
-require "chef/workstation_config_loader"
-require "chef/mixin/convert_to_class_name"
-require "chef/mixin/path_sanity"
-require "chef/knife/core/subcommand_loader"
-require "chef/knife/core/ui"
-require "chef/local_mode"
-require "chef/server_api"
-require "chef/http/authenticator"
-require "chef/http/http_request"
-require "chef/http"
+require_relative "workstation_config_loader"
+require_relative "mixin/convert_to_class_name"
+require_relative "mixin/path_sanity"
+require_relative "knife/core/subcommand_loader"
+require_relative "knife/core/ui"
+require_relative "local_mode"
+require_relative "server_api"
+require_relative "http/authenticator"
+require_relative "http/http_request"
+require_relative "http"
require "pp"
-require "chef/dist"
+require_relative "dist"
class Chef
class Knife
@@ -317,7 +317,7 @@ class Chef
exit 1
end
- # copy Mixlib::CLI over so that it can be configured in knife.rb
+ # copy Mixlib::CLI over so that it can be configured in config.rb/knife.rb
# config file
Chef::Config[:verbosity] = config[:verbosity] if config[:verbosity]
end
@@ -344,13 +344,8 @@ class Chef
# Chef::Config[:knife] would break the defaults in the cli that we would otherwise
# overwrite.
def config_file_settings
- @key_sources = { cli: [], config: [] }
cli_keys.each_with_object({}) do |key, memo|
- if config.key?(key)
- @key_sources[:cli] << key
- end
if Chef::Config[:knife].key?(key)
- @key_sources[:config] << key
memo[key] = Chef::Config[:knife][key]
end
end
@@ -361,16 +356,28 @@ class Chef
# config_file_settings - Chef::Config[:knife] sub-hash
# config - mixlib-cli settings (accessor from the mixin)
def merge_configs
+ # This is the config after user CLI options have been evaluated, and it contains only
+ # user-supplied values.
+ @original_config = config.dup
# other code may have a handle to the config object, so use Hash#replace to deliberately
# update-in-place.
config.replace(default_config.merge(config_file_settings).merge(config))
end
- # Return where a config key has been sourced,
- # :cli, :config, or nil if the key is not set.
+ #
+ # Determine the source of a given configuration key
+ #
+ # @argument key [Symbol] a configuration key
+ # @return [Symbol,NilClass] return the source of the config key,
+ # one of:
+ # - :cli - this was explicitly provided on the CLI
+ # - :config - this came from Chef::Config[:knife]
+ # - :cli_default - came from a declared CLI `option`'s `default` value.
+ # - nil - if they key does not exist
def config_source(key)
- return :cli if @key_sources[:cli].include? key
- return :config if @key_sources[:config].include? key
+ return :cli if @original_config.include? key
+ return :config if config_file_settings.key? key
+ return :cli_default if default_config.include? key
nil
end
@@ -491,7 +498,7 @@ class Chef
ui.info "Check your configuration file and ensure that your private key is readable"
when Chef::Exceptions::InvalidRedirect
ui.error "Invalid Redirect: #{e.message}"
- ui.info "Change your server location in knife.rb to the server's FQDN to avoid unwanted redirections."
+ ui.info "Change your server location in config.rb/knife.rb to the server's FQDN to avoid unwanted redirections."
else
ui.error "#{e.class.name}: #{e.message}"
end
@@ -608,14 +615,14 @@ class Chef
def rest
@rest ||= begin
- require "chef/server_api"
+ require_relative "server_api"
Chef::ServerAPI.new(Chef::Config[:chef_server_url])
end
end
def noauth_rest
@rest ||= begin
- require "chef/http/simple_json"
+ require_relative "http/simple_json"
Chef::HTTP::SimpleJSON.new(Chef::Config[:chef_server_url])
end
end
diff --git a/lib/chef/knife/bootstrap.rb b/lib/chef/knife/bootstrap.rb
index 69d9ffb8c0..81acb20daa 100644
--- a/lib/chef/knife/bootstrap.rb
+++ b/lib/chef/knife/bootstrap.rb
@@ -16,14 +16,17 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/data_bag_secret_options"
-require "chef/dist"
+require_relative "../knife"
+require_relative "data_bag_secret_options"
+require_relative "../dist"
+require "license_acceptance/cli_flags/mixlib_cli"
+require "license_acceptance/acceptor"
class Chef
class Knife
class Bootstrap < Knife
include DataBagSecretOptions
+ include LicenseAcceptance::CLIFlags::MixlibCLI
SUPPORTED_CONNECTION_PROTOCOLS = %w{ssh winrm}.freeze
WINRM_AUTH_PROTOCOL_LIST = %w{plaintext kerberos ssl negotiate}.freeze
@@ -86,7 +89,8 @@ class Chef
short: "-w AUTH-METHOD",
long: "--winrm-auth-method AUTH-METHOD",
description: "The WinRM authentication method to use. Valid choices are #{friendly_opt_list(WINRM_AUTH_PROTOCOL_LIST)}.",
- proc: Proc.new { |protocol| Chef::Config[:knife][:winrm_auth_method] = protocol }
+ proc: Proc.new { |protocol| Chef::Config[:knife][:winrm_auth_method] = protocol },
+ in: WINRM_AUTH_PROTOCOL_LIST
option :winrm_basic_auth_only,
long: "--winrm-basic-auth-only",
@@ -156,6 +160,12 @@ class Chef
description: "The version of #{Chef::Dist::PRODUCT} to install.",
proc: lambda { |v| Chef::Config[:knife][:bootstrap_version] = v }
+ option :channel,
+ long: "--channel CHANNEL",
+ description: "Install from the given channel. Valid values are 'stable, 'current', and 'unstable'. Default is 'stable'",
+ default: "stable",
+ in: %w{stable current unstable}
+
# client.rb content via chef-full/bootstrap_context
option :bootstrap_proxy,
long: "--bootstrap-proxy PROXY_URL",
@@ -347,73 +357,90 @@ class Chef
DEPRECATED_FLAGS = {
# deprecated_key: [new_key, deprecated_long]
- auth_timeout: [:max_wait, "--max-wait SECONDS"],
- host_key_verify: [:ssh_verify_host_key,
- "--[no-]host-key-verify",
- ],
- ssh_user: [:connection_user,
- "--ssh-user USER",
- ],
- ssh_password: [:connection_password,
- "--ssh-password PASSWORD",
- ],
- ssh_port: [:connection_port,
- "-ssh-port",
- ],
- ssl_peer_fingerprint: [:winrm_ssl_peer_fingerprint,
- "--ssl-peer-fingerprint FINGERPRINT",
- ],
- winrm_user: [:connection_user,
- "--winrm-user USER",
- ],
- winrm_password: [:connection_password,
- "--winrm-password",
- ],
- winrm_port: [:connection_port,
- "--winrm-port",
- ],
- winrm_authentication_protocol: [:winrm_auth_method,
- "--winrm-authentication-protocol PROTOCOL",
- ],
+ # optional third element: replacement_value - if converting from bool
+ # (--bool-option) to valued flag (--new-option VALUE)
+ # this will be the value that is assigned the new flag when the old flag is used.
+ auth_timeout: [:max_wait, "--max-wait SECONDS" ],
+ host_key_verify:
+ [:ssh_verify_host_key, "--[no-]host-key-verify"],
+ prerelease:
+ [:channel, "--prerelease", "current"],
+ ssh_user:
+ [:connection_user, "--ssh-user USER"],
+ ssh_password:
+ [:connection_password, "--ssh-password PASSWORD"],
+ ssh_port:
+ [:connection_port, "-ssh-port" ],
+ ssl_peer_fingerprint:
+ [:winrm_ssl_peer_fingerprint, "--ssl-peer-fingerprint FINGERPRINT"],
+ winrm_user:
+ [:connection_user, "--winrm-user USER"],
+ winrm_password:
+ [:connection_password, "--winrm-password"],
+ winrm_port:
+ [:connection_port, "--winrm-port"],
+ winrm_authentication_protocol:
+ [:winrm_auth_method, "--winrm-authentication-protocol PROTOCOL"],
}.freeze
DEPRECATED_FLAGS.each do |deprecated_key, deprecation_entry|
- new_key, deprecated_long = deprecation_entry
+ new_key, deprecated_long, replacement_value = deprecation_entry
new_long = options[new_key][:long]
+ new_long_desc = if replacement_value.nil?
+ new_long
+ else
+ "#{new_long.split(" ").first} #{replacement_value}"
+ end
option(deprecated_key, long: deprecated_long,
- description: "#{deprecated_long} is deprecated. Use #{new_long} instead.",
- boolean: options[new_key][:boolean])
+ description: "This flag is deprecated. Please use '#{new_long_desc}' instead.",
+ boolean: options[new_key][:boolean] || !replacement_value.nil?,
+ # Put deprecated options at the end of the options list
+ on: :tail)
end
- attr_accessor :client_builder
- attr_accessor :chef_vault_handler
- attr_reader :connection
+ attr_reader :connection
deps do
require "erubis"
- require "chef/json_compat"
- require "chef/util/path_helper"
- require "chef/knife/bootstrap/chef_vault_handler"
- require "chef/knife/bootstrap/client_builder"
- require "chef/knife/bootstrap/train_connector"
+ require_relative "../json_compat"
+ require_relative "../util/path_helper"
+ require_relative "bootstrap/chef_vault_handler"
+ require_relative "bootstrap/client_builder"
+ require_relative "bootstrap/train_connector"
end
banner "knife bootstrap [PROTOCOL://][USER@]FQDN (options)"
- def initialize(argv = [])
- super
- @client_builder = Chef::Knife::Bootstrap::ClientBuilder.new(
+ def client_builder
+ @client_builder ||= Chef::Knife::Bootstrap::ClientBuilder.new(
chef_config: Chef::Config,
knife_config: config,
ui: ui
)
- @chef_vault_handler = Chef::Knife::Bootstrap::ChefVaultHandler.new(
+ end
+
+ def chef_vault_handler
+ @chef_vault_handler ||= Chef::Knife::Bootstrap::ChefVaultHandler.new(
knife_config: config,
ui: ui
)
end
+ # Determine if we need to accept the Chef Infra license locally in order to successfully bootstrap
+ # the remote node. Remote 'chef-client' run will fail if it is >= 15 and the license is not accepted locally.
+ def check_license
+ Chef::Log.debug("Checking if we need to accept Chef license to bootstrap node")
+ version = config[:bootstrap_version] || Chef::VERSION.split(".").first
+ acceptor = LicenseAcceptance::Acceptor.new(logger: Chef::Log, provided: Chef::Config[:chef_license])
+ if acceptor.license_required?("chef", version)
+ Chef::Log.debug("License acceptance required for chef version: #{version}")
+ license_id = acceptor.id_from_mixlib("chef")
+ acceptor.check_and_persist(license_id, version)
+ Chef::Config[:chef_license] ||= acceptor.acceptance_value
+ end
+ end
+
# The default bootstrap template to use to bootstrap a server.
# This is a public API hook which knife plugins use or inherit and override.
#
@@ -489,10 +516,10 @@ class Chef
def bootstrap_context
@bootstrap_context ||=
if connection.windows?
- require "chef/knife/core/windows_bootstrap_context"
+ require_relative "core/windows_bootstrap_context"
Knife::Core::WindowsBootstrapContext.new(config, config[:run_list], Chef::Config, secret)
else
- require "chef/knife/core/bootstrap_context"
+ require_relative "core/bootstrap_context"
Knife::Core::BootstrapContext.new(config, config[:run_list], Chef::Config, secret)
end
end
@@ -509,6 +536,7 @@ class Chef
end
def run
+ check_license
verify_deprecated_flags!
validate_name_args!
@@ -638,12 +666,13 @@ class Chef
end
# If any deprecated flags are used, let the user know and
- # update config[new-key] to the value given to the deprecated flag.
+ # update config[new-key] to the value given to the deprecated flag,
+ # or to the mapped value in case of changing flag type.
# If a deprecated flag and its corresponding replacement
- # are both used, raise an error.
+ # are both used, exit
def verify_deprecated_flags!
DEPRECATED_FLAGS.each do |deprecated_key, deprecation_entry|
- new_key, deprecated_long = deprecation_entry
+ new_key, deprecated_long, replacement_value = deprecation_entry
if config.key?(deprecated_key) && config_source(deprecated_key) == :cli
if config.key?(new_key) && config_source(new_key) == :cli
new_long = options[new_key][:long].split(" ").first
@@ -656,9 +685,9 @@ class Chef
EOM
exit 1
else
- config[new_key] = config[deprecated_key]
+ config[new_key] = replacement_value || config[deprecated_key]
unless Chef::Config[:silence_deprecation_warnings] == true
- ui.warn options[deprecated_key][:description]
+ ui.warn "You provided #{deprecated_long.split(" ").first}. #{options[deprecated_key][:description]}"
end
end
end
diff --git a/lib/chef/knife/bootstrap/client_builder.rb b/lib/chef/knife/bootstrap/client_builder.rb
index 09f4f67ced..1864297053 100644
--- a/lib/chef/knife/bootstrap/client_builder.rb
+++ b/lib/chef/knife/bootstrap/client_builder.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/node"
-require "chef/server_api"
-require "chef/api_client/registration"
-require "chef/api_client"
+require_relative "../../node"
+require_relative "../../server_api"
+require_relative "../../api_client/registration"
+require_relative "../../api_client"
require "tmpdir"
class Chef
diff --git a/lib/chef/knife/bootstrap/templates/chef-full.erb b/lib/chef/knife/bootstrap/templates/chef-full.erb
index 58a64a23b8..54fa3a61d1 100644
--- a/lib/chef/knife/bootstrap/templates/chef-full.erb
+++ b/lib/chef/knife/bootstrap/templates/chef-full.erb
@@ -175,9 +175,9 @@ do_download() {
if test -f /usr/bin/<%= Chef::Dist::CLIENT %>}; then
echo "-----> Existing <%= Chef::Dist::PRODUCT %> installation detected"
else
- echo "-----> Installing Chef Omnibus (<%= latest_current_chef_version_string %>)"
+ echo "-----> Installing Chef Omnibus (<%= @config[:channel] %>/<%= version_to_install %>)"
do_download ${install_sh} $tmp_dir/install.sh
- sh $tmp_dir/install.sh -P chef <%= latest_current_chef_version_string %>
+ sh $tmp_dir/install.sh -P chef -c <%= @config[:channel] %> -v <%= version_to_install %>
fi
<% end %>
diff --git a/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb b/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb
index fd7b48f28d..1ac0b23755 100644
--- a/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb
+++ b/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb
@@ -235,13 +235,19 @@ echo Validation key written.
<% end -%>
<% unless trusted_certs_script.empty? -%>
-mkdir <%= bootstrap_directory %>\trusted_certs
+ @if NOT EXIST <%= bootstrap_directory %>\trusted_certs (
+ mkdir <%= bootstrap_directory %>\trusted_certs
+ )
+ )
+
<%= trusted_certs_script %>
<% end -%>
<%# Generate Ohai Hints -%>
<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
-mkdir <%= bootstrap_directory %>\ohai\hints
+ @if NOT EXIST <%= bootstrap_directory %>\ohai\hints (
+ mkdir <%= bootstrap_directory %>\ohai\hints
+ )
<% @chef_config[:knife][:hints].each do |name, hash| -%>
> <%= bootstrap_directory %>\ohai\hints\<%= name %>.json (
@@ -259,7 +265,10 @@ mkdir <%= bootstrap_directory %>\ohai\hints
)
<% unless client_d.empty? -%>
- mkdir <%= bootstrap_directory %>\client.d
+ @if NOT EXIST <%= bootstrap_directory %>\client.d (
+ mkdir <%= bootstrap_directory %>\client.d
+ )
+
<%= client_d %>
<% end -%>
diff --git a/lib/chef/knife/bootstrap/train_connector.rb b/lib/chef/knife/bootstrap/train_connector.rb
index df94290dbf..f1b4816049 100644
--- a/lib/chef/knife/bootstrap/train_connector.rb
+++ b/lib/chef/knife/bootstrap/train_connector.rb
@@ -28,8 +28,7 @@ class Chef
MKTEMP_WIN_COMMAND = <<~EOM.freeze
$parent = [System.IO.Path]::GetTempPath();
[string] $name = [System.Guid]::NewGuid();
- $tmp = New-Item -ItemType Directory -Path;
- (Join-Path $parent $name);
+ $tmp = New-Item -ItemType Directory -Path (Join-Path $parent $name);
$tmp.FullName
EOM
diff --git a/lib/chef/knife/client_bulk_delete.rb b/lib/chef/knife/client_bulk_delete.rb
index a4777a4a16..28278eb89c 100644
--- a/lib/chef/knife/client_bulk_delete.rb
+++ b/lib/chef/knife/client_bulk_delete.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class ClientBulkDelete < Knife
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
option :delete_validators,
diff --git a/lib/chef/knife/client_create.rb b/lib/chef/knife/client_create.rb
index 869e174453..05aafd446e 100644
--- a/lib/chef/knife/client_create.rb
+++ b/lib/chef/knife/client_create.rb
@@ -16,27 +16,21 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/dist"
+require_relative "../knife"
+require_relative "../dist"
class Chef
class Knife
class ClientCreate < Knife
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
option :file,
short: "-f FILE",
long: "--file FILE",
- description: "Write the private key to a file if the server generated one."
-
- option :admin,
- short: "-a",
- long: "--admin",
- description: "Open Source Chef Server 11 only. Create the client as an admin.",
- boolean: true
+ description: "Write the private key to a file if the #{Chef::Dist::SERVER_PRODUCT} generated one."
option :validator,
long: "--validator",
@@ -51,7 +45,7 @@ class Chef
option :prevent_keygen,
short: "-k",
long: "--prevent-keygen",
- description: "API V1 (#{Chef::Dist::SERVER_PRODUCT} 12.1+) only. Prevent server from generating a default key pair for you. Cannot be passed with --public-key.",
+ description: "Prevent #{Chef::Dist::SERVER_PRODUCT} from generating a default key pair for you. Cannot be passed with --public-key.",
boolean: true
banner "knife client create CLIENTNAME (options)"
@@ -79,10 +73,6 @@ class Chef
client.create_key(true)
end
- if config[:admin]
- client.admin(true)
- end
-
if config[:validator]
client.validator(true)
end
diff --git a/lib/chef/knife/client_delete.rb b/lib/chef/knife/client_delete.rb
index b2e34352a2..23f34e65b4 100644
--- a/lib/chef/knife/client_delete.rb
+++ b/lib/chef/knife/client_delete.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class ClientDelete < Knife
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
option :delete_validators,
diff --git a/lib/chef/knife/client_edit.rb b/lib/chef/knife/client_edit.rb
index 21fd3f457d..ebdf95b2ef 100644
--- a/lib/chef/knife/client_edit.rb
+++ b/lib/chef/knife/client_edit.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class ClientEdit < Knife
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
banner "knife client edit CLIENT (options)"
diff --git a/lib/chef/knife/client_key_create.rb b/lib/chef/knife/client_key_create.rb
index 1f209ec879..564bbf1caa 100644
--- a/lib/chef/knife/client_key_create.rb
+++ b/lib/chef/knife/client_key_create.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_create"
-require "chef/knife/key_create_base"
+require_relative "../knife"
+require_relative "key_create"
+require_relative "key_create_base"
class Chef
class Knife
diff --git a/lib/chef/knife/client_key_delete.rb b/lib/chef/knife/client_key_delete.rb
index 3463389a05..63351e2a6b 100644
--- a/lib/chef/knife/client_key_delete.rb
+++ b/lib/chef/knife/client_key_delete.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_delete"
+require_relative "../knife"
+require_relative "key_delete"
class Chef
class Knife
diff --git a/lib/chef/knife/client_key_edit.rb b/lib/chef/knife/client_key_edit.rb
index 1a685b7a56..db7784a423 100644
--- a/lib/chef/knife/client_key_edit.rb
+++ b/lib/chef/knife/client_key_edit.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_edit"
-require "chef/knife/key_edit_base"
+require_relative "../knife"
+require_relative "key_edit"
+require_relative "key_edit_base"
class Chef
class Knife
diff --git a/lib/chef/knife/client_key_list.rb b/lib/chef/knife/client_key_list.rb
index aa63c1196b..0eae1c9505 100644
--- a/lib/chef/knife/client_key_list.rb
+++ b/lib/chef/knife/client_key_list.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_list"
-require "chef/knife/key_list_base"
+require_relative "../knife"
+require_relative "key_list"
+require_relative "key_list_base"
class Chef
class Knife
diff --git a/lib/chef/knife/client_key_show.rb b/lib/chef/knife/client_key_show.rb
index 49bc9d3596..3ef0028413 100644
--- a/lib/chef/knife/client_key_show.rb
+++ b/lib/chef/knife/client_key_show.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_show"
+require_relative "../knife"
+require_relative "key_show"
class Chef
class Knife
diff --git a/lib/chef/knife/client_list.rb b/lib/chef/knife/client_list.rb
index 49d833353d..f6e50b2a34 100644
--- a/lib/chef/knife/client_list.rb
+++ b/lib/chef/knife/client_list.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class ClientList < Knife
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
banner "knife client list (options)"
diff --git a/lib/chef/knife/client_reregister.rb b/lib/chef/knife/client_reregister.rb
index 37ef259cad..953e8c8f64 100644
--- a/lib/chef/knife/client_reregister.rb
+++ b/lib/chef/knife/client_reregister.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class ClientReregister < Knife
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
banner "knife client reregister CLIENT (options)"
diff --git a/lib/chef/knife/client_show.rb b/lib/chef/knife/client_show.rb
index 5a07ff7af1..92e32a4004 100644
--- a/lib/chef/knife/client_show.rb
+++ b/lib/chef/knife/client_show.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -25,7 +25,7 @@ class Chef
include Knife::Core::MultiAttributeReturnOption
deps do
- require "chef/api_client_v1"
+ require_relative "../api_client_v1"
end
banner "knife client show CLIENT (options)"
diff --git a/lib/chef/knife/config_get.rb b/lib/chef/knife/config_get.rb
index c687e39a29..f21033d793 100644
--- a/lib/chef/knife/config_get.rb
+++ b/lib/chef/knife/config_get.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/config_get_profile.rb b/lib/chef/knife/config_get_profile.rb
index 309b7f81e8..716c65dc4b 100644
--- a/lib/chef/knife/config_get_profile.rb
+++ b/lib/chef/knife/config_get_profile.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/config_list_profiles.rb b/lib/chef/knife/config_list_profiles.rb
index b767e9dd42..29e3e24dc5 100644
--- a/lib/chef/knife/config_list_profiles.rb
+++ b/lib/chef/knife/config_list_profiles.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/workstation_config_loader"
+require_relative "../knife"
+require_relative "../workstation_config_loader"
class Chef
class Knife
@@ -26,7 +26,7 @@ class Chef
option :ignore_knife_rb,
short: "-i",
long: "--ignore-knife-rb",
- description: "Ignore the current knife.rb configuration.",
+ description: "Ignore the current config.rb/knife.rb configuration.",
default: false
def run
diff --git a/lib/chef/knife/config_use_profile.rb b/lib/chef/knife/config_use_profile.rb
index 515c4a5336..a202c8cf2a 100644
--- a/lib/chef/knife/config_use_profile.rb
+++ b/lib/chef/knife/config_use_profile.rb
@@ -17,7 +17,7 @@
require "fileutils"
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/configure.rb b/lib/chef/knife/configure.rb
index e24958e1fc..0e523584fb 100644
--- a/lib/chef/knife/configure.rb
+++ b/lib/chef/knife/configure.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/util/path_helper"
+require_relative "../knife"
+require_relative "../util/path_helper"
class Chef
class Knife
diff --git a/lib/chef/knife/configure_client.rb b/lib/chef/knife/configure_client.rb
index c015687ac7..d72f4af308 100644
--- a/lib/chef/knife/configure_client.rb
+++ b/lib/chef/knife/configure_client.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_bulk_delete.rb b/lib/chef/knife/cookbook_bulk_delete.rb
index d895797598..3df0737828 100644
--- a/lib/chef/knife/cookbook_bulk_delete.rb
+++ b/lib/chef/knife/cookbook_bulk_delete.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class CookbookBulkDelete < Knife
deps do
- require "chef/knife/cookbook_delete"
- require "chef/cookbook_version"
+ require_relative "cookbook_delete"
+ require_relative "../cookbook_version"
end
option :purge, short: "-p", long: "--purge", boolean: true, description: "Permanently remove files from backing data store."
diff --git a/lib/chef/knife/cookbook_delete.rb b/lib/chef/knife/cookbook_delete.rb
index 3de35d0a72..381df56d71 100644
--- a/lib/chef/knife/cookbook_delete.rb
+++ b/lib/chef/knife/cookbook_delete.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -25,7 +25,7 @@ class Chef
attr_accessor :cookbook_name, :version
deps do
- require "chef/cookbook_version"
+ require_relative "../cookbook_version"
end
option :all, short: "-a", long: "--all", boolean: true, description: "Delete all versions of the cookbook."
diff --git a/lib/chef/knife/cookbook_download.rb b/lib/chef/knife/cookbook_download.rb
index d5b1040e3e..09f420ffe5 100644
--- a/lib/chef/knife/cookbook_download.rb
+++ b/lib/chef/knife/cookbook_download.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -27,7 +27,7 @@ class Chef
attr_accessor :cookbook_name
deps do
- require "chef/cookbook_version"
+ require_relative "../cookbook_version"
end
banner "knife cookbook download COOKBOOK [VERSION] (options)"
diff --git a/lib/chef/knife/cookbook_list.rb b/lib/chef/knife/cookbook_list.rb
index c5a5bd5835..502635c9e3 100644
--- a/lib/chef/knife/cookbook_list.rb
+++ b/lib/chef/knife/cookbook_list.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_metadata.rb b/lib/chef/knife/cookbook_metadata.rb
index 2b25f505a0..20b2a3fac7 100644
--- a/lib/chef/knife/cookbook_metadata.rb
+++ b/lib/chef/knife/cookbook_metadata.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class CookbookMetadata < Knife
deps do
- require "chef/cookbook_loader"
- require "chef/cookbook/metadata"
+ require_relative "../cookbook_loader"
+ require_relative "../cookbook/metadata"
end
banner "knife cookbook metadata COOKBOOK (options)"
diff --git a/lib/chef/knife/cookbook_metadata_from_file.rb b/lib/chef/knife/cookbook_metadata_from_file.rb
index 1f98f28aff..24aa335107 100644
--- a/lib/chef/knife/cookbook_metadata_from_file.rb
+++ b/lib/chef/knife/cookbook_metadata_from_file.rb
@@ -18,14 +18,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class CookbookMetadataFromFile < Knife
deps do
- require "chef/cookbook/metadata"
+ require_relative "../cookbook/metadata"
end
banner "knife cookbook metadata from FILE (options)"
diff --git a/lib/chef/knife/cookbook_show.rb b/lib/chef/knife/cookbook_show.rb
index d42c114556..d7855f63ba 100644
--- a/lib/chef/knife/cookbook_show.rb
+++ b/lib/chef/knife/cookbook_show.rb
@@ -16,16 +16,16 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class CookbookShow < Knife
deps do
- require "chef/json_compat"
+ require_relative "../json_compat"
require "uri"
- require "chef/cookbook_version"
+ require_relative "../cookbook_version"
end
banner "knife cookbook show COOKBOOK [VERSION] [PART] [FILENAME] (options)"
diff --git a/lib/chef/knife/cookbook_site_download.rb b/lib/chef/knife/cookbook_site_download.rb
index e288bcaf4f..655bf602a5 100644
--- a/lib/chef/knife/cookbook_site_download.rb
+++ b/lib/chef/knife/cookbook_site_download.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_download"
+require_relative "../knife"
+require_relative "supermarket_download"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_site_install.rb b/lib/chef/knife/cookbook_site_install.rb
index 433e572533..badbcc9b98 100644
--- a/lib/chef/knife/cookbook_site_install.rb
+++ b/lib/chef/knife/cookbook_site_install.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_install"
+require_relative "../knife"
+require_relative "supermarket_install"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_site_list.rb b/lib/chef/knife/cookbook_site_list.rb
index 5b65420e4f..81e1ffc278 100644
--- a/lib/chef/knife/cookbook_site_list.rb
+++ b/lib/chef/knife/cookbook_site_list.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_list"
+require_relative "../knife"
+require_relative "supermarket_list"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_site_search.rb b/lib/chef/knife/cookbook_site_search.rb
index 21ea045ed3..8aa195fe22 100644
--- a/lib/chef/knife/cookbook_site_search.rb
+++ b/lib/chef/knife/cookbook_site_search.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_search"
+require_relative "../knife"
+require_relative "supermarket_search"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_site_share.rb b/lib/chef/knife/cookbook_site_share.rb
index 6fe4bbb520..99d9d612df 100644
--- a/lib/chef/knife/cookbook_site_share.rb
+++ b/lib/chef/knife/cookbook_site_share.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_share"
+require_relative "../knife"
+require_relative "supermarket_share"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_site_show.rb b/lib/chef/knife/cookbook_site_show.rb
index 4a8d7c090e..ef1f61a6ca 100644
--- a/lib/chef/knife/cookbook_site_show.rb
+++ b/lib/chef/knife/cookbook_site_show.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_show"
+require_relative "../knife"
+require_relative "supermarket_show"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_site_unshare.rb b/lib/chef/knife/cookbook_site_unshare.rb
index 850511e650..13f02dd4d7 100644
--- a/lib/chef/knife/cookbook_site_unshare.rb
+++ b/lib/chef/knife/cookbook_site_unshare.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/supermarket_unshare"
+require_relative "../knife"
+require_relative "supermarket_unshare"
class Chef
class Knife
diff --git a/lib/chef/knife/cookbook_upload.rb b/lib/chef/knife/cookbook_upload.rb
index d2a140540e..11736e6084 100644
--- a/lib/chef/knife/cookbook_upload.rb
+++ b/lib/chef/knife/cookbook_upload.rb
@@ -18,8 +18,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/cookbook_uploader"
+require_relative "../knife"
+require_relative "../cookbook_uploader"
class Chef
class Knife
@@ -29,9 +29,9 @@ class Chef
MATCH_CHECKSUM = /[0-9a-f]{32,}/.freeze
deps do
- require "chef/exceptions"
- require "chef/cookbook_loader"
- require "chef/cookbook_uploader"
+ require_relative "../exceptions"
+ require_relative "../cookbook_loader"
+ require_relative "../cookbook_uploader"
end
banner "knife cookbook upload [COOKBOOKS...] (options)"
diff --git a/lib/chef/knife/core/bootstrap_context.rb b/lib/chef/knife/core/bootstrap_context.rb
index dcca7b8a69..759fb043c0 100644
--- a/lib/chef/knife/core/bootstrap_context.rb
+++ b/lib/chef/knife/core/bootstrap_context.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/run_list"
-require "chef/util/path_helper"
+require_relative "../../run_list"
+require_relative "../../util/path_helper"
require "pathname"
-require "chef/dist"
+require_relative "../../dist"
class Chef
class Knife
@@ -92,6 +92,10 @@ class Chef
validation_client_name "#{@chef_config[:validation_client_name]}"
CONFIG
+ unless @chef_config[:chef_license].nil?
+ client_rb << "chef_license \"#{@chef_config[:chef_license]}\"\n"
+ end
+
if !(@chef_config[:config_log_level].nil? || @chef_config[:config_log_level].empty?)
client_rb << %Q{log_level :#{@chef_config[:config_log_level]}\n}
end
@@ -171,7 +175,7 @@ class Chef
def start_chef
# If the user doesn't have a client path configure, let bash use the PATH for what it was designed for
client_path = @chef_config[:chef_client_path] || "#{Chef::Dist::CLIENT}"
- s = "CHEF_LICENSE=accept #{client_path} -j /etc/chef/first-boot.json"
+ s = "#{client_path} -j /etc/chef/first-boot.json"
if @config[:verbosity] && @config[:verbosity] >= 3
s << " -l trace"
elsif @config[:verbosity] && @config[:verbosity] >= 2
@@ -187,16 +191,17 @@ class Chef
end
#
- # chef version string to fetch the latest current version from omnitruck
- # If user is on X.Y.Z, bootstrap will use the latest X release
- def latest_current_chef_version_string
- chef_version_string = if knife_config[:bootstrap_version]
- knife_config[:bootstrap_version]
- else
- Chef::VERSION.split(".").first
- end
-
- "-v #{chef_version_string}"
+ # Returns the version of Chef to install (as recognized by the Omnitruck API)
+ #
+ # @return [String] download version string
+ def version_to_install
+ return knife_config[:bootstrap_version] if knife_config[:bootstrap_version]
+
+ if @config[:channel] == "stable"
+ Chef::VERSION.split(".").first
+ else
+ "latest"
+ end
end
def first_boot
diff --git a/lib/chef/knife/core/cookbook_scm_repo.rb b/lib/chef/knife/core/cookbook_scm_repo.rb
index ba3a40207a..f97923d96b 100644
--- a/lib/chef/knife/core/cookbook_scm_repo.rb
+++ b/lib/chef/knife/core/cookbook_scm_repo.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
+require_relative "../../mixin/shell_out"
class Chef
class Knife
diff --git a/lib/chef/knife/core/gem_glob_loader.rb b/lib/chef/knife/core/gem_glob_loader.rb
index 987aef754f..b5b9143552 100644
--- a/lib/chef/knife/core/gem_glob_loader.rb
+++ b/lib/chef/knife/core/gem_glob_loader.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/version"
-require "chef/util/path_helper"
+require_relative "../../version"
+require_relative "../../util/path_helper"
class Chef
class Knife
class SubcommandLoader
diff --git a/lib/chef/knife/core/generic_presenter.rb b/lib/chef/knife/core/generic_presenter.rb
index 8995f1f85d..77c874e71a 100644
--- a/lib/chef/knife/core/generic_presenter.rb
+++ b/lib/chef/knife/core/generic_presenter.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife/core/text_formatter"
+require_relative "text_formatter"
class Chef
class Knife
diff --git a/lib/chef/knife/core/hashed_command_loader.rb b/lib/chef/knife/core/hashed_command_loader.rb
index dff4ae50ab..66856b6414 100644
--- a/lib/chef/knife/core/hashed_command_loader.rb
+++ b/lib/chef/knife/core/hashed_command_loader.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/version"
+require_relative "../../version"
class Chef
class Knife
class SubcommandLoader
diff --git a/lib/chef/knife/core/node_editor.rb b/lib/chef/knife/core/node_editor.rb
index b009bf8652..753ee01704 100644
--- a/lib/chef/knife/core/node_editor.rb
+++ b/lib/chef/knife/core/node_editor.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/json_compat"
-require "chef/node"
+require_relative "../../json_compat"
+require_relative "../../node"
class Chef
class Knife
diff --git a/lib/chef/knife/core/node_presenter.rb b/lib/chef/knife/core/node_presenter.rb
index b46ff2ae77..a77e9d7a65 100644
--- a/lib/chef/knife/core/node_presenter.rb
+++ b/lib/chef/knife/core/node_presenter.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife/core/text_formatter"
-require "chef/knife/core/generic_presenter"
+require_relative "text_formatter"
+require_relative "generic_presenter"
class Chef
class Knife
diff --git a/lib/chef/knife/core/object_loader.rb b/lib/chef/knife/core/object_loader.rb
index b08483f9a2..d87b3eaf71 100644
--- a/lib/chef/knife/core/object_loader.rb
+++ b/lib/chef/knife/core/object_loader.rb
@@ -17,8 +17,8 @@
#
require "ffi_yajl"
-require "chef/util/path_helper"
-require "chef/data_bag_item"
+require_relative "../../util/path_helper"
+require_relative "../../data_bag_item"
class Chef
class Knife
diff --git a/lib/chef/knife/core/status_presenter.rb b/lib/chef/knife/core/status_presenter.rb
index dfd8eb8956..820c572f1f 100644
--- a/lib/chef/knife/core/status_presenter.rb
+++ b/lib/chef/knife/core/status_presenter.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife/core/text_formatter"
-require "chef/knife/core/generic_presenter"
+require_relative "text_formatter"
+require_relative "generic_presenter"
class Chef
class Knife
diff --git a/lib/chef/knife/core/subcommand_loader.rb b/lib/chef/knife/core/subcommand_loader.rb
index fb3723de50..bb84c55dd9 100644
--- a/lib/chef/knife/core/subcommand_loader.rb
+++ b/lib/chef/knife/core/subcommand_loader.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/version"
-require "chef/util/path_helper"
-require "chef/knife/core/gem_glob_loader"
-require "chef/knife/core/hashed_command_loader"
+require_relative "../../version"
+require_relative "../../util/path_helper"
+require_relative "gem_glob_loader"
+require_relative "hashed_command_loader"
class Chef
class Knife
diff --git a/lib/chef/knife/core/ui.rb b/lib/chef/knife/core/ui.rb
index 9801b8d033..cbda9c20f5 100644
--- a/lib/chef/knife/core/ui.rb
+++ b/lib/chef/knife/core/ui.rb
@@ -19,8 +19,8 @@
#
require "forwardable"
-require "chef/platform/query_helpers"
-require "chef/knife/core/generic_presenter"
+require_relative "../../platform/query_helpers"
+require_relative "generic_presenter"
require "tempfile"
class Chef
diff --git a/lib/chef/knife/core/windows_bootstrap_context.rb b/lib/chef/knife/core/windows_bootstrap_context.rb
index 6054743106..b06ddd9fcc 100644
--- a/lib/chef/knife/core/windows_bootstrap_context.rb
+++ b/lib/chef/knife/core/windows_bootstrap_context.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife/core/bootstrap_context"
-require "chef/util/path_helper"
-require "chef/dist"
+require_relative "bootstrap_context"
+require_relative "../../util/path_helper"
+require_relative "../../dist"
class Chef
class Knife
@@ -63,6 +63,11 @@ class Chef
file_backup_path "c:/chef/backup"
cache_options ({:path => "c:/chef/cache/checksums", :skip_expires => true})
CONFIG
+
+ unless @chef_config[:chef_license].nil?
+ client_rb << "chef_license \"#{@chef_config[:chef_license]}\"\n"
+ end
+
if @config[:chef_node_name]
client_rb << %Q{node_name "#{@config[:chef_node_name]}"\n}
else
@@ -154,20 +159,9 @@ class Chef
def start_chef
bootstrap_environment_option = bootstrap_environment.nil? ? "" : " -E #{bootstrap_environment}"
start_chef = "SET \"PATH=%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\;C:\\ruby\\bin;C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin\"\n"
- start_chef << "SET \"CHEF_LICENSE=accept\"\n"
start_chef << "chef-client -c c:/chef/client.rb -j c:/chef/first-boot.json#{bootstrap_environment_option}\n"
end
- def latest_current_windows_chef_version_query
- chef_version_string = if knife_config[:bootstrap_version]
- knife_config[:bootstrap_version]
- else
- Chef::VERSION.split(".").first
- end
-
- "&v=#{chef_version_string}"
- end
-
def win_wget
# I tried my best to figure out how to properly url decode and switch / to \
# but this is VBScript - so I don't really care that badly.
@@ -273,16 +267,16 @@ class Chef
"%TEMP%\\#{Chef::Dist::CLIENT}-latest.msi"
end
+ # Build a URL to query www.chef.io that will redirect to the correct
+ # Chef Infra msi download.
def msi_url(machine_os = nil, machine_arch = nil, download_context = nil)
- # The default msi path has a number of url query parameters - we attempt to substitute
- # such parameters in as long as they are provided by the template.
-
if @config[:msi_url].nil? || @config[:msi_url].empty?
url = "https://www.chef.io/chef/download?p=windows"
url += "&pv=#{machine_os}" unless machine_os.nil?
url += "&m=#{machine_arch}" unless machine_arch.nil?
url += "&DownloadContext=#{download_context}" unless download_context.nil?
- url += latest_current_windows_chef_version_query
+ url += "&channel=#{@config[:channel]}"
+ url += "&v=#{version_to_install}"
else
@config[:msi_url]
end
diff --git a/lib/chef/knife/data_bag_create.rb b/lib/chef/knife/data_bag_create.rb
index bf90fb81b3..92ea981a2b 100644
--- a/lib/chef/knife/data_bag_create.rb
+++ b/lib/chef/knife/data_bag_create.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/data_bag_secret_options"
+require_relative "../knife"
+require_relative "data_bag_secret_options"
class Chef
class Knife
@@ -26,8 +26,8 @@ class Chef
include DataBagSecretOptions
deps do
- require "chef/data_bag"
- require "chef/encrypted_data_bag_item"
+ require_relative "../data_bag"
+ require_relative "../encrypted_data_bag_item"
end
banner "knife data bag create BAG [ITEM] (options)"
diff --git a/lib/chef/knife/data_bag_delete.rb b/lib/chef/knife/data_bag_delete.rb
index c1ea2013c8..622cd2df33 100644
--- a/lib/chef/knife/data_bag_delete.rb
+++ b/lib/chef/knife/data_bag_delete.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class DataBagDelete < Knife
deps do
- require "chef/data_bag"
+ require_relative "../data_bag"
end
banner "knife data bag delete BAG [ITEM] (options)"
diff --git a/lib/chef/knife/data_bag_edit.rb b/lib/chef/knife/data_bag_edit.rb
index 6c7f73ad6c..eb70e06864 100644
--- a/lib/chef/knife/data_bag_edit.rb
+++ b/lib/chef/knife/data_bag_edit.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/data_bag_secret_options"
+require_relative "../knife"
+require_relative "data_bag_secret_options"
class Chef
class Knife
@@ -26,8 +26,8 @@ class Chef
include DataBagSecretOptions
deps do
- require "chef/data_bag_item"
- require "chef/encrypted_data_bag_item"
+ require_relative "../data_bag_item"
+ require_relative "../encrypted_data_bag_item"
end
banner "knife data bag edit BAG ITEM (options)"
diff --git a/lib/chef/knife/data_bag_from_file.rb b/lib/chef/knife/data_bag_from_file.rb
index 1cf7a07a36..050c9b404f 100644
--- a/lib/chef/knife/data_bag_from_file.rb
+++ b/lib/chef/knife/data_bag_from_file.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/util/path_helper"
-require "chef/knife/data_bag_secret_options"
+require_relative "../knife"
+require_relative "../util/path_helper"
+require_relative "data_bag_secret_options"
class Chef
class Knife
@@ -27,10 +27,10 @@ class Chef
include DataBagSecretOptions
deps do
- require "chef/data_bag"
- require "chef/data_bag_item"
- require "chef/knife/core/object_loader"
- require "chef/encrypted_data_bag_item"
+ require_relative "../data_bag"
+ require_relative "../data_bag_item"
+ require_relative "core/object_loader"
+ require_relative "../encrypted_data_bag_item"
end
banner "knife data bag from file BAG FILE|FOLDER [FILE|FOLDER..] (options)"
diff --git a/lib/chef/knife/data_bag_list.rb b/lib/chef/knife/data_bag_list.rb
index d6f6142136..bfe829d45a 100644
--- a/lib/chef/knife/data_bag_list.rb
+++ b/lib/chef/knife/data_bag_list.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class DataBagList < Knife
deps do
- require "chef/data_bag"
+ require_relative "../data_bag"
end
banner "knife data bag list (options)"
diff --git a/lib/chef/knife/data_bag_secret_options.rb b/lib/chef/knife/data_bag_secret_options.rb
index 5f49b5f137..19b0dfca38 100644
--- a/lib/chef/knife/data_bag_secret_options.rb
+++ b/lib/chef/knife/data_bag_secret_options.rb
@@ -17,8 +17,8 @@
#
require "mixlib/cli"
-require "chef/config"
-require "chef/encrypted_data_bag_item/check_encrypted"
+require_relative "../config"
+require_relative "../encrypted_data_bag_item/check_encrypted"
class Chef
class Knife
@@ -65,7 +65,7 @@ class Chef
def read_secret
# Moving the non 'compile-time' requires into here to speed up knife command loading
# IE, if we are not running 'knife data bag *' we don't need to load 'chef/encrypted_data_bag_item'
- require "chef/encrypted_data_bag_item"
+ require_relative "../encrypted_data_bag_item"
if has_cl_secret?
config[:secret]
diff --git a/lib/chef/knife/data_bag_show.rb b/lib/chef/knife/data_bag_show.rb
index eeebd11832..529b0fafcf 100644
--- a/lib/chef/knife/data_bag_show.rb
+++ b/lib/chef/knife/data_bag_show.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/data_bag_secret_options"
+require_relative "../knife"
+require_relative "data_bag_secret_options"
class Chef
class Knife
@@ -26,8 +26,8 @@ class Chef
include DataBagSecretOptions
deps do
- require "chef/data_bag"
- require "chef/encrypted_data_bag_item"
+ require_relative "../data_bag"
+ require_relative "../encrypted_data_bag_item"
end
banner "knife data bag show BAG [ITEM] (options)"
diff --git a/lib/chef/knife/delete.rb b/lib/chef/knife/delete.rb
index 7d2f4c405f..d1888e127a 100644
--- a/lib/chef/knife/delete.rb
+++ b/lib/chef/knife/delete.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,7 +24,7 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/file_system"
+ require_relative "../chef_fs/file_system"
end
option :recurse,
diff --git a/lib/chef/knife/deps.rb b/lib/chef/knife/deps.rb
index 8efa0d0b65..bc4b853879 100644
--- a/lib/chef/knife/deps.rb
+++ b/lib/chef/knife/deps.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,8 +24,8 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/file_system"
- require "chef/run_list"
+ require_relative "../chef_fs/file_system"
+ require_relative "../run_list"
end
option :recurse,
diff --git a/lib/chef/knife/diff.rb b/lib/chef/knife/diff.rb
index bd75d31194..3e9336aacc 100644
--- a/lib/chef/knife/diff.rb
+++ b/lib/chef/knife/diff.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,7 +24,7 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/command_line"
+ require_relative "../chef_fs/command_line"
end
option :recurse,
diff --git a/lib/chef/knife/download.rb b/lib/chef/knife/download.rb
index 57e0aee3e9..b3cf61430f 100644
--- a/lib/chef/knife/download.rb
+++ b/lib/chef/knife/download.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,7 +24,7 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/command_line"
+ require_relative "../chef_fs/command_line"
end
option :recurse,
diff --git a/lib/chef/knife/edit.rb b/lib/chef/knife/edit.rb
index fabc282cc2..406782ef85 100644
--- a/lib/chef/knife/edit.rb
+++ b/lib/chef/knife/edit.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,8 +24,8 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/file_system"
- require "chef/chef_fs/file_system/exceptions"
+ require_relative "../chef_fs/file_system"
+ require_relative "../chef_fs/file_system/exceptions"
end
option :local,
diff --git a/lib/chef/knife/environment_compare.rb b/lib/chef/knife/environment_compare.rb
index b5f1c9be7e..b00fc4fc3b 100644
--- a/lib/chef/knife/environment_compare.rb
+++ b/lib/chef/knife/environment_compare.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class EnvironmentCompare < Knife
deps do
- require "chef/environment"
+ require_relative "../environment"
end
banner "knife environment compare [ENVIRONMENT..] (options)"
diff --git a/lib/chef/knife/environment_create.rb b/lib/chef/knife/environment_create.rb
index 6d8321b9b7..56c3779606 100644
--- a/lib/chef/knife/environment_create.rb
+++ b/lib/chef/knife/environment_create.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class EnvironmentCreate < Knife
deps do
- require "chef/environment"
+ require_relative "../environment"
end
banner "knife environment create ENVIRONMENT (options)"
diff --git a/lib/chef/knife/environment_delete.rb b/lib/chef/knife/environment_delete.rb
index 8368ce9dcd..e0be6a81d2 100644
--- a/lib/chef/knife/environment_delete.rb
+++ b/lib/chef/knife/environment_delete.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class EnvironmentDelete < Knife
deps do
- require "chef/environment"
+ require_relative "../environment"
end
banner "knife environment delete ENVIRONMENT (options)"
diff --git a/lib/chef/knife/environment_edit.rb b/lib/chef/knife/environment_edit.rb
index 29f1467626..6d9a0a6e04 100644
--- a/lib/chef/knife/environment_edit.rb
+++ b/lib/chef/knife/environment_edit.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class EnvironmentEdit < Knife
deps do
- require "chef/environment"
+ require_relative "../environment"
end
banner "knife environment edit ENVIRONMENT (options)"
diff --git a/lib/chef/knife/environment_from_file.rb b/lib/chef/knife/environment_from_file.rb
index c533a7351d..3d476a4712 100644
--- a/lib/chef/knife/environment_from_file.rb
+++ b/lib/chef/knife/environment_from_file.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class EnvironmentFromFile < Knife
deps do
- require "chef/environment"
- require "chef/knife/core/object_loader"
+ require_relative "../environment"
+ require_relative "core/object_loader"
end
banner "knife environment from file FILE [FILE..] (options)"
diff --git a/lib/chef/knife/environment_list.rb b/lib/chef/knife/environment_list.rb
index 6b4b8508fa..00c5eb0b99 100644
--- a/lib/chef/knife/environment_list.rb
+++ b/lib/chef/knife/environment_list.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class EnvironmentList < Knife
deps do
- require "chef/environment"
+ require_relative "../environment"
end
banner "knife environment list (options)"
diff --git a/lib/chef/knife/environment_show.rb b/lib/chef/knife/environment_show.rb
index 04d17ed1f4..9c4141df70 100644
--- a/lib/chef/knife/environment_show.rb
+++ b/lib/chef/knife/environment_show.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -25,7 +25,7 @@ class Chef
include Knife::Core::MultiAttributeReturnOption
deps do
- require "chef/environment"
+ require_relative "../environment"
end
banner "knife environment show ENVIRONMENT (options)"
diff --git a/lib/chef/knife/exec.rb b/lib/chef/knife/exec.rb
index 63598923de..7a5d77abd5 100644
--- a/lib/chef/knife/exec.rb
+++ b/lib/chef/knife/exec.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/util/path_helper"
+require_relative "../knife"
+require_relative "../util/path_helper"
class Chef::Knife::Exec < Chef::Knife
@@ -35,7 +35,7 @@ class Chef::Knife::Exec < Chef::Knife
proc: lambda { |o| o.split(":") }
deps do
- require "chef/shell/ext"
+ require_relative "../shell/ext"
end
def run
diff --git a/lib/chef/knife/key_create.rb b/lib/chef/knife/key_create.rb
index f278af8b77..a16e07d086 100644
--- a/lib/chef/knife/key_create.rb
+++ b/lib/chef/knife/key_create.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/key"
-require "chef/json_compat"
-require "chef/exceptions"
+require_relative "../key"
+require_relative "../json_compat"
+require_relative "../exceptions"
class Chef
class Knife
diff --git a/lib/chef/knife/key_delete.rb b/lib/chef/knife/key_delete.rb
index a798e06475..154fb5abcb 100644
--- a/lib/chef/knife/key_delete.rb
+++ b/lib/chef/knife/key_delete.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/key"
+require_relative "../key"
class Chef
class Knife
diff --git a/lib/chef/knife/key_edit.rb b/lib/chef/knife/key_edit.rb
index 4e36bdfded..c6c67a18ee 100644
--- a/lib/chef/knife/key_edit.rb
+++ b/lib/chef/knife/key_edit.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/key"
-require "chef/json_compat"
-require "chef/exceptions"
+require_relative "../key"
+require_relative "../json_compat"
+require_relative "../exceptions"
class Chef
class Knife
diff --git a/lib/chef/knife/key_list.rb b/lib/chef/knife/key_list.rb
index 3078ca44d3..5295238f6f 100644
--- a/lib/chef/knife/key_list.rb
+++ b/lib/chef/knife/key_list.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/key"
-require "chef/json_compat"
-require "chef/exceptions"
+require_relative "../key"
+require_relative "../json_compat"
+require_relative "../exceptions"
class Chef
class Knife
diff --git a/lib/chef/knife/key_show.rb b/lib/chef/knife/key_show.rb
index 851db7208b..a208fc04a6 100644
--- a/lib/chef/knife/key_show.rb
+++ b/lib/chef/knife/key_show.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/key"
-require "chef/json_compat"
-require "chef/exceptions"
+require_relative "../key"
+require_relative "../json_compat"
+require_relative "../exceptions"
class Chef
class Knife
diff --git a/lib/chef/knife/list.rb b/lib/chef/knife/list.rb
index 10018ff74c..08bb73e489 100644
--- a/lib/chef/knife/list.rb
+++ b/lib/chef/knife/list.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,7 +24,7 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/file_system"
+ require_relative "../chef_fs/file_system"
require "tty-screen"
end
diff --git a/lib/chef/knife/node_bulk_delete.rb b/lib/chef/knife/node_bulk_delete.rb
index 2ca63da512..04d19648d2 100644
--- a/lib/chef/knife/node_bulk_delete.rb
+++ b/lib/chef/knife/node_bulk_delete.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeBulkDelete < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node bulk delete REGEX (options)"
diff --git a/lib/chef/knife/node_create.rb b/lib/chef/knife/node_create.rb
index f80ac9e87c..8f69c29b23 100644
--- a/lib/chef/knife/node_create.rb
+++ b/lib/chef/knife/node_create.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeCreate < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node create NODE (options)"
diff --git a/lib/chef/knife/node_delete.rb b/lib/chef/knife/node_delete.rb
index 52b8d122ca..67d15a4e4e 100644
--- a/lib/chef/knife/node_delete.rb
+++ b/lib/chef/knife/node_delete.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeDelete < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node delete [NODE [NODE]] (options)"
diff --git a/lib/chef/knife/node_edit.rb b/lib/chef/knife/node_edit.rb
index b97302a3da..d0b9239e28 100644
--- a/lib/chef/knife/node_edit.rb
+++ b/lib/chef/knife/node_edit.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -24,9 +24,9 @@ class Chef
class NodeEdit < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
- require "chef/knife/core/node_editor"
+ require_relative "../node"
+ require_relative "../json_compat"
+ require_relative "core/node_editor"
end
banner "knife node edit NODE (options)"
diff --git a/lib/chef/knife/node_environment_set.rb b/lib/chef/knife/node_environment_set.rb
index ecba01be29..95aab72625 100644
--- a/lib/chef/knife/node_environment_set.rb
+++ b/lib/chef/knife/node_environment_set.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeEnvironmentSet < Knife
deps do
- require "chef/node"
+ require_relative "../node"
end
banner "knife node environment set NODE ENVIRONMENT"
diff --git a/lib/chef/knife/node_from_file.rb b/lib/chef/knife/node_from_file.rb
index 61b83edd92..82404b9102 100644
--- a/lib/chef/knife/node_from_file.rb
+++ b/lib/chef/knife/node_from_file.rb
@@ -16,16 +16,16 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeFromFile < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
- require "chef/knife/core/object_loader"
+ require_relative "../node"
+ require_relative "../json_compat"
+ require_relative "core/object_loader"
end
banner "knife node from file FILE (options)"
diff --git a/lib/chef/knife/node_list.rb b/lib/chef/knife/node_list.rb
index 651f30862d..a2e5f7a3f5 100644
--- a/lib/chef/knife/node_list.rb
+++ b/lib/chef/knife/node_list.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeList < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node list (options)"
diff --git a/lib/chef/knife/node_policy_set.rb b/lib/chef/knife/node_policy_set.rb
index 404446fe0e..368b389ece 100644
--- a/lib/chef/knife/node_policy_set.rb
+++ b/lib/chef/knife/node_policy_set.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodePolicySet < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node policy set NODE POLICY_GROUP POLICY_NAME (options)"
diff --git a/lib/chef/knife/node_run_list_add.rb b/lib/chef/knife/node_run_list_add.rb
index eed9343e0a..b8d7dc0b99 100644
--- a/lib/chef/knife/node_run_list_add.rb
+++ b/lib/chef/knife/node_run_list_add.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeRunListAdd < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node run_list add [NODE] [ENTRY [ENTRY]] (options)"
diff --git a/lib/chef/knife/node_run_list_remove.rb b/lib/chef/knife/node_run_list_remove.rb
index df50818c23..2c8aa78929 100644
--- a/lib/chef/knife/node_run_list_remove.rb
+++ b/lib/chef/knife/node_run_list_remove.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeRunListRemove < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node run_list remove [NODE] [ENTRY [ENTRY]] (options)"
diff --git a/lib/chef/knife/node_run_list_set.rb b/lib/chef/knife/node_run_list_set.rb
index 2d68c88415..c2dd987864 100644
--- a/lib/chef/knife/node_run_list_set.rb
+++ b/lib/chef/knife/node_run_list_set.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class NodeRunListSet < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node run_list set NODE ENTRIES (options)"
diff --git a/lib/chef/knife/node_show.rb b/lib/chef/knife/node_show.rb
index 90cdbdb641..d06e09d94e 100644
--- a/lib/chef/knife/node_show.rb
+++ b/lib/chef/knife/node_show.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/core/node_presenter"
+require_relative "../knife"
+require_relative "core/node_presenter"
class Chef
class Knife
@@ -27,8 +27,8 @@ class Chef
include Knife::Core::MultiAttributeReturnOption
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife node show NODE (options)"
diff --git a/lib/chef/knife/raw.rb b/lib/chef/knife/raw.rb
index a9a757069b..5f81c13175 100644
--- a/lib/chef/knife/raw.rb
+++ b/lib/chef/knife/raw.rb
@@ -14,8 +14,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/http"
+require_relative "../knife"
+require_relative "../http"
class Chef
class Knife
@@ -23,13 +23,13 @@ class Chef
banner "knife raw REQUEST_PATH (options)"
deps do
- require "chef/json_compat"
- require "chef/config"
- require "chef/http"
- require "chef/http/authenticator"
- require "chef/http/cookie_manager"
- require "chef/http/decompressor"
- require "chef/http/json_output"
+ require_relative "../json_compat"
+ require_relative "../config"
+ require_relative "../http"
+ require_relative "../http/authenticator"
+ require_relative "../http/cookie_manager"
+ require_relative "../http/decompressor"
+ require_relative "../http/json_output"
end
option :method,
diff --git a/lib/chef/knife/recipe_list.rb b/lib/chef/knife/recipe_list.rb
index 8f76e494ad..d81969eb20 100644
--- a/lib/chef/knife/recipe_list.rb
+++ b/lib/chef/knife/recipe_list.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef::Knife::RecipeList < Chef::Knife
banner "knife recipe list [PATTERN]"
diff --git a/lib/chef/knife/rehash.rb b/lib/chef/knife/rehash.rb
index 79286368f8..f4294e8e3b 100644
--- a/lib/chef/knife/rehash.rb
+++ b/lib/chef/knife/rehash.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/core/subcommand_loader"
+require_relative "../knife"
+require_relative "core/subcommand_loader"
class Chef
class Knife
diff --git a/lib/chef/knife/role_bulk_delete.rb b/lib/chef/knife/role_bulk_delete.rb
index 0726454da3..7e5fafb26b 100644
--- a/lib/chef/knife/role_bulk_delete.rb
+++ b/lib/chef/knife/role_bulk_delete.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleBulkDelete < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role bulk delete REGEX (options)"
diff --git a/lib/chef/knife/role_create.rb b/lib/chef/knife/role_create.rb
index f271dddd98..e86e8b0843 100644
--- a/lib/chef/knife/role_create.rb
+++ b/lib/chef/knife/role_create.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleCreate < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role create ROLE (options)"
diff --git a/lib/chef/knife/role_delete.rb b/lib/chef/knife/role_delete.rb
index 5c10a05d85..d78de81fbb 100644
--- a/lib/chef/knife/role_delete.rb
+++ b/lib/chef/knife/role_delete.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleDelete < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role delete ROLE (options)"
diff --git a/lib/chef/knife/role_edit.rb b/lib/chef/knife/role_edit.rb
index d3697849ad..739c863f57 100644
--- a/lib/chef/knife/role_edit.rb
+++ b/lib/chef/knife/role_edit.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleEdit < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role edit ROLE (options)"
diff --git a/lib/chef/knife/role_env_run_list_add.rb b/lib/chef/knife/role_env_run_list_add.rb
index 884f104e65..997fccff42 100644
--- a/lib/chef/knife/role_env_run_list_add.rb
+++ b/lib/chef/knife/role_env_run_list_add.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleEnvRunListAdd < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role env_run_list add [ROLE] [ENVIRONMENT] [ENTRY [ENTRY]] (options)"
diff --git a/lib/chef/knife/role_env_run_list_clear.rb b/lib/chef/knife/role_env_run_list_clear.rb
index ecc41347eb..dda523e809 100644
--- a/lib/chef/knife/role_env_run_list_clear.rb
+++ b/lib/chef/knife/role_env_run_list_clear.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleEnvRunListClear < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role env_run_list clear [ROLE] [ENVIRONMENT] (options)"
diff --git a/lib/chef/knife/role_env_run_list_remove.rb b/lib/chef/knife/role_env_run_list_remove.rb
index 9b627a00fc..e2a8251a5a 100644
--- a/lib/chef/knife/role_env_run_list_remove.rb
+++ b/lib/chef/knife/role_env_run_list_remove.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleEnvRunListRemove < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role env_run_list remove [ROLE] [ENVIRONMENT] [ENTRIES] (options)"
diff --git a/lib/chef/knife/role_env_run_list_replace.rb b/lib/chef/knife/role_env_run_list_replace.rb
index f4e4dfec66..4f717a5f39 100644
--- a/lib/chef/knife/role_env_run_list_replace.rb
+++ b/lib/chef/knife/role_env_run_list_replace.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleEnvRunListReplace < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role env_run_list replace [ROLE] [ENVIRONMENT] [OLD_ENTRY] [NEW_ENTRY] (options)"
diff --git a/lib/chef/knife/role_env_run_list_set.rb b/lib/chef/knife/role_env_run_list_set.rb
index fd8afd6652..4f79d50cc2 100644
--- a/lib/chef/knife/role_env_run_list_set.rb
+++ b/lib/chef/knife/role_env_run_list_set.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleEnvRunListSet < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role env_run_list set [ROLE] [ENVIRONMENT] [ENTRIES] (optionss)"
diff --git a/lib/chef/knife/role_from_file.rb b/lib/chef/knife/role_from_file.rb
index bf21a38fd7..df2b92f209 100644
--- a/lib/chef/knife/role_from_file.rb
+++ b/lib/chef/knife/role_from_file.rb
@@ -16,16 +16,16 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleFromFile < Knife
deps do
- require "chef/role"
- require "chef/knife/core/object_loader"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "core/object_loader"
+ require_relative "../json_compat"
end
banner "knife role from file FILE [FILE..] (options)"
diff --git a/lib/chef/knife/role_list.rb b/lib/chef/knife/role_list.rb
index 41261e09ee..71a7cabfb9 100644
--- a/lib/chef/knife/role_list.rb
+++ b/lib/chef/knife/role_list.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleList < Knife
deps do
- require "chef/node"
- require "chef/json_compat"
+ require_relative "../node"
+ require_relative "../json_compat"
end
banner "knife role list (options)"
diff --git a/lib/chef/knife/role_run_list_add.rb b/lib/chef/knife/role_run_list_add.rb
index ad79434c32..ff0addbcfe 100644
--- a/lib/chef/knife/role_run_list_add.rb
+++ b/lib/chef/knife/role_run_list_add.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleRunListAdd < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role run_list add [ROLE] [ENTRY [ENTRY]] (options)"
diff --git a/lib/chef/knife/role_run_list_clear.rb b/lib/chef/knife/role_run_list_clear.rb
index a3fde43875..b7106233f0 100644
--- a/lib/chef/knife/role_run_list_clear.rb
+++ b/lib/chef/knife/role_run_list_clear.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleRunListClear < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role run_list clear [ROLE] (options)"
diff --git a/lib/chef/knife/role_run_list_remove.rb b/lib/chef/knife/role_run_list_remove.rb
index 39e935605e..0fe3efcad0 100644
--- a/lib/chef/knife/role_run_list_remove.rb
+++ b/lib/chef/knife/role_run_list_remove.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleRunListRemove < Knife
deps do
- require "chef/role"
+ require_relative "../role"
end
banner "knife role run_list remove [ROLE] [ENTRY] (options)"
diff --git a/lib/chef/knife/role_run_list_replace.rb b/lib/chef/knife/role_run_list_replace.rb
index bb93661548..fe9cce7303 100644
--- a/lib/chef/knife/role_run_list_replace.rb
+++ b/lib/chef/knife/role_run_list_replace.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleRunListReplace < Knife
deps do
- require "chef/role"
- require "chef/json_compat"
+ require_relative "../role"
+ require_relative "../json_compat"
end
banner "knife role run_list replace [ROLE] [OLD_ENTRY] [NEW_ENTRY] (options)"
diff --git a/lib/chef/knife/role_run_list_set.rb b/lib/chef/knife/role_run_list_set.rb
index d424bad7e6..447ce145b8 100644
--- a/lib/chef/knife/role_run_list_set.rb
+++ b/lib/chef/knife/role_run_list_set.rb
@@ -17,14 +17,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class RoleRunListSet < Knife
deps do
- require "chef/role"
+ require_relative "../role"
end
banner "knife role run_list set [ROLE] [ENTRIES] (options)"
diff --git a/lib/chef/knife/role_show.rb b/lib/chef/knife/role_show.rb
index cad0344eca..57248e114d 100644
--- a/lib/chef/knife/role_show.rb
+++ b/lib/chef/knife/role_show.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -25,7 +25,7 @@ class Chef
include Knife::Core::MultiAttributeReturnOption
deps do
- require "chef/role"
+ require_relative "../role"
end
banner "knife role show ROLE (options)"
diff --git a/lib/chef/knife/search.rb b/lib/chef/knife/search.rb
index 168db6da1a..bca6e9a886 100644
--- a/lib/chef/knife/search.rb
+++ b/lib/chef/knife/search.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/core/node_presenter"
+require_relative "../knife"
+require_relative "core/node_presenter"
require "addressable/uri"
class Chef
@@ -27,10 +27,10 @@ class Chef
include Knife::Core::MultiAttributeReturnOption
deps do
- require "chef/node"
- require "chef/environment"
- require "chef/api_client"
- require "chef/search/query"
+ require_relative "../node"
+ require_relative "../environment"
+ require_relative "../api_client"
+ require_relative "../search/query"
end
include Knife::Core::NodeFormattingOptions
diff --git a/lib/chef/knife/serve.rb b/lib/chef/knife/serve.rb
index 0a731bfa38..ccb5d4ea29 100644
--- a/lib/chef/knife/serve.rb
+++ b/lib/chef/knife/serve.rb
@@ -14,8 +14,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/local_mode"
+require_relative "../knife"
+require_relative "../local_mode"
class Chef
class Knife
diff --git a/lib/chef/knife/show.rb b/lib/chef/knife/show.rb
index 10a1d521e3..0e5ab9d0fe 100644
--- a/lib/chef/knife/show.rb
+++ b/lib/chef/knife/show.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,8 +24,8 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/file_system"
- require "chef/chef_fs/file_system/exceptions"
+ require_relative "../chef_fs/file_system"
+ require_relative "../chef_fs/file_system/exceptions"
end
option :local,
diff --git a/lib/chef/knife/ssh.rb b/lib/chef/knife/ssh.rb
index ab7623a4d8..b829a21969 100644
--- a/lib/chef/knife/ssh.rb
+++ b/lib/chef/knife/ssh.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
-require "chef/knife"
+require_relative "../mixin/shell_out"
+require_relative "../knife"
class Chef
class Knife
@@ -27,9 +27,9 @@ class Chef
require "net/ssh"
require "net/ssh/multi"
require "readline"
- require "chef/exceptions"
- require "chef/search/query"
- require "chef/util/path_helper"
+ require_relative "../exceptions"
+ require_relative "../search/query"
+ require_relative "../util/path_helper"
require "mixlib/shellout"
end
diff --git a/lib/chef/knife/ssl_check.rb b/lib/chef/knife/ssl_check.rb
index 6508c5f02d..9a27261124 100644
--- a/lib/chef/knife/ssl_check.rb
+++ b/lib/chef/knife/ssl_check.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/config"
+require_relative "../knife"
+require_relative "../config"
class Chef
class Knife
@@ -27,9 +27,9 @@ class Chef
require "pp"
require "socket"
require "uri"
- require "chef/http/ssl_policies"
+ require_relative "../http/ssl_policies"
require "openssl"
- require "chef/mixin/proxified_socket"
+ require_relative "../mixin/proxified_socket"
include Chef::Mixin::ProxifiedSocket
end
diff --git a/lib/chef/knife/ssl_fetch.rb b/lib/chef/knife/ssl_fetch.rb
index 9e1579a5f8..9b6b364d8f 100644
--- a/lib/chef/knife/ssl_fetch.rb
+++ b/lib/chef/knife/ssl_fetch.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/config"
+require_relative "../knife"
+require_relative "../config"
class Chef
class Knife
@@ -28,7 +28,7 @@ class Chef
require "socket"
require "uri"
require "openssl"
- require "chef/mixin/proxified_socket"
+ require_relative "../mixin/proxified_socket"
include Chef::Mixin::ProxifiedSocket
end
diff --git a/lib/chef/knife/status.rb b/lib/chef/knife/status.rb
index 471c47b9f9..4e51b4a2ad 100644
--- a/lib/chef/knife/status.rb
+++ b/lib/chef/knife/status.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/core/status_presenter"
-require "chef/knife/core/node_presenter"
+require_relative "../knife"
+require_relative "core/status_presenter"
+require_relative "core/node_presenter"
class Chef
class Knife
@@ -26,7 +26,7 @@ class Chef
include Knife::Core::NodeFormattingOptions
deps do
- require "chef/search/query"
+ require_relative "../search/query"
end
banner "knife status QUERY (options)"
diff --git a/lib/chef/knife/supermarket_download.rb b/lib/chef/knife/supermarket_download.rb
index dc0c50ab92..abb65a9c1b 100644
--- a/lib/chef/knife/supermarket_download.rb
+++ b/lib/chef/knife/supermarket_download.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/supermarket_install.rb b/lib/chef/knife/supermarket_install.rb
index 5a72e6184d..ab88170245 100644
--- a/lib/chef/knife/supermarket_install.rb
+++ b/lib/chef/knife/supermarket_install.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/exceptions"
+require_relative "../knife"
+require_relative "../exceptions"
class Chef
class Knife
@@ -26,8 +26,8 @@ class Chef
deps do
require "shellwords"
require "mixlib/archive"
- require "chef/knife/core/cookbook_scm_repo"
- require "chef/cookbook/metadata"
+ require_relative "core/cookbook_scm_repo"
+ require_relative "../cookbook/metadata"
end
banner "knife supermarket install COOKBOOK [VERSION] (options)"
diff --git a/lib/chef/knife/supermarket_list.rb b/lib/chef/knife/supermarket_list.rb
index 837379845a..ee0ed0b54c 100644
--- a/lib/chef/knife/supermarket_list.rb
+++ b/lib/chef/knife/supermarket_list.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/supermarket_search.rb b/lib/chef/knife/supermarket_search.rb
index 3dd7f95f2e..40614b4070 100644
--- a/lib/chef/knife/supermarket_search.rb
+++ b/lib/chef/knife/supermarket_search.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/supermarket_share.rb b/lib/chef/knife/supermarket_share.rb
index f3f6a8ec38..f0c0970f9d 100644
--- a/lib/chef/knife/supermarket_share.rb
+++ b/lib/chef/knife/supermarket_share.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -25,10 +25,10 @@ class Chef
include Chef::Mixin::ShellOut
deps do
- require "chef/cookbook_loader"
- require "chef/cookbook_uploader"
- require "chef/cookbook_site_streaming_uploader"
- require "chef/mixin/shell_out"
+ require_relative "../cookbook_loader"
+ require_relative "../cookbook_uploader"
+ require_relative "../cookbook_site_streaming_uploader"
+ require_relative "../mixin/shell_out"
end
banner "knife supermarket share COOKBOOK [CATEGORY] (options)"
diff --git a/lib/chef/knife/supermarket_show.rb b/lib/chef/knife/supermarket_show.rb
index 4fe8ef25fb..c3f0628029 100644
--- a/lib/chef/knife/supermarket_show.rb
+++ b/lib/chef/knife/supermarket_show.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
diff --git a/lib/chef/knife/supermarket_unshare.rb b/lib/chef/knife/supermarket_unshare.rb
index 98b6fa5789..acdcf53f85 100644
--- a/lib/chef/knife/supermarket_unshare.rb
+++ b/lib/chef/knife/supermarket_unshare.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class SupermarketUnshare < Knife
deps do
- require "chef/json_compat"
+ require_relative "../json_compat"
end
banner "knife supermarket unshare COOKBOOK"
diff --git a/lib/chef/knife/tag_create.rb b/lib/chef/knife/tag_create.rb
index e8cfe11303..fe357981b7 100644
--- a/lib/chef/knife/tag_create.rb
+++ b/lib/chef/knife/tag_create.rb
@@ -18,14 +18,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class TagCreate < Knife
deps do
- require "chef/node"
+ require_relative "../node"
end
banner "knife tag create NODE TAG ..."
diff --git a/lib/chef/knife/tag_delete.rb b/lib/chef/knife/tag_delete.rb
index d00ec2f60b..e7e6e21a38 100644
--- a/lib/chef/knife/tag_delete.rb
+++ b/lib/chef/knife/tag_delete.rb
@@ -18,14 +18,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class TagDelete < Knife
deps do
- require "chef/node"
+ require_relative "../node"
end
banner "knife tag delete NODE TAG ..."
diff --git a/lib/chef/knife/tag_list.rb b/lib/chef/knife/tag_list.rb
index 2665e53bf4..8b91034609 100644
--- a/lib/chef/knife/tag_list.rb
+++ b/lib/chef/knife/tag_list.rb
@@ -18,14 +18,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class TagList < Knife
deps do
- require "chef/node"
+ require_relative "../node"
end
banner "knife tag list NODE"
diff --git a/lib/chef/knife/upload.rb b/lib/chef/knife/upload.rb
index 25dcd81004..190549d86a 100644
--- a/lib/chef/knife/upload.rb
+++ b/lib/chef/knife/upload.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,7 +24,7 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/command_line"
+ require_relative "../chef_fs/command_line"
end
option :recurse,
diff --git a/lib/chef/knife/user_create.rb b/lib/chef/knife/user_create.rb
index 2381ffbdbd..901326d935 100644
--- a/lib/chef/knife/user_create.rb
+++ b/lib/chef/knife/user_create.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/dist"
+require_relative "../knife"
+require_relative "../dist"
class Chef
class Knife
@@ -27,7 +27,7 @@ class Chef
attr_accessor :user_field
deps do
- require "chef/user_v1"
+ require_relative "../user_v1"
end
option :file,
diff --git a/lib/chef/knife/user_delete.rb b/lib/chef/knife/user_delete.rb
index 2638d2cce3..e7cfe4cc7b 100644
--- a/lib/chef/knife/user_delete.rb
+++ b/lib/chef/knife/user_delete.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class UserDelete < Knife
deps do
- require "chef/user_v1"
+ require_relative "../user_v1"
end
banner "knife user delete USER (options)"
diff --git a/lib/chef/knife/user_edit.rb b/lib/chef/knife/user_edit.rb
index a039525001..cf50ae2a07 100644
--- a/lib/chef/knife/user_edit.rb
+++ b/lib/chef/knife/user_edit.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class UserEdit < Knife
deps do
- require "chef/user_v1"
+ require_relative "../user_v1"
end
banner "knife user edit USER (options)"
diff --git a/lib/chef/knife/user_key_create.rb b/lib/chef/knife/user_key_create.rb
index 1cceb886c4..feacc46d48 100644
--- a/lib/chef/knife/user_key_create.rb
+++ b/lib/chef/knife/user_key_create.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_create"
-require "chef/knife/key_create_base"
+require_relative "../knife"
+require_relative "key_create"
+require_relative "key_create_base"
class Chef
class Knife
diff --git a/lib/chef/knife/user_key_delete.rb b/lib/chef/knife/user_key_delete.rb
index 2a0c958ed9..4de225cbd5 100644
--- a/lib/chef/knife/user_key_delete.rb
+++ b/lib/chef/knife/user_key_delete.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_delete"
+require_relative "../knife"
+require_relative "key_delete"
class Chef
class Knife
diff --git a/lib/chef/knife/user_key_edit.rb b/lib/chef/knife/user_key_edit.rb
index ca056e3650..27f45f5f80 100644
--- a/lib/chef/knife/user_key_edit.rb
+++ b/lib/chef/knife/user_key_edit.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_edit"
-require "chef/knife/key_edit_base"
+require_relative "../knife"
+require_relative "key_edit"
+require_relative "key_edit_base"
class Chef
class Knife
diff --git a/lib/chef/knife/user_key_list.rb b/lib/chef/knife/user_key_list.rb
index 10583f4a3c..de03182a09 100644
--- a/lib/chef/knife/user_key_list.rb
+++ b/lib/chef/knife/user_key_list.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_list"
-require "chef/knife/key_list_base"
+require_relative "../knife"
+require_relative "key_list"
+require_relative "key_list_base"
class Chef
class Knife
diff --git a/lib/chef/knife/user_key_show.rb b/lib/chef/knife/user_key_show.rb
index b3a6ee73dc..3f09d8b047 100644
--- a/lib/chef/knife/user_key_show.rb
+++ b/lib/chef/knife/user_key_show.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/knife"
-require "chef/knife/key_show"
+require_relative "../knife"
+require_relative "key_show"
class Chef
class Knife
diff --git a/lib/chef/knife/user_list.rb b/lib/chef/knife/user_list.rb
index 31758ce117..2e3490bd07 100644
--- a/lib/chef/knife/user_list.rb
+++ b/lib/chef/knife/user_list.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class UserList < Knife
deps do
- require "chef/user_v1"
+ require_relative "../user_v1"
end
banner "knife user list (options)"
diff --git a/lib/chef/knife/user_reregister.rb b/lib/chef/knife/user_reregister.rb
index 7530327131..75812b7f79 100644
--- a/lib/chef/knife/user_reregister.rb
+++ b/lib/chef/knife/user_reregister.rb
@@ -16,14 +16,14 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
class UserReregister < Knife
deps do
- require "chef/user_v1"
+ require_relative "../user_v1"
end
banner "knife user reregister USER (options)"
diff --git a/lib/chef/knife/user_show.rb b/lib/chef/knife/user_show.rb
index a27549aea7..be98123bde 100644
--- a/lib/chef/knife/user_show.rb
+++ b/lib/chef/knife/user_show.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/knife"
+require_relative "../knife"
class Chef
class Knife
@@ -25,7 +25,7 @@ class Chef
include Knife::Core::MultiAttributeReturnOption
deps do
- require "chef/user_v1"
+ require_relative "../user_v1"
end
banner "knife user show USER (options)"
diff --git a/lib/chef/knife/xargs.rb b/lib/chef/knife/xargs.rb
index 603279bcdd..a8ec99920b 100644
--- a/lib/chef/knife/xargs.rb
+++ b/lib/chef/knife/xargs.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/chef_fs/knife"
+require_relative "../chef_fs/knife"
class Chef
class Knife
@@ -24,8 +24,8 @@ class Chef
category "path-based"
deps do
- require "chef/chef_fs/file_system"
- require "chef/chef_fs/file_system/exceptions"
+ require_relative "../chef_fs/file_system"
+ require_relative "../chef_fs/file_system/exceptions"
end
# TODO modify to remote-only / local-only pattern (more like delete)
diff --git a/lib/chef/local_mode.rb b/lib/chef/local_mode.rb
index 457144c612..36a771e00d 100644
--- a/lib/chef/local_mode.rb
+++ b/lib/chef/local_mode.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/config"
+require_relative "config"
require "chef/monkey_patches/webrick-utils" if Chef::Platform.windows?
class Chef
@@ -52,8 +52,8 @@ class Chef
destroy_server_connectivity
require "chef_zero/server"
- require "chef/chef_fs/chef_fs_data_store"
- require "chef/chef_fs/config"
+ require_relative "chef_fs/chef_fs_data_store"
+ require_relative "chef_fs/config"
@chef_fs = Chef::ChefFS::Config.new.local_fs
@chef_fs.write_pretty_json = true
diff --git a/lib/chef/log.rb b/lib/chef/log.rb
index 3f77158579..908a6b2b9c 100644
--- a/lib/chef/log.rb
+++ b/lib/chef/log.rb
@@ -18,11 +18,11 @@
# limitations under the License.
require "logger"
-require "chef/monologger"
-require "chef/exceptions"
+require_relative "monologger"
+require_relative "exceptions"
require "mixlib/log"
require "chef/log/syslog" unless RUBY_PLATFORM =~ /mswin|mingw|windows/
-require "chef/log/winevt"
+require_relative "log/winevt"
class Chef
class Log
diff --git a/lib/chef/log/syslog.rb b/lib/chef/log/syslog.rb
index d4179d465c..7e63bbb553 100644
--- a/lib/chef/log/syslog.rb
+++ b/lib/chef/log/syslog.rb
@@ -18,8 +18,8 @@
require "logger"
require "syslog-logger"
-require "chef/mixin/unformatter"
-require "chef/dist"
+require_relative "../mixin/unformatter"
+require_relative "../dist"
class Chef
class Log
diff --git a/lib/chef/log/winevt.rb b/lib/chef/log/winevt.rb
index 7b756e1aab..aff3de7709 100644
--- a/lib/chef/log/winevt.rb
+++ b/lib/chef/log/winevt.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/event_loggers/base"
-require "chef/platform/query_helpers"
-require "chef/mixin/unformatter"
+require_relative "../event_loggers/base"
+require_relative "../platform/query_helpers"
+require_relative "../mixin/unformatter"
class Chef
class Log
diff --git a/lib/chef/mixin/checksum.rb b/lib/chef/mixin/checksum.rb
index 2888b205a9..74607da04b 100644
--- a/lib/chef/mixin/checksum.rb
+++ b/lib/chef/mixin/checksum.rb
@@ -17,7 +17,7 @@
#
require "digest/sha2"
-require "chef/digester"
+require_relative "../digester"
class Chef
module Mixin
diff --git a/lib/chef/mixin/enforce_ownership_and_permissions.rb b/lib/chef/mixin/enforce_ownership_and_permissions.rb
index e02c34748f..5e91c81ba6 100644
--- a/lib/chef/mixin/enforce_ownership_and_permissions.rb
+++ b/lib/chef/mixin/enforce_ownership_and_permissions.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/file_access_control"
+require_relative "../file_access_control"
class Chef
module Mixin
diff --git a/lib/chef/mixin/file_class.rb b/lib/chef/mixin/file_class.rb
index 166dd5796a..5c7e690db4 100644
--- a/lib/chef/mixin/file_class.rb
+++ b/lib/chef/mixin/file_class.rb
@@ -24,7 +24,7 @@ class Chef
def file_class
@host_os_file ||= if Chef::Platform.windows?
- require "chef/win32/file"
+ require_relative "../win32/file"
Chef::ReservedNames::Win32::File
else
::File
diff --git a/lib/chef/mixin/homebrew_user.rb b/lib/chef/mixin/homebrew_user.rb
index b038dfd3b7..9e619c3c47 100644
--- a/lib/chef/mixin/homebrew_user.rb
+++ b/lib/chef/mixin/homebrew_user.rb
@@ -22,7 +22,7 @@
# This lives here in Chef::Mixin because Chef's namespacing makes it
# awkward to use modules elsewhere (e.g., chef/provider/package/homebrew/owner)
-require "chef/mixin/shell_out"
+require_relative "shell_out"
require "etc"
class Chef
diff --git a/lib/chef/mixin/params_validate.rb b/lib/chef/mixin/params_validate.rb
index a71bec6958..0f18eb4f54 100644
--- a/lib/chef/mixin/params_validate.rb
+++ b/lib/chef/mixin/params_validate.rb
@@ -15,10 +15,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/constants"
-require "chef/property"
-require "chef/delayed_evaluator"
-require "chef/exceptions"
+require_relative "../constants"
+require_relative "../property"
+require_relative "../delayed_evaluator"
+require_relative "../exceptions"
class Chef
module Mixin
diff --git a/lib/chef/mixin/powershell_exec.rb b/lib/chef/mixin/powershell_exec.rb
index cdd5450fa3..3e811511de 100644
--- a/lib/chef/mixin/powershell_exec.rb
+++ b/lib/chef/mixin/powershell_exec.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/powershell"
+require_relative "../powershell"
# The powershell_exec mixin provides in-process access to PowerShell engine via
# a COM interop (installed by the Chef Client installer).
diff --git a/lib/chef/mixin/powershell_out.rb b/lib/chef/mixin/powershell_out.rb
index f910360d36..3ef4cd84cc 100644
--- a/lib/chef/mixin/powershell_out.rb
+++ b/lib/chef/mixin/powershell_out.rb
@@ -14,8 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/mixin/shell_out"
-require "chef/mixin/windows_architecture_helper"
+require_relative "shell_out"
+require_relative "windows_architecture_helper"
class Chef
module Mixin
diff --git a/lib/chef/mixin/properties.rb b/lib/chef/mixin/properties.rb
index 3c61c88f55..03ee1d66cc 100644
--- a/lib/chef/mixin/properties.rb
+++ b/lib/chef/mixin/properties.rb
@@ -1,6 +1,6 @@
-require "chef/delayed_evaluator"
-require "chef/mixin/params_validate"
-require "chef/property"
+require_relative "../delayed_evaluator"
+require_relative "params_validate"
+require_relative "../property"
class Chef
module Mixin
diff --git a/lib/chef/mixin/provides.rb b/lib/chef/mixin/provides.rb
index ca045d019e..d088a72d5d 100644
--- a/lib/chef/mixin/provides.rb
+++ b/lib/chef/mixin/provides.rb
@@ -1,5 +1,5 @@
-require "chef/mixin/descendants_tracker"
+require_relative "descendants_tracker"
class Chef
module Mixin
diff --git a/lib/chef/mixin/shell_out.rb b/lib/chef/mixin/shell_out.rb
index a96bd1527f..a7272c0bf3 100644
--- a/lib/chef/mixin/shell_out.rb
+++ b/lib/chef/mixin/shell_out.rb
@@ -16,7 +16,7 @@
# limitations under the License.
require "mixlib/shellout"
-require "chef/mixin/path_sanity"
+require_relative "path_sanity"
class Chef
module Mixin
@@ -184,4 +184,4 @@ class Chef
end
# Break circular dep
-require "chef/config"
+require_relative "../config"
diff --git a/lib/chef/mixin/train_or_shell.rb b/lib/chef/mixin/train_or_shell.rb
new file mode 100644
index 0000000000..f1ea98547b
--- /dev/null
+++ b/lib/chef/mixin/train_or_shell.rb
@@ -0,0 +1,83 @@
+#
+# Author:: Bryan McLellan <btm@loftninjas.org>
+# Copyright:: Copyright 2018, Chef Software Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require "ostruct"
+require_relative "shell_out"
+require_relative "powershell_out"
+require_relative "../config"
+
+class Chef
+ module Mixin
+ module TrainOrShell
+
+ include Chef::Mixin::ShellOut
+ include Chef::Mixin::PowershellOut
+
+ def train_or_shell(*args, **opts)
+ if Chef::Config.target_mode?
+ result = run_context.transport_connection.run_command(args)
+ train_to_shellout_result(result.stdout, result.stderr, result.exit_status)
+ else
+ shell_out(*args, opts)
+ end
+ end
+
+ def train_or_shell!(*args, **opts)
+ if Chef::Config.target_mode?
+ result = run_context.transport_connection.run_command(*args)
+ raise Mixlib::ShellOut::ShellCommandFailed, "Unexpected exit status of #{result.exit_status} running #{args}" if result.exit_status != 0
+ train_to_shellout_result(result.stdout, result.stderr, result.exit_status)
+ else
+ shell_out!(*args, opts)
+ end
+ end
+
+ def train_or_powershell(*args, **opts)
+ if Chef::Config.target_mode?
+ run_context.transport_connection.run_command(args)
+ train_to_shellout_result(result.stdout, result.stderr, result.exit_status)
+ else
+ powershell_out(*args)
+ end
+ end
+
+ def train_or_powershell!(*args, **opts)
+ if Chef::Config.target_mode?
+ result = run_context.transport_connection.run_command(args)
+ raise Mixlib::ShellOut::ShellCommandFailed, "Unexpected exit status of #{result.exit_status} running #{args}" if result.exit_status != 0
+ train_to_shellout_result(result.stdout, result.stderr, result.exit_status)
+ else
+ powershell_out!(*args)
+ end
+ end
+
+ private
+
+ #
+ # Train #run_command returns a Train::Extras::CommandResult which
+ # includes `exit_status` but Mixlib::Shellout returns exitstatus
+ # This wrapper makes the result look like Mixlib::ShellOut to make it
+ # easier to swap providers from #shell_out to #train_or_shell
+ #
+ def train_to_shellout_result(stdout, stderr, exit_status)
+ status = OpenStruct.new(success?: ( exit_status == 0 ))
+ OpenStruct.new(stdout: stdout, stderr: stderr, exitstatus: exit_status, status: status)
+ end
+ end
+ end
+end
diff --git a/lib/chef/mixin/which.rb b/lib/chef/mixin/which.rb
index ffa324c911..e373a52521 100644
--- a/lib/chef/mixin/which.rb
+++ b/lib/chef/mixin/which.rb
@@ -18,7 +18,7 @@
class Chef
module Mixin
module Which
- require "chef/chef_class"
+ require_relative "../chef_class"
def which(*cmds, extra_path: nil, &block)
where(*cmds, extra_path: extra_path, &block).first || false
diff --git a/lib/chef/mixin/windows_architecture_helper.rb b/lib/chef/mixin/windows_architecture_helper.rb
index 67c34a85a1..18dfa2010a 100644
--- a/lib/chef/mixin/windows_architecture_helper.rb
+++ b/lib/chef/mixin/windows_architecture_helper.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/platform/query_helpers"
+require_relative "../exceptions"
+require_relative "../platform/query_helpers"
require "chef/win32/process" if Chef::Platform.windows?
require "chef/win32/system" if Chef::Platform.windows?
diff --git a/lib/chef/mixin/windows_env_helper.rb b/lib/chef/mixin/windows_env_helper.rb
index 610c0cd075..b8c11803fa 100644
--- a/lib/chef/mixin/windows_env_helper.rb
+++ b/lib/chef/mixin/windows_env_helper.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/mixin/wide_string"
-require "chef/platform/query_helpers"
+require_relative "../exceptions"
+require_relative "wide_string"
+require_relative "../platform/query_helpers"
require "chef/win32/error" if Chef::Platform.windows?
require "chef/win32/api/system" if Chef::Platform.windows?
require "chef/win32/api/unicode" if Chef::Platform.windows?
diff --git a/lib/chef/mixin/xml_escape.rb b/lib/chef/mixin/xml_escape.rb
index b591b09db0..1284a9779a 100644
--- a/lib/chef/mixin/xml_escape.rb
+++ b/lib/chef/mixin/xml_escape.rb
@@ -46,7 +46,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
-require "chef/log"
+require_relative "../log"
begin
require "fast_xs"
diff --git a/lib/chef/mixins.rb b/lib/chef/mixins.rb
index 2306fb9e89..3974328b8e 100644
--- a/lib/chef/mixins.rb
+++ b/lib/chef/mixins.rb
@@ -1,12 +1,12 @@
-require "chef/mixin/shell_out"
-require "chef/mixin/checksum"
-require "chef/mixin/convert_to_class_name"
-require "chef/mixin/create_path"
-require "chef/mixin/deep_merge"
-require "chef/mixin/enforce_ownership_and_permissions"
-require "chef/mixin/from_file"
-require "chef/mixin/params_validate"
-require "chef/mixin/path_sanity"
-require "chef/mixin/template"
-require "chef/mixin/securable"
-require "chef/mixin/xml_escape"
+require_relative "mixin/shell_out"
+require_relative "mixin/checksum"
+require_relative "mixin/convert_to_class_name"
+require_relative "mixin/create_path"
+require_relative "mixin/deep_merge"
+require_relative "mixin/enforce_ownership_and_permissions"
+require_relative "mixin/from_file"
+require_relative "mixin/params_validate"
+require_relative "mixin/path_sanity"
+require_relative "mixin/template"
+require_relative "mixin/securable"
+require_relative "mixin/xml_escape"
diff --git a/lib/chef/monkey_patches/win32/registry.rb b/lib/chef/monkey_patches/win32/registry.rb
index 26ba31d60f..38dd220727 100644
--- a/lib/chef/monkey_patches/win32/registry.rb
+++ b/lib/chef/monkey_patches/win32/registry.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/win32/api/registry"
-require "chef/win32/unicode"
+require_relative "../../win32/api/registry"
+require_relative "../../win32/unicode"
require "win32/registry"
module Win32
diff --git a/lib/chef/node.rb b/lib/chef/node.rb
index 021cf33eb8..448dfa9ce9 100644
--- a/lib/chef/node.rb
+++ b/lib/chef/node.rb
@@ -20,22 +20,22 @@
require "forwardable"
require "securerandom"
-require "chef/config"
-require "chef/nil_argument"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/mixin/deep_merge"
-require "chef/dsl/include_attribute"
-require "chef/dsl/universal"
-require "chef/environment"
-require "chef/server_api"
-require "chef/run_list"
-require "chef/node/attribute"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/search/query"
-require "chef/whitelist"
-require "chef/blacklist"
+require_relative "config"
+require_relative "nil_argument"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "mixin/deep_merge"
+require_relative "dsl/include_attribute"
+require_relative "dsl/universal"
+require_relative "environment"
+require_relative "server_api"
+require_relative "run_list"
+require_relative "node/attribute"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "search/query"
+require_relative "whitelist"
+require_relative "blacklist"
class Chef
class Node
diff --git a/lib/chef/node/attribute.rb b/lib/chef/node/attribute.rb
index c5731b65a0..eac867899c 100644
--- a/lib/chef/node/attribute.rb
+++ b/lib/chef/node/attribute.rb
@@ -17,14 +17,14 @@
# limitations under the License.
#
-require "chef/node/mixin/deep_merge_cache"
-require "chef/node/mixin/immutablize_hash"
-require "chef/node/mixin/state_tracking"
-require "chef/node/immutable_collections"
-require "chef/node/attribute_collections"
-require "chef/decorator/unchain"
-require "chef/mixin/deep_merge"
-require "chef/log"
+require_relative "mixin/deep_merge_cache"
+require_relative "mixin/immutablize_hash"
+require_relative "mixin/state_tracking"
+require_relative "immutable_collections"
+require_relative "attribute_collections"
+require_relative "../decorator/unchain"
+require_relative "../mixin/deep_merge"
+require_relative "../log"
class Chef
class Node
diff --git a/lib/chef/node/attribute_collections.rb b/lib/chef/node/attribute_collections.rb
index 382ecfba91..3f19321afa 100644
--- a/lib/chef/node/attribute_collections.rb
+++ b/lib/chef/node/attribute_collections.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/node/common_api"
-require "chef/node/mixin/state_tracking"
-require "chef/node/mixin/immutablize_array"
-require "chef/node/mixin/immutablize_hash"
-require "chef/node/mixin/mashy_array"
+require_relative "common_api"
+require_relative "mixin/state_tracking"
+require_relative "mixin/immutablize_array"
+require_relative "mixin/immutablize_hash"
+require_relative "mixin/mashy_array"
class Chef
class Node
diff --git a/lib/chef/node/immutable_collections.rb b/lib/chef/node/immutable_collections.rb
index c12ee33268..994d5c37e4 100644
--- a/lib/chef/node/immutable_collections.rb
+++ b/lib/chef/node/immutable_collections.rb
@@ -15,10 +15,10 @@
# limitations under the License.
#
-require "chef/node/common_api"
-require "chef/node/mixin/state_tracking"
-require "chef/node/mixin/immutablize_array"
-require "chef/node/mixin/immutablize_hash"
+require_relative "common_api"
+require_relative "mixin/state_tracking"
+require_relative "mixin/immutablize_array"
+require_relative "mixin/immutablize_hash"
class Chef
class Node
diff --git a/lib/chef/node_map.rb b/lib/chef/node_map.rb
index 50a763f686..01f9d215cb 100644
--- a/lib/chef/node_map.rb
+++ b/lib/chef/node_map.rb
@@ -1,6 +1,6 @@
#
# Author:: Lamont Granquist (<lamont@chef.io>)
-# Copyright:: Copyright 2014-2018, Chef Software Inc.
+# Copyright:: Copyright 2014-2019, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -37,12 +37,7 @@
#
class Chef
class NodeMap
- COLLISION_WARNING_14 = <<~EOH.gsub(/\s+/, " ").strip
- %{type_caps} %{key} from a cookbook is overriding the %{type} from the client. Please upgrade your cookbook
- or remove the cookbook from your run_list before the next major release of Chef.
- EOH
-
- COLLISION_WARNING_15 = <<~EOH.gsub(/\s+/, " ").strip
+ COLLISION_WARNING = <<~EOH.gsub(/\s+/, " ").strip
%{type_caps} %{key} from the client is overriding the %{type} from a cookbook. Please upgrade your cookbook
or remove the cookbook from your run_list.
EOH
@@ -54,19 +49,13 @@ class Chef
# @param key [Object] Key to store
# @param value [Object] Value associated with the key
# @param filters [Hash] Node filter options to apply to key retrieval
- # @param allow_cookbook_override [Boolean, String] Allow a cookbook to add
- # to this key even in locked mode. If a string is given, it should be a
- # Gem::Requirement-compatible value indicating for which Chef versions an
- # override from cookbooks is allowed.
- # @param __core_override__ [Boolean] Advanced-mode override to add to a key
- # even in locked mode.
# @param chef_version [String] version constraint to match against the running Chef::VERSION
#
# @yield [node] Arbitrary node filter as a block which takes a node argument
#
# @return [NodeMap] Returns self for possible chaining
#
- def set(key, klass, platform: nil, platform_version: nil, platform_family: nil, os: nil, canonical: nil, override: nil, allow_cookbook_override: false, __core_override__: false, chef_version: nil, &block) # rubocop:disable Lint/UnderscorePrefixedVariableName
+ def set(key, klass, platform: nil, platform_version: nil, platform_family: nil, os: nil, canonical: nil, override: nil, chef_version: nil, target_mode: nil, &block)
new_matcher = { klass: klass }
new_matcher[:platform] = platform if platform
new_matcher[:platform_version] = platform_version if platform_version
@@ -75,8 +64,7 @@ class Chef
new_matcher[:block] = block if block
new_matcher[:canonical] = canonical if canonical
new_matcher[:override] = override if override
- new_matcher[:cookbook_override] = allow_cookbook_override
- new_matcher[:core_override] = __core_override__
+ new_matcher[:target_mode] = target_mode
if chef_version && Chef::VERSION !~ chef_version
return map
@@ -87,9 +75,7 @@ class Chef
# 1. Core override mode is not set.
# 2. The key exists.
# 3. At least one previous `provides` is now locked.
- # 4. No previous `provides` had `allow_cookbook_override`, either set to
- # true or with a string version matcher that still matches Chef::VERSION
- if !__core_override__ && map[key] && map[key].any? { |matcher| matcher[:locked] } && !map[key].any? { |matcher| matcher[:cookbook_override].is_a?(String) ? Chef::VERSION =~ matcher[:cookbook_override] : matcher[:cookbook_override] }
+ if map[key] && map[key].any? { |matcher| matcher[:locked] } && !map[key].any? { |matcher| matcher[:cookbook_override].is_a?(String) ? Chef::VERSION =~ matcher[:cookbook_override] : matcher[:cookbook_override] }
# If we ever use locked mode on things other than the resource and provider handler maps, this probably needs a tweak.
type_of_thing = if klass < Chef::Resource
"resource"
@@ -98,11 +84,7 @@ class Chef
else
klass.superclass.to_s
end
- # For now, only log the warning.
- Chef.deprecated(:map_collision, COLLISION_WARNING_14 % { type: type_of_thing, key: key, type_caps: type_of_thing.capitalize })
- # In 15.0, uncomment this and remove the log above.
- # Chef.deprecated(:map_collision, COLLISION_WARNING_15 % {type: type_of_thing, key: key, type_caps: type_of_thing.capitalize}))
- # return
+ Chef::Log.warn( COLLISION_WARNING % { type: type_of_thing, key: key, type_caps: type_of_thing.capitalize } )
end
# The map is sorted in order of preference already; we just need to find
@@ -269,11 +251,21 @@ class Chef
end
end
+ # Succeeds if:
+ # - we are in target mode, and the target_mode filter is true
+ # - we are not in target mode
+ #
+ def matches_target_mode?(filters)
+ return true unless Chef::Config.target_mode?
+ !!filters[:target_mode]
+ end
+
def filters_match?(node, filters)
matches_black_white_list?(node, filters, :os) &&
matches_black_white_list?(node, filters, :platform_family) &&
matches_black_white_list?(node, filters, :platform) &&
- matches_version_list?(node, filters, :platform_version)
+ matches_version_list?(node, filters, :platform_version) &&
+ matches_target_mode?(filters)
end
def block_matches?(node, block)
@@ -295,6 +287,8 @@ class Chef
# "provides" lines with identical filters sort by class name (ascending).
#
def compare_matchers(key, new_matcher, matcher)
+ cmp = compare_matcher_properties(new_matcher[:target_mode], matcher[:target_mode])
+ return cmp if cmp != 0
cmp = compare_matcher_properties(new_matcher[:block], matcher[:block])
return cmp if cmp != 0
cmp = compare_matcher_properties(new_matcher[:platform_version], matcher[:platform_version])
diff --git a/lib/chef/org.rb b/lib/chef/org.rb
index 28702bd314..d482ca504f 100644
--- a/lib/chef/org.rb
+++ b/lib/chef/org.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/json_compat"
-require "chef/mixin/params_validate"
-require "chef/server_api"
+require_relative "json_compat"
+require_relative "mixin/params_validate"
+require_relative "server_api"
class Chef
class Org
diff --git a/lib/chef/platform.rb b/lib/chef/platform.rb
index 165715267b..3991ff6110 100644
--- a/lib/chef/platform.rb
+++ b/lib/chef/platform.rb
@@ -17,8 +17,8 @@
#
# Order of these headers is important: query helpers is needed by many things
-require "chef/platform/query_helpers"
-require "chef/platform/provider_mapping"
+require_relative "platform/query_helpers"
+require_relative "platform/provider_mapping"
class Chef
class Platform
diff --git a/lib/chef/platform/priority_map.rb b/lib/chef/platform/priority_map.rb
index c36d00ea5c..08b1a2a9fc 100644
--- a/lib/chef/platform/priority_map.rb
+++ b/lib/chef/platform/priority_map.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/node_map"
+require_relative "../node_map"
class Chef
class Platform
diff --git a/lib/chef/platform/provider_handler_map.rb b/lib/chef/platform/provider_handler_map.rb
index 4f87a36d1d..46b9d29086 100644
--- a/lib/chef/platform/provider_handler_map.rb
+++ b/lib/chef/platform/provider_handler_map.rb
@@ -17,7 +17,7 @@
#
require "singleton"
-require "chef/node_map"
+require_relative "../node_map"
class Chef
class Platform
diff --git a/lib/chef/platform/provider_mapping.rb b/lib/chef/platform/provider_mapping.rb
index 5dbe0bdab4..57c6c913c2 100644
--- a/lib/chef/platform/provider_mapping.rb
+++ b/lib/chef/platform/provider_mapping.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/exceptions"
-require "chef/mixin/params_validate"
-require "chef/version_constraint/platform"
-require "chef/provider"
+require_relative "../log"
+require_relative "../exceptions"
+require_relative "../mixin/params_validate"
+require_relative "../version_constraint/platform"
+require_relative "../provider"
class Chef
class Platform
diff --git a/lib/chef/platform/provider_priority_map.rb b/lib/chef/platform/provider_priority_map.rb
index 0c8a728618..c530cebe72 100644
--- a/lib/chef/platform/provider_priority_map.rb
+++ b/lib/chef/platform/provider_priority_map.rb
@@ -1,5 +1,5 @@
require "singleton"
-require "chef/platform/priority_map"
+require_relative "priority_map"
class Chef
class Platform
diff --git a/lib/chef/platform/query_helpers.rb b/lib/chef/platform/query_helpers.rb
index b49010efc0..a0bc162ef3 100644
--- a/lib/chef/platform/query_helpers.rb
+++ b/lib/chef/platform/query_helpers.rb
@@ -82,7 +82,7 @@ class Chef
end
def dsc_refresh_mode_disabled?(node)
- require "chef/util/powershell/cmdlet"
+ require_relative "../util/powershell/cmdlet"
cmdlet = Chef::Util::Powershell::Cmdlet.new(node, "Get-DscLocalConfigurationManager", :object)
metadata = cmdlet.run!.return_value
metadata["RefreshMode"] == "Disabled"
diff --git a/lib/chef/platform/rebooter.rb b/lib/chef/platform/rebooter.rb
index 1551836bca..386970186d 100644
--- a/lib/chef/platform/rebooter.rb
+++ b/lib/chef/platform/rebooter.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/dsl/reboot_pending"
-require "chef/log"
-require "chef/platform"
-require "chef/application/exit_code"
-require "chef/mixin/shell_out"
+require_relative "../dsl/reboot_pending"
+require_relative "../log"
+require_relative "../platform"
+require_relative "../application/exit_code"
+require_relative "../mixin/shell_out"
class Chef
class Platform
diff --git a/lib/chef/platform/resource_handler_map.rb b/lib/chef/platform/resource_handler_map.rb
index 0aab04212f..1c3ae5e2c7 100644
--- a/lib/chef/platform/resource_handler_map.rb
+++ b/lib/chef/platform/resource_handler_map.rb
@@ -17,7 +17,7 @@
#
require "singleton"
-require "chef/node_map"
+require_relative "../node_map"
class Chef
class Platform
diff --git a/lib/chef/platform/resource_priority_map.rb b/lib/chef/platform/resource_priority_map.rb
index 1871dcd5c6..692ba2c988 100644
--- a/lib/chef/platform/resource_priority_map.rb
+++ b/lib/chef/platform/resource_priority_map.rb
@@ -1,5 +1,5 @@
require "singleton"
-require "chef/platform/priority_map"
+require_relative "priority_map"
class Chef
class Platform
diff --git a/lib/chef/platform/service_helpers.rb b/lib/chef/platform/service_helpers.rb
index 02d293449c..c469b3fe62 100644
--- a/lib/chef/platform/service_helpers.rb
+++ b/lib/chef/platform/service_helpers.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/chef_class"
+require_relative "../chef_class"
class Chef
class Platform
diff --git a/lib/chef/policy_builder.rb b/lib/chef/policy_builder.rb
index 56533e9a60..316e12771e 100644
--- a/lib/chef/policy_builder.rb
+++ b/lib/chef/policy_builder.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/policy_builder/expand_node_object"
-require "chef/policy_builder/policyfile"
-require "chef/policy_builder/dynamic"
+require_relative "policy_builder/expand_node_object"
+require_relative "policy_builder/policyfile"
+require_relative "policy_builder/dynamic"
class Chef
diff --git a/lib/chef/policy_builder/dynamic.rb b/lib/chef/policy_builder/dynamic.rb
index 2c49f41656..aa46360043 100644
--- a/lib/chef/policy_builder/dynamic.rb
+++ b/lib/chef/policy_builder/dynamic.rb
@@ -18,11 +18,11 @@
require "forwardable"
-require "chef/log"
-require "chef/run_context"
-require "chef/config"
-require "chef/node"
-require "chef/exceptions"
+require_relative "../log"
+require_relative "../run_context"
+require_relative "../config"
+require_relative "../node"
+require_relative "../exceptions"
class Chef
module PolicyBuilder
diff --git a/lib/chef/policy_builder/expand_node_object.rb b/lib/chef/policy_builder/expand_node_object.rb
index eea5a37edd..5230105ac1 100644
--- a/lib/chef/policy_builder/expand_node_object.rb
+++ b/lib/chef/policy_builder/expand_node_object.rb
@@ -19,12 +19,12 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/server_api"
-require "chef/run_context"
-require "chef/config"
-require "chef/node"
-require "chef/chef_class"
+require_relative "../log"
+require_relative "../server_api"
+require_relative "../run_context"
+require_relative "../config"
+require_relative "../node"
+require_relative "../chef_class"
class Chef
module PolicyBuilder
diff --git a/lib/chef/policy_builder/policyfile.rb b/lib/chef/policy_builder/policyfile.rb
index 421d2ca8ec..cb120a0a03 100644
--- a/lib/chef/policy_builder/policyfile.rb
+++ b/lib/chef/policy_builder/policyfile.rb
@@ -19,12 +19,12 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/run_context"
-require "chef/config"
-require "chef/node"
-require "chef/server_api"
-require "chef/dist"
+require_relative "../log"
+require_relative "../run_context"
+require_relative "../config"
+require_relative "../node"
+require_relative "../server_api"
+require_relative "../dist"
class Chef
module PolicyBuilder
diff --git a/lib/chef/powershell.rb b/lib/chef/powershell.rb
index 1a72d5fc58..c6d8369943 100644
--- a/lib/chef/powershell.rb
+++ b/lib/chef/powershell.rb
@@ -16,7 +16,7 @@
# limitations under the License.
require "ffi"
-require "chef/json_compat"
+require_relative "json_compat"
class Chef
class PowerShell
diff --git a/lib/chef/property.rb b/lib/chef/property.rb
index aee3080dc0..c26146a96b 100644
--- a/lib/chef/property.rb
+++ b/lib/chef/property.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/delayed_evaluator"
-require "chef/chef_class"
-require "chef/log"
+require_relative "exceptions"
+require_relative "delayed_evaluator"
+require_relative "chef_class"
+require_relative "log"
class Chef
#
diff --git a/lib/chef/provider.rb b/lib/chef/provider.rb
index fb4ac9f659..fdcaa54710 100644
--- a/lib/chef/provider.rb
+++ b/lib/chef/provider.rb
@@ -17,21 +17,21 @@
# limitations under the License.
#
-require "chef/mixin/from_file"
-require "chef/mixin/convert_to_class_name"
-require "chef/mixin/enforce_ownership_and_permissions"
-require "chef/mixin/why_run"
-require "chef/mixin/shell_out"
-require "chef/mixin/provides"
-require "chef/dsl/core"
-require "chef/platform/service_helpers"
-require "chef/node_map"
+require_relative "mixin/from_file"
+require_relative "mixin/convert_to_class_name"
+require_relative "mixin/enforce_ownership_and_permissions"
+require_relative "mixin/why_run"
+require_relative "mixin/shell_out"
+require_relative "mixin/provides"
+require_relative "dsl/core"
+require_relative "platform/service_helpers"
+require_relative "node_map"
require "forwardable"
class Chef
class Provider
- require "chef/mixin/why_run"
- require "chef/mixin/provides"
+ require_relative "mixin/why_run"
+ require_relative "mixin/provides"
attr_accessor :new_resource
attr_accessor :current_resource
@@ -413,7 +413,7 @@ class Chef
end
# Requiring things at the bottom breaks cycles
-require "chef/chef_class"
-require "chef/mixin/why_run"
-require "chef/resource_collection"
-require "chef/runner"
+require_relative "chef_class"
+require_relative "mixin/why_run"
+require_relative "resource_collection"
+require_relative "runner"
diff --git a/lib/chef/provider/apt_preference.rb b/lib/chef/provider/apt_preference.rb
index 416a1c0d1d..7a5f3fbf79 100644
--- a/lib/chef/provider/apt_preference.rb
+++ b/lib/chef/provider/apt_preference.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/dsl/declare_resource"
-require "chef/provider/noop"
-require "chef/log"
+require_relative "../provider"
+require_relative "../dsl/declare_resource"
+require_relative "noop"
+require_relative "../log"
class Chef
class Provider
diff --git a/lib/chef/provider/apt_repository.rb b/lib/chef/provider/apt_repository.rb
index 75c7112fb8..bba0b45038 100644
--- a/lib/chef/provider/apt_repository.rb
+++ b/lib/chef/provider/apt_repository.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/dsl/declare_resource"
-require "chef/mixin/shell_out"
-require "chef/http/simple"
-require "chef/provider/noop"
+require_relative "../resource"
+require_relative "../dsl/declare_resource"
+require_relative "../mixin/shell_out"
+require_relative "../http/simple"
+require_relative "noop"
require "tmpdir"
class Chef
diff --git a/lib/chef/provider/apt_update.rb b/lib/chef/provider/apt_update.rb
index eeafcba58b..d20cf12d0d 100644
--- a/lib/chef/provider/apt_update.rb
+++ b/lib/chef/provider/apt_update.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/provider/noop"
-require "chef/dsl/declare_resource"
+require_relative "../provider"
+require_relative "noop"
+require_relative "../dsl/declare_resource"
class Chef
class Provider
diff --git a/lib/chef/provider/batch.rb b/lib/chef/provider/batch.rb
index dae1513a51..21dc8f84dd 100644
--- a/lib/chef/provider/batch.rb
+++ b/lib/chef/provider/batch.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/windows_script"
+require_relative "windows_script"
class Chef
class Provider
diff --git a/lib/chef/provider/cookbook_file.rb b/lib/chef/provider/cookbook_file.rb
index 92383fd5fa..b8ec86cd92 100644
--- a/lib/chef/provider/cookbook_file.rb
+++ b/lib/chef/provider/cookbook_file.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/file"
+require_relative "file"
class Chef
class Provider
diff --git a/lib/chef/provider/cookbook_file/content.rb b/lib/chef/provider/cookbook_file/content.rb
index 82e2cf4390..873f3bb394 100644
--- a/lib/chef/provider/cookbook_file/content.rb
+++ b/lib/chef/provider/cookbook_file/content.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/file_content_management/content_base"
-require "chef/file_content_management/tempfile"
+require_relative "../../file_content_management/content_base"
+require_relative "../../file_content_management/tempfile"
class Chef
class Provider
diff --git a/lib/chef/provider/cron.rb b/lib/chef/provider/cron.rb
index 79245df475..577876ccf2 100644
--- a/lib/chef/provider/cron.rb
+++ b/lib/chef/provider/cron.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
+require_relative "../log"
+require_relative "../provider"
class Chef
class Provider
@@ -32,6 +32,7 @@ class Chef
CRON_PATTERN = /\A([-0-9*,\/]+)\s([-0-9*,\/]+)\s([-0-9*,\/]+)\s([-0-9*,\/]+|[a-zA-Z]{3})\s([-0-9*,\/]+|[a-zA-Z]{3})\s(.*)/.freeze
SPECIAL_PATTERN = /\A(@(#{SPECIAL_TIME_VALUES.join('|')}))\s(.*)/.freeze
ENV_PATTERN = /\A(\S+)=(\S*)/.freeze
+ ENVIRONMENT_PROPERTIES = %w{MAILTO PATH SHELL HOME}.freeze
def initialize(new_resource, run_context)
super(new_resource, run_context)
@@ -192,7 +193,7 @@ class Chef
private
def set_environment_var(attr_name, attr_value)
- if %w{MAILTO PATH SHELL HOME}.include?(attr_name)
+ if ENVIRONMENT_PROPERTIES.include?(attr_name)
current_resource.send(attr_name.downcase.to_sym, attr_value.gsub(/^"|"$/, ""))
else
current_resource.environment(current_resource.environment.merge(attr_name => attr_value))
@@ -221,7 +222,18 @@ class Chef
newcron << "#{v.to_s.upcase}=\"#{new_resource.send(v)}\"\n" if new_resource.send(v)
end
new_resource.environment.each do |name, value|
- newcron << "#{name}=#{value}\n"
+ if ENVIRONMENT_PROPERTIES.include?(name)
+ unless new_resource.property_is_set?(name.downcase)
+ logger.warn("#{new_resource.name}: the environment property contains the '#{name}' variable, which should be set separately as a property.")
+ new_resource.send(name.downcase.to_sym, value.gsub(/^"|"$/, ""))
+ new_resource.environment.delete(name)
+ newcron << "#{name.to_s.upcase}=\"#{value}\"\n"
+ else
+ raise Chef::Exceptions::Cron, "#{new_resource.name}: the '#{name}' property is set and environment property also contains the '#{name}' variable. Remove the variable from the environment property."
+ end
+ else
+ newcron << "#{name}=#{value}\n"
+ end
end
if new_resource.time
newcron << "@#{new_resource.time} #{new_resource.command}\n"
diff --git a/lib/chef/provider/cron/aix.rb b/lib/chef/provider/cron/aix.rb
index 015c1f2096..5d58e21bca 100644
--- a/lib/chef/provider/cron/aix.rb
+++ b/lib/chef/provider/cron/aix.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/cron/unix"
+require_relative "unix"
class Chef
class Provider
diff --git a/lib/chef/provider/cron/solaris.rb b/lib/chef/provider/cron/solaris.rb
index 58d6637674..0355077c5a 100644
--- a/lib/chef/provider/cron/solaris.rb
+++ b/lib/chef/provider/cron/solaris.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/cron/unix"
+require_relative "unix"
# Just to create an alias so 'Chef::Provider::Cron::Solaris' is exposed and accessible to existing consumers of class.
Chef::Provider::Cron::Solaris = Chef::Provider::Cron::Unix
diff --git a/lib/chef/provider/cron/unix.rb b/lib/chef/provider/cron/unix.rb
index 6539ccd7ca..c89491cf45 100644
--- a/lib/chef/provider/cron/unix.rb
+++ b/lib/chef/provider/cron/unix.rb
@@ -18,9 +18,9 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
-require "chef/provider/cron"
+require_relative "../../log"
+require_relative "../../provider"
+require_relative "../cron"
class Chef
class Provider
diff --git a/lib/chef/provider/directory.rb b/lib/chef/provider/directory.rb
index 3e816d5a06..1a2a2d2b7c 100644
--- a/lib/chef/provider/directory.rb
+++ b/lib/chef/provider/directory.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/log"
-require "chef/resource/directory"
-require "chef/provider"
-require "chef/provider/file"
+require_relative "../config"
+require_relative "../log"
+require_relative "../resource/directory"
+require_relative "../provider"
+require_relative "file"
require "fileutils"
class Chef
diff --git a/lib/chef/provider/dsc_resource.rb b/lib/chef/provider/dsc_resource.rb
index 864373f902..b7785a6660 100644
--- a/lib/chef/provider/dsc_resource.rb
+++ b/lib/chef/provider/dsc_resource.rb
@@ -15,10 +15,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/util/powershell/cmdlet"
-require "chef/util/dsc/local_configuration_manager"
-require "chef/mixin/powershell_type_coercions"
-require "chef/util/dsc/resource_store"
+require_relative "../util/powershell/cmdlet"
+require_relative "../util/dsc/local_configuration_manager"
+require_relative "../mixin/powershell_type_coercions"
+require_relative "../util/dsc/resource_store"
class Chef
class Provider
diff --git a/lib/chef/provider/dsc_script.rb b/lib/chef/provider/dsc_script.rb
index 4a44a9ea23..d7ac9689ef 100644
--- a/lib/chef/provider/dsc_script.rb
+++ b/lib/chef/provider/dsc_script.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/util/powershell/cmdlet"
-require "chef/util/dsc/configuration_generator"
-require "chef/util/dsc/local_configuration_manager"
-require "chef/util/path_helper"
+require_relative "../util/powershell/cmdlet"
+require_relative "../util/dsc/configuration_generator"
+require_relative "../util/dsc/local_configuration_manager"
+require_relative "../util/path_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/execute.rb b/lib/chef/provider/execute.rb
index 02db7cb593..9a70996a2e 100644
--- a/lib/chef/provider/execute.rb
+++ b/lib/chef/provider/execute.rb
@@ -16,19 +16,22 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
+require_relative "../log"
+require_relative "../provider"
require "forwardable"
+require_relative "../mixin/train_or_shell"
class Chef
class Provider
class Execute < Chef::Provider
extend Forwardable
- provides :execute
+ provides :execute, target_mode: true
def_delegators :new_resource, :command, :returns, :environment, :user, :domain, :password, :group, :cwd, :umask, :creates, :elevated, :default_env
+ include Chef::Mixin::TrainOrShell
+
def load_current_resource
current_resource = Chef::Resource::Execute.new(new_resource.name)
current_resource
@@ -55,7 +58,7 @@ class Chef
converge_by("execute #{description}") do
begin
- shell_out!(command, opts)
+ train_or_shell!(command, opts)
rescue Mixlib::ShellOut::ShellCommandFailed
if sensitive?
ex = Mixlib::ShellOut::ShellCommandFailed.new("Command execution failed. STDOUT/STDERR suppressed for sensitive resource")
diff --git a/lib/chef/provider/file.rb b/lib/chef/provider/file.rb
index 02da092418..823a73c01b 100644
--- a/lib/chef/provider/file.rb
+++ b/lib/chef/provider/file.rb
@@ -17,21 +17,21 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/log"
-require "chef/resource/file"
-require "chef/provider"
+require_relative "../config"
+require_relative "../log"
+require_relative "../resource/file"
+require_relative "../provider"
require "etc"
require "fileutils"
-require "chef/scan_access_control"
-require "chef/mixin/checksum"
-require "chef/mixin/file_class"
-require "chef/mixin/enforce_ownership_and_permissions"
-require "chef/util/backup"
-require "chef/util/diff"
-require "chef/util/selinux"
-require "chef/file_content_management/deploy"
-require "chef/dist"
+require_relative "../scan_access_control"
+require_relative "../mixin/checksum"
+require_relative "../mixin/file_class"
+require_relative "../mixin/enforce_ownership_and_permissions"
+require_relative "../util/backup"
+require_relative "../util/diff"
+require_relative "../util/selinux"
+require_relative "../file_content_management/deploy"
+require_relative "../dist"
# The Tao of File Providers:
# - the content provider must always return a tempfile that we can delete/mv
diff --git a/lib/chef/provider/file/content.rb b/lib/chef/provider/file/content.rb
index 1b60e10fea..5ab27d3ec6 100644
--- a/lib/chef/provider/file/content.rb
+++ b/lib/chef/provider/file/content.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/file_content_management/content_base"
-require "chef/file_content_management/tempfile"
+require_relative "../../file_content_management/content_base"
+require_relative "../../file_content_management/tempfile"
class Chef
class Provider
diff --git a/lib/chef/provider/git.rb b/lib/chef/provider/git.rb
index b1657b1c77..1abffe62fa 100644
--- a/lib/chef/provider/git.rb
+++ b/lib/chef/provider/git.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/log"
-require "chef/provider"
+require_relative "../exceptions"
+require_relative "../log"
+require_relative "../provider"
require "fileutils"
class Chef
diff --git a/lib/chef/provider/group.rb b/lib/chef/provider/group.rb
index 51e4f280fe..b3aa42ae58 100644
--- a/lib/chef/provider/group.rb
+++ b/lib/chef/provider/group.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/mixin/shell_out"
+require_relative "../provider"
+require_relative "../mixin/shell_out"
require "etc"
class Chef
diff --git a/lib/chef/provider/group/aix.rb b/lib/chef/provider/group/aix.rb
index 7da07b8006..72bfc76d97 100644
--- a/lib/chef/provider/group/aix.rb
+++ b/lib/chef/provider/group/aix.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/group/groupadd"
+require_relative "groupadd"
class Chef
class Provider
diff --git a/lib/chef/provider/group/gpasswd.rb b/lib/chef/provider/group/gpasswd.rb
index a5d6a378c0..5d769befa4 100644
--- a/lib/chef/provider/group/gpasswd.rb
+++ b/lib/chef/provider/group/gpasswd.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/group/groupadd"
+require_relative "groupadd"
class Chef
class Provider
diff --git a/lib/chef/provider/group/solaris.rb b/lib/chef/provider/group/solaris.rb
index 4d913fba30..75768297db 100644
--- a/lib/chef/provider/group/solaris.rb
+++ b/lib/chef/provider/group/solaris.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/group/groupadd"
+require_relative "groupadd"
class Chef
class Provider
diff --git a/lib/chef/provider/group/suse.rb b/lib/chef/provider/group/suse.rb
index 3f4300278f..15360808c9 100644
--- a/lib/chef/provider/group/suse.rb
+++ b/lib/chef/provider/group/suse.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/group/groupadd"
+require_relative "groupadd"
require "etc"
class Chef
diff --git a/lib/chef/provider/group/usermod.rb b/lib/chef/provider/group/usermod.rb
index 06e05ff54d..79a774a4c3 100644
--- a/lib/chef/provider/group/usermod.rb
+++ b/lib/chef/provider/group/usermod.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/group/groupadd"
+require_relative "groupadd"
class Chef
class Provider
diff --git a/lib/chef/provider/group/windows.rb b/lib/chef/provider/group/windows.rb
index 6981c7126e..fc4d7df96b 100644
--- a/lib/chef/provider/group/windows.rb
+++ b/lib/chef/provider/group/windows.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/provider/user"
+require_relative "../user"
if RUBY_PLATFORM =~ /mswin|mingw32|windows/
- require "chef/util/windows/net_group"
+ require_relative "../../util/windows/net_group"
end
class Chef
diff --git a/lib/chef/provider/http_request.rb b/lib/chef/provider/http_request.rb
index e8aad1e896..98f73e79c4 100644
--- a/lib/chef/provider/http_request.rb
+++ b/lib/chef/provider/http_request.rb
@@ -17,7 +17,7 @@
#
require "tempfile"
-require "chef/http/simple"
+require_relative "../http/simple"
class Chef
class Provider
diff --git a/lib/chef/provider/ifconfig.rb b/lib/chef/provider/ifconfig.rb
index 070a4686ba..0ca419da0f 100644
--- a/lib/chef/provider/ifconfig.rb
+++ b/lib/chef/provider/ifconfig.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/mixin/shell_out"
-require "chef/provider"
-require "chef/resource/file"
-require "chef/exceptions"
+require_relative "../log"
+require_relative "../mixin/shell_out"
+require_relative "../provider"
+require_relative "../resource/file"
+require_relative "../exceptions"
require "erb"
class Chef
diff --git a/lib/chef/provider/ifconfig/aix.rb b/lib/chef/provider/ifconfig/aix.rb
index 1fd172097a..1b52060ad2 100644
--- a/lib/chef/provider/ifconfig/aix.rb
+++ b/lib/chef/provider/ifconfig/aix.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/ifconfig"
+require_relative "../ifconfig"
class Chef
class Provider
diff --git a/lib/chef/provider/ifconfig/debian.rb b/lib/chef/provider/ifconfig/debian.rb
index e610bab5df..614cd7baf9 100644
--- a/lib/chef/provider/ifconfig/debian.rb
+++ b/lib/chef/provider/ifconfig/debian.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/ifconfig"
-require "chef/util/file_edit"
+require_relative "../ifconfig"
+require_relative "../../util/file_edit"
class Chef
class Provider
diff --git a/lib/chef/provider/ifconfig/redhat.rb b/lib/chef/provider/ifconfig/redhat.rb
index 70d78bcfe9..9e34ec897b 100644
--- a/lib/chef/provider/ifconfig/redhat.rb
+++ b/lib/chef/provider/ifconfig/redhat.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/ifconfig"
+require_relative "../ifconfig"
class Chef
class Provider
diff --git a/lib/chef/provider/launchd.rb b/lib/chef/provider/launchd.rb
index 0bac995247..6206f7fd7e 100644
--- a/lib/chef/provider/launchd.rb
+++ b/lib/chef/provider/launchd.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/resource/file"
-require "chef/resource/cookbook_file"
-require "chef/resource/macosx_service"
+require_relative "../provider"
+require_relative "../resource/file"
+require_relative "../resource/cookbook_file"
+require_relative "../resource/macosx_service"
require "plist"
require "forwardable"
diff --git a/lib/chef/provider/link.rb b/lib/chef/provider/link.rb
index 783d52d09a..7b17891900 100644
--- a/lib/chef/provider/link.rb
+++ b/lib/chef/provider/link.rb
@@ -16,13 +16,13 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/log"
-require "chef/mixin/file_class"
-require "chef/resource/link"
-require "chef/provider"
-require "chef/scan_access_control"
-require "chef/util/path_helper"
+require_relative "../config"
+require_relative "../log"
+require_relative "../mixin/file_class"
+require_relative "../resource/link"
+require_relative "../provider"
+require_relative "../scan_access_control"
+require_relative "../util/path_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/lwrp_base.rb b/lib/chef/provider/lwrp_base.rb
index 70f2af6539..80cb4a34a8 100644
--- a/lib/chef/provider/lwrp_base.rb
+++ b/lib/chef/provider/lwrp_base.rb
@@ -18,9 +18,9 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/dsl/recipe"
-require "chef/dsl/include_recipe"
+require_relative "../provider"
+require_relative "../dsl/recipe"
+require_relative "../dsl/include_recipe"
class Chef
class Provider
diff --git a/lib/chef/provider/mdadm.rb b/lib/chef/provider/mdadm.rb
index 10e814a79b..c5df1d0724 100644
--- a/lib/chef/provider/mdadm.rb
+++ b/lib/chef/provider/mdadm.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
+require_relative "../log"
+require_relative "../provider"
class Chef
class Provider
diff --git a/lib/chef/provider/mount.rb b/lib/chef/provider/mount.rb
index 994d67939b..e8e2b4dc7b 100644
--- a/lib/chef/provider/mount.rb
+++ b/lib/chef/provider/mount.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/mixin/shell_out"
-require "chef/provider"
+require_relative "../log"
+require_relative "../mixin/shell_out"
+require_relative "../provider"
class Chef
class Provider
diff --git a/lib/chef/provider/mount/aix.rb b/lib/chef/provider/mount/aix.rb
index 2d7fc1d9c3..68a4552bab 100644
--- a/lib/chef/provider/mount/aix.rb
+++ b/lib/chef/provider/mount/aix.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/provider/mount"
+require_relative "../mount"
class Chef
class Provider
diff --git a/lib/chef/provider/mount/mount.rb b/lib/chef/provider/mount/mount.rb
index 7852c8dfdf..304d922966 100644
--- a/lib/chef/provider/mount/mount.rb
+++ b/lib/chef/provider/mount/mount.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/mount"
-require "chef/log"
+require_relative "../mount"
+require_relative "../../log"
class Chef
class Provider
diff --git a/lib/chef/provider/mount/solaris.rb b/lib/chef/provider/mount/solaris.rb
index 48936c8057..18664246b8 100644
--- a/lib/chef/provider/mount/solaris.rb
+++ b/lib/chef/provider/mount/solaris.rb
@@ -18,8 +18,8 @@
# limitations under the License.
#
-require "chef/provider/mount"
-require "chef/log"
+require_relative "../mount"
+require_relative "../../log"
require "forwardable"
class Chef
diff --git a/lib/chef/provider/mount/windows.rb b/lib/chef/provider/mount/windows.rb
index 1650d1e43a..aea924b07f 100644
--- a/lib/chef/provider/mount/windows.rb
+++ b/lib/chef/provider/mount/windows.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/provider/mount"
+require_relative "../mount"
if RUBY_PLATFORM =~ /mswin|mingw32|windows/
- require "chef/util/windows/net_use"
- require "chef/util/windows/volume"
+ require_relative "../../util/windows/net_use"
+ require_relative "../../util/windows/volume"
end
class Chef
diff --git a/lib/chef/provider/osx_profile.rb b/lib/chef/provider/osx_profile.rb
index 7a2f8ced20..f05cd198e3 100644
--- a/lib/chef/provider/osx_profile.rb
+++ b/lib/chef/provider/osx_profile.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
-require "chef/resource"
-require "chef/resource/file"
+require_relative "../log"
+require_relative "../provider"
+require_relative "../resource"
+require_relative "../resource/file"
require "uuidtools"
class Chef
diff --git a/lib/chef/provider/package.rb b/lib/chef/provider/package.rb
index 44d7fed6f4..29c3a55a42 100644
--- a/lib/chef/provider/package.rb
+++ b/lib/chef/provider/package.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
-require "chef/mixin/subclass_directive"
-require "chef/log"
-require "chef/file_cache"
-require "chef/platform"
-require "chef/decorator/lazy_array"
+require_relative "../mixin/shell_out"
+require_relative "../mixin/subclass_directive"
+require_relative "../log"
+require_relative "../file_cache"
+require_relative "../platform"
+require_relative "../decorator/lazy_array"
require "shellwords"
class Chef
@@ -88,14 +88,7 @@ class Chef
return
end
- # @todo: move the preseed code out of the base class (and complete the fix for Array of preseeds? ugh...)
- if new_resource.response_file
- if preseed_file = get_preseed_file(package_names_for_targets, versions_for_targets)
- converge_by("preseed package #{package_names_for_targets}") do
- preseed_package(preseed_file)
- end
- end
- end
+ prepare_for_installation
converge_by(install_description) do
multipackage_api_adapter(package_names_for_targets, versions_for_targets) do |name, version|
@@ -194,31 +187,6 @@ class Chef
end
end
- action :reconfig do
- if current_resource.version.nil?
- logger.trace("#{new_resource} is NOT installed - nothing to do")
- return
- end
-
- unless new_resource.response_file
- logger.trace("#{new_resource} no response_file provided - nothing to do")
- return
- end
-
- if preseed_file = get_preseed_file(new_resource.package_name, current_resource.version)
- converge_by("reconfigure package #{new_resource.package_name}") do
- preseed_package(preseed_file)
- multipackage_api_adapter(new_resource.package_name, current_resource.version) do |name, version|
- reconfig_package(name, version)
-
- end
- logger.info("#{new_resource} reconfigured")
- end
- else
- logger.trace("#{new_resource} preseeding has not changed - nothing to do")
- end
- end
-
def action_lock
packages_locked = if respond_to?(:packages_all_locked?, true)
packages_all_locked?(Array(new_resource.package_name), Array(new_resource.version))
@@ -262,6 +230,10 @@ class Chef
raise Chef::Exceptions::UnsupportedAction, "#{self} has no way to detect if package is locked"
end
+ # Subclasses will override this to a method and provide a preseed file path
+ def prepare_for_installation
+ end
+
# @todo use composition rather than inheritance
def multipackage_api_adapter(name, version)
@@ -292,7 +264,7 @@ class Chef
raise Chef::Exceptions::UnsupportedAction, "#{self} does not support pre-seeding package install/upgrade instructions"
end
- def reconfig_package(name, version)
+ def reconfig_package(name)
raise( Chef::Exceptions::UnsupportedAction, "#{self} does not support :reconfig" )
end
@@ -384,46 +356,6 @@ class Chef
target_version_already_installed?(current_version, new_version)
end
- # @todo: extract apt/dpkg specific preseeding to a helper class
- def get_preseed_file(name, version)
- resource = preseed_resource(name, version)
- resource.run_action(:create)
- logger.trace("#{new_resource} fetched preseed file to #{resource.path}")
-
- if resource.updated_by_last_action?
- resource.path
- else
- false
- end
- end
-
- # @todo: extract apt/dpkg specific preseeding to a helper class
- def preseed_resource(name, version)
- # A directory in our cache to store this cookbook's preseed files in
- file_cache_dir = Chef::FileCache.create_cache_path("preseed/#{new_resource.cookbook_name}")
- # The full path where the preseed file will be stored
- cache_seed_to = "#{file_cache_dir}/#{name}-#{version}.seed"
-
- logger.trace("#{new_resource} fetching preseed file to #{cache_seed_to}")
-
- if template_available?(new_resource.response_file)
- logger.trace("#{new_resource} fetching preseed file via Template")
- remote_file = Chef::Resource::Template.new(cache_seed_to, run_context)
- remote_file.variables(new_resource.response_file_variables)
- elsif cookbook_file_available?(new_resource.response_file)
- logger.trace("#{new_resource} fetching preseed file via cookbook_file")
- remote_file = Chef::Resource::CookbookFile.new(cache_seed_to, run_context)
- else
- message = "No template or cookbook file found for response file #{new_resource.response_file}"
- raise Chef::Exceptions::FileNotFound, message
- end
-
- remote_file.cookbook_name = new_resource.cookbook_name
- remote_file.source(new_resource.response_file)
- remote_file.backup(false)
- remote_file
- end
-
# helper method used by subclasses
#
def as_array(thing)
@@ -479,7 +411,6 @@ class Chef
@target_version_array ||=
begin
target_version_array = []
-
each_package do |package_name, new_version, current_version, candidate_version|
case action
when :upgrade
@@ -657,16 +588,6 @@ class Chef
end
end
- # @todo: extract apt/dpkg specific preseeding to a helper class
- def template_available?(path)
- run_context.has_template_in_cookbook?(new_resource.cookbook_name, path)
- end
-
- # @todo: extract apt/dpkg specific preseeding to a helper class
- def cookbook_file_available?(path)
- run_context.has_cookbook_file_in_cookbook?(new_resource.cookbook_name, path)
- end
-
def allow_downgrade
if new_resource.respond_to?("allow_downgrade")
new_resource.allow_downgrade
diff --git a/lib/chef/provider/package/apt.rb b/lib/chef/provider/package/apt.rb
index dfc7e602dd..99329ebdee 100644
--- a/lib/chef/provider/package/apt.rb
+++ b/lib/chef/provider/package/apt.rb
@@ -16,13 +16,15 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/apt_package"
+require_relative "../package"
+require_relative "deb"
+require_relative "../../resource/apt_package"
class Chef
class Provider
class Package
class Apt < Chef::Provider::Package
+ include Chef::Provider::Package::Deb
use_multipackage_api
provides :package, platform_family: "debian"
@@ -114,16 +116,6 @@ class Chef
run_noninteractive("apt-get", "-q", "-y", options, "purge", package_name)
end
- def preseed_package(preseed_file)
- logger.info("#{new_resource} pre-seeding package installation instructions")
- run_noninteractive("debconf-set-selections", preseed_file)
- end
-
- def reconfig_package(name, version)
- logger.info("#{new_resource} reconfiguring")
- run_noninteractive("dpkg-reconfigure", name)
- end
-
def lock_package(name, version)
run_noninteractive("apt-mark", options, "hold", name)
end
@@ -161,13 +153,6 @@ class Chef
end
end
- # Runs command via shell_out with magic environment to disable
- # interactive prompts. Command is run with default localization rather
- # than forcing locale to "C", so command output may not be stable.
- def run_noninteractive(*args)
- shell_out!(*args, env: { "DEBIAN_FRONTEND" => "noninteractive" })
- end
-
def default_release_options
# Use apt::Default-Release option only if provider supports it
if new_resource.respond_to?(:default_release) && new_resource.default_release
diff --git a/lib/chef/provider/package/bff.rb b/lib/chef/provider/package/bff.rb
index 652fad447b..b0a89454b5 100644
--- a/lib/chef/provider/package/bff.rb
+++ b/lib/chef/provider/package/bff.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
#
-require "chef/provider/package"
-require "chef/resource/package"
-require "chef/mixin/get_source_from_package"
+require_relative "../package"
+require_relative "../../resource/package"
+require_relative "../../mixin/get_source_from_package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/cab.rb b/lib/chef/provider/package/cab.rb
index cfc629b9ef..9b2aaa048f 100644
--- a/lib/chef/provider/package/cab.rb
+++ b/lib/chef/provider/package/cab.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/cab_package"
-require "chef/mixin/shell_out"
-require "chef/mixin/uris"
-require "chef/mixin/checksum"
+require_relative "../package"
+require_relative "../../resource/cab_package"
+require_relative "../../mixin/shell_out"
+require_relative "../../mixin/uris"
+require_relative "../../mixin/checksum"
class Chef
class Provider
diff --git a/lib/chef/provider/package/chocolatey.rb b/lib/chef/provider/package/chocolatey.rb
index 773587dc2e..a7e6096cd6 100644
--- a/lib/chef/provider/package/chocolatey.rb
+++ b/lib/chef/provider/package/chocolatey.rb
@@ -15,9 +15,9 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/chocolatey_package"
-require "chef/mixin/powershell_out"
+require_relative "../package"
+require_relative "../../resource/chocolatey_package"
+require_relative "../../mixin/powershell_out"
class Chef
class Provider
diff --git a/lib/chef/provider/package/deb.rb b/lib/chef/provider/package/deb.rb
new file mode 100644
index 0000000000..5d2adffc93
--- /dev/null
+++ b/lib/chef/provider/package/deb.rb
@@ -0,0 +1,131 @@
+#
+# Author:: Kapil Chouhan (<kapil.chouhan@msystechnologies.com>)
+# Copyright:: Copyright 2010-2019, Chef Software Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require_relative "../package"
+
+class Chef
+ class Provider
+ class Package
+ module Deb
+ def self.included(base)
+ base.class_eval do
+ use_multipackage_api
+
+ action :reconfig do
+ if current_resource.version.nil?
+ logger.trace("#{new_resource} is NOT installed - nothing to do")
+ return
+ end
+
+ unless new_resource.response_file
+ logger.trace("#{new_resource} no response_file provided - nothing to do")
+ return
+ end
+
+ if preseed_file = get_preseed_file(new_resource.package_name, current_resource.version)
+ converge_by("reconfigure package #{new_resource.package_name}") do
+ preseed_package(preseed_file)
+ multipackage_api_adapter(new_resource.package_name, current_resource.version) do |name, _version|
+ reconfig_package(name)
+ end
+ logger.info("#{new_resource} reconfigured")
+ end
+ else
+ logger.trace("#{new_resource} preseeding has not changed - nothing to do")
+ end
+ end
+
+ # This method is used for getting preseed file
+ # it will return preseed file path or false if response_file is present
+ def prepare_for_installation
+ if new_resource.response_file && preseed_file = get_preseed_file(package_names_for_targets, versions_for_targets)
+ converge_by("preseed package #{package_names_for_targets}") do
+ preseed_package(preseed_file)
+ end
+ end
+ end
+
+ def get_preseed_file(name, version)
+ resource = preseed_resource(name, version)
+ resource.run_action(:create)
+ logger.trace("#{new_resource} fetched preseed file to #{resource.path}")
+
+ if resource.updated_by_last_action?
+ resource.path
+ else
+ false
+ end
+ end
+
+ def preseed_resource(name, version)
+ # A directory in our cache to store this cookbook's preseed files in
+ file_cache_dir = Chef::FileCache.create_cache_path("preseed/#{new_resource.cookbook_name}")
+ # The full path where the preseed file will be stored
+ cache_seed_to = "#{file_cache_dir}/#{name}-#{version}.seed"
+
+ logger.trace("#{new_resource} fetching preseed file to #{cache_seed_to}")
+
+ if template_available?(new_resource.response_file)
+ logger.trace("#{new_resource} fetching preseed file via Template")
+ remote_file = Chef::Resource::Template.new(cache_seed_to, run_context)
+ remote_file.variables(new_resource.response_file_variables)
+ elsif cookbook_file_available?(new_resource.response_file)
+ logger.trace("#{new_resource} fetching preseed file via cookbook_file")
+ remote_file = Chef::Resource::CookbookFile.new(cache_seed_to, run_context)
+ else
+ message = "No template or cookbook file found for response file #{new_resource.response_file}"
+ raise Chef::Exceptions::FileNotFound, message
+ end
+
+ remote_file.cookbook_name = new_resource.cookbook_name
+ remote_file.source(new_resource.response_file)
+ remote_file.backup(false)
+ remote_file
+ end
+
+ def preseed_package(preseed_file)
+ logger.info("#{new_resource} pre-seeding package installation instructions")
+ run_noninteractive("debconf-set-selections", preseed_file)
+ end
+
+ def reconfig_package(name)
+ logger.info("#{new_resource} reconfiguring")
+ run_noninteractive("dpkg-reconfigure", *name)
+ end
+
+ # Runs command via shell_out with magic environment to disable
+ # interactive prompts.
+ def run_noninteractive(*command)
+ shell_out!(*command, env: { "DEBIAN_FRONTEND" => "noninteractive" })
+ end
+
+ private
+
+ def template_available?(path)
+ run_context.has_template_in_cookbook?(new_resource.cookbook_name, path)
+ end
+
+ def cookbook_file_available?(path)
+ run_context.has_cookbook_file_in_cookbook?(new_resource.cookbook_name, path)
+ end
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/chef/provider/package/dnf.rb b/lib/chef/provider/package/dnf.rb
index 76e9be8083..5cfc82ad1c 100644
--- a/lib/chef/provider/package/dnf.rb
+++ b/lib/chef/provider/package/dnf.rb
@@ -15,13 +15,13 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/dnf_package"
-require "chef/mixin/which"
-require "chef/mixin/shell_out"
-require "chef/mixin/get_source_from_package"
-require "chef/provider/package/dnf/python_helper"
-require "chef/provider/package/dnf/version"
+require_relative "../package"
+require_relative "../../resource/dnf_package"
+require_relative "../../mixin/which"
+require_relative "../../mixin/shell_out"
+require_relative "../../mixin/get_source_from_package"
+require_relative "dnf/python_helper"
+require_relative "dnf/version"
class Chef
class Provider
diff --git a/lib/chef/provider/package/dnf/python_helper.rb b/lib/chef/provider/package/dnf/python_helper.rb
index 7cb4047f53..9a5db7d0ef 100644
--- a/lib/chef/provider/package/dnf/python_helper.rb
+++ b/lib/chef/provider/package/dnf/python_helper.rb
@@ -15,9 +15,9 @@
# limitations under the License.
#
-require "chef/mixin/which"
-require "chef/mixin/shell_out"
-require "chef/provider/package/dnf/version"
+require_relative "../../../mixin/which"
+require_relative "../../../mixin/shell_out"
+require_relative "version"
require "timeout"
class Chef
diff --git a/lib/chef/provider/package/dpkg.rb b/lib/chef/provider/package/dpkg.rb
index 38129c8931..eaeb5c8fce 100644
--- a/lib/chef/provider/package/dpkg.rb
+++ b/lib/chef/provider/package/dpkg.rb
@@ -16,13 +16,15 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
+require_relative "../package"
+require_relative "deb"
+require_relative "../../resource/package"
class Chef
class Provider
class Package
class Dpkg < Chef::Provider::Package
+ include Chef::Provider::Package::Deb
DPKG_REMOVED = /^Status: deinstall ok config-files/.freeze
DPKG_INSTALLED = /^Status: install ok installed/.freeze
DPKG_VERSION = /^Version: (.+)$/.freeze
@@ -91,16 +93,6 @@ class Chef
install_package(name, version)
end
- def preseed_package(preseed_file)
- logger.info("#{new_resource} pre-seeding package installation instructions")
- run_noninteractive("debconf-set-selections", *preseed_file)
- end
-
- def reconfig_package(name, version)
- logger.info("#{new_resource} reconfiguring")
- run_noninteractive("dpkg-reconfigure", *name)
- end
-
# Override the superclass check. Multiple sources are required here.
def check_resource_semantics!; end
@@ -149,12 +141,6 @@ class Chef
end
end
- # Runs command via shell_out with magic environment to disable
- # interactive prompts.
- def run_noninteractive(*command)
- shell_out!(*command, env: { "DEBIAN_FRONTEND" => "noninteractive" })
- end
-
# Returns true if all sources exist. Returns false if any do not, or if no
# sources were specified.
#
diff --git a/lib/chef/provider/package/freebsd/base.rb b/lib/chef/provider/package/freebsd/base.rb
index bf704a5cae..7c1b244283 100644
--- a/lib/chef/provider/package/freebsd/base.rb
+++ b/lib/chef/provider/package/freebsd/base.rb
@@ -19,9 +19,9 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/provider/package"
-require "chef/mixin/get_source_from_package"
+require_relative "../../../resource/package"
+require_relative "../../package"
+require_relative "../../../mixin/get_source_from_package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/freebsd/pkgng.rb b/lib/chef/provider/package/freebsd/pkgng.rb
index 250baf0fac..a3d70ad9cd 100644
--- a/lib/chef/provider/package/freebsd/pkgng.rb
+++ b/lib/chef/provider/package/freebsd/pkgng.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/package/freebsd/base"
+require_relative "base"
class Chef
class Provider
diff --git a/lib/chef/provider/package/freebsd/port.rb b/lib/chef/provider/package/freebsd/port.rb
index e3174f7d8d..fabc736800 100644
--- a/lib/chef/provider/package/freebsd/port.rb
+++ b/lib/chef/provider/package/freebsd/port.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/package/freebsd/base"
+require_relative "base"
class Chef
class Provider
diff --git a/lib/chef/provider/package/homebrew.rb b/lib/chef/provider/package/homebrew.rb
index 1a7407486b..7fa27b9bb8 100644
--- a/lib/chef/provider/package/homebrew.rb
+++ b/lib/chef/provider/package/homebrew.rb
@@ -19,7 +19,7 @@
#
require "etc"
-require "chef/mixin/homebrew_user"
+require_relative "../../mixin/homebrew_user"
class Chef
class Provider
diff --git a/lib/chef/provider/package/ips.rb b/lib/chef/provider/package/ips.rb
index f7fdb95e4d..686ffe96ee 100644
--- a/lib/chef/provider/package/ips.rb
+++ b/lib/chef/provider/package/ips.rb
@@ -18,8 +18,8 @@
#
require "open3"
-require "chef/provider/package"
-require "chef/resource/package"
+require_relative "../package"
+require_relative "../../resource/package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/msu.rb b/lib/chef/provider/package/msu.rb
index 9dbea31c82..073d3f6454 100644
--- a/lib/chef/provider/package/msu.rb
+++ b/lib/chef/provider/package/msu.rb
@@ -20,13 +20,13 @@
# The contents of msu file are extracted, which contains one or more cab files.
# The extracted cab files are installed using Chef::Resource::Package::CabPackage
# Reference: https://support.microsoft.com/en-in/kb/934307
-require "chef/provider/package"
-require "chef/resource/msu_package"
-require "chef/mixin/shell_out"
-require "chef/provider/package/cab"
-require "chef/util/path_helper"
-require "chef/mixin/uris"
-require "chef/mixin/checksum"
+require_relative "../package"
+require_relative "../../resource/msu_package"
+require_relative "../../mixin/shell_out"
+require_relative "cab"
+require_relative "../../util/path_helper"
+require_relative "../../mixin/uris"
+require_relative "../../mixin/checksum"
class Chef
class Provider
diff --git a/lib/chef/provider/package/openbsd.rb b/lib/chef/provider/package/openbsd.rb
index 0332423e7c..b7f8260e7b 100644
--- a/lib/chef/provider/package/openbsd.rb
+++ b/lib/chef/provider/package/openbsd.rb
@@ -20,10 +20,10 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/provider/package"
-require "chef/mixin/get_source_from_package"
-require "chef/exceptions"
+require_relative "../../resource/package"
+require_relative "../package"
+require_relative "../../mixin/get_source_from_package"
+require_relative "../../exceptions"
class Chef
class Provider
diff --git a/lib/chef/provider/package/pacman.rb b/lib/chef/provider/package/pacman.rb
index 4a3b795700..a3b2d75846 100644
--- a/lib/chef/provider/package/pacman.rb
+++ b/lib/chef/provider/package/pacman.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
+require_relative "../package"
+require_relative "../../resource/package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/paludis.rb b/lib/chef/provider/package/paludis.rb
index 3550b155d5..27854f31be 100644
--- a/lib/chef/provider/package/paludis.rb
+++ b/lib/chef/provider/package/paludis.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
+require_relative "../package"
+require_relative "../../resource/package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/portage.rb b/lib/chef/provider/package/portage.rb
index d9fc801225..aa8b9852b0 100644
--- a/lib/chef/provider/package/portage.rb
+++ b/lib/chef/provider/package/portage.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/portage_package"
-require "chef/util/path_helper"
+require_relative "../package"
+require_relative "../../resource/portage_package"
+require_relative "../../util/path_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/package/powershell.rb b/lib/chef/provider/package/powershell.rb
index 9af1344138..7901569532 100644
--- a/lib/chef/provider/package/powershell.rb
+++ b/lib/chef/provider/package/powershell.rb
@@ -15,9 +15,9 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/powershell_package"
-require "chef/mixin/powershell_out"
+require_relative "../package"
+require_relative "../../resource/powershell_package"
+require_relative "../../mixin/powershell_out"
class Chef
class Provider
diff --git a/lib/chef/provider/package/rpm.rb b/lib/chef/provider/package/rpm.rb
index 3d070cee17..45dbf91061 100644
--- a/lib/chef/provider/package/rpm.rb
+++ b/lib/chef/provider/package/rpm.rb
@@ -15,10 +15,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
-require "chef/mixin/get_source_from_package"
-require "chef/provider/package/yum/rpm_utils"
+require_relative "../package"
+require_relative "../../resource/package"
+require_relative "../../mixin/get_source_from_package"
+require_relative "yum/rpm_utils"
class Chef
class Provider
diff --git a/lib/chef/provider/package/rubygems.rb b/lib/chef/provider/package/rubygems.rb
index dc882e426c..6817ac1ec9 100644
--- a/lib/chef/provider/package/rubygems.rb
+++ b/lib/chef/provider/package/rubygems.rb
@@ -18,10 +18,10 @@
#
require "uri"
-require "chef/provider/package"
-require "chef/resource/package"
-require "chef/mixin/get_source_from_package"
-require "chef/mixin/which"
+require_relative "../package"
+require_relative "../../resource/package"
+require_relative "../../mixin/get_source_from_package"
+require_relative "../../mixin/which"
# Class methods on Gem are defined in rubygems
require "rubygems"
diff --git a/lib/chef/provider/package/smartos.rb b/lib/chef/provider/package/smartos.rb
index 4623196c13..be1e6f81a3 100644
--- a/lib/chef/provider/package/smartos.rb
+++ b/lib/chef/provider/package/smartos.rb
@@ -19,9 +19,9 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
-require "chef/mixin/get_source_from_package"
+require_relative "../package"
+require_relative "../../resource/package"
+require_relative "../../mixin/get_source_from_package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/snap.rb b/lib/chef/provider/package/snap.rb
index 691cfcd62e..b91a3b87e3 100644
--- a/lib/chef/provider/package/snap.rb
+++ b/lib/chef/provider/package/snap.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/snap_package"
-require "chef/mixin/shell_out"
+require_relative "../package"
+require_relative "../../resource/snap_package"
+require_relative "../../mixin/shell_out"
require "socket"
require "json"
diff --git a/lib/chef/provider/package/solaris.rb b/lib/chef/provider/package/solaris.rb
index 01958df1ee..d30e783a1e 100644
--- a/lib/chef/provider/package/solaris.rb
+++ b/lib/chef/provider/package/solaris.rb
@@ -15,9 +15,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
-require "chef/mixin/get_source_from_package"
+require_relative "../package"
+require_relative "../../resource/package"
+require_relative "../../mixin/get_source_from_package"
class Chef
class Provider
diff --git a/lib/chef/provider/package/windows.rb b/lib/chef/provider/package/windows.rb
index cb8b5de151..d21c6576b6 100644
--- a/lib/chef/provider/package/windows.rb
+++ b/lib/chef/provider/package/windows.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/mixin/uris"
-require "chef/resource/windows_package"
-require "chef/provider/package"
-require "chef/util/path_helper"
-require "chef/mixin/checksum"
+require_relative "../../mixin/uris"
+require_relative "../../resource/windows_package"
+require_relative "../package"
+require_relative "../../util/path_helper"
+require_relative "../../mixin/checksum"
class Chef
class Provider
@@ -78,11 +78,11 @@ class Chef
case installer_type
when :msi
logger.trace("#{new_resource} is MSI")
- require "chef/provider/package/windows/msi"
+ require_relative "windows/msi"
Chef::Provider::Package::Windows::MSI.new(resource_for_provider, uninstall_registry_entries)
else
logger.trace("#{new_resource} is EXE with type '#{installer_type}'")
- require "chef/provider/package/windows/exe"
+ require_relative "windows/exe"
Chef::Provider::Package::Windows::Exe.new(resource_for_provider, installer_type, uninstall_registry_entries)
end
end
diff --git a/lib/chef/provider/package/windows/exe.rb b/lib/chef/provider/package/windows/exe.rb
index e43cd02b08..7663bf0ad4 100644
--- a/lib/chef/provider/package/windows/exe.rb
+++ b/lib/chef/provider/package/windows/exe.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
+require_relative "../../../mixin/shell_out"
class Chef
class Provider
diff --git a/lib/chef/provider/package/windows/msi.rb b/lib/chef/provider/package/windows/msi.rb
index 51afcab2a2..464e15ada8 100644
--- a/lib/chef/provider/package/windows/msi.rb
+++ b/lib/chef/provider/package/windows/msi.rb
@@ -19,7 +19,7 @@
# TODO: Allow new_resource.source to be a Product Code as a GUID for uninstall / network install
require "chef/win32/api/installer" if (RUBY_PLATFORM =~ /mswin|mingw32|windows/) && Chef::Platform.supports_msi?
-require "chef/mixin/shell_out"
+require_relative "../../../mixin/shell_out"
class Chef
class Provider
diff --git a/lib/chef/provider/package/yum.rb b/lib/chef/provider/package/yum.rb
index ad045c77e6..55f478745c 100644
--- a/lib/chef/provider/package/yum.rb
+++ b/lib/chef/provider/package/yum.rb
@@ -15,15 +15,15 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/yum_package"
-require "chef/mixin/which"
-require "chef/mixin/shell_out"
-require "chef/mixin/get_source_from_package"
-require "chef/provider/package/yum/python_helper"
-require "chef/provider/package/yum/version"
+require_relative "../package"
+require_relative "../../resource/yum_package"
+require_relative "../../mixin/which"
+require_relative "../../mixin/shell_out"
+require_relative "../../mixin/get_source_from_package"
+require_relative "yum/python_helper"
+require_relative "yum/version"
# the stubs in the YumCache class are still an external API
-require "chef/provider/package/yum/yum_cache"
+require_relative "yum/yum_cache"
class Chef
class Provider
diff --git a/lib/chef/provider/package/yum/python_helper.rb b/lib/chef/provider/package/yum/python_helper.rb
index 6ae9cc911a..4641980be7 100644
--- a/lib/chef/provider/package/yum/python_helper.rb
+++ b/lib/chef/provider/package/yum/python_helper.rb
@@ -15,9 +15,9 @@
# limitations under the License.
#
-require "chef/mixin/which"
-require "chef/mixin/shell_out"
-require "chef/provider/package/yum/version"
+require_relative "../../../mixin/which"
+require_relative "../../../mixin/shell_out"
+require_relative "version"
require "singleton"
require "timeout"
diff --git a/lib/chef/provider/package/yum/rpm_utils.rb b/lib/chef/provider/package/yum/rpm_utils.rb
index 22c0ff807b..29a1c2a480 100644
--- a/lib/chef/provider/package/yum/rpm_utils.rb
+++ b/lib/chef/provider/package/yum/rpm_utils.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/package"
+require_relative "../../package"
#
# BUGGY AND DEPRECATED: This ruby code is known to not match the python implementation for version comparisons.
diff --git a/lib/chef/provider/package/yum/yum_cache.rb b/lib/chef/provider/package/yum/yum_cache.rb
index fa0930109f..0615a9bf85 100644
--- a/lib/chef/provider/package/yum/yum_cache.rb
+++ b/lib/chef/provider/package/yum/yum_cache.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/package/yum/python_helper"
-require "chef/provider/package"
+require_relative "python_helper"
+require_relative "../../package"
require "singleton"
#
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb
index 2a333c4f5f..a828da1c6c 100644
--- a/lib/chef/provider/package/zypper.rb
+++ b/lib/chef/provider/package/zypper.rb
@@ -19,8 +19,8 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/zypper_package"
+require_relative "../package"
+require_relative "../../resource/zypper_package"
class Chef
class Provider
diff --git a/lib/chef/provider/powershell_script.rb b/lib/chef/provider/powershell_script.rb
index 7430fabfec..418948e614 100644
--- a/lib/chef/provider/powershell_script.rb
+++ b/lib/chef/provider/powershell_script.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/platform/query_helpers"
-require "chef/provider/windows_script"
+require_relative "../platform/query_helpers"
+require_relative "windows_script"
class Chef
class Provider
diff --git a/lib/chef/provider/reboot.rb b/lib/chef/provider/reboot.rb
index dd07e7448d..407d847313 100644
--- a/lib/chef/provider/reboot.rb
+++ b/lib/chef/provider/reboot.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
+require_relative "../log"
+require_relative "../provider"
class Chef
class Provider
diff --git a/lib/chef/provider/registry_key.rb b/lib/chef/provider/registry_key.rb
index 6b226cc991..3e3faef40e 100644
--- a/lib/chef/provider/registry_key.rb
+++ b/lib/chef/provider/registry_key.rb
@@ -17,15 +17,15 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/log"
-require "chef/resource/file"
-require "chef/mixin/checksum"
-require "chef/provider"
+require_relative "../config"
+require_relative "../log"
+require_relative "../resource/file"
+require_relative "../mixin/checksum"
+require_relative "../provider"
require "etc"
require "fileutils"
-require "chef/scan_access_control"
-require "chef/win32/registry"
+require_relative "../scan_access_control"
+require_relative "../win32/registry"
class Chef
diff --git a/lib/chef/provider/remote_directory.rb b/lib/chef/provider/remote_directory.rb
index 94de68c557..13088b3706 100644
--- a/lib/chef/provider/remote_directory.rb
+++ b/lib/chef/provider/remote_directory.rb
@@ -16,13 +16,13 @@
# limitations under the License.
#
-require "chef/provider/directory"
-require "chef/resource/file"
-require "chef/resource/directory"
-require "chef/resource/cookbook_file"
-require "chef/mixin/file_class"
-require "chef/platform/query_helpers"
-require "chef/util/path_helper"
+require_relative "directory"
+require_relative "../resource/file"
+require_relative "../resource/directory"
+require_relative "../resource/cookbook_file"
+require_relative "../mixin/file_class"
+require_relative "../platform/query_helpers"
+require_relative "../util/path_helper"
require "forwardable"
diff --git a/lib/chef/provider/remote_file.rb b/lib/chef/provider/remote_file.rb
index d2de3d0b5f..ba384ea3ba 100644
--- a/lib/chef/provider/remote_file.rb
+++ b/lib/chef/provider/remote_file.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/provider/file"
+require_relative "file"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/cache_control_data.rb b/lib/chef/provider/remote_file/cache_control_data.rb
index 5c59d112db..974b229a45 100644
--- a/lib/chef/provider/remote_file/cache_control_data.rb
+++ b/lib/chef/provider/remote_file/cache_control_data.rb
@@ -20,10 +20,10 @@
#
require "stringio"
-require "chef/file_cache"
-require "chef/json_compat"
-require "chef/digester"
-require "chef/exceptions"
+require_relative "../../file_cache"
+require_relative "../../json_compat"
+require_relative "../../digester"
+require_relative "../../exceptions"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/content.rb b/lib/chef/provider/remote_file/content.rb
index b5f42749e7..3e1af01f22 100644
--- a/lib/chef/provider/remote_file/content.rb
+++ b/lib/chef/provider/remote_file/content.rb
@@ -19,8 +19,8 @@
require "uri"
require "tempfile"
-require "chef/file_content_management/content_base"
-require "chef/mixin/uris"
+require_relative "../../file_content_management/content_base"
+require_relative "../../mixin/uris"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/ftp.rb b/lib/chef/provider/remote_file/ftp.rb
index b382c20c31..b6399ee077 100644
--- a/lib/chef/provider/remote_file/ftp.rb
+++ b/lib/chef/provider/remote_file/ftp.rb
@@ -19,8 +19,8 @@
require "uri"
require "tempfile"
require "net/ftp"
-require "chef/provider/remote_file"
-require "chef/file_content_management/tempfile"
+require_relative "../remote_file"
+require_relative "../../file_content_management/tempfile"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/http.rb b/lib/chef/provider/remote_file/http.rb
index 2122142608..86c7b84858 100644
--- a/lib/chef/provider/remote_file/http.rb
+++ b/lib/chef/provider/remote_file/http.rb
@@ -17,10 +17,10 @@
# limitations under the License.
#
-require "chef/http/simple"
-require "chef/digester"
-require "chef/provider/remote_file"
-require "chef/provider/remote_file/cache_control_data"
+require_relative "../../http/simple"
+require_relative "../../digester"
+require_relative "../remote_file"
+require_relative "cache_control_data"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/local_file.rb b/lib/chef/provider/remote_file/local_file.rb
index 0719e5dbf7..eb1b88e1fa 100644
--- a/lib/chef/provider/remote_file/local_file.rb
+++ b/lib/chef/provider/remote_file/local_file.rb
@@ -18,7 +18,7 @@
require "uri"
require "tempfile"
-require "chef/provider/remote_file"
+require_relative "../remote_file"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/network_file.rb b/lib/chef/provider/remote_file/network_file.rb
index ffd2d0bbce..11d8dd2ff5 100644
--- a/lib/chef/provider/remote_file/network_file.rb
+++ b/lib/chef/provider/remote_file/network_file.rb
@@ -18,8 +18,8 @@
require "uri"
require "tempfile"
-require "chef/provider/remote_file"
-require "chef/mixin/user_context"
+require_relative "../remote_file"
+require_relative "../../mixin/user_context"
class Chef
class Provider
diff --git a/lib/chef/provider/remote_file/sftp.rb b/lib/chef/provider/remote_file/sftp.rb
index 66540fea8c..f112b3782c 100644
--- a/lib/chef/provider/remote_file/sftp.rb
+++ b/lib/chef/provider/remote_file/sftp.rb
@@ -19,8 +19,8 @@
require "uri"
require "tempfile"
require "net/sftp"
-require "chef/provider/remote_file"
-require "chef/file_content_management/tempfile"
+require_relative "../remote_file"
+require_relative "../../file_content_management/tempfile"
class Chef
class Provider
diff --git a/lib/chef/provider/route.rb b/lib/chef/provider/route.rb
index e20102e2f3..1f78db07ad 100644
--- a/lib/chef/provider/route.rb
+++ b/lib/chef/provider/route.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/provider"
+require_relative "../log"
+require_relative "../provider"
require "ipaddr"
class Chef
diff --git a/lib/chef/provider/script.rb b/lib/chef/provider/script.rb
index b54965be45..7c55cff167 100644
--- a/lib/chef/provider/script.rb
+++ b/lib/chef/provider/script.rb
@@ -17,7 +17,7 @@
#
require "tempfile"
-require "chef/provider/execute"
+require_relative "execute"
require "chef/win32/security" if Chef::Platform.windows?
require "forwardable"
diff --git a/lib/chef/provider/service.rb b/lib/chef/provider/service.rb
index c116d321f1..af96e08b20 100644
--- a/lib/chef/provider/service.rb
+++ b/lib/chef/provider/service.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/provider"
+require_relative "../provider"
class Chef
class Provider
@@ -232,15 +232,15 @@ class Chef
# Linux
#
- require "chef/chef_class"
- require "chef/provider/service/systemd"
- require "chef/provider/service/insserv"
- require "chef/provider/service/redhat"
- require "chef/provider/service/arch"
- require "chef/provider/service/gentoo"
- require "chef/provider/service/upstart"
- require "chef/provider/service/debian"
- require "chef/provider/service/invokercd"
+ require_relative "../chef_class"
+ require_relative "service/systemd"
+ require_relative "service/insserv"
+ require_relative "service/redhat"
+ require_relative "service/arch"
+ require_relative "service/gentoo"
+ require_relative "service/upstart"
+ require_relative "service/debian"
+ require_relative "service/invokercd"
Chef.set_provider_priority_array :service, [ Systemd, Arch ], platform_family: "arch"
Chef.set_provider_priority_array :service, [ Systemd, Gentoo ], platform_family: "gentoo"
diff --git a/lib/chef/provider/service/aix.rb b/lib/chef/provider/service/aix.rb
index 10ea06152b..77e3b69d35 100644
--- a/lib/chef/provider/service/aix.rb
+++ b/lib/chef/provider/service/aix.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/service"
+require_relative "../service"
class Chef
class Provider
diff --git a/lib/chef/provider/service/aixinit.rb b/lib/chef/provider/service/aixinit.rb
index 43e6b3ac1b..6469b6389c 100644
--- a/lib/chef/provider/service/aixinit.rb
+++ b/lib/chef/provider/service/aixinit.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/service/init"
+require_relative "init"
class Chef
class Provider
diff --git a/lib/chef/provider/service/arch.rb b/lib/chef/provider/service/arch.rb
index e34227036a..fd1b54a302 100644
--- a/lib/chef/provider/service/arch.rb
+++ b/lib/chef/provider/service/arch.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/service/init"
+require_relative "init"
class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
diff --git a/lib/chef/provider/service/debian.rb b/lib/chef/provider/service/debian.rb
index b6a938a7e8..059b9777d9 100644
--- a/lib/chef/provider/service/debian.rb
+++ b/lib/chef/provider/service/debian.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/service/init"
+require_relative "init"
class Chef
class Provider
diff --git a/lib/chef/provider/service/freebsd.rb b/lib/chef/provider/service/freebsd.rb
index 83aa42903a..ee0cad53f3 100644
--- a/lib/chef/provider/service/freebsd.rb
+++ b/lib/chef/provider/service/freebsd.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/service"
-require "chef/provider/service/init"
+require_relative "../../resource/service"
+require_relative "init"
class Chef
class Provider
diff --git a/lib/chef/provider/service/gentoo.rb b/lib/chef/provider/service/gentoo.rb
index 69b3d20a3f..88616c4947 100644
--- a/lib/chef/provider/service/gentoo.rb
+++ b/lib/chef/provider/service/gentoo.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/provider/service/init"
-require "chef/util/path_helper"
+require_relative "init"
+require_relative "../../util/path_helper"
class Chef::Provider::Service::Gentoo < Chef::Provider::Service::Init
diff --git a/lib/chef/provider/service/init.rb b/lib/chef/provider/service/init.rb
index 6d150513cc..3911ae3216 100644
--- a/lib/chef/provider/service/init.rb
+++ b/lib/chef/provider/service/init.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/service/simple"
-require "chef/platform/service_helpers"
+require_relative "simple"
+require_relative "../../platform/service_helpers"
class Chef
class Provider
diff --git a/lib/chef/provider/service/insserv.rb b/lib/chef/provider/service/insserv.rb
index a8e841f8b3..b61ec8d686 100644
--- a/lib/chef/provider/service/insserv.rb
+++ b/lib/chef/provider/service/insserv.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/service/init"
-require "chef/util/path_helper"
+require_relative "init"
+require_relative "../../util/path_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/service/invokercd.rb b/lib/chef/provider/service/invokercd.rb
index 9477afec48..a6e744ba8e 100644
--- a/lib/chef/provider/service/invokercd.rb
+++ b/lib/chef/provider/service/invokercd.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/service/init"
+require_relative "init"
class Chef
class Provider
diff --git a/lib/chef/provider/service/macosx.rb b/lib/chef/provider/service/macosx.rb
index 2a01b742c7..0e8a29ce32 100644
--- a/lib/chef/provider/service/macosx.rb
+++ b/lib/chef/provider/service/macosx.rb
@@ -18,10 +18,10 @@
require "etc"
require "rexml/document"
-require "chef/resource/service"
-require "chef/resource/macosx_service"
-require "chef/provider/service/simple"
-require "chef/util/path_helper"
+require_relative "../../resource/service"
+require_relative "../../resource/macosx_service"
+require_relative "simple"
+require_relative "../../util/path_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/service/openbsd.rb b/lib/chef/provider/service/openbsd.rb
index 34e05df504..3f28e69ce3 100644
--- a/lib/chef/provider/service/openbsd.rb
+++ b/lib/chef/provider/service/openbsd.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
-require "chef/provider/service/init"
-require "chef/resource/service"
+require_relative "../../mixin/shell_out"
+require_relative "init"
+require_relative "../../resource/service"
class Chef
class Provider
diff --git a/lib/chef/provider/service/redhat.rb b/lib/chef/provider/service/redhat.rb
index 9e8ff30216..f3c081534c 100644
--- a/lib/chef/provider/service/redhat.rb
+++ b/lib/chef/provider/service/redhat.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/service/init"
+require_relative "init"
class Chef
class Provider
diff --git a/lib/chef/provider/service/simple.rb b/lib/chef/provider/service/simple.rb
index 9bfcbb1410..302a2e75f4 100644
--- a/lib/chef/provider/service/simple.rb
+++ b/lib/chef/provider/service/simple.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/service"
-require "chef/resource/service"
+require_relative "../service"
+require_relative "../../resource/service"
class Chef
class Provider
diff --git a/lib/chef/provider/service/solaris.rb b/lib/chef/provider/service/solaris.rb
index 51105bd06f..b7c3541e30 100644
--- a/lib/chef/provider/service/solaris.rb
+++ b/lib/chef/provider/service/solaris.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/service"
-require "chef/resource/service"
+require_relative "../service"
+require_relative "../../resource/service"
class Chef
class Provider
diff --git a/lib/chef/provider/service/systemd.rb b/lib/chef/provider/service/systemd.rb
index 6d5bc338c7..e15eab23bd 100644
--- a/lib/chef/provider/service/systemd.rb
+++ b/lib/chef/provider/service/systemd.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/resource/service"
-require "chef/provider/service/simple"
-require "chef/mixin/which"
+require_relative "../../resource/service"
+require_relative "simple"
+require_relative "../../mixin/which"
require "shellwords"
class Chef::Provider::Service::Systemd < Chef::Provider::Service::Simple
diff --git a/lib/chef/provider/service/upstart.rb b/lib/chef/provider/service/upstart.rb
index 96ed16dc8f..f4ca45f8ea 100644
--- a/lib/chef/provider/service/upstart.rb
+++ b/lib/chef/provider/service/upstart.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/resource/service"
-require "chef/provider/service/simple"
-require "chef/util/file_edit"
+require_relative "../../resource/service"
+require_relative "simple"
+require_relative "../../util/file_edit"
class Chef
class Provider
diff --git a/lib/chef/provider/service/windows.rb b/lib/chef/provider/service/windows.rb
index 4759e34153..d4f649ae28 100644
--- a/lib/chef/provider/service/windows.rb
+++ b/lib/chef/provider/service/windows.rb
@@ -18,10 +18,10 @@
# limitations under the License.
#
-require "chef/provider/service/simple"
-require "chef/win32_service_constants"
+require_relative "simple"
+require_relative "../../win32_service_constants"
if RUBY_PLATFORM =~ /mswin|mingw32|windows/
- require "chef/win32/error"
+ require_relative "../../win32/error"
require "win32/service"
end
diff --git a/lib/chef/provider/subversion.rb b/lib/chef/provider/subversion.rb
index adea6a6428..10be5fd7c4 100644
--- a/lib/chef/provider/subversion.rb
+++ b/lib/chef/provider/subversion.rb
@@ -18,8 +18,8 @@
# TODO subversion and git should both extend from a base SCM provider.
-require "chef/log"
-require "chef/provider"
+require_relative "../log"
+require_relative "../provider"
require "chef-config/mixin/fuzzy_hostname_matcher"
require "fileutils"
diff --git a/lib/chef/provider/systemd_unit.rb b/lib/chef/provider/systemd_unit.rb
index 328540764c..c24c088935 100644
--- a/lib/chef/provider/systemd_unit.rb
+++ b/lib/chef/provider/systemd_unit.rb
@@ -16,11 +16,11 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/mixin/which"
-require "chef/mixin/shell_out"
-require "chef/resource/file"
-require "chef/resource/file/verification/systemd_unit"
+require_relative "../provider"
+require_relative "../mixin/which"
+require_relative "../mixin/shell_out"
+require_relative "../resource/file"
+require_relative "../resource/file/verification/systemd_unit"
require "iniparse"
require "shellwords"
diff --git a/lib/chef/provider/template.rb b/lib/chef/provider/template.rb
index 05cdbdbf62..4aab1697f2 100644
--- a/lib/chef/provider/template.rb
+++ b/lib/chef/provider/template.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/provider/template_finder"
-require "chef/provider/file"
+require_relative "template_finder"
+require_relative "file"
class Chef
class Provider
diff --git a/lib/chef/provider/template/content.rb b/lib/chef/provider/template/content.rb
index 9ac5a89b3e..6a9da01127 100644
--- a/lib/chef/provider/template/content.rb
+++ b/lib/chef/provider/template/content.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mixin/template"
-require "chef/file_content_management/content_base"
+require_relative "../../mixin/template"
+require_relative "../../file_content_management/content_base"
class Chef
class Provider
diff --git a/lib/chef/provider/user.rb b/lib/chef/provider/user.rb
index 7145045785..0cd6b9a1c1 100644
--- a/lib/chef/provider/user.rb
+++ b/lib/chef/provider/user.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider"
+require_relative "../provider"
require "etc"
class Chef
diff --git a/lib/chef/provider/user/aix.rb b/lib/chef/provider/user/aix.rb
index aca0511e41..230bc6183e 100644
--- a/lib/chef/provider/user/aix.rb
+++ b/lib/chef/provider/user/aix.rb
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/provider/user"
+require_relative "../user"
class Chef
class Provider
diff --git a/lib/chef/provider/user/dscl.rb b/lib/chef/provider/user/dscl.rb
index 12be6ffb7e..70379c177e 100644
--- a/lib/chef/provider/user/dscl.rb
+++ b/lib/chef/provider/user/dscl.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
-require "chef/provider/user"
-require "chef/resource/user/dscl_user"
+require_relative "../../mixin/shell_out"
+require_relative "../user"
+require_relative "../../resource/user/dscl_user"
require "openssl"
require "plist"
-require "chef/util/path_helper"
+require_relative "../../util/path_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/user/linux.rb b/lib/chef/provider/user/linux.rb
index 7d3a3c1163..a9a3e23cd9 100644
--- a/lib/chef/provider/user/linux.rb
+++ b/lib/chef/provider/user/linux.rb
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/provider/user"
+require_relative "../user"
class Chef
class Provider
diff --git a/lib/chef/provider/user/pw.rb b/lib/chef/provider/user/pw.rb
index 42d44bab51..d03b7647ec 100644
--- a/lib/chef/provider/user/pw.rb
+++ b/lib/chef/provider/user/pw.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/provider/user"
+require_relative "../user"
class Chef
class Provider
diff --git a/lib/chef/provider/user/solaris.rb b/lib/chef/provider/user/solaris.rb
index 2c3222534d..796d3b87cc 100644
--- a/lib/chef/provider/user/solaris.rb
+++ b/lib/chef/provider/user/solaris.rb
@@ -18,7 +18,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/provider/user"
+require_relative "../user"
class Chef
class Provider
diff --git a/lib/chef/provider/user/windows.rb b/lib/chef/provider/user/windows.rb
index 6cb9cbdb19..9141e98391 100644
--- a/lib/chef/provider/user/windows.rb
+++ b/lib/chef/provider/user/windows.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/user"
-require "chef/exceptions"
+require_relative "../user"
+require_relative "../../exceptions"
require "chef/util/windows/net_user" if Chef::Platform.windows?
class Chef
diff --git a/lib/chef/provider/windows_env.rb b/lib/chef/provider/windows_env.rb
index e5af49fa8f..6b76b23928 100644
--- a/lib/chef/provider/windows_env.rb
+++ b/lib/chef/provider/windows_env.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/resource/windows_env"
-require "chef/mixin/windows_env_helper"
+require_relative "../provider"
+require_relative "../resource/windows_env"
+require_relative "../mixin/windows_env_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/windows_path.rb b/lib/chef/provider/windows_path.rb
index 1c78e20606..e0c686d025 100644
--- a/lib/chef/provider/windows_path.rb
+++ b/lib/chef/provider/windows_path.rb
@@ -17,8 +17,8 @@
#
require "chef/mixin/windows_env_helper" if Chef::Platform.windows?
-require "chef/mixin/wide_string"
-require "chef/exceptions"
+require_relative "../mixin/wide_string"
+require_relative "../exceptions"
class Chef
class Provider
diff --git a/lib/chef/provider/windows_script.rb b/lib/chef/provider/windows_script.rb
index 3b0202790c..56651a23a6 100644
--- a/lib/chef/provider/windows_script.rb
+++ b/lib/chef/provider/windows_script.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/provider/script"
-require "chef/mixin/windows_architecture_helper"
+require_relative "script"
+require_relative "../mixin/windows_architecture_helper"
class Chef
class Provider
diff --git a/lib/chef/provider/windows_task.rb b/lib/chef/provider/windows_task.rb
index 34c64199bf..dadfd45580 100644
--- a/lib/chef/provider/windows_task.rb
+++ b/lib/chef/provider/windows_task.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
+require_relative "../mixin/shell_out"
require "rexml/document"
require "iso8601" if Chef::Platform.windows?
-require "chef/mixin/powershell_out"
-require "chef/provider"
-require "chef/util/path_helper"
+require_relative "../mixin/powershell_out"
+require_relative "../provider"
+require_relative "../util/path_helper"
require "win32/taskscheduler" if Chef::Platform.windows?
class Chef
diff --git a/lib/chef/provider/yum_repository.rb b/lib/chef/provider/yum_repository.rb
index 20a7a8e3d2..f70ec2bbd9 100644
--- a/lib/chef/provider/yum_repository.rb
+++ b/lib/chef/provider/yum_repository.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/dsl/declare_resource"
-require "chef/mixin/which"
-require "chef/provider/noop"
+require_relative "../resource"
+require_relative "../dsl/declare_resource"
+require_relative "../mixin/which"
+require_relative "noop"
class Chef
class Provider
diff --git a/lib/chef/provider/zypper_repository.rb b/lib/chef/provider/zypper_repository.rb
index 369d23a396..49c880a8d0 100644
--- a/lib/chef/provider/zypper_repository.rb
+++ b/lib/chef/provider/zypper_repository.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/dsl/declare_resource"
-require "chef/provider/noop"
-require "chef/mixin/shell_out"
+require_relative "../resource"
+require_relative "../dsl/declare_resource"
+require_relative "noop"
+require_relative "../mixin/shell_out"
require "shellwords"
class Chef
diff --git a/lib/chef/provider_resolver.rb b/lib/chef/provider_resolver.rb
index c7779e52a7..b0dd0d9376 100644
--- a/lib/chef/provider_resolver.rb
+++ b/lib/chef/provider_resolver.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/platform/priority_map"
+require_relative "exceptions"
+require_relative "platform/priority_map"
class Chef
#
diff --git a/lib/chef/providers.rb b/lib/chef/providers.rb
index 4603be7746..85f2cddaf9 100644
--- a/lib/chef/providers.rb
+++ b/lib/chef/providers.rb
@@ -16,132 +16,132 @@
# limitations under the License.
#
-require "chef/provider/apt_update"
-require "chef/provider/apt_preference"
-require "chef/provider/apt_repository"
-require "chef/provider/batch"
-require "chef/provider/cookbook_file"
-require "chef/provider/cron"
-require "chef/provider/cron/solaris"
-require "chef/provider/cron/aix"
-require "chef/provider/directory"
-require "chef/provider/dsc_script"
-require "chef/provider/dsc_resource"
-require "chef/provider/execute"
-require "chef/provider/file"
-require "chef/provider/git"
-require "chef/provider/group"
-require "chef/provider/http_request"
-require "chef/provider/ifconfig"
-require "chef/provider/launchd"
-require "chef/provider/link"
-require "chef/provider/log"
-require "chef/provider/ohai"
-require "chef/provider/mdadm"
-require "chef/provider/mount"
-require "chef/provider/noop"
-require "chef/provider/package"
-require "chef/provider/powershell_script"
-require "chef/provider/osx_profile"
-require "chef/provider/reboot"
-require "chef/provider/remote_directory"
-require "chef/provider/remote_file"
-require "chef/provider/route"
-require "chef/provider/ruby_block"
-require "chef/provider/script"
-require "chef/provider/service"
-require "chef/provider/subversion"
-require "chef/provider/systemd_unit"
-require "chef/provider/template"
-require "chef/provider/user"
-require "chef/provider/whyrun_safe_ruby_block"
-require "chef/provider/windows_env"
-require "chef/provider/yum_repository"
-require "chef/provider/windows_task"
-require "chef/provider/zypper_repository"
-require "chef/provider/windows_path"
+require_relative "provider/apt_update"
+require_relative "provider/apt_preference"
+require_relative "provider/apt_repository"
+require_relative "provider/batch"
+require_relative "provider/cookbook_file"
+require_relative "provider/cron"
+require_relative "provider/cron/solaris"
+require_relative "provider/cron/aix"
+require_relative "provider/directory"
+require_relative "provider/dsc_script"
+require_relative "provider/dsc_resource"
+require_relative "provider/execute"
+require_relative "provider/file"
+require_relative "provider/git"
+require_relative "provider/group"
+require_relative "provider/http_request"
+require_relative "provider/ifconfig"
+require_relative "provider/launchd"
+require_relative "provider/link"
+require_relative "provider/log"
+require_relative "provider/ohai"
+require_relative "provider/mdadm"
+require_relative "provider/mount"
+require_relative "provider/noop"
+require_relative "provider/package"
+require_relative "provider/powershell_script"
+require_relative "provider/osx_profile"
+require_relative "provider/reboot"
+require_relative "provider/remote_directory"
+require_relative "provider/remote_file"
+require_relative "provider/route"
+require_relative "provider/ruby_block"
+require_relative "provider/script"
+require_relative "provider/service"
+require_relative "provider/subversion"
+require_relative "provider/systemd_unit"
+require_relative "provider/template"
+require_relative "provider/user"
+require_relative "provider/whyrun_safe_ruby_block"
+require_relative "provider/windows_env"
+require_relative "provider/yum_repository"
+require_relative "provider/windows_task"
+require_relative "provider/zypper_repository"
+require_relative "provider/windows_path"
-require "chef/provider/package/apt"
-require "chef/provider/package/chocolatey"
-require "chef/provider/package/dpkg"
-require "chef/provider/package/dnf"
-require "chef/provider/package/freebsd/port"
-require "chef/provider/package/freebsd/pkgng"
-require "chef/provider/package/homebrew"
-require "chef/provider/package/ips"
-require "chef/provider/package/macports"
-require "chef/provider/package/openbsd"
-require "chef/provider/package/pacman"
-require "chef/provider/package/portage"
-require "chef/provider/package/paludis"
-require "chef/provider/package/rpm"
-require "chef/provider/package/rubygems"
-require "chef/provider/package/yum"
-require "chef/provider/package/zypper"
-require "chef/provider/package/solaris"
-require "chef/provider/package/smartos"
-require "chef/provider/package/bff"
-require "chef/provider/package/cab"
-require "chef/provider/package/powershell"
-require "chef/provider/package/msu"
-require "chef/provider/package/snap"
+require_relative "provider/package/apt"
+require_relative "provider/package/chocolatey"
+require_relative "provider/package/dpkg"
+require_relative "provider/package/dnf"
+require_relative "provider/package/freebsd/port"
+require_relative "provider/package/freebsd/pkgng"
+require_relative "provider/package/homebrew"
+require_relative "provider/package/ips"
+require_relative "provider/package/macports"
+require_relative "provider/package/openbsd"
+require_relative "provider/package/pacman"
+require_relative "provider/package/portage"
+require_relative "provider/package/paludis"
+require_relative "provider/package/rpm"
+require_relative "provider/package/rubygems"
+require_relative "provider/package/yum"
+require_relative "provider/package/zypper"
+require_relative "provider/package/solaris"
+require_relative "provider/package/smartos"
+require_relative "provider/package/bff"
+require_relative "provider/package/cab"
+require_relative "provider/package/powershell"
+require_relative "provider/package/msu"
+require_relative "provider/package/snap"
-require "chef/provider/service/arch"
-require "chef/provider/service/freebsd"
-require "chef/provider/service/gentoo"
-require "chef/provider/service/init"
-require "chef/provider/service/invokercd"
-require "chef/provider/service/debian"
-require "chef/provider/service/openbsd"
-require "chef/provider/service/redhat"
-require "chef/provider/service/insserv"
-require "chef/provider/service/simple"
-require "chef/provider/service/systemd"
-require "chef/provider/service/upstart"
-require "chef/provider/service/windows"
-require "chef/provider/service/solaris"
-require "chef/provider/service/macosx"
-require "chef/provider/service/aixinit"
-require "chef/provider/service/aix"
+require_relative "provider/service/arch"
+require_relative "provider/service/freebsd"
+require_relative "provider/service/gentoo"
+require_relative "provider/service/init"
+require_relative "provider/service/invokercd"
+require_relative "provider/service/debian"
+require_relative "provider/service/openbsd"
+require_relative "provider/service/redhat"
+require_relative "provider/service/insserv"
+require_relative "provider/service/simple"
+require_relative "provider/service/systemd"
+require_relative "provider/service/upstart"
+require_relative "provider/service/windows"
+require_relative "provider/service/solaris"
+require_relative "provider/service/macosx"
+require_relative "provider/service/aixinit"
+require_relative "provider/service/aix"
-require "chef/provider/user/aix"
-require "chef/provider/user/dscl"
-require "chef/provider/user/linux"
-require "chef/provider/user/pw"
-require "chef/provider/user/solaris"
-require "chef/provider/user/windows"
+require_relative "provider/user/aix"
+require_relative "provider/user/dscl"
+require_relative "provider/user/linux"
+require_relative "provider/user/pw"
+require_relative "provider/user/solaris"
+require_relative "provider/user/windows"
-require "chef/provider/group/aix"
-require "chef/provider/group/dscl"
-require "chef/provider/group/gpasswd"
-require "chef/provider/group/groupadd"
-require "chef/provider/group/groupmod"
-require "chef/provider/group/pw"
-require "chef/provider/group/solaris"
-require "chef/provider/group/suse"
-require "chef/provider/group/usermod"
-require "chef/provider/group/windows"
+require_relative "provider/group/aix"
+require_relative "provider/group/dscl"
+require_relative "provider/group/gpasswd"
+require_relative "provider/group/groupadd"
+require_relative "provider/group/groupmod"
+require_relative "provider/group/pw"
+require_relative "provider/group/solaris"
+require_relative "provider/group/suse"
+require_relative "provider/group/usermod"
+require_relative "provider/group/windows"
-require "chef/provider/mount/mount"
-require "chef/provider/mount/aix"
-require "chef/provider/mount/solaris"
-require "chef/provider/mount/windows"
+require_relative "provider/mount/mount"
+require_relative "provider/mount/aix"
+require_relative "provider/mount/solaris"
+require_relative "provider/mount/windows"
-require "chef/provider/remote_file/ftp"
-require "chef/provider/remote_file/sftp"
-require "chef/provider/remote_file/http"
-require "chef/provider/remote_file/local_file"
-require "chef/provider/remote_file/network_file"
-require "chef/provider/remote_file/fetcher"
+require_relative "provider/remote_file/ftp"
+require_relative "provider/remote_file/sftp"
+require_relative "provider/remote_file/http"
+require_relative "provider/remote_file/local_file"
+require_relative "provider/remote_file/network_file"
+require_relative "provider/remote_file/fetcher"
-require "chef/provider/lwrp_base"
-require "chef/provider/registry_key"
+require_relative "provider/lwrp_base"
+require_relative "provider/registry_key"
-require "chef/provider/file/content"
-require "chef/provider/remote_file/content"
-require "chef/provider/cookbook_file/content"
-require "chef/provider/template/content"
+require_relative "provider/file/content"
+require_relative "provider/remote_file/content"
+require_relative "provider/cookbook_file/content"
+require_relative "provider/template/content"
-require "chef/provider/ifconfig/redhat"
-require "chef/provider/ifconfig/debian"
-require "chef/provider/ifconfig/aix"
+require_relative "provider/ifconfig/redhat"
+require_relative "provider/ifconfig/debian"
+require_relative "provider/ifconfig/aix"
diff --git a/lib/chef/recipe.rb b/lib/chef/recipe.rb
index 209b7faa74..6bfc74d900 100644
--- a/lib/chef/recipe.rb
+++ b/lib/chef/recipe.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/dsl/recipe"
-require "chef/mixin/from_file"
-require "chef/mixin/deprecation"
+require_relative "dsl/recipe"
+require_relative "mixin/from_file"
+require_relative "mixin/deprecation"
class Chef
# == Chef::Recipe
diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb
index e08b2b0bc3..41fda3e665 100644
--- a/lib/chef/resource.rb
+++ b/lib/chef/resource.rb
@@ -18,32 +18,32 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/dsl/data_query"
-require "chef/dsl/registry_helper"
-require "chef/dsl/reboot_pending"
-require "chef/dsl/resources"
-require "chef/dsl/declare_resource"
-require "chef/json_compat"
-require "chef/mixin/convert_to_class_name"
-require "chef/guard_interpreter/resource_guard_interpreter"
-require "chef/resource/conditional"
-require "chef/resource/conditional_action_not_nothing"
-require "chef/resource/action_class"
-require "chef/resource_collection"
-require "chef/node_map"
-require "chef/node"
-require "chef/platform"
-require "chef/resource/resource_notification"
-require "chef/provider_resolver"
-require "chef/resource_resolver"
-require "chef/provider"
+require_relative "exceptions"
+require_relative "dsl/data_query"
+require_relative "dsl/registry_helper"
+require_relative "dsl/reboot_pending"
+require_relative "dsl/resources"
+require_relative "dsl/declare_resource"
+require_relative "json_compat"
+require_relative "mixin/convert_to_class_name"
+require_relative "guard_interpreter/resource_guard_interpreter"
+require_relative "resource/conditional"
+require_relative "resource/conditional_action_not_nothing"
+require_relative "resource/action_class"
+require_relative "resource_collection"
+require_relative "node_map"
+require_relative "node"
+require_relative "platform"
+require_relative "resource/resource_notification"
+require_relative "provider_resolver"
+require_relative "resource_resolver"
+require_relative "provider"
require "set"
-require "chef/mixin/deprecation"
-require "chef/mixin/properties"
-require "chef/mixin/provides"
-require "chef/dsl/universal"
+require_relative "mixin/deprecation"
+require_relative "mixin/properties"
+require_relative "mixin/provides"
+require_relative "dsl/universal"
class Chef
class Resource
@@ -1172,10 +1172,9 @@ class Chef
# Set or return if this resource is in preview mode.
#
- # This is used in Chef core as part of the process of migrating resources
- # from a cookbook into core. It should be set to `true` when a cookbook
- # resource is added to core, and then removed (set to `false`) in the next
- # major release.
+ # This only has value in the resource_inspector to mark a resource as being new-to-chef-core.
+ # Its meaning is probably more equivalent to "experimental" in that the API might change even
+ # in minor versions due to bugfixing and is NOT considered "stable" yet.
#
# @param value [nil, Boolean] If nil, get the current value. If not nil, set
# the value of the flag.
@@ -1354,12 +1353,6 @@ class Chef
remove_canonical_dsl
end
- # If a resource is in preview mode, set allow_cookbook_override on all its
- # mappings by default.
- if preview_resource && !options.include?(:allow_cookbook_override)
- options[:allow_cookbook_override] = true
- end
-
if @chef_version_for_provides && !options.include?(:chef_version)
options[:chef_version] = @chef_version_for_provides
end
@@ -1596,4 +1589,4 @@ class Chef
end
# Requiring things at the bottom breaks cycles
-require "chef/chef_class"
+require_relative "chef_class"
diff --git a/lib/chef/resource/action_class.rb b/lib/chef/resource/action_class.rb
index 1c25e3278e..03756062ef 100644
--- a/lib/chef/resource/action_class.rb
+++ b/lib/chef/resource/action_class.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/provider"
-require "chef/exceptions"
-require "chef/dsl/recipe"
+require_relative "../provider"
+require_relative "../exceptions"
+require_relative "../dsl/recipe"
class Chef
class Resource
diff --git a/lib/chef/resource/apt_package.rb b/lib/chef/resource/apt_package.rb
index e55d37fcc8..c142c142ce 100644
--- a/lib/chef/resource/apt_package.rb
+++ b/lib/chef/resource/apt_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
@@ -35,6 +35,14 @@ class Chef
description: "Overwrite existing configuration files with those supplied by the package, if prompted by APT.",
default: false
+ property :response_file, String,
+ description: "The direct path to the file used to pre-seed a package.",
+ desired_state: false
+
+ property :response_file_variables, Hash,
+ description: "A Hash of response file variables in the form of {'VARIABLE' => 'VALUE'}.",
+ default: lazy { Hash.new }, desired_state: false
+
end
end
end
diff --git a/lib/chef/resource/apt_preference.rb b/lib/chef/resource/apt_preference.rb
index caa0f01305..aebf1af763 100644
--- a/lib/chef/resource/apt_preference.rb
+++ b/lib/chef/resource/apt_preference.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/apt_repository.rb b/lib/chef/resource/apt_repository.rb
index 145b515a41..a182562dc0 100644
--- a/lib/chef/resource/apt_repository.rb
+++ b/lib/chef/resource/apt_repository.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/apt_update.rb b/lib/chef/resource/apt_update.rb
index 680806bc26..baafd5a797 100644
--- a/lib/chef/resource/apt_update.rb
+++ b/lib/chef/resource/apt_update.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/archive_file.rb b/lib/chef/resource/archive_file.rb
index f6adfda083..156c0c9775 100644
--- a/lib/chef/resource/archive_file.rb
+++ b/lib/chef/resource/archive_file.rb
@@ -18,7 +18,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/bash.rb b/lib/chef/resource/bash.rb
index 22a84f4134..0e11dcb8b1 100644
--- a/lib/chef/resource/bash.rb
+++ b/lib/chef/resource/bash.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/script"
-require "chef/provider/script"
+require_relative "script"
+require_relative "../provider/script"
class Chef
class Resource
diff --git a/lib/chef/resource/batch.rb b/lib/chef/resource/batch.rb
index e3bff8145c..fc8c892a3b 100644
--- a/lib/chef/resource/batch.rb
+++ b/lib/chef/resource/batch.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/windows_script"
+require_relative "windows_script"
class Chef
class Resource
diff --git a/lib/chef/resource/bff_package.rb b/lib/chef/resource/bff_package.rb
index 8750cb0b2b..819d0a8eb8 100644
--- a/lib/chef/resource/bff_package.rb
+++ b/lib/chef/resource/bff_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/breakpoint.rb b/lib/chef/resource/breakpoint.rb
index 820ac70c09..0118d06bdf 100644
--- a/lib/chef/resource/breakpoint.rb
+++ b/lib/chef/resource/breakpoint.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/dist"
+require_relative "../resource"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/build_essential.rb b/lib/chef/resource/build_essential.rb
index e9cb656ca6..de085f694b 100644
--- a/lib/chef/resource/build_essential.rb
+++ b/lib/chef/resource/build_essential.rb
@@ -14,7 +14,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/cab_package.rb b/lib/chef/resource/cab_package.rb
index 501a0dfa26..1c1907801c 100644
--- a/lib/chef/resource/cab_package.rb
+++ b/lib/chef/resource/cab_package.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/mixin/uris"
+require_relative "package"
+require_relative "../mixin/uris"
class Chef
class Resource
diff --git a/lib/chef/resource/chef_gem.rb b/lib/chef/resource/chef_gem.rb
index 7655d6651c..2410a316fd 100644
--- a/lib/chef/resource/chef_gem.rb
+++ b/lib/chef/resource/chef_gem.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/resource/gem_package"
-require "chef/dist"
+require_relative "package"
+require_relative "gem_package"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/chef_handler.rb b/lib/chef/resource/chef_handler.rb
index 2bac109697..70174e2cce 100644
--- a/lib/chef/resource/chef_handler.rb
+++ b/lib/chef/resource/chef_handler.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/chocolatey_package.rb b/lib/chef/resource/chocolatey_package.rb
index c7d5a8a680..04e5f3602c 100644
--- a/lib/chef/resource/chocolatey_package.rb
+++ b/lib/chef/resource/chocolatey_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/conditional.rb b/lib/chef/resource/conditional.rb
index 452718cae8..c35099e7e8 100644
--- a/lib/chef/resource/conditional.rb
+++ b/lib/chef/resource/conditional.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mixin/shell_out"
-require "chef/guard_interpreter"
+require_relative "../mixin/shell_out"
+require_relative "../guard_interpreter"
class Chef
class Resource
diff --git a/lib/chef/resource/cookbook_file.rb b/lib/chef/resource/cookbook_file.rb
index bee4a5f3f4..68f1e810df 100644
--- a/lib/chef/resource/cookbook_file.rb
+++ b/lib/chef/resource/cookbook_file.rb
@@ -18,10 +18,10 @@
# limitations under the License.
#
-require "chef/resource/file"
-require "chef/provider/cookbook_file"
-require "chef/mixin/securable"
-require "chef/dist"
+require_relative "file"
+require_relative "../provider/cookbook_file"
+require_relative "../mixin/securable"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/cron.rb b/lib/chef/resource/cron.rb
index 7e9f3022a7..87feee8967 100644
--- a/lib/chef/resource/cron.rb
+++ b/lib/chef/resource/cron.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
require "chef/provider/cron" # do not remove. we actually need this below
class Chef
diff --git a/lib/chef/resource/cron_access.rb b/lib/chef/resource/cron_access.rb
index 5785eddbe5..54b06c4233 100644
--- a/lib/chef/resource/cron_access.rb
+++ b/lib/chef/resource/cron_access.rb
@@ -18,7 +18,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/cron_d.rb b/lib/chef/resource/cron_d.rb
index f42318b574..b4cb5bd831 100644
--- a/lib/chef/resource/cron_d.rb
+++ b/lib/chef/resource/cron_d.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
require "shellwords"
class Chef
diff --git a/lib/chef/resource/csh.rb b/lib/chef/resource/csh.rb
index 0938a19cb1..c3b03e846e 100644
--- a/lib/chef/resource/csh.rb
+++ b/lib/chef/resource/csh.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/script"
-require "chef/provider/script"
+require_relative "script"
+require_relative "../provider/script"
class Chef
class Resource
diff --git a/lib/chef/resource/directory.rb b/lib/chef/resource/directory.rb
index f2e1aef254..0870598795 100644
--- a/lib/chef/resource/directory.rb
+++ b/lib/chef/resource/directory.rb
@@ -18,8 +18,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/mixin/securable"
+require_relative "../resource"
+require_relative "../mixin/securable"
class Chef
class Resource
diff --git a/lib/chef/resource/dmg_package.rb b/lib/chef/resource/dmg_package.rb
index 97329042a6..660c6a332e 100644
--- a/lib/chef/resource/dmg_package.rb
+++ b/lib/chef/resource/dmg_package.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/dnf_package.rb b/lib/chef/resource/dnf_package.rb
index 6590c6c003..616d79a337 100644
--- a/lib/chef/resource/dnf_package.rb
+++ b/lib/chef/resource/dnf_package.rb
@@ -15,10 +15,10 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/mixin/which"
-require "chef/mixin/shell_out"
-require "chef/dist"
+require_relative "package"
+require_relative "../mixin/which"
+require_relative "../mixin/shell_out"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/dpkg_package.rb b/lib/chef/resource/dpkg_package.rb
index 742b291508..2072ad8cfc 100644
--- a/lib/chef/resource/dpkg_package.rb
+++ b/lib/chef/resource/dpkg_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
@@ -28,6 +28,14 @@ class Chef
property :source, [ String, Array, nil ],
description: "The path to a package in the local file system."
+
+ property :response_file, String,
+ description: "The direct path to the file used to pre-seed a package.",
+ desired_state: false
+
+ property :response_file_variables, Hash,
+ description: "A Hash of response file variables in the form of {'VARIABLE' => 'VALUE'}.",
+ default: lazy { Hash.new }, desired_state: false
end
end
end
diff --git a/lib/chef/resource/dsc_resource.rb b/lib/chef/resource/dsc_resource.rb
index 06c4103bc3..a378b6f685 100644
--- a/lib/chef/resource/dsc_resource.rb
+++ b/lib/chef/resource/dsc_resource.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/dsl/powershell"
+require_relative "../dsl/powershell"
class Chef
class Resource
diff --git a/lib/chef/resource/dsc_script.rb b/lib/chef/resource/dsc_script.rb
index d98c74ccc3..e1eab63fcc 100644
--- a/lib/chef/resource/dsc_script.rb
+++ b/lib/chef/resource/dsc_script.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/exceptions"
-require "chef/dsl/powershell"
+require_relative "../resource"
+require_relative "../exceptions"
+require_relative "../dsl/powershell"
class Chef
class Resource
diff --git a/lib/chef/resource/execute.rb b/lib/chef/resource/execute.rb
index de3b7e044a..211caef0a1 100644
--- a/lib/chef/resource/execute.rb
+++ b/lib/chef/resource/execute.rb
@@ -17,14 +17,15 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/dist"
+require_relative "../resource"
+require_relative "../dist"
class Chef
class Resource
class Execute < Chef::Resource
resource_name :execute
- provides :execute
+ provides :execute, target_mode: true
+
description "Use the execute resource to execute a single command. Commands that"\
" are executed with this resource are (by their nature) not idempotent,"\
" as they are typically unique to the environment in which they are run."\
diff --git a/lib/chef/resource/file.rb b/lib/chef/resource/file.rb
index 1875846d79..3761a1d51a 100644
--- a/lib/chef/resource/file.rb
+++ b/lib/chef/resource/file.rb
@@ -17,12 +17,12 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/platform/query_helpers"
-require "chef/mixin/securable"
-require "chef/resource/file/verification"
+require_relative "../resource"
+require_relative "../platform/query_helpers"
+require_relative "../mixin/securable"
+require_relative "file/verification"
require "pathname"
-require "chef/dist"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/file/verification.rb b/lib/chef/resource/file/verification.rb
index ae4f9043b2..c0739a6d44 100644
--- a/lib/chef/resource/file/verification.rb
+++ b/lib/chef/resource/file/verification.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/guard_interpreter"
-require "chef/mixin/descendants_tracker"
+require_relative "../../exceptions"
+require_relative "../../guard_interpreter"
+require_relative "../../mixin/descendants_tracker"
class Chef
class Resource
diff --git a/lib/chef/resource/file/verification/systemd_unit.rb b/lib/chef/resource/file/verification/systemd_unit.rb
index b492b32d39..7e4090b5ac 100644
--- a/lib/chef/resource/file/verification/systemd_unit.rb
+++ b/lib/chef/resource/file/verification/systemd_unit.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/mixin/which"
+require_relative "../../../mixin/which"
class Chef
class Resource
diff --git a/lib/chef/resource/freebsd_package.rb b/lib/chef/resource/freebsd_package.rb
index 0f92d7c229..dccb1e1a4f 100644
--- a/lib/chef/resource/freebsd_package.rb
+++ b/lib/chef/resource/freebsd_package.rb
@@ -18,10 +18,10 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/provider/package/freebsd/port"
-require "chef/provider/package/freebsd/pkgng"
-require "chef/mixin/shell_out"
+require_relative "package"
+require_relative "../provider/package/freebsd/port"
+require_relative "../provider/package/freebsd/pkgng"
+require_relative "../mixin/shell_out"
class Chef
class Resource
diff --git a/lib/chef/resource/gem_package.rb b/lib/chef/resource/gem_package.rb
index e057cbd485..e736920811 100644
--- a/lib/chef/resource/gem_package.rb
+++ b/lib/chef/resource/gem_package.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/dist"
+require_relative "package"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/git.rb b/lib/chef/resource/git.rb
index d0a78adc0e..95c5aa346a 100644
--- a/lib/chef/resource/git.rb
+++ b/lib/chef/resource/git.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/scm"
+require_relative "scm"
class Chef
class Resource
diff --git a/lib/chef/resource/homebrew_cask.rb b/lib/chef/resource/homebrew_cask.rb
index 1f5a9afa81..6d9d9867d8 100644
--- a/lib/chef/resource/homebrew_cask.rb
+++ b/lib/chef/resource/homebrew_cask.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/mixin/homebrew_user"
+require_relative "../resource"
+require_relative "../mixin/homebrew_user"
class Chef
class Resource
diff --git a/lib/chef/resource/homebrew_package.rb b/lib/chef/resource/homebrew_package.rb
index 930e25d820..50bbfb0847 100644
--- a/lib/chef/resource/homebrew_package.rb
+++ b/lib/chef/resource/homebrew_package.rb
@@ -18,9 +18,9 @@
# limitations under the License.
#
-require "chef/provider/package"
-require "chef/resource/package"
-require "chef/dist"
+require_relative "../provider/package"
+require_relative "package"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/homebrew_tap.rb b/lib/chef/resource/homebrew_tap.rb
index bbcc0b1463..6e6d9c823f 100644
--- a/lib/chef/resource/homebrew_tap.rb
+++ b/lib/chef/resource/homebrew_tap.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/mixin/homebrew_user"
+require_relative "../resource"
+require_relative "../mixin/homebrew_user"
class Chef
class Resource
diff --git a/lib/chef/resource/hostname.rb b/lib/chef/resource/hostname.rb
index d0bf9b9a4b..87d7328ad3 100644
--- a/lib/chef/resource/hostname.rb
+++ b/lib/chef/resource/hostname.rb
@@ -12,7 +12,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/http_request.rb b/lib/chef/resource/http_request.rb
index 455d032819..efcb807ed4 100644
--- a/lib/chef/resource/http_request.rb
+++ b/lib/chef/resource/http_request.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/ifconfig.rb b/lib/chef/resource/ifconfig.rb
index 7ca90eb935..5efc7b0150 100644
--- a/lib/chef/resource/ifconfig.rb
+++ b/lib/chef/resource/ifconfig.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/ips_package.rb b/lib/chef/resource/ips_package.rb
index ff154e8bd8..495cb2bc5a 100644
--- a/lib/chef/resource/ips_package.rb
+++ b/lib/chef/resource/ips_package.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/provider/package/ips"
+require_relative "package"
+require_relative "../provider/package/ips"
class Chef
class Resource
diff --git a/lib/chef/resource/kernel_module.rb b/lib/chef/resource/kernel_module.rb
index 39c792cf3b..8b39b0e1d6 100644
--- a/lib/chef/resource/kernel_module.rb
+++ b/lib/chef/resource/kernel_module.rb
@@ -6,7 +6,7 @@
# Copyright 2016-2018, Shopify Inc.
# Copyright 2018, Chef Software, Inc.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/ksh.rb b/lib/chef/resource/ksh.rb
index f0bc277d17..a150efe330 100644
--- a/lib/chef/resource/ksh.rb
+++ b/lib/chef/resource/ksh.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/script"
+require_relative "script"
class Chef
class Resource
diff --git a/lib/chef/resource/launchd.rb b/lib/chef/resource/launchd.rb
index df01675de1..331124bf13 100644
--- a/lib/chef/resource/launchd.rb
+++ b/lib/chef/resource/launchd.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/link.rb b/lib/chef/resource/link.rb
index adb8e10533..11796001e3 100644
--- a/lib/chef/resource/link.rb
+++ b/lib/chef/resource/link.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/mixin/securable"
+require_relative "../resource"
+require_relative "../mixin/securable"
class Chef
class Resource
@@ -78,7 +78,7 @@ class Chef
# sure we are not on such a platform.
def verify_links_supported!
if Chef::Platform.windows?
- require "chef/win32/file"
+ require_relative "../win32/file"
begin
Chef::ReservedNames::Win32::File.verify_links_supported!
rescue Chef::Exceptions::Win32APIFunctionNotImplemented => e
diff --git a/lib/chef/resource/locale.rb b/lib/chef/resource/locale.rb
index 52170e8765..7331a5a36c 100644
--- a/lib/chef/resource/locale.rb
+++ b/lib/chef/resource/locale.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/log.rb b/lib/chef/resource/log.rb
index b97b5c9e66..da996f28ba 100644
--- a/lib/chef/resource/log.rb
+++ b/lib/chef/resource/log.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/lwrp_base.rb b/lib/chef/resource/lwrp_base.rb
index ed8a3b205d..cfbc3d8632 100644
--- a/lib/chef/resource/lwrp_base.rb
+++ b/lib/chef/resource/lwrp_base.rb
@@ -18,13 +18,13 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/resource_resolver"
-require "chef/node"
-require "chef/log"
-require "chef/exceptions"
-require "chef/mixin/convert_to_class_name"
-require "chef/mixin/from_file"
+require_relative "../resource"
+require_relative "../resource_resolver"
+require_relative "../node"
+require_relative "../log"
+require_relative "../exceptions"
+require_relative "../mixin/convert_to_class_name"
+require_relative "../mixin/from_file"
require "chef/mixin/params_validate" # for DelayedEvaluator
class Chef
diff --git a/lib/chef/resource/macos_userdefaults.rb b/lib/chef/resource/macos_userdefaults.rb
index 5eed3f8648..9499cebd0c 100644
--- a/lib/chef/resource/macos_userdefaults.rb
+++ b/lib/chef/resource/macos_userdefaults.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/macosx_service.rb b/lib/chef/resource/macosx_service.rb
index 37681ca930..f6b463e61b 100644
--- a/lib/chef/resource/macosx_service.rb
+++ b/lib/chef/resource/macosx_service.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/service"
+require_relative "service"
class Chef
class Resource
diff --git a/lib/chef/resource/macports_package.rb b/lib/chef/resource/macports_package.rb
index 254d7e7c5f..a1eff28051 100644
--- a/lib/chef/resource/macports_package.rb
+++ b/lib/chef/resource/macports_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/mdadm.rb b/lib/chef/resource/mdadm.rb
index 382573791e..1cec1d598e 100644
--- a/lib/chef/resource/mdadm.rb
+++ b/lib/chef/resource/mdadm.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/mount.rb b/lib/chef/resource/mount.rb
index 4c20a62cf8..586aa6e375 100644
--- a/lib/chef/resource/mount.rb
+++ b/lib/chef/resource/mount.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/msu_package.rb b/lib/chef/resource/msu_package.rb
index 9fd39491c9..628af49184 100644
--- a/lib/chef/resource/msu_package.rb
+++ b/lib/chef/resource/msu_package.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/mixin/uris"
+require_relative "package"
+require_relative "../mixin/uris"
class Chef
class Resource
diff --git a/lib/chef/resource/ohai.rb b/lib/chef/resource/ohai.rb
index 59f2967a2f..68a7e487b9 100644
--- a/lib/chef/resource/ohai.rb
+++ b/lib/chef/resource/ohai.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/dist"
+require_relative "../resource"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/ohai_hint.rb b/lib/chef/resource/ohai_hint.rb
index e8de5f602a..2d54e3d568 100644
--- a/lib/chef/resource/ohai_hint.rb
+++ b/lib/chef/resource/ohai_hint.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/openbsd_package.rb b/lib/chef/resource/openbsd_package.rb
index 85109de9e8..b1321970b9 100644
--- a/lib/chef/resource/openbsd_package.rb
+++ b/lib/chef/resource/openbsd_package.rb
@@ -19,9 +19,9 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/provider/package/openbsd"
-require "chef/mixin/shell_out"
+require_relative "package"
+require_relative "../provider/package/openbsd"
+require_relative "../mixin/shell_out"
class Chef
class Resource
diff --git a/lib/chef/resource/openssl_dhparam.rb b/lib/chef/resource/openssl_dhparam.rb
index 05347ec494..4799761e79 100644
--- a/lib/chef/resource/openssl_dhparam.rb
+++ b/lib/chef/resource/openssl_dhparam.rb
@@ -15,12 +15,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslDhparam < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_dhparam
diff --git a/lib/chef/resource/openssl_ec_private_key.rb b/lib/chef/resource/openssl_ec_private_key.rb
index dc8cd060d6..996dd46734 100644
--- a/lib/chef/resource/openssl_ec_private_key.rb
+++ b/lib/chef/resource/openssl_ec_private_key.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslEcPrivateKey < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_ec_private_key
diff --git a/lib/chef/resource/openssl_ec_public_key.rb b/lib/chef/resource/openssl_ec_public_key.rb
index fad7fd9713..e4ef6b048e 100644
--- a/lib/chef/resource/openssl_ec_public_key.rb
+++ b/lib/chef/resource/openssl_ec_public_key.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslEcPublicKey < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_ec_public_key
diff --git a/lib/chef/resource/openssl_rsa_private_key.rb b/lib/chef/resource/openssl_rsa_private_key.rb
index fb19e8ff99..4eee99a7f0 100644
--- a/lib/chef/resource/openssl_rsa_private_key.rb
+++ b/lib/chef/resource/openssl_rsa_private_key.rb
@@ -15,12 +15,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslRsaPrivateKey < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_rsa_private_key
diff --git a/lib/chef/resource/openssl_rsa_public_key.rb b/lib/chef/resource/openssl_rsa_public_key.rb
index be7f25030f..c445b49b75 100644
--- a/lib/chef/resource/openssl_rsa_public_key.rb
+++ b/lib/chef/resource/openssl_rsa_public_key.rb
@@ -15,12 +15,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslRsaPublicKey < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_rsa_public_key
diff --git a/lib/chef/resource/openssl_x509_certificate.rb b/lib/chef/resource/openssl_x509_certificate.rb
index 71a1f8d6d7..96a0ec3d6d 100644
--- a/lib/chef/resource/openssl_x509_certificate.rb
+++ b/lib/chef/resource/openssl_x509_certificate.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslX509Certificate < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_x509_certificate
diff --git a/lib/chef/resource/openssl_x509_crl.rb b/lib/chef/resource/openssl_x509_crl.rb
index c6a2918320..a04ef2e5e2 100644
--- a/lib/chef/resource/openssl_x509_crl.rb
+++ b/lib/chef/resource/openssl_x509_crl.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslX509Crl < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_x509_crl
diff --git a/lib/chef/resource/openssl_x509_request.rb b/lib/chef/resource/openssl_x509_request.rb
index affc761723..b33a95dfaf 100644
--- a/lib/chef/resource/openssl_x509_request.rb
+++ b/lib/chef/resource/openssl_x509_request.rb
@@ -16,12 +16,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class OpensslX509Request < Chef::Resource
- require "chef/mixin/openssl_helper"
+ require_relative "../mixin/openssl_helper"
include Chef::Mixin::OpenSSLHelper
resource_name :openssl_x509_request
diff --git a/lib/chef/resource/osx_profile.rb b/lib/chef/resource/osx_profile.rb
index 90166cc338..0641c66db9 100644
--- a/lib/chef/resource/osx_profile.rb
+++ b/lib/chef/resource/osx_profile.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/package.rb b/lib/chef/resource/package.rb
index 71f030244b..7f16dd0ce2 100644
--- a/lib/chef/resource/package.rb
+++ b/lib/chef/resource/package.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
@@ -52,14 +52,6 @@ class Chef
description: "One (or more) additional command options that are passed to the command.",
coerce: proc { |x| x.is_a?(String) ? x.shellsplit : x }
- property :response_file, String,
- description: "The direct path to the file used to pre-seed a package.",
- desired_state: false
-
- property :response_file_variables, Hash,
- description: "A Hash of response file variables in the form of {'VARIABLE' => 'VALUE'}.",
- default: lazy { Hash.new }, desired_state: false
-
property :source, String,
description: "The optional path to a package on the local file system.",
desired_state: false
diff --git a/lib/chef/resource/pacman_package.rb b/lib/chef/resource/pacman_package.rb
index 4661b6f07d..71177a42aa 100644
--- a/lib/chef/resource/pacman_package.rb
+++ b/lib/chef/resource/pacman_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/paludis_package.rb b/lib/chef/resource/paludis_package.rb
index f7f9187826..88d4be6894 100644
--- a/lib/chef/resource/paludis_package.rb
+++ b/lib/chef/resource/paludis_package.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/provider/package/paludis"
+require_relative "package"
+require_relative "../provider/package/paludis"
class Chef
class Resource
diff --git a/lib/chef/resource/perl.rb b/lib/chef/resource/perl.rb
index f3079eb40e..58e21c4915 100644
--- a/lib/chef/resource/perl.rb
+++ b/lib/chef/resource/perl.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/script"
-require "chef/provider/script"
+require_relative "script"
+require_relative "../provider/script"
class Chef
class Resource
diff --git a/lib/chef/resource/portage_package.rb b/lib/chef/resource/portage_package.rb
index 5e954581c7..b7b434804b 100644
--- a/lib/chef/resource/portage_package.rb
+++ b/lib/chef/resource/portage_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/powershell_package.rb b/lib/chef/resource/powershell_package.rb
index 28dabc82b0..53be107ebc 100644
--- a/lib/chef/resource/powershell_package.rb
+++ b/lib/chef/resource/powershell_package.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/mixin/uris"
+require_relative "package"
+require_relative "../mixin/uris"
class Chef
class Resource
diff --git a/lib/chef/resource/powershell_package_source.rb b/lib/chef/resource/powershell_package_source.rb
index 061b9e632d..093c4c6835 100644
--- a/lib/chef/resource/powershell_package_source.rb
+++ b/lib/chef/resource/powershell_package_source.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/json_compat"
+require_relative "../resource"
+require_relative "../json_compat"
class Chef
class Resource
diff --git a/lib/chef/resource/powershell_script.rb b/lib/chef/resource/powershell_script.rb
index 53290c54f8..6cb1453376 100644
--- a/lib/chef/resource/powershell_script.rb
+++ b/lib/chef/resource/powershell_script.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/resource/windows_script"
+require_relative "windows_script"
class Chef
class Resource
diff --git a/lib/chef/resource/python.rb b/lib/chef/resource/python.rb
index f6c259b858..b1e059a66f 100644
--- a/lib/chef/resource/python.rb
+++ b/lib/chef/resource/python.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/resource/script"
-require "chef/provider/script"
+require_relative "script"
+require_relative "../provider/script"
class Chef
class Resource
diff --git a/lib/chef/resource/reboot.rb b/lib/chef/resource/reboot.rb
index b9f748978f..21efdf2b6f 100644
--- a/lib/chef/resource/reboot.rb
+++ b/lib/chef/resource/reboot.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/registry_key.rb b/lib/chef/resource/registry_key.rb
index 30233ddc8b..1bf73f1cdb 100644
--- a/lib/chef/resource/registry_key.rb
+++ b/lib/chef/resource/registry_key.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/digester"
+require_relative "../resource"
+require_relative "../digester"
class Chef
class Resource
diff --git a/lib/chef/resource/remote_directory.rb b/lib/chef/resource/remote_directory.rb
index dd7077b9ae..50c183fbc5 100644
--- a/lib/chef/resource/remote_directory.rb
+++ b/lib/chef/resource/remote_directory.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/resource/directory"
-require "chef/provider/remote_directory"
-require "chef/mixin/securable"
+require_relative "directory"
+require_relative "../provider/remote_directory"
+require_relative "../mixin/securable"
class Chef
class Resource
diff --git a/lib/chef/resource/remote_file.rb b/lib/chef/resource/remote_file.rb
index 3607a3cbc5..b6566aa619 100644
--- a/lib/chef/resource/remote_file.rb
+++ b/lib/chef/resource/remote_file.rb
@@ -18,10 +18,10 @@
#
require "uri"
-require "chef/resource/file"
-require "chef/provider/remote_file"
-require "chef/mixin/securable"
-require "chef/mixin/uris"
+require_relative "file"
+require_relative "../provider/remote_file"
+require_relative "../mixin/securable"
+require_relative "../mixin/uris"
class Chef
class Resource
diff --git a/lib/chef/resource/resource_notification.rb b/lib/chef/resource/resource_notification.rb
index a3475e3301..1b3e01696a 100644
--- a/lib/chef/resource/resource_notification.rb
+++ b/lib/chef/resource/resource_notification.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/rhsm_errata.rb b/lib/chef/resource/rhsm_errata.rb
index e37278de79..a13b9f98c7 100644
--- a/lib/chef/resource/rhsm_errata.rb
+++ b/lib/chef/resource/rhsm_errata.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/rhsm_errata_level.rb b/lib/chef/resource/rhsm_errata_level.rb
index 1e82ee73aa..4ee254ad4a 100644
--- a/lib/chef/resource/rhsm_errata_level.rb
+++ b/lib/chef/resource/rhsm_errata_level.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/rhsm_register.rb b/lib/chef/resource/rhsm_register.rb
index 4e10e3a03d..e15862dd45 100644
--- a/lib/chef/resource/rhsm_register.rb
+++ b/lib/chef/resource/rhsm_register.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
require "shellwords"
class Chef
diff --git a/lib/chef/resource/rhsm_repo.rb b/lib/chef/resource/rhsm_repo.rb
index 943abc3331..a7bddbeb95 100644
--- a/lib/chef/resource/rhsm_repo.rb
+++ b/lib/chef/resource/rhsm_repo.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/rhsm_subscription.rb b/lib/chef/resource/rhsm_subscription.rb
index 52f4c41653..7b4864a905 100644
--- a/lib/chef/resource/rhsm_subscription.rb
+++ b/lib/chef/resource/rhsm_subscription.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/route.rb b/lib/chef/resource/route.rb
index 45a1266fd7..64576bc651 100644
--- a/lib/chef/resource/route.rb
+++ b/lib/chef/resource/route.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/rpm_package.rb b/lib/chef/resource/rpm_package.rb
index cf408cd094..3a171057e5 100644
--- a/lib/chef/resource/rpm_package.rb
+++ b/lib/chef/resource/rpm_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/ruby.rb b/lib/chef/resource/ruby.rb
index b5f36bb0e9..63bdd12630 100644
--- a/lib/chef/resource/ruby.rb
+++ b/lib/chef/resource/ruby.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/script"
-require "chef/provider/script"
+require_relative "script"
+require_relative "../provider/script"
class Chef
class Resource
diff --git a/lib/chef/resource/ruby_block.rb b/lib/chef/resource/ruby_block.rb
index 0ec6647fd8..92e1f926bf 100644
--- a/lib/chef/resource/ruby_block.rb
+++ b/lib/chef/resource/ruby_block.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/provider/ruby_block"
-require "chef/dist"
+require_relative "../resource"
+require_relative "../provider/ruby_block"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/scm.rb b/lib/chef/resource/scm.rb
index fb0e70ad44..473006140d 100644
--- a/lib/chef/resource/scm.rb
+++ b/lib/chef/resource/scm.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/script.rb b/lib/chef/resource/script.rb
index 0d7e6a10d5..6d40061f8f 100644
--- a/lib/chef/resource/script.rb
+++ b/lib/chef/resource/script.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource/execute"
+require_relative "execute"
class Chef
class Resource
diff --git a/lib/chef/resource/service.rb b/lib/chef/resource/service.rb
index 20bf9ecc65..50b8aa8845 100644
--- a/lib/chef/resource/service.rb
+++ b/lib/chef/resource/service.rb
@@ -17,9 +17,9 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
require "shellwords"
-require "chef/dist"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/smartos_package.rb b/lib/chef/resource/smartos_package.rb
index d9ef55c50f..510e1ccc7b 100644
--- a/lib/chef/resource/smartos_package.rb
+++ b/lib/chef/resource/smartos_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/snap_package.rb b/lib/chef/resource/snap_package.rb
index 080b604d28..a8be77d5ce 100644
--- a/lib/chef/resource/snap_package.rb
+++ b/lib/chef/resource/snap_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/solaris_package.rb b/lib/chef/resource/solaris_package.rb
index 435a6ecc44..163621ec5b 100644
--- a/lib/chef/resource/solaris_package.rb
+++ b/lib/chef/resource/solaris_package.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/ssh_known_hosts_entry.rb b/lib/chef/resource/ssh_known_hosts_entry.rb
index c986e1127d..4069c3da5e 100644
--- a/lib/chef/resource/ssh_known_hosts_entry.rb
+++ b/lib/chef/resource/ssh_known_hosts_entry.rb
@@ -17,7 +17,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/subversion.rb b/lib/chef/resource/subversion.rb
index 4febb9353c..c60f03710f 100644
--- a/lib/chef/resource/subversion.rb
+++ b/lib/chef/resource/subversion.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/resource/scm"
-require "chef/dist"
+require_relative "scm"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/sudo.rb b/lib/chef/resource/sudo.rb
index 74dd9d1a55..1159295ed4 100644
--- a/lib/chef/resource/sudo.rb
+++ b/lib/chef/resource/sudo.rb
@@ -19,7 +19,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/swap_file.rb b/lib/chef/resource/swap_file.rb
index 93c3f0906b..0319676f34 100644
--- a/lib/chef/resource/swap_file.rb
+++ b/lib/chef/resource/swap_file.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/sysctl.rb b/lib/chef/resource/sysctl.rb
index 08f4bf716c..9d0c20fe6b 100644
--- a/lib/chef/resource/sysctl.rb
+++ b/lib/chef/resource/sysctl.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/systemd_unit.rb b/lib/chef/resource/systemd_unit.rb
index 89bc30b9d1..db4c1dabad 100644
--- a/lib/chef/resource/systemd_unit.rb
+++ b/lib/chef/resource/systemd_unit.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
require "iniparse"
class Chef
diff --git a/lib/chef/resource/template.rb b/lib/chef/resource/template.rb
index b08bf0b8fb..7ca22f5b63 100644
--- a/lib/chef/resource/template.rb
+++ b/lib/chef/resource/template.rb
@@ -18,9 +18,9 @@
# limitations under the License.
#
-require "chef/resource/file"
-require "chef/mixin/securable"
-require "chef/dist"
+require_relative "file"
+require_relative "../mixin/securable"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/timezone.rb b/lib/chef/resource/timezone.rb
index 6ad7f5a521..6a3d2e5520 100644
--- a/lib/chef/resource/timezone.rb
+++ b/lib/chef/resource/timezone.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/user.rb b/lib/chef/resource/user.rb
index bef1f5f620..40d44c848f 100644
--- a/lib/chef/resource/user.rb
+++ b/lib/chef/resource/user.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/user/aix_user.rb b/lib/chef/resource/user/aix_user.rb
index d5f1829b63..4ae4bf6300 100644
--- a/lib/chef/resource/user/aix_user.rb
+++ b/lib/chef/resource/user/aix_user.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource/user"
+require_relative "../user"
class Chef
class Resource
diff --git a/lib/chef/resource/user/dscl_user.rb b/lib/chef/resource/user/dscl_user.rb
index 0afc504c1d..546a385204 100644
--- a/lib/chef/resource/user/dscl_user.rb
+++ b/lib/chef/resource/user/dscl_user.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource/user"
+require_relative "../user"
class Chef
class Resource
diff --git a/lib/chef/resource/user/linux_user.rb b/lib/chef/resource/user/linux_user.rb
index 056a421197..72da546cae 100644
--- a/lib/chef/resource/user/linux_user.rb
+++ b/lib/chef/resource/user/linux_user.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource/user"
+require_relative "../user"
class Chef
class Resource
diff --git a/lib/chef/resource/user/pw_user.rb b/lib/chef/resource/user/pw_user.rb
index 3672943f5c..5989858ff7 100644
--- a/lib/chef/resource/user/pw_user.rb
+++ b/lib/chef/resource/user/pw_user.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource/user"
+require_relative "../user"
class Chef
class Resource
diff --git a/lib/chef/resource/user/solaris_user.rb b/lib/chef/resource/user/solaris_user.rb
index cca90e6743..db0052817e 100644
--- a/lib/chef/resource/user/solaris_user.rb
+++ b/lib/chef/resource/user/solaris_user.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource/user"
+require_relative "../user"
class Chef
class Resource
diff --git a/lib/chef/resource/user/windows_user.rb b/lib/chef/resource/user/windows_user.rb
index e10ef3881c..4173ac78ba 100644
--- a/lib/chef/resource/user/windows_user.rb
+++ b/lib/chef/resource/user/windows_user.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource/user"
+require_relative "../user"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_ad_join.rb b/lib/chef/resource/windows_ad_join.rb
index 3b0ae343a9..b31ae036ae 100644
--- a/lib/chef/resource/windows_ad_join.rb
+++ b/lib/chef/resource/windows_ad_join.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/mixin/powershell_out"
+require_relative "../resource"
+require_relative "../mixin/powershell_out"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_auto_run.rb b/lib/chef/resource/windows_auto_run.rb
index 34f3443323..c349529e6c 100644
--- a/lib/chef/resource/windows_auto_run.rb
+++ b/lib/chef/resource/windows_auto_run.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_certificate.rb b/lib/chef/resource/windows_certificate.rb
index c530d3b67d..be1853746d 100644
--- a/lib/chef/resource/windows_certificate.rb
+++ b/lib/chef/resource/windows_certificate.rb
@@ -17,11 +17,11 @@
# limitations under the License.
#
-require "chef/util/path_helper"
-require "chef/resource"
+require_relative "../util/path_helper"
+require_relative "../resource"
require "win32-certstore" if Chef::Platform.windows?
require "openssl"
-require "chef/dist"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_dfs_folder.rb b/lib/chef/resource/windows_dfs_folder.rb
index fb6ddf8ef5..1acf2a4acd 100644
--- a/lib/chef/resource/windows_dfs_folder.rb
+++ b/lib/chef/resource/windows_dfs_folder.rb
@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_dfs_namespace.rb b/lib/chef/resource/windows_dfs_namespace.rb
index fe168f25ce..da565b06bf 100644
--- a/lib/chef/resource/windows_dfs_namespace.rb
+++ b/lib/chef/resource/windows_dfs_namespace.rb
@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_dfs_server.rb b/lib/chef/resource/windows_dfs_server.rb
index a36263baa5..56a6af460e 100644
--- a/lib/chef/resource/windows_dfs_server.rb
+++ b/lib/chef/resource/windows_dfs_server.rb
@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_dns_record.rb b/lib/chef/resource/windows_dns_record.rb
index 89ea2f74f3..179b0f0bf5 100644
--- a/lib/chef/resource/windows_dns_record.rb
+++ b/lib/chef/resource/windows_dns_record.rb
@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_dns_zone.rb b/lib/chef/resource/windows_dns_zone.rb
index 391d05757a..b3ae4b9ff7 100644
--- a/lib/chef/resource/windows_dns_zone.rb
+++ b/lib/chef/resource/windows_dns_zone.rb
@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_env.rb b/lib/chef/resource/windows_env.rb
index f67013965b..9428ef7d79 100644
--- a/lib/chef/resource/windows_env.rb
+++ b/lib/chef/resource/windows_env.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_feature.rb b/lib/chef/resource/windows_feature.rb
index 6641242148..cb8fb231c1 100644
--- a/lib/chef/resource/windows_feature.rb
+++ b/lib/chef/resource/windows_feature.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_feature_dism.rb b/lib/chef/resource/windows_feature_dism.rb
index b6bd4ccb8a..5205bb55e9 100644
--- a/lib/chef/resource/windows_feature_dism.rb
+++ b/lib/chef/resource/windows_feature_dism.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/platform/query_helpers"
+require_relative "../resource"
+require_relative "../platform/query_helpers"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_feature_powershell.rb b/lib/chef/resource/windows_feature_powershell.rb
index a0d4c1ae64..55513ea3ea 100644
--- a/lib/chef/resource/windows_feature_powershell.rb
+++ b/lib/chef/resource/windows_feature_powershell.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/mixin/powershell_out"
-require "chef/json_compat"
-require "chef/resource"
-require "chef/platform/query_helpers"
+require_relative "../mixin/powershell_out"
+require_relative "../json_compat"
+require_relative "../resource"
+require_relative "../platform/query_helpers"
class Chef
class Resource
@@ -226,7 +226,7 @@ class Chef
# Grab raw feature information from dism command line
# Windows < 2012 doesn't present a state value so we have to check if the feature is installed or not
raw_list_of_features = if older_than_win_2012_or_8? # make the older format look like the new format, warts and all
- powershell_out!('Get-WindowsFeature | Select-Object -Property Name, @{Name=\"InstallState\"; Expression = {If ($_.Installed) { 1 } Else { 0 }}} | ConvertTo-Json -Compress', timeout: new_resource.timeout).stdout
+ powershell_out!('Get-WindowsFeature | Select-Object -Property Name, @{Name="InstallState"; Expression = {If ($_.Installed) { 1 } Else { 0 }}} | ConvertTo-Json -Compress', timeout: new_resource.timeout).stdout
else
powershell_out!("Get-WindowsFeature | Select-Object -Property Name,InstallState | ConvertTo-Json -Compress", timeout: new_resource.timeout).stdout
end
diff --git a/lib/chef/resource/windows_firewall_rule.rb b/lib/chef/resource/windows_firewall_rule.rb
index 0096a89123..3dbc5d6b0f 100644
--- a/lib/chef/resource/windows_firewall_rule.rb
+++ b/lib/chef/resource/windows_firewall_rule.rb
@@ -19,7 +19,7 @@
# limitations under the License.
#
-require "chef/json_compat"
+require_relative "../json_compat"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_font.rb b/lib/chef/resource/windows_font.rb
index 5657bce390..0105ad469c 100644
--- a/lib/chef/resource/windows_font.rb
+++ b/lib/chef/resource/windows_font.rb
@@ -15,12 +15,12 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
class WindowsFont < Chef::Resource
- require "chef/util/path_helper"
+ require_relative "../util/path_helper"
resource_name :windows_font
provides(:windows_font) { true }
diff --git a/lib/chef/resource/windows_package.rb b/lib/chef/resource/windows_package.rb
index 9bfa51b9fd..46409265b3 100644
--- a/lib/chef/resource/windows_package.rb
+++ b/lib/chef/resource/windows_package.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/mixin/uris"
-require "chef/resource/package"
-require "chef/provider/package/windows"
+require_relative "../mixin/uris"
+require_relative "package"
+require_relative "../provider/package/windows"
require "chef/win32/error" if RUBY_PLATFORM =~ /mswin|mingw|windows/
class Chef
diff --git a/lib/chef/resource/windows_pagefile.rb b/lib/chef/resource/windows_pagefile.rb
index a41e598bd9..964aeaaf95 100644
--- a/lib/chef/resource/windows_pagefile.rb
+++ b/lib/chef/resource/windows_pagefile.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_path.rb b/lib/chef/resource/windows_path.rb
index e0af92f551..c39ce0ce8f 100644
--- a/lib/chef/resource/windows_path.rb
+++ b/lib/chef/resource/windows_path.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_printer.rb b/lib/chef/resource/windows_printer.rb
index b5c963c85b..cdad1f50a2 100644
--- a/lib/chef/resource/windows_printer.rb
+++ b/lib/chef/resource/windows_printer.rb
@@ -17,7 +17,7 @@
# See here for more info:
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394492(v=vs.85).aspx
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_printer_port.rb b/lib/chef/resource/windows_printer_port.rb
index 799a37a651..a31c49d734 100644
--- a/lib/chef/resource/windows_printer_port.rb
+++ b/lib/chef/resource/windows_printer_port.rb
@@ -17,7 +17,7 @@
# See here for more info:
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394492(v=vs.85).aspx
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_script.rb b/lib/chef/resource/windows_script.rb
index fe3e37989d..3177a32090 100644
--- a/lib/chef/resource/windows_script.rb
+++ b/lib/chef/resource/windows_script.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/platform/query_helpers"
-require "chef/resource/script"
-require "chef/mixin/windows_architecture_helper"
+require_relative "../platform/query_helpers"
+require_relative "script"
+require_relative "../mixin/windows_architecture_helper"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_service.rb b/lib/chef/resource/windows_service.rb
index 33805ed482..6853d539ab 100644
--- a/lib/chef/resource/windows_service.rb
+++ b/lib/chef/resource/windows_service.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/service"
-require "chef/win32_service_constants"
+require_relative "service"
+require_relative "../win32_service_constants"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_share.rb b/lib/chef/resource/windows_share.rb
index 52ed6120f8..a06d0b1aeb 100644
--- a/lib/chef/resource/windows_share.rb
+++ b/lib/chef/resource/windows_share.rb
@@ -19,9 +19,9 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/json_compat"
-require "chef/util/path_helper"
+require_relative "../resource"
+require_relative "../json_compat"
+require_relative "../util/path_helper"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_shortcut.rb b/lib/chef/resource/windows_shortcut.rb
index 34e080283b..472b5f78f8 100644
--- a/lib/chef/resource/windows_shortcut.rb
+++ b/lib/chef/resource/windows_shortcut.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_task.rb b/lib/chef/resource/windows_task.rb
index c60515a0ee..9ec6e04abd 100644
--- a/lib/chef/resource/windows_task.rb
+++ b/lib/chef/resource/windows_task.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
require "chef/win32/security" if Chef::Platform.windows?
class Chef
diff --git a/lib/chef/resource/windows_uac.rb b/lib/chef/resource/windows_uac.rb
index d41bcf7d4d..1a2e61ad7f 100644
--- a/lib/chef/resource/windows_uac.rb
+++ b/lib/chef/resource/windows_uac.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/windows_workgroup.rb b/lib/chef/resource/windows_workgroup.rb
index 6bf6e96d18..2b9286813e 100644
--- a/lib/chef/resource/windows_workgroup.rb
+++ b/lib/chef/resource/windows_workgroup.rb
@@ -15,8 +15,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/mixin/powershell_out"
+require_relative "../resource"
+require_relative "../mixin/powershell_out"
class Chef
class Resource
diff --git a/lib/chef/resource/yum_package.rb b/lib/chef/resource/yum_package.rb
index 8f088371ed..85efab633b 100644
--- a/lib/chef/resource/yum_package.rb
+++ b/lib/chef/resource/yum_package.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource/package"
-require "chef/dist"
+require_relative "package"
+require_relative "../dist"
class Chef
class Resource
diff --git a/lib/chef/resource/yum_repository.rb b/lib/chef/resource/yum_repository.rb
index 0a9747c266..9574b53bb1 100644
--- a/lib/chef/resource/yum_repository.rb
+++ b/lib/chef/resource/yum_repository.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource/zypper_package.rb b/lib/chef/resource/zypper_package.rb
index c8d776cebb..f3b19846dc 100644
--- a/lib/chef/resource/zypper_package.rb
+++ b/lib/chef/resource/zypper_package.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource/package"
+require_relative "package"
class Chef
class Resource
diff --git a/lib/chef/resource/zypper_repository.rb b/lib/chef/resource/zypper_repository.rb
index d1683d5fd0..f6e6529023 100644
--- a/lib/chef/resource/zypper_repository.rb
+++ b/lib/chef/resource/zypper_repository.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/resource"
+require_relative "../resource"
class Chef
class Resource
diff --git a/lib/chef/resource_builder.rb b/lib/chef/resource_builder.rb
index 43a2495cba..d4d20e01ed 100644
--- a/lib/chef/resource_builder.rb
+++ b/lib/chef/resource_builder.rb
@@ -87,6 +87,6 @@ class Chef
end
end
-require "chef/exceptions"
-require "chef/resource"
-require "chef/log"
+require_relative "exceptions"
+require_relative "resource"
+require_relative "log"
diff --git a/lib/chef/resource_collection.rb b/lib/chef/resource_collection.rb
index e450f4f19e..a1f97a7d12 100644
--- a/lib/chef/resource_collection.rb
+++ b/lib/chef/resource_collection.rb
@@ -17,10 +17,10 @@
# limitations under the License.
#
-require "chef/resource_collection/resource_set"
-require "chef/resource_collection/resource_list"
-require "chef/resource_collection/resource_collection_serialization"
-require "chef/log"
+require_relative "resource_collection/resource_set"
+require_relative "resource_collection/resource_list"
+require_relative "resource_collection/resource_collection_serialization"
+require_relative "log"
require "forwardable"
##
diff --git a/lib/chef/resource_collection/resource_collection_serialization.rb b/lib/chef/resource_collection/resource_collection_serialization.rb
index d3133bae39..3008625912 100644
--- a/lib/chef/resource_collection/resource_collection_serialization.rb
+++ b/lib/chef/resource_collection/resource_collection_serialization.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/json_compat"
+require_relative "../json_compat"
class Chef
class ResourceCollection
diff --git a/lib/chef/resource_collection/resource_list.rb b/lib/chef/resource_collection/resource_list.rb
index 3c993d6e55..861bc302c5 100644
--- a/lib/chef/resource_collection/resource_list.rb
+++ b/lib/chef/resource_collection/resource_list.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/resource_collection/stepable_iterator"
-require "chef/resource_collection/resource_collection_serialization"
+require_relative "../resource"
+require_relative "stepable_iterator"
+require_relative "resource_collection_serialization"
require "forwardable"
# This class keeps the list of all known Resources in the order they are to be executed in. It also keeps a pointer
diff --git a/lib/chef/resource_collection/resource_set.rb b/lib/chef/resource_collection/resource_set.rb
index 637ba48030..62c18d07b0 100644
--- a/lib/chef/resource_collection/resource_set.rb
+++ b/lib/chef/resource_collection/resource_set.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/resource"
-require "chef/resource_collection/resource_collection_serialization"
+require_relative "../resource"
+require_relative "resource_collection_serialization"
class Chef
class ResourceCollection
diff --git a/lib/chef/resource_definition.rb b/lib/chef/resource_definition.rb
index af22a5389e..6c0f76c169 100644
--- a/lib/chef/resource_definition.rb
+++ b/lib/chef/resource_definition.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mixin/from_file"
-require "chef/mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "mixin/params_validate"
class Chef
class ResourceDefinition
diff --git a/lib/chef/resource_definition_list.rb b/lib/chef/resource_definition_list.rb
index 22751249e4..0dbc115ada 100644
--- a/lib/chef/resource_definition_list.rb
+++ b/lib/chef/resource_definition_list.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mixin/from_file"
-require "chef/resource_definition"
+require_relative "mixin/from_file"
+require_relative "resource_definition"
class Chef
class ResourceDefinitionList
diff --git a/lib/chef/resource_inspector.rb b/lib/chef/resource_inspector.rb
index ac65e55e99..940440de7c 100644
--- a/lib/chef/resource_inspector.rb
+++ b/lib/chef/resource_inspector.rb
@@ -14,14 +14,14 @@
# limitations under the License.
#
-require "chef/cookbook_loader"
-require "chef/cookbook/file_vendor"
-require "chef/cookbook/file_system_file_vendor"
-require "chef/resource/lwrp_base"
-require "chef/run_context"
-require "chef/node"
-require "chef/resources"
-require "chef/json_compat"
+require_relative "cookbook_loader"
+require_relative "cookbook/file_vendor"
+require_relative "cookbook/file_system_file_vendor"
+require_relative "resource/lwrp_base"
+require_relative "run_context"
+require_relative "node"
+require_relative "resources"
+require_relative "json_compat"
module ResourceInspector
def self.get_default(default)
diff --git a/lib/chef/resource_reporter.rb b/lib/chef/resource_reporter.rb
index 01e4073549..8375a3623a 100644
--- a/lib/chef/resource_reporter.rb
+++ b/lib/chef/resource_reporter.rb
@@ -21,7 +21,7 @@
require "uri"
require "securerandom"
-require "chef/event_dispatch/base"
+require_relative "event_dispatch/base"
class Chef
class ResourceReporter < EventDispatch::Base
diff --git a/lib/chef/resource_resolver.rb b/lib/chef/resource_resolver.rb
index 779377c042..410f7f0076 100644
--- a/lib/chef/resource_resolver.rb
+++ b/lib/chef/resource_resolver.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/platform/resource_priority_map"
-require "chef/mixin/convert_to_class_name"
+require_relative "exceptions"
+require_relative "platform/resource_priority_map"
+require_relative "mixin/convert_to_class_name"
class Chef
class ResourceResolver
diff --git a/lib/chef/resources.rb b/lib/chef/resources.rb
index 59cae3558a..11003e304c 100644
--- a/lib/chef/resources.rb
+++ b/lib/chef/resources.rb
@@ -16,140 +16,140 @@
# limitations under the License.
#
-require "chef/resource/apt_package"
-require "chef/resource/apt_preference"
-require "chef/resource/apt_repository"
-require "chef/resource/apt_update"
-require "chef/resource/archive_file"
-require "chef/resource/bash"
-require "chef/resource/batch"
-require "chef/resource/breakpoint"
-require "chef/resource/build_essential"
-require "chef/resource/cookbook_file"
-require "chef/resource/chef_gem"
-require "chef/resource/chef_handler"
-require "chef/resource/chocolatey_config"
-require "chef/resource/chocolatey_package"
-require "chef/resource/chocolatey_source"
-require "chef/resource/cron"
-require "chef/resource/cron_access"
-require "chef/resource/cron_d"
-require "chef/resource/csh"
-require "chef/resource/directory"
-require "chef/resource/dmg_package"
-require "chef/resource/dpkg_package"
-require "chef/resource/dnf_package"
-require "chef/resource/dsc_script"
-require "chef/resource/dsc_resource"
-require "chef/resource/execute"
-require "chef/resource/file"
-require "chef/resource/freebsd_package"
-require "chef/resource/ips_package"
-require "chef/resource/gem_package"
-require "chef/resource/git"
-require "chef/resource/group"
-require "chef/resource/http_request"
-require "chef/resource/hostname"
-require "chef/resource/homebrew_cask"
-require "chef/resource/homebrew_package"
-require "chef/resource/homebrew_tap"
-require "chef/resource/ifconfig"
-require "chef/resource/kernel_module"
-require "chef/resource/ksh"
-require "chef/resource/launchd"
-require "chef/resource/link"
-require "chef/resource/locale"
-require "chef/resource/log"
-require "chef/resource/macports_package"
-require "chef/resource/macos_userdefaults"
-require "chef/resource/mdadm"
-require "chef/resource/mount"
-require "chef/resource/ohai"
-require "chef/resource/ohai_hint"
-require "chef/resource/openbsd_package"
-require "chef/resource/openssl_dhparam"
-require "chef/resource/openssl_ec_private_key"
-require "chef/resource/openssl_ec_public_key"
-require "chef/resource/openssl_rsa_private_key"
-require "chef/resource/openssl_rsa_public_key"
-require "chef/resource/openssl_x509_certificate"
-require "chef/resource/openssl_x509_crl"
-require "chef/resource/openssl_x509_request"
-require "chef/resource/package"
-require "chef/resource/pacman_package"
-require "chef/resource/paludis_package"
-require "chef/resource/perl"
-require "chef/resource/portage_package"
-require "chef/resource/powershell_package_source"
-require "chef/resource/powershell_script"
-require "chef/resource/osx_profile"
-require "chef/resource/python"
-require "chef/resource/reboot"
-require "chef/resource/registry_key"
-require "chef/resource/remote_directory"
-require "chef/resource/remote_file"
-require "chef/resource/rhsm_errata_level"
-require "chef/resource/rhsm_errata"
-require "chef/resource/rhsm_register"
-require "chef/resource/rhsm_repo"
-require "chef/resource/rhsm_subscription"
-require "chef/resource/rpm_package"
-require "chef/resource/snap_package"
-require "chef/resource/solaris_package"
-require "chef/resource/route"
-require "chef/resource/ruby"
-require "chef/resource/ruby_block"
-require "chef/resource/scm"
-require "chef/resource/script"
-require "chef/resource/service"
-require "chef/resource/sudo"
-require "chef/resource/sysctl"
-require "chef/resource/swap_file"
-require "chef/resource/systemd_unit"
-require "chef/resource/ssh_known_hosts_entry"
-require "chef/resource/windows_service"
-require "chef/resource/subversion"
-require "chef/resource/smartos_package"
-require "chef/resource/template"
-require "chef/resource/user"
-require "chef/resource/user/aix_user"
-require "chef/resource/user/dscl_user"
-require "chef/resource/user/linux_user"
-require "chef/resource/user/pw_user"
-require "chef/resource/user/solaris_user"
-require "chef/resource/user/windows_user"
-require "chef/resource/whyrun_safe_ruby_block"
-require "chef/resource/windows_env"
-require "chef/resource/windows_package"
-require "chef/resource/yum_package"
-require "chef/resource/yum_repository"
-require "chef/resource/lwrp_base"
-require "chef/resource/bff_package"
-require "chef/resource/zypper_package"
-require "chef/resource/zypper_repository"
-require "chef/resource/cab_package"
-require "chef/resource/powershell_package"
-require "chef/resource/msu_package"
-require "chef/resource/windows_ad_join"
-require "chef/resource/windows_auto_run"
-require "chef/resource/windows_certificate"
-require "chef/resource/windows_dfs_folder"
-require "chef/resource/windows_dfs_namespace"
-require "chef/resource/windows_dfs_server"
-require "chef/resource/windows_dns_record"
-require "chef/resource/windows_dns_zone"
-require "chef/resource/windows_feature"
-require "chef/resource/windows_feature_dism"
-require "chef/resource/windows_feature_powershell"
-require "chef/resource/windows_firewall_rule"
-require "chef/resource/windows_font"
-require "chef/resource/windows_pagefile"
-require "chef/resource/windows_path"
-require "chef/resource/windows_printer"
-require "chef/resource/windows_printer_port"
-require "chef/resource/windows_share"
-require "chef/resource/windows_shortcut"
-require "chef/resource/windows_task"
-require "chef/resource/windows_uac"
-require "chef/resource/windows_workgroup"
-require "chef/resource/timezone"
+require_relative "resource/apt_package"
+require_relative "resource/apt_preference"
+require_relative "resource/apt_repository"
+require_relative "resource/apt_update"
+require_relative "resource/archive_file"
+require_relative "resource/bash"
+require_relative "resource/batch"
+require_relative "resource/breakpoint"
+require_relative "resource/build_essential"
+require_relative "resource/cookbook_file"
+require_relative "resource/chef_gem"
+require_relative "resource/chef_handler"
+require_relative "resource/chocolatey_config"
+require_relative "resource/chocolatey_package"
+require_relative "resource/chocolatey_source"
+require_relative "resource/cron"
+require_relative "resource/cron_access"
+require_relative "resource/cron_d"
+require_relative "resource/csh"
+require_relative "resource/directory"
+require_relative "resource/dmg_package"
+require_relative "resource/dpkg_package"
+require_relative "resource/dnf_package"
+require_relative "resource/dsc_script"
+require_relative "resource/dsc_resource"
+require_relative "resource/execute"
+require_relative "resource/file"
+require_relative "resource/freebsd_package"
+require_relative "resource/ips_package"
+require_relative "resource/gem_package"
+require_relative "resource/git"
+require_relative "resource/group"
+require_relative "resource/http_request"
+require_relative "resource/hostname"
+require_relative "resource/homebrew_cask"
+require_relative "resource/homebrew_package"
+require_relative "resource/homebrew_tap"
+require_relative "resource/ifconfig"
+require_relative "resource/kernel_module"
+require_relative "resource/ksh"
+require_relative "resource/launchd"
+require_relative "resource/link"
+require_relative "resource/locale"
+require_relative "resource/log"
+require_relative "resource/macports_package"
+require_relative "resource/macos_userdefaults"
+require_relative "resource/mdadm"
+require_relative "resource/mount"
+require_relative "resource/ohai"
+require_relative "resource/ohai_hint"
+require_relative "resource/openbsd_package"
+require_relative "resource/openssl_dhparam"
+require_relative "resource/openssl_ec_private_key"
+require_relative "resource/openssl_ec_public_key"
+require_relative "resource/openssl_rsa_private_key"
+require_relative "resource/openssl_rsa_public_key"
+require_relative "resource/openssl_x509_certificate"
+require_relative "resource/openssl_x509_crl"
+require_relative "resource/openssl_x509_request"
+require_relative "resource/package"
+require_relative "resource/pacman_package"
+require_relative "resource/paludis_package"
+require_relative "resource/perl"
+require_relative "resource/portage_package"
+require_relative "resource/powershell_package_source"
+require_relative "resource/powershell_script"
+require_relative "resource/osx_profile"
+require_relative "resource/python"
+require_relative "resource/reboot"
+require_relative "resource/registry_key"
+require_relative "resource/remote_directory"
+require_relative "resource/remote_file"
+require_relative "resource/rhsm_errata_level"
+require_relative "resource/rhsm_errata"
+require_relative "resource/rhsm_register"
+require_relative "resource/rhsm_repo"
+require_relative "resource/rhsm_subscription"
+require_relative "resource/rpm_package"
+require_relative "resource/snap_package"
+require_relative "resource/solaris_package"
+require_relative "resource/route"
+require_relative "resource/ruby"
+require_relative "resource/ruby_block"
+require_relative "resource/scm"
+require_relative "resource/script"
+require_relative "resource/service"
+require_relative "resource/sudo"
+require_relative "resource/sysctl"
+require_relative "resource/swap_file"
+require_relative "resource/systemd_unit"
+require_relative "resource/ssh_known_hosts_entry"
+require_relative "resource/windows_service"
+require_relative "resource/subversion"
+require_relative "resource/smartos_package"
+require_relative "resource/template"
+require_relative "resource/user"
+require_relative "resource/user/aix_user"
+require_relative "resource/user/dscl_user"
+require_relative "resource/user/linux_user"
+require_relative "resource/user/pw_user"
+require_relative "resource/user/solaris_user"
+require_relative "resource/user/windows_user"
+require_relative "resource/whyrun_safe_ruby_block"
+require_relative "resource/windows_env"
+require_relative "resource/windows_package"
+require_relative "resource/yum_package"
+require_relative "resource/yum_repository"
+require_relative "resource/lwrp_base"
+require_relative "resource/bff_package"
+require_relative "resource/zypper_package"
+require_relative "resource/zypper_repository"
+require_relative "resource/cab_package"
+require_relative "resource/powershell_package"
+require_relative "resource/msu_package"
+require_relative "resource/windows_ad_join"
+require_relative "resource/windows_auto_run"
+require_relative "resource/windows_certificate"
+require_relative "resource/windows_dfs_folder"
+require_relative "resource/windows_dfs_namespace"
+require_relative "resource/windows_dfs_server"
+require_relative "resource/windows_dns_record"
+require_relative "resource/windows_dns_zone"
+require_relative "resource/windows_feature"
+require_relative "resource/windows_feature_dism"
+require_relative "resource/windows_feature_powershell"
+require_relative "resource/windows_firewall_rule"
+require_relative "resource/windows_font"
+require_relative "resource/windows_pagefile"
+require_relative "resource/windows_path"
+require_relative "resource/windows_printer"
+require_relative "resource/windows_printer_port"
+require_relative "resource/windows_share"
+require_relative "resource/windows_shortcut"
+require_relative "resource/windows_task"
+require_relative "resource/windows_uac"
+require_relative "resource/windows_workgroup"
+require_relative "resource/timezone"
diff --git a/lib/chef/role.rb b/lib/chef/role.rb
index 31318fbfe3..d0c1bc4327 100644
--- a/lib/chef/role.rb
+++ b/lib/chef/role.rb
@@ -18,14 +18,14 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/run_list"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/server_api"
-require "chef/search/query"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "run_list"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "server_api"
+require_relative "search/query"
class Chef
class Role
diff --git a/lib/chef/run_context.rb b/lib/chef/run_context.rb
index dc322b254f..e533ebbddd 100644
--- a/lib/chef/run_context.rb
+++ b/lib/chef/run_context.rb
@@ -17,14 +17,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/resource_collection"
-require "chef/cookbook_version"
-require "chef/node"
-require "chef/role"
-require "chef/log"
-require "chef/recipe"
-require "chef/run_context/cookbook_compiler"
-require "chef/event_dispatch/events_output_stream"
+require_relative "resource_collection"
+require_relative "cookbook_version"
+require_relative "node"
+require_relative "role"
+require_relative "log"
+require_relative "recipe"
+require_relative "run_context/cookbook_compiler"
+require_relative "event_dispatch/events_output_stream"
+require_relative "train_transport"
require "forwardable"
class Chef
@@ -590,6 +591,22 @@ class Chef
reboot_info.size > 0
end
+ # Remote transport from Train
+ #
+ # @return [Train::Plugins::Transport] The child class for our train transport.
+ #
+ def transport
+ @transport ||= Chef::TrainTransport.build_transport(logger)
+ end
+
+ # Remote connection object from Train
+ #
+ # @return [Train::Plugins::Transport::BaseConnection]
+ #
+ def transport_connection
+ transport.connection
+ end
+
#
# Create a child RunContext.
#
@@ -650,6 +667,8 @@ class Chef
rest_clean
rest_clean=
unreachable_cookbook?
+ transport
+ transport_connection
}
def initialize(parent_run_context)
diff --git a/lib/chef/run_context/cookbook_compiler.rb b/lib/chef/run_context/cookbook_compiler.rb
index 1469462e69..4c6e1c9f0d 100644
--- a/lib/chef/run_context/cookbook_compiler.rb
+++ b/lib/chef/run_context/cookbook_compiler.rb
@@ -17,11 +17,11 @@
#
require "set"
-require "chef/log"
-require "chef/recipe"
-require "chef/resource/lwrp_base"
-require "chef/provider/lwrp_base"
-require "chef/resource_definition_list"
+require_relative "../log"
+require_relative "../recipe"
+require_relative "../resource/lwrp_base"
+require_relative "../provider/lwrp_base"
+require_relative "../resource_definition_list"
class Chef
class RunContext
diff --git a/lib/chef/run_list.rb b/lib/chef/run_list.rb
index 3ac5fab07b..7ec5419ab7 100644
--- a/lib/chef/run_list.rb
+++ b/lib/chef/run_list.rb
@@ -19,10 +19,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/run_list/run_list_item"
-require "chef/run_list/run_list_expansion"
-require "chef/run_list/versioned_recipe_list"
-require "chef/mixin/params_validate"
+require_relative "run_list/run_list_item"
+require_relative "run_list/run_list_expansion"
+require_relative "run_list/versioned_recipe_list"
+require_relative "mixin/params_validate"
class Chef
class RunList
diff --git a/lib/chef/run_list/run_list_expansion.rb b/lib/chef/run_list/run_list_expansion.rb
index 97422bee16..9ddcdf7373 100644
--- a/lib/chef/run_list/run_list_expansion.rb
+++ b/lib/chef/run_list/run_list_expansion.rb
@@ -16,13 +16,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/mash"
+require_relative "../mash"
-require "chef/mixin/deep_merge"
+require_relative "../mixin/deep_merge"
-require "chef/role"
-require "chef/server_api"
-require "chef/json_compat"
+require_relative "../role"
+require_relative "../server_api"
+require_relative "../json_compat"
class Chef
class RunList
diff --git a/lib/chef/run_list/versioned_recipe_list.rb b/lib/chef/run_list/versioned_recipe_list.rb
index e2933d45cd..182c749b46 100644
--- a/lib/chef/run_list/versioned_recipe_list.rb
+++ b/lib/chef/run_list/versioned_recipe_list.rb
@@ -15,8 +15,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/version_class"
-require "chef/version_constraint"
+require_relative "../version_class"
+require_relative "../version_constraint"
# Why does this class exist?
# Why did we not just modify RunList/RunListItem?
diff --git a/lib/chef/run_lock.rb b/lib/chef/run_lock.rb
index 84b43afc19..1e779a9bdb 100644
--- a/lib/chef/run_lock.rb
+++ b/lib/chef/run_lock.rb
@@ -15,15 +15,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/mixin/create_path"
+require_relative "mixin/create_path"
require "fcntl"
if Chef::Platform.windows?
- require "chef/win32/mutex"
+ require_relative "win32/mutex"
end
-require "chef/config"
-require "chef/exceptions"
+require_relative "config"
+require_relative "exceptions"
require "timeout"
-require "chef/dist"
+require_relative "dist"
class Chef
diff --git a/lib/chef/runner.rb b/lib/chef/runner.rb
index d5dab75dfd..f3f4c9e9d9 100644
--- a/lib/chef/runner.rb
+++ b/lib/chef/runner.rb
@@ -18,10 +18,10 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/mixin/params_validate"
-require "chef/node"
-require "chef/resource_collection"
+require_relative "exceptions"
+require_relative "mixin/params_validate"
+require_relative "node"
+require_relative "resource_collection"
class Chef
# == Chef::Runner
diff --git a/lib/chef/search/query.rb b/lib/chef/search/query.rb
index b7b15765bb..38a9f9406e 100644
--- a/lib/chef/search/query.rb
+++ b/lib/chef/search/query.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/config"
-require "chef/exceptions"
-require "chef/server_api"
+require_relative "../config"
+require_relative "../exceptions"
+require_relative "../server_api"
require "uri"
require "addressable/uri"
diff --git a/lib/chef/server_api.rb b/lib/chef/server_api.rb
index 62fe319b86..ef44ea1879 100644
--- a/lib/chef/server_api.rb
+++ b/lib/chef/server_api.rb
@@ -16,15 +16,15 @@
# limitations under the License.
#
-require "chef/http"
-require "chef/http/authenticator"
-require "chef/http/cookie_manager"
-require "chef/http/decompressor"
-require "chef/http/json_input"
-require "chef/http/json_output"
-require "chef/http/remote_request_id"
-require "chef/http/validate_content_length"
-require "chef/http/api_versions"
+require_relative "http"
+require_relative "http/authenticator"
+require_relative "http/cookie_manager"
+require_relative "http/decompressor"
+require_relative "http/json_input"
+require_relative "http/json_output"
+require_relative "http/remote_request_id"
+require_relative "http/validate_content_length"
+require_relative "http/api_versions"
class Chef
class ServerAPI < Chef::HTTP
@@ -80,4 +80,4 @@ class Chef
end
end
-require "chef/config"
+require_relative "config"
diff --git a/lib/chef/shell.rb b/lib/chef/shell.rb
index f05e63b420..901a13cd0f 100644
--- a/lib/chef/shell.rb
+++ b/lib/chef/shell.rb
@@ -20,18 +20,18 @@ require "pp"
require "etc"
require "mixlib/cli"
-require "chef"
-require "chef/version"
-require "chef/client"
-require "chef/config"
-require "chef/config_fetcher"
-require "chef/dist"
-
-require "chef/shell/shell_session"
-require "chef/workstation_config_loader"
-require "chef/shell/ext"
-require "chef/json_compat"
-require "chef/util/path_helper"
+require_relative "../chef"
+require_relative "version"
+require_relative "client"
+require_relative "config"
+require_relative "config_fetcher"
+require_relative "dist"
+
+require_relative "shell/shell_session"
+require_relative "workstation_config_loader"
+require_relative "shell/ext"
+require_relative "json_compat"
+require_relative "util/path_helper"
# = Shell
# Shell is Chef in an IRB session. Shell can interact with a Chef server via the
@@ -215,6 +215,7 @@ module Shell
* If no chef_shell.rb can be found, chef-shell falls back to load:
/etc/chef/client.rb if -z option is given.
/etc/chef/solo.rb if --solo-legacy-mode option is given.
+ .chef/config.rb if -s option is given.
.chef/knife.rb if -s option is given.
FOOTER
diff --git a/lib/chef/shell/ext.rb b/lib/chef/shell/ext.rb
index cb1fb9041b..b75be3e339 100644
--- a/lib/chef/shell/ext.rb
+++ b/lib/chef/shell/ext.rb
@@ -17,14 +17,14 @@
#
require "tempfile"
-require "chef/recipe"
+require_relative "../recipe"
require "fileutils"
-require "chef/dsl/platform_introspection"
-require "chef/version"
-require "chef/shell/shell_session"
-require "chef/shell/model_wrapper"
-require "chef/server_api"
-require "chef/json_compat"
+require_relative "../dsl/platform_introspection"
+require_relative "../version"
+require_relative "shell_session"
+require_relative "model_wrapper"
+require_relative "../server_api"
+require_relative "../json_compat"
module Shell
module Extensions
diff --git a/lib/chef/shell/model_wrapper.rb b/lib/chef/shell/model_wrapper.rb
index 4394caa395..c2c5f2cd09 100644
--- a/lib/chef/shell/model_wrapper.rb
+++ b/lib/chef/shell/model_wrapper.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/mixin/convert_to_class_name"
-require "chef/dsl/data_query"
+require_relative "../mixin/convert_to_class_name"
+require_relative "../dsl/data_query"
module Shell
class ModelWrapper
diff --git a/lib/chef/shell/shell_session.rb b/lib/chef/shell/shell_session.rb
index 789a022b56..10cd4c81aa 100644
--- a/lib/chef/shell/shell_session.rb
+++ b/lib/chef/shell/shell_session.rb
@@ -18,16 +18,16 @@
# limitations under the License.
#
-require "chef/recipe"
-require "chef/run_context"
-require "chef/config"
-require "chef/client"
-require "chef/cookbook/cookbook_collection"
-require "chef/cookbook_loader"
-require "chef/run_list/run_list_expansion"
-require "chef/formatters/base"
-require "chef/formatters/doc"
-require "chef/formatters/minimal"
+require_relative "../recipe"
+require_relative "../run_context"
+require_relative "../config"
+require_relative "../client"
+require_relative "../cookbook/cookbook_collection"
+require_relative "../cookbook_loader"
+require_relative "../run_list/run_list_expansion"
+require_relative "../formatters/base"
+require_relative "../formatters/doc"
+require_relative "../formatters/minimal"
module Shell
class ShellSession
diff --git a/lib/chef/train_transport.rb b/lib/chef/train_transport.rb
new file mode 100644
index 0000000000..9db5f8fbf3
--- /dev/null
+++ b/lib/chef/train_transport.rb
@@ -0,0 +1,129 @@
+# Author:: Bryan McLellan <btm@loftninjas.org>
+# Copyright:: Copyright 2018, Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require "chef-config/mixin/credentials"
+require "train"
+
+class Chef
+ class TrainTransport
+ #
+ # Returns a RFC099 credentials profile as a hash
+ #
+ def self.load_credentials(profile)
+ extend ChefConfig::Mixin::Credentials
+
+ # Tomlrb.load_file returns a hash with keys as strings
+ credentials = parse_credentials_file
+ if contains_split_fqdn?(credentials, profile)
+ Chef::Log.warn("Credentials file #{credentials_file_path} contains target '#{profile}' as a Hash, expected a string.")
+ Chef::Log.warn("Hostnames must be surrounded by single quotes, e.g. ['host.example.org']")
+ end
+
+ # host names must be specified in credentials file as ['foo.example.org'] with quotes
+ if !credentials.nil? && !credentials[profile].nil?
+ credentials[profile].map { |k, v| [k.to_sym, v] }.to_h # return symbolized keys to match Train.options()
+ else
+ nil
+ end
+ end
+
+ # Toml creates hashes when a key is separated by periods, e.g.
+ # [host.example.org] => { host: { example: { org: {} } } }
+ #
+ # Returns true if the above example is true
+ #
+ # A hostname has to be specified as ['host.example.org']
+ # This will be a common mistake so we should catch it
+ #
+ def self.contains_split_fqdn?(hash, fqdn)
+ fqdn.split(".").reduce(hash) do |h, k|
+ v = h[k]
+ if Hash === v
+ v
+ else
+ break false
+ end
+ end
+ end
+
+ # ChefConfig::Mixin::Credentials.credentials_file_path is designed around knife,
+ # overriding it here.
+ #
+ # Credentials file preference:
+ #
+ # 1) target_mode.credentials_file
+ # 2) /etc/chef/TARGET_MODE_HOST/credentials
+ # 3) #credentials_file_path from parent ($HOME/.chef/credentials)
+ #
+ def self.credentials_file_path
+ tm_config = Chef::Config.target_mode
+ profile = tm_config.host
+
+ credentials_file =
+ if tm_config.credentials_file
+ if File.exists?(tm_config.credentials_file)
+ tm_config.credentials_file
+ else
+ raise ArgumentError, "Credentials file specified for target mode does not exist: '#{tm_config.credentials_file}'"
+ end
+ elsif File.exists?(Chef::Config.platform_specific_path("/etc/chef/#{profile}/credentials"))
+ Chef::Config.platform_specific_path("/etc/chef/#{profile}/credentials")
+ else
+ super
+ end
+ if credentials_file
+ Chef::Log.debug("Loading credentials file '#{credentials_file}' for target '#{profile}'")
+ else
+ Chef::Log.debug("No credentials file found for target '#{profile}'")
+ end
+
+ credentials_file
+ end
+
+ def self.build_transport(logger = Chef::Log.with_child(subsystem: "transport"))
+ # TODO: Consider supporting parsing the protocol from a URI passed to `--target`
+ #
+ train_config = Hash.new
+
+ # Load the target_mode config context from Chef::Config, and place any valid settings into the train configuration
+ tm_config = Chef::Config.target_mode
+ protocol = tm_config.protocol
+ train_config = tm_config.to_hash.select { |k| Train.options(protocol).key?(k) }
+ Chef::Log.trace("Using target mode options from Chef config file: #{train_config.keys.join(', ')}") if train_config
+
+ # Load the credentials file, and place any valid settings into the train configuration
+ credentials = load_credentials(tm_config.host)
+ if credentials
+ valid_settings = credentials.select { |k| Train.options(protocol).key?(k) }
+ valid_settings[:enable_password] = credentials[:enable_password] if credentials.key?(:enable_password)
+ train_config.merge!(valid_settings)
+ Chef::Log.trace("Using target mode options from credentials file: #{valid_settings.keys.join(', ')}") if valid_settings
+ end
+
+ train_config[:logger] = logger
+
+ # Train handles connection retries for us
+ Train.create(protocol, train_config)
+ rescue SocketError => e # likely a dns failure, not caught by train
+ e.message.replace "Error connecting to #{train_config[:target]} - #{e.message}"
+ raise e
+ rescue Train::PluginLoadError
+ logger.error("Invalid target mode protocol: #{protocol}")
+ exit(false)
+ end
+ end
+end
diff --git a/lib/chef/user.rb b/lib/chef/user.rb
index 9b2c5bc8f0..946ab49a83 100644
--- a/lib/chef/user.rb
+++ b/lib/chef/user.rb
@@ -15,13 +15,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/search/query"
-require "chef/server_api"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "search/query"
+require_relative "server_api"
# TODO
# DEPRECATION NOTE
diff --git a/lib/chef/user_v1.rb b/lib/chef/user_v1.rb
index 2f35ec8be0..a31f55279c 100644
--- a/lib/chef/user_v1.rb
+++ b/lib/chef/user_v1.rb
@@ -15,15 +15,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/config"
-require "chef/mixin/params_validate"
-require "chef/mixin/from_file"
-require "chef/mash"
-require "chef/json_compat"
-require "chef/search/query"
-require "chef/mixin/api_version_request_handling"
-require "chef/exceptions"
-require "chef/server_api"
+require_relative "config"
+require_relative "mixin/params_validate"
+require_relative "mixin/from_file"
+require_relative "mash"
+require_relative "json_compat"
+require_relative "search/query"
+require_relative "mixin/api_version_request_handling"
+require_relative "exceptions"
+require_relative "server_api"
# OSC 11 BACKWARDS COMPATIBILITY NOTE (remove after OSC 11 support ends)
#
diff --git a/lib/chef/util/backup.rb b/lib/chef/util/backup.rb
index 5b6bf0b9b8..08da52e3b2 100644
--- a/lib/chef/util/backup.rb
+++ b/lib/chef/util/backup.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/util/path_helper"
+require_relative "path_helper"
class Chef
class Util
diff --git a/lib/chef/util/dsc/configuration_generator.rb b/lib/chef/util/dsc/configuration_generator.rb
index 409730ce20..d7fe17f979 100644
--- a/lib/chef/util/dsc/configuration_generator.rb
+++ b/lib/chef/util/dsc/configuration_generator.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/util/powershell/cmdlet"
+require_relative "../powershell/cmdlet"
class Chef::Util::DSC
class ConfigurationGenerator
diff --git a/lib/chef/util/dsc/lcm_output_parser.rb b/lib/chef/util/dsc/lcm_output_parser.rb
index b164db6b19..63cc16fa39 100644
--- a/lib/chef/util/dsc/lcm_output_parser.rb
+++ b/lib/chef/util/dsc/lcm_output_parser.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/log"
-require "chef/util/dsc/resource_info"
-require "chef/exceptions"
+require_relative "../../log"
+require_relative "resource_info"
+require_relative "../../exceptions"
class Chef
class Util
diff --git a/lib/chef/util/dsc/local_configuration_manager.rb b/lib/chef/util/dsc/local_configuration_manager.rb
index 81aaa098c0..79c57c50c2 100644
--- a/lib/chef/util/dsc/local_configuration_manager.rb
+++ b/lib/chef/util/dsc/local_configuration_manager.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/util/powershell/cmdlet"
-require "chef/util/dsc/lcm_output_parser"
+require_relative "../powershell/cmdlet"
+require_relative "lcm_output_parser"
class Chef::Util::DSC
class LocalConfigurationManager
diff --git a/lib/chef/util/dsc/resource_store.rb b/lib/chef/util/dsc/resource_store.rb
index 43b7d1bdf9..8aab2783ed 100644
--- a/lib/chef/util/dsc/resource_store.rb
+++ b/lib/chef/util/dsc/resource_store.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/util/powershell/cmdlet"
-require "chef/util/powershell/cmdlet_result"
-require "chef/exceptions"
+require_relative "../powershell/cmdlet"
+require_relative "../powershell/cmdlet_result"
+require_relative "../../exceptions"
class Chef
class Util
diff --git a/lib/chef/util/file_edit.rb b/lib/chef/util/file_edit.rb
index 5a01e72e70..87496d56db 100644
--- a/lib/chef/util/file_edit.rb
+++ b/lib/chef/util/file_edit.rb
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/util/editor"
+require_relative "editor"
require "fileutils"
class Chef
diff --git a/lib/chef/util/powershell/cmdlet.rb b/lib/chef/util/powershell/cmdlet.rb
index 480cc61572..d128b1cdc1 100644
--- a/lib/chef/util/powershell/cmdlet.rb
+++ b/lib/chef/util/powershell/cmdlet.rb
@@ -17,8 +17,8 @@
#
require "mixlib/shellout"
-require "chef/mixin/windows_architecture_helper"
-require "chef/util/powershell/cmdlet_result"
+require_relative "../../mixin/windows_architecture_helper"
+require_relative "cmdlet_result"
class Chef
class Util
diff --git a/lib/chef/util/powershell/cmdlet_result.rb b/lib/chef/util/powershell/cmdlet_result.rb
index 82aef4da40..c07d8fe178 100644
--- a/lib/chef/util/powershell/cmdlet_result.rb
+++ b/lib/chef/util/powershell/cmdlet_result.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/json_compat"
+require_relative "../../json_compat"
class Chef
class Util
diff --git a/lib/chef/util/selinux.rb b/lib/chef/util/selinux.rb
index a46e486f96..70fa9298b8 100644
--- a/lib/chef/util/selinux.rb
+++ b/lib/chef/util/selinux.rb
@@ -20,8 +20,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/mixin/shell_out"
-require "chef/mixin/which"
+require_relative "../mixin/shell_out"
+require_relative "../mixin/which"
class Chef
class Util
diff --git a/lib/chef/util/windows/logon_session.rb b/lib/chef/util/windows/logon_session.rb
index afe58ae4f9..4a589c3b2a 100644
--- a/lib/chef/util/windows/logon_session.rb
+++ b/lib/chef/util/windows/logon_session.rb
@@ -17,7 +17,7 @@
#
require "chef/win32/api/security" if Chef::Platform.windows?
-require "chef/mixin/wide_string"
+require_relative "../../mixin/wide_string"
class Chef
class Util
diff --git a/lib/chef/util/windows/net_group.rb b/lib/chef/util/windows/net_group.rb
index 0d2a366c4f..a762faa5bd 100644
--- a/lib/chef/util/windows/net_group.rb
+++ b/lib/chef/util/windows/net_group.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/util/windows"
-require "chef/win32/net"
+require_relative "../windows"
+require_relative "../../win32/net"
# wrapper around a subset of the NetGroup* APIs.
class Chef::Util::Windows::NetGroup
diff --git a/lib/chef/util/windows/net_use.rb b/lib/chef/util/windows/net_use.rb
index 99626371a0..1a2acaed33 100644
--- a/lib/chef/util/windows/net_use.rb
+++ b/lib/chef/util/windows/net_use.rb
@@ -20,8 +20,8 @@
# see also: WNetAddConnection2 and WNetAddConnection3
# see also cmd.exe: net use /?
-require "chef/util/windows"
-require "chef/win32/net"
+require_relative "../windows"
+require_relative "../../win32/net"
class Chef::Util::Windows::NetUse < Chef::Util::Windows
def initialize(localname)
diff --git a/lib/chef/util/windows/net_user.rb b/lib/chef/util/windows/net_user.rb
index 5d0dbf7a53..b60ffdc075 100644
--- a/lib/chef/util/windows/net_user.rb
+++ b/lib/chef/util/windows/net_user.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/util/windows"
-require "chef/exceptions"
-require "chef/win32/net"
-require "chef/win32/security"
+require_relative "../windows"
+require_relative "../../exceptions"
+require_relative "../../win32/net"
+require_relative "../../win32/security"
# wrapper around a subset of the NetUser* APIs.
# nothing Chef specific, but not complete enough to be its own gem, so util for now.
diff --git a/lib/chef/util/windows/volume.rb b/lib/chef/util/windows/volume.rb
index ff5f46163f..1b75fe8cb9 100644
--- a/lib/chef/util/windows/volume.rb
+++ b/lib/chef/util/windows/volume.rb
@@ -18,8 +18,8 @@
# simple wrapper around Volume APIs. might be possible with WMI, but possibly more complex.
-require "chef/win32/api/file"
-require "chef/util/windows"
+require_relative "../../win32/api/file"
+require_relative "../windows"
class Chef::Util::Windows::Volume < Chef::Util::Windows
attr_reader :mount_point
diff --git a/lib/chef/version.rb b/lib/chef/version.rb
index 82e731acb2..0515e5087b 100644
--- a/lib/chef/version.rb
+++ b/lib/chef/version.rb
@@ -19,11 +19,11 @@
# task instead.
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-require "chef/version_string"
+require_relative "version_string"
class Chef
CHEF_ROOT = File.expand_path("../..", __FILE__)
- VERSION = Chef::VersionString.new("15.0.259")
+ VERSION = Chef::VersionString.new("15.0.282")
end
#
diff --git a/lib/chef/version/platform.rb b/lib/chef/version/platform.rb
index 6d8f4192fe..83e2a4570a 100644
--- a/lib/chef/version/platform.rb
+++ b/lib/chef/version/platform.rb
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/version_class"
+require_relative "../version_class"
# NOTE: this is fairly badly broken for its purpose and should not be used
# unless it gets fixed.
diff --git a/lib/chef/version_constraint.rb b/lib/chef/version_constraint.rb
index bce2a29887..ba0a3669ed 100644
--- a/lib/chef/version_constraint.rb
+++ b/lib/chef/version_constraint.rb
@@ -14,7 +14,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/version_class"
+require_relative "version_class"
class Chef
class VersionConstraint
diff --git a/lib/chef/version_constraint/platform.rb b/lib/chef/version_constraint/platform.rb
index e39da194c6..0c04d61c8f 100644
--- a/lib/chef/version_constraint/platform.rb
+++ b/lib/chef/version_constraint/platform.rb
@@ -13,8 +13,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-require "chef/version_constraint"
-require "chef/version/platform"
+require_relative "../version_constraint"
+require_relative "../version/platform"
# NOTE: this is fairly badly broken for its purpose and should not be used
# unless it gets fixed. see chef/version/platform.
diff --git a/lib/chef/whitelist.rb b/lib/chef/whitelist.rb
index c94ffcaed2..3f23aff240 100644
--- a/lib/chef/whitelist.rb
+++ b/lib/chef/whitelist.rb
@@ -1,5 +1,5 @@
-require "chef/exceptions"
+require_relative "exceptions"
class Chef
class Whitelist
diff --git a/lib/chef/win32/api.rb b/lib/chef/win32/api.rb
index fccedd1d54..6bfa287249 100644
--- a/lib/chef/win32/api.rb
+++ b/lib/chef/win32/api.rb
@@ -18,8 +18,8 @@
#
require "ffi"
-require "chef/reserved_names"
-require "chef/exceptions"
+require_relative "../reserved_names"
+require_relative "../exceptions"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/crypto.rb b/lib/chef/win32/api/crypto.rb
index 0abb908622..ffd5d2e841 100644
--- a/lib/chef/win32/api/crypto.rb
+++ b/lib/chef/win32/api/crypto.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/error.rb b/lib/chef/win32/api/error.rb
index e37468c609..618ce266f6 100644
--- a/lib/chef/win32/api/error.rb
+++ b/lib/chef/win32/api/error.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/file.rb b/lib/chef/win32/api/file.rb
index a239671557..e09fdd0ae4 100644
--- a/lib/chef/win32/api/file.rb
+++ b/lib/chef/win32/api/file.rb
@@ -17,10 +17,10 @@
# limitations under the License.
#
-require "chef/win32/api"
-require "chef/win32/api/security"
-require "chef/win32/api/system"
-require "chef/win32/unicode"
+require_relative "../api"
+require_relative "security"
+require_relative "system"
+require_relative "../unicode"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/installer.rb b/lib/chef/win32/api/installer.rb
index 46930b65fc..2ad23be960 100644
--- a/lib/chef/win32/api/installer.rb
+++ b/lib/chef/win32/api/installer.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/exceptions"
-require "chef/win32/api"
-require "chef/win32/error"
+require_relative "../../exceptions"
+require_relative "../api"
+require_relative "../error"
require "pathname"
class Chef
diff --git a/lib/chef/win32/api/memory.rb b/lib/chef/win32/api/memory.rb
index a00ac5fec8..369ab5e650 100644
--- a/lib/chef/win32/api/memory.rb
+++ b/lib/chef/win32/api/memory.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/net.rb b/lib/chef/win32/api/net.rb
index 8c624866d4..df4411b429 100644
--- a/lib/chef/win32/api/net.rb
+++ b/lib/chef/win32/api/net.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/win32/api"
-require "chef/win32/unicode"
+require_relative "../api"
+require_relative "../unicode"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/process.rb b/lib/chef/win32/api/process.rb
index 3568b7e76c..3ac6a5c222 100644
--- a/lib/chef/win32/api/process.rb
+++ b/lib/chef/win32/api/process.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/psapi.rb b/lib/chef/win32/api/psapi.rb
index 9deb68d92e..852cb9710b 100644
--- a/lib/chef/win32/api/psapi.rb
+++ b/lib/chef/win32/api/psapi.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/registry.rb b/lib/chef/win32/api/registry.rb
index dec25118a3..c368add37a 100644
--- a/lib/chef/win32/api/registry.rb
+++ b/lib/chef/win32/api/registry.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/security.rb b/lib/chef/win32/api/security.rb
index 5c3dd69c3e..b6b54a63d5 100644
--- a/lib/chef/win32/api/security.rb
+++ b/lib/chef/win32/api/security.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/synchronization.rb b/lib/chef/win32/api/synchronization.rb
index 9b5d5c6ab9..19ca24bf00 100644
--- a/lib/chef/win32/api/synchronization.rb
+++ b/lib/chef/win32/api/synchronization.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/system.rb b/lib/chef/win32/api/system.rb
index 732ed073e6..ebe89f357f 100644
--- a/lib/chef/win32/api/system.rb
+++ b/lib/chef/win32/api/system.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/api/unicode.rb b/lib/chef/win32/api/unicode.rb
index 21ddde2865..05c098fc62 100644
--- a/lib/chef/win32/api/unicode.rb
+++ b/lib/chef/win32/api/unicode.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/api"
+require_relative "../api"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/crypto.rb b/lib/chef/win32/crypto.rb
index 9832f9e67e..d1a6d41d2f 100644
--- a/lib/chef/win32/crypto.rb
+++ b/lib/chef/win32/crypto.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/win32/error"
-require "chef/win32/api/memory"
-require "chef/win32/api/crypto"
-require "chef/win32/unicode"
+require_relative "error"
+require_relative "api/memory"
+require_relative "api/crypto"
+require_relative "unicode"
require "digest"
class Chef
diff --git a/lib/chef/win32/error.rb b/lib/chef/win32/error.rb
index 83d4583f1d..aa2ae94273 100644
--- a/lib/chef/win32/error.rb
+++ b/lib/chef/win32/error.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/win32/api/error"
-require "chef/win32/memory"
-require "chef/win32/unicode"
-require "chef/exceptions"
+require_relative "api/error"
+require_relative "memory"
+require_relative "unicode"
+require_relative "../exceptions"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/file.rb b/lib/chef/win32/file.rb
index 422cc194dc..101680fc90 100644
--- a/lib/chef/win32/file.rb
+++ b/lib/chef/win32/file.rb
@@ -17,12 +17,12 @@
# limitations under the License.
#
-require "chef/mixin/wide_string"
-require "chef/win32/api/file"
-require "chef/win32/api/security"
-require "chef/win32/error"
-require "chef/win32/unicode"
-require "chef/win32/version"
+require_relative "../mixin/wide_string"
+require_relative "api/file"
+require_relative "api/security"
+require_relative "error"
+require_relative "unicode"
+require_relative "version"
class Chef
module ReservedNames::Win32
@@ -222,5 +222,5 @@ class Chef
end
end
-require "chef/win32/file/info"
-require "chef/win32/file/version_info"
+require_relative "file/info"
+require_relative "file/version_info"
diff --git a/lib/chef/win32/file/info.rb b/lib/chef/win32/file/info.rb
index 55873f8a0b..9d1b16fbea 100644
--- a/lib/chef/win32/file/info.rb
+++ b/lib/chef/win32/file/info.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/file"
+require_relative "../file"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/file/version_info.rb b/lib/chef/win32/file/version_info.rb
index fa04096cf1..609d72b96a 100644
--- a/lib/chef/win32/file/version_info.rb
+++ b/lib/chef/win32/file/version_info.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "chef/win32/file"
+require_relative "../file"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/handle.rb b/lib/chef/win32/handle.rb
index 3ebb6983c4..3f553969cc 100644
--- a/lib/chef/win32/handle.rb
+++ b/lib/chef/win32/handle.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/win32/api/process"
-require "chef/win32/api/psapi"
-require "chef/win32/api/system"
-require "chef/win32/error"
+require_relative "api/process"
+require_relative "api/psapi"
+require_relative "api/system"
+require_relative "error"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/memory.rb b/lib/chef/win32/memory.rb
index 2a9d5d8eb5..853551f183 100644
--- a/lib/chef/win32/memory.rb
+++ b/lib/chef/win32/memory.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/win32/error"
-require "chef/win32/api/memory"
+require_relative "error"
+require_relative "api/memory"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/mutex.rb b/lib/chef/win32/mutex.rb
index 2264479734..cee0743f71 100644
--- a/lib/chef/win32/mutex.rb
+++ b/lib/chef/win32/mutex.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/win32/api/synchronization"
-require "chef/win32/unicode"
+require_relative "api/synchronization"
+require_relative "unicode"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/net.rb b/lib/chef/win32/net.rb
index 06d91e9823..b92b723e27 100644
--- a/lib/chef/win32/net.rb
+++ b/lib/chef/win32/net.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/win32/api/net"
-require "chef/win32/error"
-require "chef/mixin/wide_string"
+require_relative "api/net"
+require_relative "error"
+require_relative "../mixin/wide_string"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/process.rb b/lib/chef/win32/process.rb
index 76e526340b..85f3faea64 100644
--- a/lib/chef/win32/process.rb
+++ b/lib/chef/win32/process.rb
@@ -16,10 +16,10 @@
# limitations under the License.
#
-require "chef/win32/api/process"
-require "chef/win32/api/psapi"
-require "chef/win32/error"
-require "chef/win32/handle"
+require_relative "api/process"
+require_relative "api/psapi"
+require_relative "error"
+require_relative "handle"
require "ffi"
class Chef
diff --git a/lib/chef/win32/registry.rb b/lib/chef/win32/registry.rb
index b1365fd61b..b1a2258975 100644
--- a/lib/chef/win32/registry.rb
+++ b/lib/chef/win32/registry.rb
@@ -16,13 +16,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-require "chef/reserved_names"
-require "chef/win32/api"
-require "chef/mixin/wide_string"
+require_relative "../reserved_names"
+require_relative "api"
+require_relative "../mixin/wide_string"
if RUBY_PLATFORM =~ /mswin|mingw32|windows/
- require "chef/monkey_patches/win32/registry"
- require "chef/win32/api/registry"
+ require_relative "../monkey_patches/win32/registry"
+ require_relative "api/registry"
require "win32/registry"
require "win32/api"
end
diff --git a/lib/chef/win32/security.rb b/lib/chef/win32/security.rb
index a633721839..6d9d359130 100644
--- a/lib/chef/win32/security.rb
+++ b/lib/chef/win32/security.rb
@@ -16,13 +16,13 @@
# limitations under the License.
#
-require "chef/win32/api/security"
-require "chef/win32/error"
-require "chef/win32/memory"
-require "chef/win32/process"
-require "chef/win32/unicode"
-require "chef/win32/security/token"
-require "chef/mixin/wide_string"
+require_relative "api/security"
+require_relative "error"
+require_relative "memory"
+require_relative "process"
+require_relative "unicode"
+require_relative "security/token"
+require_relative "../mixin/wide_string"
class Chef
module ReservedNames::Win32
@@ -691,8 +691,8 @@ class Chef
end
end
-require "chef/win32/security/ace"
-require "chef/win32/security/acl"
-require "chef/win32/security/securable_object"
-require "chef/win32/security/security_descriptor"
-require "chef/win32/security/sid"
+require_relative "security/ace"
+require_relative "security/acl"
+require_relative "security/securable_object"
+require_relative "security/security_descriptor"
+require_relative "security/sid"
diff --git a/lib/chef/win32/security/ace.rb b/lib/chef/win32/security/ace.rb
index d593513983..c890cc90e5 100644
--- a/lib/chef/win32/security/ace.rb
+++ b/lib/chef/win32/security/ace.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/security/sid"
-require "chef/win32/memory"
+require_relative "../security"
+require_relative "sid"
+require_relative "../memory"
require "ffi"
diff --git a/lib/chef/win32/security/acl.rb b/lib/chef/win32/security/acl.rb
index 0d9f7decd0..a8c1c59051 100644
--- a/lib/chef/win32/security/acl.rb
+++ b/lib/chef/win32/security/acl.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/security/ace"
+require_relative "../security"
+require_relative "ace"
require "ffi"
class Chef
diff --git a/lib/chef/win32/security/securable_object.rb b/lib/chef/win32/security/securable_object.rb
index f0bbfc7354..59391a1c6e 100644
--- a/lib/chef/win32/security/securable_object.rb
+++ b/lib/chef/win32/security/securable_object.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/security/acl"
-require "chef/win32/security/sid"
+require_relative "../security"
+require_relative "acl"
+require_relative "sid"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/security/security_descriptor.rb b/lib/chef/win32/security/security_descriptor.rb
index 8bfd8b8287..83f5c466aa 100644
--- a/lib/chef/win32/security/security_descriptor.rb
+++ b/lib/chef/win32/security/security_descriptor.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/security/acl"
-require "chef/win32/security/sid"
+require_relative "../security"
+require_relative "acl"
+require_relative "sid"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/security/sid.rb b/lib/chef/win32/security/sid.rb
index 43efc6e3fe..4d34f8b8a7 100644
--- a/lib/chef/win32/security/sid.rb
+++ b/lib/chef/win32/security/sid.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/api/net"
-require "chef/win32/api/error"
+require_relative "../security"
+require_relative "../api/net"
+require_relative "../api/error"
require "wmi-lite/wmi"
diff --git a/lib/chef/win32/security/token.rb b/lib/chef/win32/security/token.rb
index 38ef03b33c..9a1ac51def 100644
--- a/lib/chef/win32/security/token.rb
+++ b/lib/chef/win32/security/token.rb
@@ -16,9 +16,9 @@
# limitations under the License.
#
-require "chef/win32/security"
-require "chef/win32/api/security"
-require "chef/win32/unicode"
+require_relative "../security"
+require_relative "../api/security"
+require_relative "../unicode"
require "ffi"
class Chef
diff --git a/lib/chef/win32/system.rb b/lib/chef/win32/system.rb
index ec2e5d3457..63616fa397 100755..100644
--- a/lib/chef/win32/system.rb
+++ b/lib/chef/win32/system.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/win32/api/system"
-require "chef/win32/error"
+require_relative "api/system"
+require_relative "error"
require "ffi"
class Chef
diff --git a/lib/chef/win32/unicode.rb b/lib/chef/win32/unicode.rb
index 033569f731..64406d656c 100644
--- a/lib/chef/win32/unicode.rb
+++ b/lib/chef/win32/unicode.rb
@@ -17,8 +17,8 @@
# limitations under the License.
#
-require "chef/mixin/wide_string"
-require "chef/win32/api/unicode"
+require_relative "../mixin/wide_string"
+require_relative "api/unicode"
class Chef
module ReservedNames::Win32
diff --git a/lib/chef/win32/version.rb b/lib/chef/win32/version.rb
index 07f2b8d7a8..93e09d3c83 100644
--- a/lib/chef/win32/version.rb
+++ b/lib/chef/win32/version.rb
@@ -16,8 +16,8 @@
# limitations under the License.
#
-require "chef/win32/api"
-require "chef/win32/api/system"
+require_relative "api"
+require_relative "api/system"
require "wmi-lite/wmi"
class Chef