chef 10.34.6-x86-mingw32 → 11.6.2-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +18 -1
- data/bin/chef-apply +25 -0
- data/bin/chef-service-manager +37 -0
- data/bin/chef-shell +34 -0
- data/bin/shef +6 -5
- data/distro/common/html/chef-client.8.html +4 -4
- data/distro/common/html/chef-expander.8.html +4 -4
- data/distro/common/html/chef-expanderctl.8.html +4 -4
- data/distro/common/html/chef-server-webui.8.html +4 -4
- data/distro/common/html/chef-server.8.html +4 -4
- data/distro/common/html/{shef.1.html → chef-shell.1.html} +49 -46
- data/distro/common/html/chef-solo.8.html +4 -4
- data/distro/common/html/chef-solr.8.html +5 -5
- data/distro/common/html/knife-bootstrap.1.html +4 -4
- data/distro/common/html/knife-client.1.html +4 -4
- data/distro/common/html/knife-configure.1.html +4 -4
- data/distro/common/html/knife-cookbook-site.1.html +4 -4
- data/distro/common/html/knife-cookbook.1.html +4 -4
- data/distro/common/html/knife-data-bag.1.html +4 -4
- data/distro/common/html/knife-environment.1.html +4 -4
- data/distro/common/html/knife-exec.1.html +9 -9
- data/distro/common/html/knife-index.1.html +4 -4
- data/distro/common/html/knife-node.1.html +4 -4
- data/distro/common/html/knife-role.1.html +4 -4
- data/distro/common/html/knife-search.1.html +4 -4
- data/distro/common/html/knife-ssh.1.html +4 -4
- data/distro/common/html/knife-status.1.html +4 -4
- data/distro/common/html/knife-tag.1.html +4 -4
- data/distro/common/html/knife.1.html +8 -13
- data/distro/common/man/man1/{shef.1 → chef-shell.1} +21 -57
- data/distro/common/man/man1/knife-bootstrap.1 +1 -1
- data/distro/common/man/man1/knife-client.1 +0 -99
- data/distro/common/man/man1/knife-configure.1 +1 -1
- data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
- data/distro/common/man/man1/knife-cookbook.1 +1 -1
- data/distro/common/man/man1/knife-data-bag.1 +1 -1
- data/distro/common/man/man1/knife-environment.1 +0 -168
- data/distro/common/man/man1/knife-exec.1 +4 -7
- data/distro/common/man/man1/knife-index.1 +1 -1
- data/distro/common/man/man1/knife-node.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +1 -1
- data/distro/common/man/man1/knife-search.1 +1 -1
- data/distro/common/man/man1/knife-ssh.1 +1 -1
- data/distro/common/man/man1/knife-status.1 +1 -1
- data/distro/common/man/man1/knife-tag.1 +1 -1
- data/distro/common/man/man1/knife.1 +3 -6
- data/distro/common/man/man8/chef-client.8 +1 -1
- data/distro/common/man/man8/chef-expander.8 +1 -1
- data/distro/common/man/man8/chef-expanderctl.8 +1 -1
- data/distro/common/man/man8/chef-server-webui.8 +1 -1
- data/distro/common/man/man8/chef-server.8 +1 -1
- data/distro/common/man/man8/chef-solo.8 +1 -1
- data/distro/common/man/man8/chef-solr.8 +1 -1
- data/distro/common/markdown/man1/{shef.mkd → chef-shell.mkd} +49 -43
- data/distro/common/markdown/man1/knife-exec.mkd +11 -6
- data/distro/common/markdown/man1/knife.mkd +4 -9
- data/distro/debian/etc/default/chef-client +0 -1
- data/distro/debian/etc/init.d/chef-client +6 -4
- data/distro/windows/service_manager.rb +2 -146
- data/lib/chef.rb +3 -6
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +68 -18
- data/lib/chef/application/apply.rb +162 -0
- data/lib/chef/application/client.rb +37 -22
- data/lib/chef/application/knife.rb +2 -4
- data/lib/chef/application/solo.rb +27 -13
- data/lib/chef/application/windows_service.rb +114 -54
- data/lib/chef/application/windows_service_manager.rb +179 -0
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +9 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
- data/lib/chef/chef_fs/command_line.rb +284 -0
- data/lib/chef/chef_fs/config.rb +205 -0
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -0
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +29 -0
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +56 -0
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +128 -0
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +51 -0
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -0
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +27 -0
- data/lib/chef/chef_fs/file_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +426 -0
- data/lib/chef/chef_fs/file_system/acl_dir.rb +64 -0
- data/lib/chef/chef_fs/file_system/acl_entry.rb +58 -0
- data/lib/chef/chef_fs/file_system/acls_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/already_exists_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -0
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +180 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +85 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +71 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_data_bags_dir.rb +36 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +60 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +121 -0
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +110 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +223 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +85 -0
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +149 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +69 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +72 -0
- data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +36 -0
- data/lib/chef/chef_fs/file_system/environments_dir.rb +60 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
- data/lib/chef/chef_fs/file_system/file_system_error.rb +33 -0
- data/lib/chef/chef_fs/file_system/file_system_root_dir.rb +31 -0
- data/lib/chef/chef_fs/file_system/memory_dir.rb +52 -0
- data/lib/chef/chef_fs/file_system/memory_file.rb +17 -0
- data/lib/chef/chef_fs/file_system/memory_root.rb +21 -0
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +48 -0
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +36 -0
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +34 -0
- data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +48 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +113 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +177 -0
- data/lib/chef/chef_fs/knife.rb +116 -0
- data/lib/chef/chef_fs/parallelizer.rb +129 -0
- data/lib/chef/chef_fs/path_utils.rb +90 -0
- data/lib/chef/chef_fs/raw_request.rb +79 -0
- data/lib/chef/client.rb +111 -34
- data/lib/chef/config.rb +111 -102
- data/lib/chef/cookbook/chefignore.rb +2 -1
- data/lib/chef/cookbook/metadata.rb +0 -2
- data/lib/chef/cookbook/syntax_check.rb +76 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +16 -9
- data/lib/chef/cookbook_version.rb +2 -410
- data/lib/chef/daemon.rb +24 -19
- data/lib/chef/data_bag.rb +20 -104
- data/lib/chef/data_bag_item.rb +2 -65
- data/lib/chef/deprecation/mixin/template.rb +49 -0
- data/lib/chef/deprecation/provider/cookbook_file.rb +55 -0
- data/lib/chef/deprecation/provider/file.rb +197 -0
- data/lib/chef/deprecation/provider/remote_file.rb +86 -0
- data/lib/chef/deprecation/provider/template.rb +63 -0
- data/lib/chef/deprecation/warnings.rb +38 -0
- data/lib/chef/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +71 -0
- data/lib/chef/dsl/include_attribute.rb +63 -0
- data/lib/chef/dsl/include_recipe.rb +45 -0
- data/lib/chef/dsl/platform_introspection.rb +218 -0
- data/lib/chef/dsl/recipe.rb +87 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +171 -24
- data/lib/chef/environment.rb +39 -179
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +107 -8
- data/lib/chef/file_access_control/unix.rb +64 -7
- data/lib/chef/file_access_control/windows.rb +22 -11
- data/lib/chef/file_content_management/content_base.rb +56 -0
- data/lib/chef/file_content_management/deploy.rb +38 -0
- data/lib/chef/file_content_management/deploy/cp.rb +48 -0
- data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -0
- data/lib/chef/file_content_management/deploy/mv_windows.rb +95 -0
- data/lib/chef/file_content_management/tempfile.rb +61 -0
- data/lib/chef/formatters/base.rb +4 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_descriptor.rb +5 -4
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +23 -3
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +8 -0
- data/lib/chef/json_compat.rb +15 -14
- data/lib/chef/knife.rb +99 -41
- data/lib/chef/knife/bootstrap.rb +46 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/centos5-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/chef-full.erb +1 -1
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +1 -1
- data/lib/chef/knife/client_show.rb +2 -5
- data/lib/chef/knife/configure.rb +19 -17
- data/lib/chef/knife/cookbook_create.rb +6 -5
- data/lib/chef/knife/cookbook_download.rb +13 -5
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_site_share.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +4 -2
- data/lib/chef/knife/cookbook_upload.rb +4 -4
- data/lib/chef/knife/core/bootstrap_context.rb +11 -5
- data/lib/chef/knife/core/generic_presenter.rb +42 -13
- data/lib/chef/knife/core/node_editor.rb +36 -16
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +43 -12
- data/lib/chef/knife/core/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +34 -13
- data/lib/chef/knife/delete.rb +106 -0
- data/lib/chef/knife/deps.rb +139 -0
- data/lib/chef/knife/diff.rb +63 -0
- data/lib/chef/knife/download.rb +63 -0
- data/lib/chef/knife/edit.rb +76 -0
- data/lib/chef/knife/environment_show.rb +2 -0
- data/lib/chef/knife/exec.rb +5 -5
- data/lib/chef/knife/help_topics.rb +1 -1
- data/lib/chef/knife/index_rebuild.rb +91 -7
- data/lib/chef/knife/list.rb +153 -0
- data/lib/chef/knife/node_run_list_set.rb +66 -0
- data/lib/chef/knife/node_show.rb +1 -7
- data/lib/chef/knife/raw.rb +64 -0
- data/lib/chef/knife/role_show.rb +2 -4
- data/lib/chef/knife/search.rb +45 -28
- data/lib/chef/knife/show.rb +55 -0
- data/lib/chef/knife/ssh.rb +14 -2
- data/lib/chef/knife/upload.rb +69 -0
- data/lib/chef/knife/user_create.rb +93 -0
- data/lib/chef/knife/user_delete.rb +46 -0
- data/lib/chef/knife/user_edit.rb +53 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → knife/user_list.rb} +21 -9
- data/lib/chef/knife/user_reregister.rb +59 -0
- data/lib/chef/knife/user_show.rb +49 -0
- data/lib/chef/knife/xargs.rb +265 -0
- data/lib/chef/log.rb +2 -2
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +78 -194
- data/lib/chef/mixin/deprecation.rb +35 -0
- data/lib/chef/mixin/file_class.rb +0 -9
- data/lib/chef/mixin/language.rb +22 -223
- data/lib/chef/mixin/language_include_attribute.rb +10 -36
- data/lib/chef/mixin/language_include_recipe.rb +7 -33
- data/lib/chef/mixin/params_validate.rb +0 -3
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +10 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +156 -26
- data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
- data/lib/chef/mixins.rb +1 -5
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/monkey_patches/file.rb} +6 -14
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/monkey_patches/securerandom.rb +44 -0
- data/lib/chef/monologger.rb +93 -0
- data/lib/chef/node.rb +139 -308
- data/lib/chef/node/attribute.rb +367 -473
- data/lib/chef/node/attribute_collections.rb +206 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +4 -496
- data/lib/chef/platform/provider_mapping.rb +529 -0
- data/lib/chef/{mixin/check_helper.rb → platform/query_helpers.rb} +20 -9
- data/lib/chef/provider.rb +14 -58
- data/lib/chef/provider/batch.rb +35 -0
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +11 -80
- data/lib/chef/provider/cookbook_file/content.rb +49 -0
- data/lib/chef/provider/deploy.rb +26 -21
- data/lib/chef/provider/deploy/revision.rb +27 -0
- data/lib/chef/provider/directory.rb +12 -18
- data/lib/chef/provider/execute.rb +22 -5
- data/lib/chef/provider/file.rb +297 -248
- data/lib/chef/provider/file/content.rb +39 -0
- data/lib/chef/provider/git.rb +76 -43
- data/lib/chef/provider/group.rb +31 -51
- data/lib/chef/provider/group/dscl.rb +13 -53
- data/lib/chef/provider/group/gpasswd.rb +19 -14
- data/lib/chef/provider/group/groupadd.rb +1 -41
- data/lib/chef/provider/group/groupmod.rb +36 -46
- data/lib/chef/provider/group/pw.rb +16 -59
- data/lib/chef/provider/group/suse.rb +13 -16
- data/lib/chef/provider/group/usermod.rb +18 -40
- data/lib/chef/provider/group/windows.rb +6 -13
- data/lib/chef/provider/http_request.rb +25 -42
- data/lib/chef/provider/ifconfig.rb +25 -35
- data/lib/chef/provider/ifconfig/debian.rb +71 -0
- data/lib/chef/provider/ifconfig/redhat.rb +47 -0
- data/lib/chef/provider/link.rb +12 -3
- data/lib/chef/provider/lwrp_base.rb +150 -0
- data/lib/chef/provider/mount.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +8 -3
- data/lib/chef/provider/mount/windows.rb +4 -1
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +4 -1
- data/lib/chef/provider/package/smartos.rb +47 -36
- data/lib/chef/provider/package/zypper.rb +45 -55
- data/lib/chef/provider/powershell_script.rb +77 -0
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +6 -5
- data/lib/chef/provider/remote_file.rb +13 -100
- data/lib/chef/provider/remote_file/cache_control_data.rb +165 -0
- data/lib/chef/provider/remote_file/content.rb +75 -0
- data/lib/chef/provider/remote_file/fetcher.rb +43 -0
- data/lib/chef/provider/remote_file/ftp.rb +183 -0
- data/lib/chef/provider/remote_file/http.rb +124 -0
- data/lib/chef/provider/remote_file/local_file.rb +47 -0
- data/lib/chef/provider/route.rb +6 -2
- data/lib/chef/provider/ruby_block.rb +5 -2
- data/lib/chef/provider/script.rb +14 -2
- data/lib/chef/provider/service.rb +15 -0
- data/lib/chef/provider/service/init.rb +9 -7
- data/lib/chef/provider/service/macosx.rb +29 -81
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +6 -5
- data/lib/chef/provider/template.rb +16 -81
- data/lib/chef/provider/template/content.rb +61 -0
- data/lib/chef/provider/template_finder.rb +61 -0
- data/lib/chef/provider/user.rb +0 -1
- data/lib/chef/provider/user/dscl.rb +175 -568
- data/lib/chef/provider/user/useradd.rb +50 -54
- data/lib/chef/provider/windows_script.rb +73 -0
- data/lib/chef/providers.rb +18 -1
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +52 -146
- data/lib/chef/resource/{whyrun_safe_ruby_block.rb → batch.rb} +10 -10
- data/lib/chef/resource/conditional.rb +4 -0
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -0
- data/lib/chef/resource/file.rb +31 -3
- data/lib/chef/resource/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/link.rb +17 -0
- data/lib/chef/resource/lwrp_base.rb +132 -0
- data/lib/chef/resource/mount.rb +39 -13
- data/lib/chef/resource/powershell_script.rb +31 -0
- data/lib/chef/resource/registry_key.rb +86 -0
- data/lib/chef/resource/remote_directory.rb +6 -5
- data/lib/chef/resource/remote_file.rb +62 -25
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/template.rb +145 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource/windows_script.rb +62 -0
- data/lib/chef/resource_collection.rb +69 -31
- data/lib/chef/resource_reporter.rb +81 -52
- data/lib/chef/resources.rb +4 -1
- data/lib/chef/rest.rb +55 -127
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +7 -8
- data/lib/chef/role.rb +1 -97
- data/lib/chef/run_context.rb +108 -130
- data/lib/chef/run_context/cookbook_compiler.rb +280 -0
- data/lib/chef/run_list.rb +0 -2
- data/lib/chef/run_list/run_list_expansion.rb +1 -16
- data/lib/chef/run_lock.rb +96 -0
- data/lib/chef/runner.rb +28 -6
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +8 -5
- data/lib/chef/search/query.rb +2 -2
- data/lib/chef/shef/ext.rb +3 -575
- data/lib/chef/{shef.rb → shell.rb} +35 -40
- data/lib/chef/shell/ext.rb +593 -0
- data/lib/chef/{shef → shell}/model_wrapper.rb +3 -3
- data/lib/chef/{shef/shef_rest.rb → shell/shell_rest.rb} +4 -4
- data/lib/chef/{shef/shef_session.rb → shell/shell_session.rb} +15 -13
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/user.rb +182 -0
- data/lib/chef/util/backup.rb +84 -0
- data/lib/chef/util/diff.rb +145 -0
- data/lib/chef/util/file_edit.rb +1 -1
- data/lib/chef/util/selinux.rb +100 -0
- data/lib/chef/util/windows/net_group.rb +1 -5
- data/lib/chef/util/windows/net_user.rb +14 -1
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version/platform.rb +42 -0
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/version_constraint.rb +6 -5
- data/lib/chef/{index_queue.rb → version_constraint/platform.rb} +11 -14
- data/lib/chef/win32/api/file.rb +8 -2
- data/lib/chef/win32/api/security.rb +45 -1
- data/lib/chef/win32/registry.rb +382 -0
- data/lib/chef/win32/security.rb +19 -0
- data/lib/chef/win32/version.rb +25 -8
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
- data/spec/data/apt/var/www/apt/conf/distributions +7 -0
- data/spec/data/apt/var/www/apt/conf/incoming +4 -0
- data/spec/data/apt/var/www/apt/conf/pulls +3 -0
- data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
- data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
- data/spec/data/apt/var/www/apt/db/packages.db +0 -0
- data/spec/data/apt/var/www/apt/db/references.db +0 -0
- data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
- data/spec/data/apt/var/www/apt/db/version +4 -0
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -0
- data/spec/data/bootstrap/secret.erb +9 -0
- data/spec/data/cookbooks/ignorken/recipes/default.rb +1 -0
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +2 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -0
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -0
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -0
- data/spec/data/git_bundles/example-repo.gitbundle +0 -0
- data/spec/data/knife_subcommand/test_yourself.rb +8 -0
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -0
- data/spec/data/nodes/default.rb +3 -3
- data/spec/data/nodes/test.example.com.rb +3 -3
- data/spec/data/nodes/test.rb +3 -3
- data/spec/data/null_config.rb +1 -0
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/remote_file/nyan_cat.png.gz +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -0
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -0
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -0
- data/spec/data/shef-config.rb +10 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +3 -3
- data/spec/functional/knife/smoke_test.rb +34 -0
- data/spec/functional/knife/ssh_spec.rb +5 -1
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +101 -0
- data/spec/functional/resource/batch_spec.rb +64 -0
- data/spec/functional/resource/cookbook_file_spec.rb +15 -9
- data/spec/functional/resource/deploy_revision_spec.rb +180 -0
- data/spec/functional/resource/directory_spec.rb +5 -1
- data/spec/functional/resource/file_spec.rb +71 -21
- data/spec/functional/resource/git_spec.rb +259 -0
- data/spec/functional/resource/link_spec.rb +424 -388
- data/spec/functional/resource/package_spec.rb +297 -0
- data/spec/functional/resource/powershell_spec.rb +188 -0
- data/spec/functional/resource/registry_spec.rb +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +143 -37
- data/spec/functional/resource/remote_file_spec.rb +99 -13
- data/spec/functional/resource/template_spec.rb +180 -3
- data/spec/functional/resource/user_spec.rb +547 -0
- data/spec/functional/run_lock_spec.rb +243 -0
- data/spec/functional/shell_spec.rb +102 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/functional/win32/security_spec.rb +37 -0
- data/spec/functional/win32/service_manager_spec.rb +269 -0
- data/spec/functional/win32/versions_spec.rb +78 -0
- data/spec/integration/knife/chef_repo_path_spec.rb +805 -0
- data/spec/integration/knife/chef_repository_file_system_spec.rb +276 -0
- data/spec/integration/knife/chefignore_spec.rb +271 -0
- data/spec/integration/knife/delete_spec.rb +944 -0
- data/spec/integration/knife/deps_spec.rb +648 -0
- data/spec/integration/knife/diff_spec.rb +536 -0
- data/spec/integration/knife/download_spec.rb +962 -0
- data/spec/integration/knife/list_spec.rb +633 -0
- data/spec/integration/knife/raw_spec.rb +166 -0
- data/spec/integration/knife/redirection_spec.rb +57 -0
- data/spec/integration/knife/show_spec.rb +158 -0
- data/spec/integration/knife/upload_spec.rb +1060 -0
- data/spec/integration/solo/solo_spec.rb +41 -0
- data/spec/spec_helper.rb +49 -13
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +33 -3
- data/spec/support/lib/chef/resource/cat.rb +3 -5
- data/spec/support/lib/chef/resource/one_two_three_four.rb +8 -10
- data/spec/support/lib/chef/resource/zen_master.rb +8 -10
- data/spec/support/platform_helpers.rb +46 -13
- data/spec/support/platforms/win32/spec_service.rb +59 -0
- data/spec/support/shared/functional/diff_disabled.rb +10 -0
- data/spec/support/shared/functional/directory_resource.rb +129 -38
- data/spec/support/shared/functional/file_resource.rb +837 -71
- data/spec/support/shared/functional/securable_resource.rb +189 -58
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +385 -0
- data/spec/support/shared/integration/integration_helper.rb +166 -0
- data/spec/support/shared/integration/knife_support.rb +171 -0
- data/spec/support/shared/unit/execute_resource.rb +125 -0
- data/spec/support/shared/unit/file_system_support.rb +70 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/support/shared/unit/provider/file.rb +609 -0
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +407 -0
- data/spec/support/shared/unit/script_resource.rb +52 -0
- data/spec/support/shared/unit/windows_script_resource.rb +48 -0
- data/spec/tiny_server.rb +13 -11
- data/spec/unit/api_client/registration_spec.rb +172 -0
- data/spec/unit/api_client_spec.rb +78 -156
- data/spec/unit/application/apply.rb +84 -0
- data/spec/unit/application/client_spec.rb +16 -14
- data/spec/unit/application/knife_spec.rb +17 -0
- data/spec/unit/application/solo_spec.rb +1 -1
- data/spec/unit/application_spec.rb +113 -3
- data/spec/unit/checksum/storage/filesystem_spec.rb +1 -1
- data/spec/unit/chef_fs/diff_spec.rb +328 -0
- data/spec/unit/chef_fs/file_pattern_spec.rb +526 -0
- data/spec/unit/chef_fs/file_system_spec.rb +135 -0
- data/spec/unit/client_spec.rb +195 -23
- data/spec/unit/config_spec.rb +102 -51
- data/spec/unit/cookbook/syntax_check_spec.rb +75 -111
- data/spec/unit/cookbook_loader_spec.rb +154 -91
- data/spec/unit/cookbook_manifest_spec.rb +81 -81
- data/spec/unit/cookbook_spec.rb +3 -20
- data/spec/unit/cookbook_version_spec.rb +23 -122
- data/spec/unit/daemon_spec.rb +24 -19
- data/spec/unit/data_bag_spec.rb +13 -4
- data/spec/unit/deprecation_spec.rb +86 -0
- data/spec/unit/digester_spec.rb +50 -0
- data/spec/unit/dsl/data_query_spec.rb +66 -0
- data/spec/unit/dsl/platform_introspection_spec.rb +130 -0
- data/spec/unit/dsl/regsitry_helper_spec.rb +55 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +197 -157
- data/spec/unit/environment_spec.rb +94 -126
- data/spec/unit/exceptions_spec.rb +8 -4
- data/spec/unit/file_access_control_spec.rb +21 -1
- data/spec/unit/file_content_management/deploy/cp_spec.rb +46 -0
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +103 -0
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +179 -0
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +38 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +6 -5
- data/spec/unit/json_compat_spec.rb +8 -0
- data/spec/unit/knife/bootstrap_spec.rb +130 -29
- data/spec/unit/knife/configure_spec.rb +64 -45
- data/spec/unit/knife/cookbook_download_spec.rb +24 -3
- data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
- data/spec/unit/knife/cookbook_test_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +39 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +79 -62
- data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
- data/spec/unit/knife/core/ui_spec.rb +196 -124
- data/spec/unit/knife/data_bag_create_spec.rb +9 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -4
- data/spec/unit/knife/data_bag_from_file_spec.rb +4 -6
- data/spec/unit/knife/data_bag_show_spec.rb +11 -4
- data/spec/unit/knife/index_rebuild_spec.rb +96 -33
- data/spec/unit/knife/knife_help.rb +7 -7
- data/spec/unit/knife/node_edit_spec.rb +6 -33
- data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
- data/spec/unit/knife/node_run_list_set_spec.rb +140 -0
- data/spec/unit/knife/ssh_spec.rb +12 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife/user_create_spec.rb +86 -0
- data/spec/unit/knife/user_delete_spec.rb +39 -0
- data/spec/unit/knife/user_edit_spec.rb +42 -0
- data/spec/unit/knife/user_list_spec.rb +32 -0
- data/spec/unit/knife/user_reregister_spec.rb +53 -0
- data/spec/unit/knife/user_show_spec.rb +41 -0
- data/spec/unit/knife_spec.rb +74 -0
- data/spec/unit/lwrp_spec.rb +102 -60
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +130 -791
- data/spec/unit/mixin/deprecation_spec.rb +23 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +7 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -2
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +145 -14
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
- data/spec/unit/node/attribute_spec.rb +273 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +418 -370
- data/spec/unit/platform_spec.rb +21 -8
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
- data/spec/unit/provider/cookbook_file_spec.rb +26 -187
- data/spec/unit/provider/cron/solaris_spec.rb +1 -1
- data/spec/unit/provider/deploy/revision_spec.rb +19 -11
- data/spec/unit/provider/deploy_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +99 -67
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/execute_spec.rb +27 -1
- data/spec/unit/provider/file/content_spec.rb +101 -0
- data/spec/unit/provider/file_spec.rb +25 -475
- data/spec/unit/provider/git_spec.rb +224 -28
- data/spec/unit/provider/group/dscl_spec.rb +0 -36
- data/spec/unit/provider/group/gpasswd_spec.rb +9 -16
- data/spec/unit/provider/group/groupadd_spec.rb +4 -3
- data/spec/unit/provider/group/groupmod_spec.rb +1 -0
- data/spec/unit/provider/group/pw_spec.rb +15 -12
- data/spec/unit/provider/group/usermod_spec.rb +9 -22
- data/spec/unit/provider/group/windows_spec.rb +8 -0
- data/spec/unit/provider/group_spec.rb +6 -28
- data/spec/unit/provider/http_request_spec.rb +28 -69
- data/spec/unit/provider/ifconfig/debian_spec.rb +89 -0
- data/spec/unit/provider/ifconfig/redhat_spec.rb +71 -0
- data/spec/unit/provider/ifconfig_spec.rb +0 -33
- data/spec/unit/provider/mount/mount_spec.rb +33 -2
- data/spec/unit/provider/mount/windows_spec.rb +4 -1
- data/spec/unit/provider/mount_spec.rb +16 -6
- data/spec/unit/provider/ohai_spec.rb +4 -4
- data/spec/unit/provider/package/apt_spec.rb +0 -1
- data/spec/unit/provider/package/ips_spec.rb +0 -1
- data/spec/unit/provider/package/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -2
- data/spec/unit/provider/package/zypper_spec.rb +84 -22
- data/spec/unit/provider/package_spec.rb +7 -9
- data/spec/unit/provider/powershell_spec.rb +38 -0
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +7 -7
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +211 -0
- data/spec/unit/provider/remote_file/content_spec.rb +230 -0
- data/spec/unit/provider/remote_file/fetcher_spec.rb +75 -0
- data/spec/unit/provider/remote_file/ftp_spec.rb +224 -0
- data/spec/unit/provider/remote_file/http_spec.rb +319 -0
- data/spec/unit/provider/remote_file/local_file_spec.rb +60 -0
- data/spec/unit/provider/remote_file_spec.rb +33 -259
- data/spec/unit/provider/route_spec.rb +29 -12
- data/spec/unit/provider/ruby_block_spec.rb +8 -0
- data/spec/unit/provider/service/arch_service_spec.rb +5 -5
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +5 -5
- data/spec/unit/provider/service/init_service_spec.rb +27 -4
- data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
- data/spec/unit/provider/service/invokercd_service_spec.rb +4 -4
- data/spec/unit/provider/service/macosx_spec.rb +176 -207
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/simple_service_spec.rb +3 -3
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +21 -18
- data/spec/unit/provider/service/systemd_service_spec.rb +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +11 -11
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template/content_spec.rb +78 -0
- data/spec/unit/provider/template_spec.rb +52 -160
- data/spec/unit/provider/user/dscl_spec.rb +285 -681
- data/spec/unit/provider/user/solaris_spec.rb +39 -373
- data/spec/unit/provider/user/useradd_spec.rb +12 -379
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +376 -0
- data/spec/unit/resource/batch_spec.rb +48 -0
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -0
- data/spec/unit/resource/execute_spec.rb +3 -101
- data/spec/unit/resource/file_spec.rb +0 -5
- data/spec/unit/resource/group_spec.rb +9 -0
- data/spec/unit/resource/ifconfig_spec.rb +60 -1
- data/spec/unit/resource/link_spec.rb +1 -0
- data/spec/unit/resource/mount_spec.rb +37 -11
- data/spec/unit/resource/powershell_spec.rb +48 -0
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +63 -25
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/script_spec.rb +13 -36
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource/template_spec.rb +111 -8
- data/spec/unit/resource/user_spec.rb +7 -0
- data/spec/unit/resource_collection_spec.rb +61 -32
- data/spec/unit/resource_reporter_spec.rb +115 -102
- data/spec/unit/resource_spec.rb +197 -5
- data/spec/unit/rest/auth_credentials_spec.rb +4 -21
- data/spec/unit/rest_spec.rb +134 -284
- data/spec/unit/run_context/cookbook_compiler_spec.rb +190 -0
- data/spec/unit/run_context_spec.rb +18 -4
- data/spec/unit/run_list_spec.rb +0 -209
- data/spec/unit/run_lock_spec.rb +37 -0
- data/spec/unit/runner_spec.rb +102 -3
- data/spec/unit/scan_access_control_spec.rb +8 -6
- data/spec/unit/{shef → shell}/model_wrapper_spec.rb +5 -5
- data/spec/unit/{shef/shef_ext_spec.rb → shell/shell_ext_spec.rb} +21 -21
- data/spec/unit/{shef/shef_session_spec.rb → shell/shell_session_spec.rb} +16 -58
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- data/spec/unit/user_spec.rb +255 -0
- data/spec/unit/util/backup_spec.rb +149 -0
- data/spec/unit/util/diff_spec.rb +596 -0
- data/spec/unit/util/selinux_spec.rb +172 -0
- data/spec/unit/version/platform_spec.rb +61 -0
- data/spec/unit/version_constraint/platform_spec.rb +46 -0
- data/spec/unit/version_constraint_spec.rb +5 -0
- metadata +493 -264
- data/README.rdoc +0 -177
- data/distro/common/html/knife-recipe.1.html +0 -92
- data/lib/chef/certificate.rb +0 -161
- data/lib/chef/checksum.rb +0 -167
- data/lib/chef/checksum_cache.rb +0 -190
- data/lib/chef/cookbook_version_selector.rb +0 -168
- data/lib/chef/couchdb.rb +0 -246
- data/lib/chef/index_queue/amqp_client.rb +0 -116
- data/lib/chef/index_queue/consumer.rb +0 -76
- data/lib/chef/index_queue/indexable.rb +0 -109
- data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +0 -60
- data/lib/chef/monkey_patches/dir.rb +0 -36
- data/lib/chef/monkey_patches/moneta.rb +0 -50
- data/lib/chef/monkey_patches/uri.rb +0 -70
- data/lib/chef/openid_registration.rb +0 -187
- data/lib/chef/solr_query.rb +0 -187
- data/lib/chef/solr_query/lucene.treetop +0 -150
- data/lib/chef/solr_query/lucene_nodes.rb +0 -285
- data/lib/chef/solr_query/query_transform.rb +0 -65
- data/lib/chef/solr_query/solr_http_request.rb +0 -132
- data/lib/chef/webui_user.rb +0 -231
- data/spec/data/mac_users/10.7-8.plist.xml +0 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
- data/spec/data/mac_users/10.7.plist.xml +0 -559
- data/spec/data/mac_users/10.7.shadow.xml +0 -11
- data/spec/data/mac_users/10.8.plist.xml +0 -559
- data/spec/data/mac_users/10.8.shadow.xml +0 -21
- data/spec/data/mac_users/10.9.plist.xml +0 -560
- data/spec/data/mac_users/10.9.shadow.xml +0 -21
- data/spec/functional/resource/base.rb +0 -40
- data/spec/functional/resource/group_spec.rb +0 -343
- data/spec/functional/resource/user/dscl_spec.rb +0 -199
- data/spec/unit/certificate_spec.rb +0 -76
- data/spec/unit/checksum_cache_spec.rb +0 -209
- data/spec/unit/checksum_spec.rb +0 -94
- data/spec/unit/couchdb_spec.rb +0 -274
- data/spec/unit/index_queue_spec.rb +0 -391
- data/spec/unit/mixin/language_spec.rb +0 -305
- data/spec/unit/openid_registration_spec.rb +0 -153
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -47
- data/spec/unit/solr_query/query_transform_spec.rb +0 -454
- data/spec/unit/solr_query/solr_http_request_spec.rb +0 -244
- data/spec/unit/solr_query_spec.rb +0 -203
- data/spec/unit/webui_user_spec.rb +0 -238
@@ -18,58 +18,65 @@
|
|
18
18
|
# limitations under the License.
|
19
19
|
#
|
20
20
|
|
21
|
-
# TODO test that these work when you are logged on as a user joined to a domain (rather than local computer)
|
22
|
-
# TODO test that you can set users from other domains
|
23
|
-
|
24
21
|
require 'etc'
|
25
22
|
|
26
23
|
shared_context "setup correct permissions" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
File.chown(Etc.getpwnam('nobody').uid, 1337, path)
|
31
|
-
File.chmod(0776, path)
|
32
|
-
now = Time.now.to_i
|
33
|
-
File.utime(now - 9000, now - 9000, path)
|
34
|
-
end
|
35
|
-
end
|
24
|
+
if windows?
|
25
|
+
include_context "use Windows permissions"
|
26
|
+
end
|
36
27
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
28
|
+
# I could not get this to work with :requires_unprivileged_user for whatever
|
29
|
+
# reason. The setup when running as root is the same as non-root, except we
|
30
|
+
# also do a chown, so this sets up correct context for either case.
|
31
|
+
before :each, :unix_only do
|
32
|
+
File.chmod(0776, path)
|
33
|
+
now = Time.now.to_i
|
34
|
+
File.utime(now - 9000, now - 9000, path)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Root only context.
|
38
|
+
before :each, :unix_only, :requires_root do
|
39
|
+
File.chown(Etc.getpwnam('nobody').uid, 1337, path)
|
44
40
|
end
|
45
41
|
|
46
|
-
|
42
|
+
before :each, :windows_only do
|
43
|
+
so = SecurableObject.new(path)
|
44
|
+
so.owner = SID.Administrator
|
45
|
+
so.group = SID.Administrators
|
46
|
+
dacl = ACL.create(denied_acl(SID.Guest, expected_modify_perms) +
|
47
|
+
allowed_acl(SID.Guest, expected_read_perms))
|
48
|
+
so.dacl = dacl
|
49
|
+
end
|
47
50
|
end
|
48
51
|
|
49
52
|
shared_context "setup broken permissions" do
|
50
|
-
|
51
|
-
|
52
|
-
before :each do
|
53
|
-
File.chown(0, 0, path)
|
54
|
-
File.chmod(0644, path)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
context "without root", :requires_unprivileged_user do
|
59
|
-
before :each do
|
60
|
-
File.chmod(0644, path)
|
61
|
-
end
|
62
|
-
end
|
53
|
+
if windows?
|
54
|
+
include_context "use Windows permissions"
|
63
55
|
end
|
64
56
|
|
65
|
-
|
57
|
+
before :each, :unix_only do
|
58
|
+
File.chmod(0644, path)
|
59
|
+
end
|
60
|
+
|
61
|
+
before :each, :unix_only, :requires_root do
|
62
|
+
File.chown(0, 0, path)
|
63
|
+
end
|
64
|
+
|
65
|
+
before :each, :windows_only do
|
66
|
+
so = SecurableObject.new(path)
|
67
|
+
so.owner = SID.Guest
|
68
|
+
so.group = SID.Everyone
|
69
|
+
dacl = ACL.create(allowed_acl(SID.Guest, expected_modify_perms))
|
70
|
+
so.set_dacl(dacl, true)
|
71
|
+
end
|
66
72
|
end
|
67
73
|
|
68
74
|
shared_context "use Windows permissions", :windows_only do
|
69
|
-
|
70
75
|
if windows?
|
71
76
|
SID ||= Chef::ReservedNames::Win32::Security::SID
|
72
77
|
ACE ||= Chef::ReservedNames::Win32::Security::ACE
|
78
|
+
ACL ||= Chef::ReservedNames::Win32::Security::ACL
|
79
|
+
SecurableObject ||= Chef::ReservedNames::Win32::Security::SecurableObject
|
73
80
|
end
|
74
81
|
|
75
82
|
def get_security_descriptor(path)
|
@@ -137,7 +144,10 @@ shared_context "use Windows permissions", :windows_only do
|
|
137
144
|
end
|
138
145
|
end
|
139
146
|
|
140
|
-
shared_examples_for "a securable resource" do
|
147
|
+
shared_examples_for "a securable resource with existing target" do
|
148
|
+
|
149
|
+
include_context "diff disabled"
|
150
|
+
|
141
151
|
context "on Unix", :unix_only do
|
142
152
|
let(:expected_user_name) { 'nobody' }
|
143
153
|
let(:expected_uid) { Etc.getpwnam(expected_user_name).uid }
|
@@ -147,33 +157,71 @@ shared_examples_for "a securable resource" do
|
|
147
157
|
pending "should set an owner (Rerun specs under root)", :requires_unprivileged_user => true
|
148
158
|
pending "should set a group (Rerun specs under root)", :requires_unprivileged_user => true
|
149
159
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
160
|
+
describe "when setting the owner", :requires_root do
|
161
|
+
before do
|
162
|
+
resource.owner expected_user_name
|
163
|
+
resource.run_action(:create)
|
164
|
+
end
|
165
|
+
|
166
|
+
it "should set an owner" do
|
167
|
+
File.lstat(path).uid.should == expected_uid
|
168
|
+
end
|
169
|
+
|
170
|
+
it "is marked as updated only if changes are made" do
|
171
|
+
resource.updated_by_last_action?.should == expect_updated?
|
172
|
+
end
|
173
|
+
|
154
174
|
end
|
155
175
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
176
|
+
describe "when setting the group", :requires_root do
|
177
|
+
before do
|
178
|
+
resource.group desired_gid
|
179
|
+
resource.run_action(:create)
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should set a group" do
|
183
|
+
File.lstat(path).gid.should == expected_gid
|
184
|
+
end
|
185
|
+
|
186
|
+
it "is marked as updated only if changes are made" do
|
187
|
+
resource.updated_by_last_action?.should == expect_updated?
|
188
|
+
end
|
189
|
+
|
160
190
|
end
|
161
191
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
192
|
+
describe "when setting the permissions from octal given as a String" do
|
193
|
+
before do
|
194
|
+
@mode_string = '776'
|
195
|
+
resource.mode @mode_string
|
196
|
+
resource.run_action(:create)
|
197
|
+
end
|
198
|
+
|
199
|
+
it "should set permissions as specified" do
|
200
|
+
pending('Linux does not support lchmod', :if => resource.instance_of?(Chef::Resource::Link) && !os_x? && !freebsd?) do
|
201
|
+
(File.lstat(path).mode & 007777).should == (@mode_string.oct & 007777)
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
it "is marked as updated only if changes are made" do
|
206
|
+
resource.updated_by_last_action?.should == expect_updated?
|
168
207
|
end
|
169
208
|
end
|
170
209
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
210
|
+
describe "when setting permissions from a literal octal Integer" do
|
211
|
+
before do
|
212
|
+
@mode_integer = 0776
|
213
|
+
resource.mode @mode_integer
|
214
|
+
resource.run_action(:create)
|
215
|
+
end
|
216
|
+
|
217
|
+
it "should set permissions in numeric form as a ruby-interpreted octal" do
|
218
|
+
pending('Linux does not support lchmod', :if => resource.instance_of?(Chef::Resource::Link) && !os_x? && !freebsd?) do
|
219
|
+
(File.lstat(path).mode & 007777).should == (@mode_integer & 007777)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
it "is marked as updated only if changes are made" do
|
224
|
+
resource.updated_by_last_action?.should == expect_updated?
|
177
225
|
end
|
178
226
|
end
|
179
227
|
end
|
@@ -181,9 +229,64 @@ shared_examples_for "a securable resource" do
|
|
181
229
|
context "on Windows", :windows_only do
|
182
230
|
include_context "use Windows permissions"
|
183
231
|
|
184
|
-
|
185
|
-
|
232
|
+
describe "when setting owner" do
|
233
|
+
before do
|
234
|
+
resource.owner('Administrator')
|
235
|
+
resource.run_action(:create)
|
236
|
+
end
|
237
|
+
|
238
|
+
it "should set the owner" do
|
239
|
+
descriptor.owner.should == SID.Administrator
|
240
|
+
end
|
241
|
+
|
242
|
+
it "is marked as updated only if changes are made" do
|
243
|
+
resource.updated_by_last_action?.should == expect_updated?
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
describe "when setting group" do
|
248
|
+
before do
|
249
|
+
resource.group('Administrators')
|
250
|
+
resource.run_action(:create)
|
251
|
+
end
|
252
|
+
|
253
|
+
it "should set the group" do
|
254
|
+
descriptor.group.should == SID.Administrators
|
255
|
+
end
|
256
|
+
|
257
|
+
it "is marked as updated only if changes are made" do
|
258
|
+
resource.updated_by_last_action?.should == expect_updated?
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
describe "when setting rights and deny_rights" do
|
263
|
+
before do
|
264
|
+
resource.deny_rights(:modify, 'Guest')
|
265
|
+
resource.rights(:read, 'Guest')
|
266
|
+
resource.run_action(:create)
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should set the rights and deny_rights" do
|
270
|
+
explicit_aces.should == denied_acl(SID.Guest, expected_modify_perms) + allowed_acl(SID.Guest, expected_read_perms)
|
271
|
+
end
|
272
|
+
|
273
|
+
it "is marked as updated only if changes are made" do
|
274
|
+
resource.updated_by_last_action?.should == expect_updated?
|
275
|
+
end
|
186
276
|
end
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
280
|
+
shared_examples_for "a securable resource without existing target" do
|
281
|
+
|
282
|
+
include_context "diff disabled"
|
283
|
+
|
284
|
+
context "on Unix", :unix_only do
|
285
|
+
pending "if we need any securable resource tests on Unix without existing target resource."
|
286
|
+
end
|
287
|
+
|
288
|
+
context "on Windows", :windows_only do
|
289
|
+
include_context "use Windows permissions"
|
187
290
|
|
188
291
|
it "sets owner to Administrators on create if owner is not specified" do
|
189
292
|
File.exist?(path).should == false
|
@@ -398,5 +501,33 @@ shared_examples_for "a securable resource" do
|
|
398
501
|
end
|
399
502
|
end
|
400
503
|
|
504
|
+
it "does not inherit aces if inherits is set to false" do
|
505
|
+
# We need at least one ACE if we're creating a securable without
|
506
|
+
# inheritance
|
507
|
+
resource.rights(:full_control, 'Administrators')
|
508
|
+
resource.inherits(false)
|
509
|
+
resource.run_action(:create)
|
510
|
+
|
511
|
+
descriptor.dacl.each do | ace |
|
512
|
+
ace.inherited?.should == false
|
513
|
+
end
|
514
|
+
end
|
515
|
+
|
516
|
+
it "has the inheritable acls of parent directory if no acl is specified" do
|
517
|
+
File.exist?(path).should == false
|
518
|
+
|
519
|
+
parent_acls = parent_inheritable_acls
|
520
|
+
|
521
|
+
resource.run_action(:create)
|
522
|
+
|
523
|
+
descriptor.dacl.each_with_index do |ace, index|
|
524
|
+
# On Windows Server 2003 OS creates a default non-inheritable
|
525
|
+
# ACL during file creation unless otherwise specified.
|
526
|
+
ace.inherited?.should == true unless windows_win2k3?
|
527
|
+
ace.should == parent_acls.dacl[index]
|
528
|
+
end
|
529
|
+
end
|
530
|
+
|
401
531
|
end
|
402
532
|
end
|
533
|
+
|
@@ -0,0 +1,385 @@
|
|
1
|
+
|
2
|
+
ALL_EXPANDED_PERMISSIONS = ["generic read",
|
3
|
+
"generic write",
|
4
|
+
"generic execute",
|
5
|
+
"generic all",
|
6
|
+
"delete",
|
7
|
+
"read permissions",
|
8
|
+
"change permissions",
|
9
|
+
"take ownership",
|
10
|
+
"synchronize",
|
11
|
+
"access system security",
|
12
|
+
"read data / list directory",
|
13
|
+
"write data / add file",
|
14
|
+
"append data / add subdirectory",
|
15
|
+
"read extended attributes",
|
16
|
+
"write extended attributes",
|
17
|
+
"execute / traverse",
|
18
|
+
"delete child",
|
19
|
+
"read attributes",
|
20
|
+
"write attributes"]
|
21
|
+
|
22
|
+
|
23
|
+
shared_examples_for "a securable resource with reporting" do
|
24
|
+
|
25
|
+
include_context "diff disabled"
|
26
|
+
|
27
|
+
let(:current_resource) do
|
28
|
+
provider = resource.provider_for_action(resource.action)
|
29
|
+
provider.load_current_resource
|
30
|
+
provider.current_resource
|
31
|
+
end
|
32
|
+
|
33
|
+
# Default mode varies based on implementation. Providers that use a tempfile
|
34
|
+
# will default to 0600. Providers that use File.open will default to 0666 -
|
35
|
+
# umask
|
36
|
+
# let(:default_mode) { ((0100666 - File.umask) & 07777).to_s(8) }
|
37
|
+
|
38
|
+
describe "reading file security metadata for reporting on unix", :unix_only => true do
|
39
|
+
# According to POSIX standard created files get either the
|
40
|
+
# effective gid of the process or inherits the gid of the parent
|
41
|
+
# directory based on file system. Since it's hard to guess what
|
42
|
+
# would happen on each platform we create a dummy file and see
|
43
|
+
# what the group name should be.
|
44
|
+
before do
|
45
|
+
FileUtils.touch(path)
|
46
|
+
@expected_gid = File.stat(path).gid
|
47
|
+
@expected_group_name = Etc.getgrgid(@expected_gid).name
|
48
|
+
FileUtils.rm_rf(path)
|
49
|
+
end
|
50
|
+
|
51
|
+
context "when the target file doesn't exist" do
|
52
|
+
before do
|
53
|
+
resource.action(:create)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "has empty values for file metadata in 'current_resource'" do
|
57
|
+
current_resource.owner.should be_nil
|
58
|
+
current_resource.group.should be_nil
|
59
|
+
current_resource.mode.should be_nil
|
60
|
+
end
|
61
|
+
|
62
|
+
context "and no security metadata is specified in new_resource" do
|
63
|
+
it "sets the metadata values on the new_resource as strings after creating" do
|
64
|
+
resource.run_action(:create)
|
65
|
+
# TODO: most stable way to specify?
|
66
|
+
resource.owner.should == Etc.getpwuid(Process.uid).name
|
67
|
+
resource.group.should == @expected_group_name
|
68
|
+
resource.mode.should == "0#{default_mode}"
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "and owner is specified with a String (username) in new_resource", :requires_root => true do
|
73
|
+
|
74
|
+
# TODO/bug: duplicated from the "securable resource" tests
|
75
|
+
let(:expected_user_name) { 'nobody' }
|
76
|
+
|
77
|
+
before do
|
78
|
+
resource.owner(expected_user_name)
|
79
|
+
resource.run_action(:create)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "sets the owner on new_resource to the username (String) of the desired owner" do
|
83
|
+
resource.owner.should == expected_user_name
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
context "and owner is specified with an Integer (uid) in new_resource", :requires_root => true do
|
89
|
+
|
90
|
+
# TODO: duplicated from "securable resource"
|
91
|
+
let(:expected_user_name) { 'nobody' }
|
92
|
+
let(:expected_uid) { Etc.getpwnam(expected_user_name).uid }
|
93
|
+
let(:desired_gid) { 1337 }
|
94
|
+
let(:expected_gid) { 1337 }
|
95
|
+
|
96
|
+
before do
|
97
|
+
resource.owner(expected_uid)
|
98
|
+
resource.run_action(:create)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "sets the owner on new_resource to the uid (Integer) of the desired owner" do
|
102
|
+
resource.owner.should == expected_uid
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context "and group is specified with a String (group name)", :requires_root => true do
|
107
|
+
|
108
|
+
let(:expected_group_name) { Etc.getgrent.name }
|
109
|
+
|
110
|
+
before do
|
111
|
+
resource.group(expected_group_name)
|
112
|
+
resource.run_action(:create)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "sets the group on new_resource to the group name (String) of the group" do
|
116
|
+
resource.group.should == expected_group_name
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
context "and group is specified with an Integer (gid)", :requires_root => true do
|
122
|
+
let(:expected_gid) { Etc.getgrent.gid }
|
123
|
+
|
124
|
+
before do
|
125
|
+
resource.group(expected_gid)
|
126
|
+
resource.run_action(:create)
|
127
|
+
end
|
128
|
+
|
129
|
+
it "sets the group on new_resource to the gid (Integer)" do
|
130
|
+
resource.group.should == expected_gid
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
context "and mode is specified as a String" do
|
136
|
+
# Need full permission for owner here or else remote directory gets
|
137
|
+
# into trouble trying to manage nested directories
|
138
|
+
let(:set_mode) { "0740" }
|
139
|
+
let(:expected_mode) { "0740" }
|
140
|
+
|
141
|
+
before do
|
142
|
+
resource.mode(set_mode)
|
143
|
+
resource.run_action(:create)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "sets mode on the new_resource as a String" do
|
147
|
+
resource.mode.should == expected_mode
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context "and mode is specified as an Integer" do
|
152
|
+
let(:set_mode) { 00740 }
|
153
|
+
|
154
|
+
let(:expected_mode) { "0740" }
|
155
|
+
before do
|
156
|
+
resource.mode(set_mode)
|
157
|
+
resource.run_action(:create)
|
158
|
+
end
|
159
|
+
|
160
|
+
it "sets mode on the new resource as a String" do
|
161
|
+
resource.mode.should == expected_mode
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
context "when the target file exists" do
|
167
|
+
before do
|
168
|
+
FileUtils.touch(resource.path)
|
169
|
+
resource.action(:create)
|
170
|
+
end
|
171
|
+
|
172
|
+
context "and no security metadata is specified in new_resource" do
|
173
|
+
it "sets the current values on current resource as strings" do
|
174
|
+
# TODO: most stable way to specify?
|
175
|
+
current_resource.owner.should == Etc.getpwuid(Process.uid).name
|
176
|
+
current_resource.group.should == @expected_group_name
|
177
|
+
current_resource.mode.should == "0#{((0100666 - File.umask) & 07777).to_s(8)}"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
context "and owner is specified with a String (username) in new_resource" do
|
182
|
+
|
183
|
+
let(:expected_user_name) { Etc.getpwuid(Process.uid).name }
|
184
|
+
|
185
|
+
before do
|
186
|
+
resource.owner(expected_user_name)
|
187
|
+
end
|
188
|
+
|
189
|
+
it "sets the owner on new_resource to the username (String) of the desired owner" do
|
190
|
+
current_resource.owner.should == expected_user_name
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
context "and owner is specified with an Integer (uid) in new_resource" do
|
196
|
+
|
197
|
+
let(:expected_uid) { Process.uid }
|
198
|
+
|
199
|
+
before do
|
200
|
+
resource.owner(expected_uid)
|
201
|
+
end
|
202
|
+
|
203
|
+
it "sets the owner on new_resource to the uid (Integer) of the desired owner" do
|
204
|
+
current_resource.owner.should == expected_uid
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
context "and group is specified with a String (group name)" do
|
209
|
+
before do
|
210
|
+
resource.group(@expected_group_name)
|
211
|
+
end
|
212
|
+
|
213
|
+
it "sets the group on new_resource to the group name (String) of the group" do
|
214
|
+
current_resource.group.should == @expected_group_name
|
215
|
+
end
|
216
|
+
|
217
|
+
end
|
218
|
+
|
219
|
+
context "and group is specified with an Integer (gid)" do
|
220
|
+
before do
|
221
|
+
resource.group(@expected_gid)
|
222
|
+
end
|
223
|
+
|
224
|
+
it "sets the group on new_resource to the gid (Integer)" do
|
225
|
+
current_resource.group.should == @expected_gid
|
226
|
+
end
|
227
|
+
|
228
|
+
end
|
229
|
+
|
230
|
+
context "and mode is specified as a String" do
|
231
|
+
let(:default_create_mode) { (0100666 - File.umask) }
|
232
|
+
let(:expected_mode) { "0#{(default_create_mode & 07777).to_s(8)}" }
|
233
|
+
|
234
|
+
before do
|
235
|
+
resource.mode(expected_mode)
|
236
|
+
end
|
237
|
+
|
238
|
+
it "sets mode on the new_resource as a String" do
|
239
|
+
current_resource.mode.should == expected_mode
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
context "and mode is specified as an Integer" do
|
244
|
+
let(:set_mode) { (0100666 - File.umask) & 07777 }
|
245
|
+
let(:expected_mode) { "0#{set_mode.to_s(8)}" }
|
246
|
+
|
247
|
+
before do
|
248
|
+
resource.mode(set_mode)
|
249
|
+
end
|
250
|
+
|
251
|
+
it "sets mode on the new resource as a String" do
|
252
|
+
current_resource.mode.should == expected_mode
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
describe "reading file security metadata for reporting on windows", :windows_only do
|
259
|
+
|
260
|
+
before do
|
261
|
+
pending "windows reporting not yet fully supported"
|
262
|
+
end
|
263
|
+
|
264
|
+
|
265
|
+
context "when the target file doesn't exist" do
|
266
|
+
|
267
|
+
# Windows reporting data should look like this (+/- ish):
|
268
|
+
# { "owner" => "bob", "checksum" => "ffff", "access control" => { "bob" => { "permissions" => ["perm1", "perm2", ...], "flags" => [] }}}
|
269
|
+
|
270
|
+
|
271
|
+
before do
|
272
|
+
resource.action(:create)
|
273
|
+
end
|
274
|
+
|
275
|
+
it "has empty values for file metadata in 'current_resource'" do
|
276
|
+
current_resource.owner.should be_nil
|
277
|
+
current_resource.expanded_rights.should be_nil
|
278
|
+
end
|
279
|
+
|
280
|
+
context "and no security metadata is specified in new_resource" do
|
281
|
+
it "sets the metadata values on the new_resource as strings after creating" do
|
282
|
+
resource.run_action(:create)
|
283
|
+
# TODO: most stable way to specify?
|
284
|
+
resource.owner.should == etc.getpwuid(process.uid).name
|
285
|
+
resource.state[:expanded_rights].should == { "CURRENTUSER" => { "permissions" => ALL_EXPANDED_PERMISSIONS, "flags" => [] }}
|
286
|
+
resource.state[:expanded_deny_rights].should == {}
|
287
|
+
resource.state[:inherits].should be_true
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
291
|
+
|
292
|
+
context "and owner is specified with a string (username) in new_resource" do
|
293
|
+
|
294
|
+
# TODO/bug: duplicated from the "securable resource" tests
|
295
|
+
let(:expected_user_name) { 'Guest' }
|
296
|
+
|
297
|
+
before do
|
298
|
+
resource.owner(expected_user_name)
|
299
|
+
resource.run_action(:create)
|
300
|
+
end
|
301
|
+
|
302
|
+
it "sets the owner on new_resource to the username (string) of the desired owner" do
|
303
|
+
resource.owner.should == expected_user_name
|
304
|
+
end
|
305
|
+
|
306
|
+
end
|
307
|
+
|
308
|
+
context "and owner is specified with a fully qualified domain user" do
|
309
|
+
|
310
|
+
# TODO: duplicated from "securable resource"
|
311
|
+
let(:expected_user_name) { 'domain\user' }
|
312
|
+
|
313
|
+
before do
|
314
|
+
resource.owner(expected_user_name)
|
315
|
+
resource.run_action(:create)
|
316
|
+
end
|
317
|
+
|
318
|
+
it "sets the owner on new_resource to the fully qualified name of the desired owner" do
|
319
|
+
resource.owner.should == expected_user_name
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
end
|
324
|
+
|
325
|
+
context "when the target file exists" do
|
326
|
+
before do
|
327
|
+
FileUtils.touch(resource.path)
|
328
|
+
resource.action(:create)
|
329
|
+
end
|
330
|
+
|
331
|
+
context "and no security metadata is specified in new_resource" do
|
332
|
+
it "sets the current values on current resource as strings" do
|
333
|
+
# TODO: most stable way to specify?
|
334
|
+
current_resource.owner.should == etc.getpwuid(process.uid).name
|
335
|
+
current_resource.expanded_rights.should == { "CURRENTUSER" => ALL_EXPANDED_PERMISSIONS }
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
339
|
+
context "and owner is specified with a string (username) in new_resource" do
|
340
|
+
|
341
|
+
let(:expected_user_name) { etc.getpwuid(process.uid).name }
|
342
|
+
|
343
|
+
before do
|
344
|
+
resource.owner(expected_user_name)
|
345
|
+
end
|
346
|
+
|
347
|
+
it "sets the owner on current_resource to the username (string) of the desired owner" do
|
348
|
+
current_resource.owner.should == expected_user_name
|
349
|
+
end
|
350
|
+
|
351
|
+
end
|
352
|
+
|
353
|
+
context "and owner is specified as a fully qualified 'domain\\user' in new_resource" do
|
354
|
+
|
355
|
+
let(:expected_user_name) { 'domain\user' }
|
356
|
+
|
357
|
+
before do
|
358
|
+
resource.owner(expected_user_name)
|
359
|
+
end
|
360
|
+
|
361
|
+
it "sets the owner on current_resource to the fully qualified name of the desired owner" do
|
362
|
+
current_resource.owner.should == expected_uid
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
context "and access rights are specified on the new_resource" do
|
367
|
+
# TODO: before do blah
|
368
|
+
|
369
|
+
it "sets the expanded_rights on the current resource" do
|
370
|
+
pending
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
context "and no access rights are specified on the current resource" do
|
375
|
+
# TODO: before do blah
|
376
|
+
|
377
|
+
it "sets the expanded rights on the current resource" do
|
378
|
+
pending
|
379
|
+
end
|
380
|
+
end
|
381
|
+
|
382
|
+
|
383
|
+
end
|
384
|
+
end
|
385
|
+
end
|