chef 11.4.4 → 11.6.0.hotfix.1
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.
- data/README.md +1 -1
- data/Rakefile +18 -1
- data/bin/chef-service-manager +37 -0
- 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/chef-shell.1.html +4 -4
- data/distro/common/html/chef-solo.8.html +12 -18
- data/distro/common/html/chef-solr.8.html +4 -4
- 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 +7 -10
- data/distro/common/html/knife-data-bag.1.html +7 -10
- data/distro/common/html/knife-environment.1.html +6 -8
- data/distro/common/html/knife-exec.1.html +4 -4
- 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 +4 -4
- data/distro/common/man/man1/chef-shell.1 +1 -1
- data/distro/common/man/man1/knife-bootstrap.1 +1 -1
- data/distro/common/man/man1/knife-client.1 +1 -1
- 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 +2 -15
- data/distro/common/man/man1/knife-data-bag.1 +2 -15
- data/distro/common/man/man1/knife-environment.1 +2 -12
- data/distro/common/man/man1/knife-exec.1 +1 -1
- 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 +1 -1
- 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 +4 -36
- data/distro/common/man/man8/chef-solr.8 +1 -1
- data/distro/debian/etc/init.d/chef-client +4 -2
- data/distro/windows/service_manager.rb +2 -146
- data/lib/chef.rb +1 -1
- data/lib/chef/application.rb +5 -12
- data/lib/chef/application/apply.rb +2 -0
- data/lib/chef/application/client.rb +12 -12
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +4 -5
- data/lib/chef/application/windows_service.rb +113 -56
- data/lib/chef/application/windows_service_manager.rb +179 -0
- data/lib/chef/chef_fs.rb +2 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
- data/lib/chef/chef_fs/command_line.rb +145 -93
- 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_system.rb +195 -127
- 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_object.rb +98 -39
- 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 +14 -63
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +93 -3
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +35 -9
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +67 -32
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +13 -6
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +102 -21
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +12 -21
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +14 -8
- 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 +8 -8
- data/lib/chef/chef_fs/file_system/file_system_error.rb +3 -1
- 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 +2 -2
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +17 -9
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +0 -4
- data/lib/chef/chef_fs/file_system/not_found_error.rb +2 -2
- 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 +42 -13
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +81 -27
- data/lib/chef/chef_fs/knife.rb +68 -29
- data/lib/chef/chef_fs/parallelizer.rb +129 -0
- data/lib/chef/chef_fs/path_utils.rb +29 -3
- data/lib/chef/chef_fs/raw_request.rb +79 -0
- data/lib/chef/client.rb +46 -20
- data/lib/chef/config.rb +59 -61
- data/lib/chef/cookbook/chefignore.rb +2 -1
- data/lib/chef/cookbook/synchronizer.rb +8 -6
- data/lib/chef/cookbook/syntax_check.rb +17 -2
- data/lib/chef/cookbook_uploader.rb +10 -1
- data/lib/chef/cookbook_version.rb +0 -109
- data/lib/chef/data_bag.rb +15 -6
- 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/encrypted_data_bag_item.rb +153 -61
- data/lib/chef/environment.rb +34 -3
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +27 -2
- 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/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/registration_error_inspector.rb +4 -0
- data/lib/chef/json_compat.rb +3 -0
- data/lib/chef/knife.rb +12 -3
- data/lib/chef/knife/bootstrap.rb +46 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/centos5-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/chef-full.erb +4 -4
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +3 -3
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +3 -3
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +3 -3
- data/lib/chef/knife/client_show.rb +2 -5
- data/lib/chef/knife/configure.rb +3 -3
- data/lib/chef/knife/cookbook_create.rb +6 -5
- data/lib/chef/knife/cookbook_download.rb +13 -5
- data/lib/chef/knife/cookbook_site_share.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +1 -0
- data/lib/chef/knife/cookbook_upload.rb +4 -9
- data/lib/chef/knife/core/bootstrap_context.rb +10 -4
- data/lib/chef/knife/core/generic_presenter.rb +16 -0
- data/lib/chef/knife/core/node_editor.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +43 -12
- data/lib/chef/knife/core/ui.rb +19 -4
- data/lib/chef/knife/delete.rb +76 -9
- data/lib/chef/knife/deps.rb +139 -0
- data/lib/chef/knife/diff.rb +22 -5
- data/lib/chef/knife/download.rb +16 -3
- data/lib/chef/knife/edit.rb +76 -0
- data/lib/chef/knife/environment_show.rb +2 -7
- data/lib/chef/knife/list.rb +91 -47
- 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 +20 -64
- data/lib/chef/knife/role_show.rb +2 -4
- data/lib/chef/knife/search.rb +5 -6
- data/lib/chef/knife/show.rb +34 -11
- data/lib/chef/knife/ssh.rb +8 -0
- data/lib/chef/knife/upload.rb +23 -4
- data/lib/chef/knife/user_show.rb +2 -5
- data/lib/chef/knife/xargs.rb +265 -0
- data/lib/chef/log.rb +2 -2
- data/lib/chef/mixin/file_class.rb +0 -9
- data/lib/chef/mixin/language_include_recipe.rb +1 -1
- data/lib/chef/mixin/params_validate.rb +19 -9
- data/lib/chef/mixin/template.rb +126 -36
- data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
- data/lib/chef/monkey_patches/file.rb +26 -0
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
- data/lib/chef/monkey_patches/securerandom.rb +44 -0
- data/lib/chef/monologger.rb +93 -0
- data/lib/chef/node.rb +4 -0
- data/lib/chef/platform.rb +4 -490
- data/lib/chef/platform/provider_mapping.rb +529 -0
- data/lib/chef/{monkey_patches/dir.rb → platform/query_helpers.rb} +25 -19
- data/lib/chef/provider.rb +12 -9
- data/lib/chef/provider/batch.rb +35 -0
- data/lib/chef/provider/cookbook_file.rb +9 -78
- data/lib/chef/provider/cookbook_file/content.rb +49 -0
- data/lib/chef/provider/deploy.rb +24 -20
- data/lib/chef/provider/deploy/revision.rb +27 -0
- data/lib/chef/provider/directory.rb +19 -22
- data/lib/chef/provider/execute.rb +22 -5
- data/lib/chef/provider/file.rb +299 -217
- data/lib/chef/provider/file/content.rb +39 -0
- data/lib/chef/provider/git.rb +76 -43
- data/lib/chef/provider/group/usermod.rb +2 -2
- 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 +10 -3
- 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/portage.rb +9 -4
- data/lib/chef/provider/package/rubygems.rb +45 -10
- data/lib/chef/provider/package/smartos.rb +47 -36
- data/lib/chef/provider/package/yum.rb +19 -12
- data/lib/chef/provider/package/zypper.rb +45 -55
- data/lib/chef/provider/powershell_script.rb +77 -0
- data/lib/chef/provider/remote_directory.rb +5 -6
- data/lib/chef/provider/remote_file.rb +12 -108
- 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/script.rb +14 -2
- data/lib/chef/provider/service/macosx.rb +16 -10
- data/lib/chef/provider/service/solaris.rb +6 -5
- data/lib/chef/provider/template.rb +16 -78
- data/lib/chef/provider/template/content.rb +61 -0
- data/lib/chef/provider/user/solaris.rb +90 -0
- data/lib/chef/provider/user/useradd.rb +76 -63
- data/lib/chef/provider/windows_script.rb +73 -0
- data/lib/chef/providers.rb +16 -0
- data/lib/chef/resource.rb +23 -2
- data/lib/chef/resource/batch.rb +31 -0
- 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/link.rb +17 -0
- data/lib/chef/resource/lwrp_base.rb +1 -1
- data/lib/chef/resource/mount.rb +29 -2
- data/lib/chef/resource/powershell_script.rb +31 -0
- data/lib/chef/resource/remote_file.rb +47 -1
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/template.rb +145 -0
- data/lib/chef/resource/windows_script.rb +62 -0
- data/lib/chef/resource_collection.rb +45 -11
- data/lib/chef/resource_reporter.rb +81 -52
- data/lib/chef/resources.rb +2 -0
- data/lib/chef/rest.rb +13 -4
- data/lib/chef/rest/rest_request.rb +5 -1
- data/lib/chef/run_context/cookbook_compiler.rb +3 -3
- data/lib/chef/run_list/run_list_expansion.rb +1 -1
- data/lib/chef/run_lock.rb +7 -1
- data/lib/chef/runner.rb +0 -1
- data/lib/chef/scan_access_control.rb +6 -1
- data/lib/chef/search/query.rb +2 -2
- data/lib/chef/shell/shell_session.rb +2 -2
- 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_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/version_constraint/platform.rb +26 -0
- data/lib/chef/win32/api/file.rb +8 -2
- 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/files/default/.dotfile +1 -0
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -0
- 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-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
- data/spec/data/knife_subcommand/test_yourself.rb +8 -0
- data/spec/data/null_config.rb +1 -0
- data/spec/data/partial_one.erb +1 -1
- data/spec/data/remote_file/nyan_cat.png.gz +0 -0
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
- data/spec/functional/knife/exec_spec.rb +2 -2
- 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 +2 -3
- data/spec/functional/resource/deploy_revision_spec.rb +180 -0
- data/spec/functional/resource/directory_spec.rb +2 -2
- data/spec/functional/resource/file_spec.rb +17 -1
- data/spec/functional/resource/git_spec.rb +259 -0
- data/spec/functional/resource/link_spec.rb +422 -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 +8 -4
- data/spec/functional/resource/remote_directory_spec.rb +2 -2
- data/spec/functional/resource/remote_file_spec.rb +97 -29
- data/spec/functional/resource/template_spec.rb +173 -17
- data/spec/functional/resource/user_spec.rb +547 -0
- data/spec/functional/run_lock_spec.rb +5 -0
- data/spec/functional/shell_spec.rb +2 -1
- 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 +55 -1
- data/spec/support/chef_helpers.rb +32 -0
- data/spec/support/platform_helpers.rb +40 -0
- data/spec/support/platforms/win32/spec_service.rb +59 -0
- data/spec/support/shared/functional/directory_resource.rb +43 -16
- data/spec/support/shared/functional/file_resource.rb +661 -20
- data/spec/support/shared/functional/securable_resource.rb +109 -8
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +39 -31
- 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 +8 -48
- 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/application/client_spec.rb +39 -1
- data/spec/unit/application/knife_spec.rb +12 -0
- data/spec/unit/application/solo_spec.rb +1 -1
- data/spec/unit/application_spec.rb +57 -2
- data/spec/unit/chef_fs/diff_spec.rb +30 -31
- data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
- data/spec/unit/chef_fs/file_system_spec.rb +2 -3
- data/spec/unit/client_spec.rb +20 -1
- data/spec/unit/config_spec.rb +70 -52
- data/spec/unit/cookbook/synchronizer_spec.rb +49 -1
- data/spec/unit/cookbook/syntax_check_spec.rb +28 -3
- data/spec/unit/cookbook_loader_spec.rb +3 -2
- data/spec/unit/daemon_spec.rb +7 -7
- data/spec/unit/data_bag_spec.rb +7 -0
- data/spec/unit/deprecation_spec.rb +86 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +183 -88
- data/spec/unit/environment_spec.rb +98 -0
- data/spec/unit/exceptions_spec.rb +6 -1
- 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 +3 -2
- data/spec/unit/knife/bootstrap_spec.rb +128 -29
- data/spec/unit/knife/configure_spec.rb +42 -26
- data/spec/unit/knife/cookbook_download_spec.rb +24 -3
- data/spec/unit/knife/cookbook_upload_spec.rb +8 -4
- data/spec/unit/knife/core/bootstrap_context_spec.rb +78 -61
- data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
- data/spec/unit/knife/core/ui_spec.rb +41 -0
- data/spec/unit/knife/node_run_list_set_spec.rb +140 -0
- data/spec/unit/knife_spec.rb +21 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +1 -0
- data/spec/unit/mixin/params_validate_spec.rb +35 -0
- data/spec/unit/mixin/template_spec.rb +69 -57
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
- data/spec/unit/node_spec.rb +7 -0
- data/spec/unit/platform_spec.rb +15 -1
- data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
- data/spec/unit/provider/cookbook_file_spec.rb +26 -183
- 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 +23 -23
- 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 -484
- data/spec/unit/provider/git_spec.rb +224 -28
- data/spec/unit/provider/group/usermod_spec.rb +3 -1
- 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/package/portage_spec.rb +44 -0
- data/spec/unit/provider/package/rubygems_spec.rb +44 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -2
- data/spec/unit/provider/package/yum_spec.rb +36 -39
- data/spec/unit/provider/package/zypper_spec.rb +84 -22
- data/spec/unit/provider/package_spec.rb +0 -4
- data/spec/unit/provider/powershell_spec.rb +38 -0
- data/spec/unit/provider/remote_directory_spec.rb +0 -4
- 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 -295
- data/spec/unit/provider/route_spec.rb +25 -9
- data/spec/unit/provider/service/macosx_spec.rb +176 -152
- 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 +2 -2
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/template/content_spec.rb +78 -0
- data/spec/unit/provider/template_spec.rb +52 -184
- data/spec/unit/provider/user/solaris_spec.rb +80 -0
- data/spec/unit/provider/user/useradd_spec.rb +12 -358
- 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 -0
- data/spec/unit/resource/powershell_spec.rb +48 -0
- data/spec/unit/resource/remote_file_spec.rb +44 -4
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/script_spec.rb +13 -36
- 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 +170 -1
- data/spec/unit/rest/auth_credentials_spec.rb +2 -2
- data/spec/unit/rest_spec.rb +6 -2
- data/spec/unit/run_context/cookbook_compiler_spec.rb +9 -0
- data/spec/unit/runner_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +4 -2
- data/spec/unit/shell/shell_session_spec.rb +15 -2
- 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 +233 -10
- data/lib/chef/chef_fs/file_system/data_bag_item.rb +0 -59
- data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +0 -237
- data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +0 -568
- data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +0 -220
|
@@ -20,105 +20,7 @@
|
|
|
20
20
|
require 'spec_helper'
|
|
21
21
|
|
|
22
22
|
describe Chef::Resource::Execute do
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "should create a new Chef::Resource::Execute" do
|
|
29
|
-
@resource.should be_a_kind_of(Chef::Resource)
|
|
30
|
-
@resource.should be_a_kind_of(Chef::Resource::Execute)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should set the command to the first argument to new" do
|
|
34
|
-
@resource.command.should eql("some command")
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should accept an array on instantiation, too" do
|
|
38
|
-
resource = Chef::Resource::Execute.new(%w{something else})
|
|
39
|
-
resource.should be_a_kind_of(Chef::Resource)
|
|
40
|
-
resource.should be_a_kind_of(Chef::Resource::Execute)
|
|
41
|
-
resource.command.should eql(%w{something else})
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it "should accept a string for the command to run" do
|
|
45
|
-
@resource.command "something"
|
|
46
|
-
@resource.command.should eql("something")
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
it "should accept an array for the command to run" do
|
|
50
|
-
@resource.command %w{something else}
|
|
51
|
-
@resource.command.should eql(%w{something else})
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it "should accept a string for the cwd" do
|
|
55
|
-
@resource.cwd "something"
|
|
56
|
-
@resource.cwd.should eql("something")
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
it "should accept a hash for the environment" do
|
|
60
|
-
test_hash = { :one => :two }
|
|
61
|
-
@resource.environment(test_hash)
|
|
62
|
-
@resource.environment.should eql(test_hash)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
it "allows the environment to be specified with #env" do
|
|
66
|
-
@resource.should respond_to(:env)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "should accept a string for the group" do
|
|
70
|
-
@resource.group "something"
|
|
71
|
-
@resource.group.should eql("something")
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should accept an integer for the group" do
|
|
75
|
-
@resource.group 1
|
|
76
|
-
@resource.group.should eql(1)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
it "should accept an array for the execution path" do
|
|
80
|
-
@resource.path ["woot"]
|
|
81
|
-
@resource.path.should eql(["woot"])
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
it "should accept an integer for the return code" do
|
|
85
|
-
@resource.returns 1
|
|
86
|
-
@resource.returns.should eql(1)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
it "should accept an integer for the timeout" do
|
|
90
|
-
@resource.timeout 1
|
|
91
|
-
@resource.timeout.should eql(1)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
it "should accept a string for the user" do
|
|
95
|
-
@resource.user "something"
|
|
96
|
-
@resource.user.should eql("something")
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
it "should accept an integer for the user" do
|
|
100
|
-
@resource.user 1
|
|
101
|
-
@resource.user.should eql(1)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
it "should accept a string for creates" do
|
|
105
|
-
@resource.creates "something"
|
|
106
|
-
@resource.creates.should eql("something")
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
describe "when it has cwd, environment, group, path, return value, and a user" do
|
|
110
|
-
before do
|
|
111
|
-
@resource.command("grep")
|
|
112
|
-
@resource.cwd("/tmp/")
|
|
113
|
-
@resource.environment({ :one => :two })
|
|
114
|
-
@resource.group("legos")
|
|
115
|
-
@resource.path(["/var/local/"])
|
|
116
|
-
@resource.returns(1)
|
|
117
|
-
@resource.user("root")
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
it "returns the command as its identity" do
|
|
121
|
-
@resource.identity.should == "grep"
|
|
122
|
-
end
|
|
123
|
-
end
|
|
23
|
+
let(:resource_instance_name) { "some command" }
|
|
24
|
+
let(:execute_resource) { Chef::Resource::Execute.new(resource_instance_name) }
|
|
25
|
+
it_behaves_like "an execute resource"
|
|
124
26
|
end
|
|
@@ -95,11 +95,6 @@ describe Chef::Resource::File do
|
|
|
95
95
|
end
|
|
96
96
|
end
|
|
97
97
|
|
|
98
|
-
context "on windows", :windows_only do
|
|
99
|
-
# according to Chef::Resource::File, windows state attributes are rights + deny_rights
|
|
100
|
-
pending "it describes its state"
|
|
101
|
-
end
|
|
102
|
-
|
|
103
98
|
it "returns the file path as its identity" do
|
|
104
99
|
@resource.identity.should == "/tmp/foo.txt"
|
|
105
100
|
end
|
|
@@ -58,6 +58,15 @@ describe Chef::Resource::Group, "initialize" do
|
|
|
58
58
|
@resource.allowed_actions.detect { |a| a == action.to_sym }.should eql(action.to_sym)
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
|
+
|
|
62
|
+
it "should accept domain groups (@ or \ separator) on non-windows" do
|
|
63
|
+
lambda { @resource.group_name "domain\@group" }.should_not raise_error(ArgumentError)
|
|
64
|
+
@resource.group_name.should == "domain\@group"
|
|
65
|
+
lambda { @resource.group_name "domain\\group" }.should_not raise_error(ArgumentError)
|
|
66
|
+
@resource.group_name.should == "domain\\group"
|
|
67
|
+
lambda { @resource.group_name "domain\\group^name" }.should_not raise_error(ArgumentError)
|
|
68
|
+
@resource.group_name.should == "domain\\group^name"
|
|
69
|
+
end
|
|
61
70
|
end
|
|
62
71
|
|
|
63
72
|
describe Chef::Resource::Group, "group_name" do
|
|
@@ -21,7 +21,10 @@ require 'spec_helper'
|
|
|
21
21
|
describe Chef::Resource::Ifconfig do
|
|
22
22
|
|
|
23
23
|
before(:each) do
|
|
24
|
-
@
|
|
24
|
+
@node = Chef::Node.new
|
|
25
|
+
@events = Chef::EventDispatch::Dispatcher.new
|
|
26
|
+
@run_context = Chef::RunContext.new(@node, {}, @events)
|
|
27
|
+
@resource = Chef::Resource::Ifconfig.new("fakey_fakerton", @run_context)
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
describe "when it has target, hardware address, inet address, and a mask" do
|
|
@@ -43,4 +46,60 @@ describe Chef::Resource::Ifconfig do
|
|
|
43
46
|
@resource.identity.should == "charmander"
|
|
44
47
|
end
|
|
45
48
|
end
|
|
49
|
+
|
|
50
|
+
shared_examples "being a platform using the default ifconfig provider" do |platform, version|
|
|
51
|
+
before do
|
|
52
|
+
@node.automatic_attrs[:platform] = platform
|
|
53
|
+
@node.automatic_attrs[:platform_version] = version
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "should use an ordinary Provider::Ifconfig as a provider for #{platform} #{version}" do
|
|
57
|
+
@resource.provider_for_action(:add).should be_a_kind_of(Chef::Provider::Ifconfig)
|
|
58
|
+
@resource.provider_for_action(:add).should_not be_a_kind_of(Chef::Provider::Ifconfig::Debian)
|
|
59
|
+
@resource.provider_for_action(:add).should_not be_a_kind_of(Chef::Provider::Ifconfig::Redhat)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
shared_examples "being a platform based on RedHat" do |platform, version|
|
|
64
|
+
before do
|
|
65
|
+
@node.automatic_attrs[:platform] = platform
|
|
66
|
+
@node.automatic_attrs[:platform_version] = version
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "should use an Provider::Ifconfig::Redhat as a provider for #{platform} #{version}" do
|
|
70
|
+
@resource.provider_for_action(:add).should be_a_kind_of(Chef::Provider::Ifconfig::Redhat)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
shared_examples "being a platform based on a recent Debian" do |platform, version|
|
|
75
|
+
before do
|
|
76
|
+
@node.automatic_attrs[:platform] = platform
|
|
77
|
+
@node.automatic_attrs[:platform_version] = version
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it "should use an Ifconfig::Debian as a provider for #{platform} #{version}" do
|
|
81
|
+
@resource.provider_for_action(:add).should be_a_kind_of(Chef::Provider::Ifconfig::Debian)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
describe "when it is a RedHat platform" do
|
|
86
|
+
it_should_behave_like "being a platform based on RedHat", "redhat", "4.0"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
describe "when it is an old Debian platform" do
|
|
90
|
+
it_should_behave_like "being a platform using the default ifconfig provider", "debian", "6.0"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe "when it is a new Debian platform" do
|
|
94
|
+
it_should_behave_like "being a platform based on a recent Debian", "debian", "7.0"
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
describe "when it is an old Ubuntu platform" do
|
|
98
|
+
it_should_behave_like "being a platform using the default ifconfig provider", "ubuntu", "11.04"
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
describe "when it is a new Ubuntu platform" do
|
|
102
|
+
it_should_behave_like "being a platform based on a recent Debian", "ubuntu", "11.10"
|
|
103
|
+
end
|
|
104
|
+
|
|
46
105
|
end
|
|
@@ -136,6 +136,21 @@ describe Chef::Resource::Mount do
|
|
|
136
136
|
@resource.supports.should == support_hash
|
|
137
137
|
end
|
|
138
138
|
|
|
139
|
+
it "should allow you to set username" do
|
|
140
|
+
@resource.username("Administrator")
|
|
141
|
+
@resource.username.should == "Administrator"
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it "should allow you to set password" do
|
|
145
|
+
@resource.password("Jetstream123!")
|
|
146
|
+
@resource.password.should == "Jetstream123!"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
it "should allow you to set domain" do
|
|
150
|
+
@resource.domain("TEST_DOMAIN")
|
|
151
|
+
@resource.domain.should == "TEST_DOMAIN"
|
|
152
|
+
end
|
|
153
|
+
|
|
139
154
|
describe "when it has mount point, device type, and fstype" do
|
|
140
155
|
before do
|
|
141
156
|
@resource.device("charmander")
|
|
@@ -155,4 +170,26 @@ describe Chef::Resource::Mount do
|
|
|
155
170
|
@resource.identity.should == "charmander"
|
|
156
171
|
end
|
|
157
172
|
end
|
|
173
|
+
|
|
174
|
+
describe "when it has username, password and domain" do
|
|
175
|
+
before do
|
|
176
|
+
@resource.mount_point("T:")
|
|
177
|
+
@resource.device("charmander")
|
|
178
|
+
@resource.username("Administrator")
|
|
179
|
+
@resource.password("Jetstream123!")
|
|
180
|
+
@resource.domain("TEST_DOMAIN")
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
it "describes its state" do
|
|
184
|
+
state = @resource.state
|
|
185
|
+
puts state
|
|
186
|
+
state[:mount_point].should == "T:"
|
|
187
|
+
state[:username].should == "Administrator"
|
|
188
|
+
state[:password].should == "Jetstream123!"
|
|
189
|
+
state[:domain].should == "TEST_DOMAIN"
|
|
190
|
+
state[:device_type].should eql(:device)
|
|
191
|
+
state[:fstype].should == "auto"
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
end
|
|
158
195
|
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Edwards (<adamed@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2013 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'spec_helper'
|
|
20
|
+
|
|
21
|
+
describe Chef::Resource::PowershellScript do
|
|
22
|
+
|
|
23
|
+
before(:each) do
|
|
24
|
+
node = Chef::Node.new
|
|
25
|
+
|
|
26
|
+
node.default["kernel"] = Hash.new
|
|
27
|
+
node.default["kernel"][:machine] = :x86_64.to_s
|
|
28
|
+
|
|
29
|
+
run_context = Chef::RunContext.new(node, nil, nil)
|
|
30
|
+
|
|
31
|
+
@resource = Chef::Resource::PowershellScript.new("powershell_unit_test", run_context)
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should create a new Chef::Resource::PowershellScript" do
|
|
36
|
+
@resource.should be_a_kind_of(Chef::Resource::PowershellScript)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
context "windowsscript" do
|
|
40
|
+
let(:resource_instance) { @resource }
|
|
41
|
+
let(:resource_instance_name ) { @resource.command }
|
|
42
|
+
let(:resource_name) { :powershell_script }
|
|
43
|
+
let(:interpreter_file_name) { 'powershell.exe' }
|
|
44
|
+
|
|
45
|
+
it_should_behave_like "a Windows script resource"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
@@ -42,7 +42,7 @@ describe Chef::Resource::RemoteFile do
|
|
|
42
42
|
|
|
43
43
|
describe "source" do
|
|
44
44
|
it "does not have a default value for 'source'" do
|
|
45
|
-
@resource.source.should
|
|
45
|
+
@resource.source.should eql([])
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
it "should accept a URI for the remote file source" do
|
|
@@ -64,7 +64,7 @@ describe Chef::Resource::RemoteFile do
|
|
|
64
64
|
lambda { @resource.source("not-a-uri") }.should raise_error(Chef::Exceptions::InvalidRemoteFileURI)
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
it "should raise
|
|
67
|
+
it "should raise an exception when source is an empty array" do
|
|
68
68
|
lambda { @resource.source([]) }.should raise_error(ArgumentError)
|
|
69
69
|
end
|
|
70
70
|
|
|
@@ -80,7 +80,48 @@ describe Chef::Resource::RemoteFile do
|
|
|
80
80
|
@resource.checksum.should == nil
|
|
81
81
|
end
|
|
82
82
|
end
|
|
83
|
-
|
|
83
|
+
|
|
84
|
+
describe "ftp_active_mode" do
|
|
85
|
+
it "should accept a boolean for the ftp_active_mode object" do
|
|
86
|
+
@resource.ftp_active_mode true
|
|
87
|
+
@resource.ftp_active_mode.should be_true
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
it "should default to false" do
|
|
91
|
+
@resource.ftp_active_mode.should be_false
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
describe "conditional get options" do
|
|
96
|
+
it "defaults to using etags and last modified" do
|
|
97
|
+
@resource.use_etags.should be_true
|
|
98
|
+
@resource.use_last_modified.should be_true
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it "enable or disables etag and last modified options as a group" do
|
|
102
|
+
@resource.use_conditional_get(false)
|
|
103
|
+
@resource.use_etags.should be_false
|
|
104
|
+
@resource.use_last_modified.should be_false
|
|
105
|
+
|
|
106
|
+
@resource.use_conditional_get(true)
|
|
107
|
+
@resource.use_etags.should be_true
|
|
108
|
+
@resource.use_last_modified.should be_true
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it "disables etags indivdually" do
|
|
112
|
+
@resource.use_etags(false)
|
|
113
|
+
@resource.use_etags.should be_false
|
|
114
|
+
@resource.use_last_modified.should be_true
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "disables last modified individually" do
|
|
118
|
+
@resource.use_last_modified(false)
|
|
119
|
+
@resource.use_last_modified.should be_false
|
|
120
|
+
@resource.use_etags.should be_true
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
end
|
|
124
|
+
|
|
84
125
|
describe "when it has group, mode, owner, source, and checksum" do
|
|
85
126
|
before do
|
|
86
127
|
if Chef::Platform.windows?
|
|
@@ -119,5 +160,4 @@ describe Chef::Resource::RemoteFile do
|
|
|
119
160
|
end
|
|
120
161
|
end
|
|
121
162
|
end
|
|
122
|
-
|
|
123
163
|
end
|
|
@@ -20,50 +20,27 @@
|
|
|
20
20
|
require 'spec_helper'
|
|
21
21
|
|
|
22
22
|
describe Chef::Resource::Script do
|
|
23
|
+
let(:resource_instance_name) { "fakey_fakerton" }
|
|
24
|
+
let(:script_resource) { Chef::Resource::Script.new(resource_instance_name) }
|
|
25
|
+
let(:resource_name) { :script }
|
|
23
26
|
|
|
24
|
-
before(:each) do
|
|
25
|
-
@resource = Chef::Resource::Script.new("fakey_fakerton")
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "should create a new Chef::Resource::Script" do
|
|
29
|
-
@resource.should be_a_kind_of(Chef::Resource)
|
|
30
|
-
@resource.should be_a_kind_of(Chef::Resource::Script)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should have a resource name of :script" do
|
|
34
|
-
@resource.resource_name.should eql(:script)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should set command to the argument provided to new" do
|
|
38
|
-
@resource.command.should eql("fakey_fakerton")
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it "should accept a string for the code" do
|
|
42
|
-
@resource.code "hey jude"
|
|
43
|
-
@resource.code.should eql("hey jude")
|
|
44
|
-
end
|
|
45
|
-
|
|
46
27
|
it "should accept a string for the interpreter" do
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it "should accept a string for the flags" do
|
|
52
|
-
@resource.flags "-f"
|
|
53
|
-
@resource.flags.should eql("-f")
|
|
28
|
+
script_resource.interpreter "naaaaNaNaNaaNaaNaaNaa"
|
|
29
|
+
script_resource.interpreter.should eql("naaaaNaNaNaaNaaNaaNaa")
|
|
54
30
|
end
|
|
55
31
|
|
|
56
32
|
describe "when it has interpreter and flags" do
|
|
57
33
|
before do
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
34
|
+
script_resource.command("grep")
|
|
35
|
+
script_resource.interpreter("gcc")
|
|
36
|
+
script_resource.flags("-al")
|
|
61
37
|
end
|
|
62
38
|
|
|
63
|
-
|
|
64
|
-
|
|
39
|
+
it "returns the command as its identity" do
|
|
40
|
+
script_resource.identity.should == "grep"
|
|
65
41
|
end
|
|
66
42
|
end
|
|
67
|
-
|
|
68
|
-
|
|
43
|
+
|
|
44
|
+
it_behaves_like "a script resource"
|
|
69
45
|
end
|
|
46
|
+
|