chef 12.0.0.alpha.2-x86-mingw32 → 12.0.0.rc.0-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.
- data/CONTRIBUTING.md +9 -0
- data/README.md +1 -1
- data/Rakefile +12 -0
- data/bin/chef-service-manager +1 -1
- data/bin/chef-windows-service +35 -0
- data/distro/common/html/_sources/ctl_chef_server.txt +307 -10
- data/distro/common/html/ctl_chef_client.html +3 -7
- data/distro/common/html/ctl_chef_server.html +609 -41
- data/distro/common/html/ctl_chef_shell.html +2 -2
- data/distro/common/html/ctl_chef_solo.html +1 -1
- data/distro/common/html/index.html +13 -13
- data/distro/common/html/knife.html +10 -10
- data/distro/common/html/knife_bootstrap.html +8 -8
- data/distro/common/html/knife_client.html +12 -12
- data/distro/common/html/knife_common_options.html +7 -7
- data/distro/common/html/knife_configure.html +3 -3
- data/distro/common/html/knife_cookbook.html +19 -19
- data/distro/common/html/knife_cookbook_site.html +28 -28
- data/distro/common/html/knife_data_bag.html +28 -13
- data/distro/common/html/knife_delete.html +2 -2
- data/distro/common/html/knife_deps.html +3 -3
- data/distro/common/html/knife_diff.html +4 -4
- data/distro/common/html/knife_download.html +3 -3
- data/distro/common/html/knife_edit.html +2 -2
- data/distro/common/html/knife_environment.html +14 -14
- data/distro/common/html/knife_exec.html +11 -11
- data/distro/common/html/knife_index_rebuild.html +2 -2
- data/distro/common/html/knife_list.html +3 -3
- data/distro/common/html/knife_node.html +23 -23
- data/distro/common/html/knife_raw.html +4 -4
- data/distro/common/html/knife_recipe_list.html +3 -3
- data/distro/common/html/knife_role.html +11 -11
- data/distro/common/html/knife_search.html +4 -4
- data/distro/common/html/knife_serve.html +3 -3
- data/distro/common/html/knife_show.html +3 -3
- data/distro/common/html/knife_ssh.html +7 -7
- data/distro/common/html/knife_ssl_check.html +7 -7
- data/distro/common/html/knife_ssl_fetch.html +9 -9
- data/distro/common/html/knife_status.html +3 -3
- data/distro/common/html/knife_tag.html +9 -9
- data/distro/common/html/knife_upload.html +3 -3
- data/distro/common/html/knife_user.html +9 -9
- data/distro/common/html/knife_using.html +11 -11
- data/distro/common/html/knife_xargs.html +14 -5
- data/distro/common/html/search.html +2 -2
- data/distro/common/html/searchindex.js +1 -1
- data/distro/common/man/man1/chef-shell.1 +2 -2
- data/distro/common/man/man1/knife-bootstrap.1 +7 -7
- data/distro/common/man/man1/knife-client.1 +10 -10
- data/distro/common/man/man1/knife-configure.1 +5 -5
- data/distro/common/man/man1/knife-cookbook-site.1 +24 -24
- data/distro/common/man/man1/knife-cookbook.1 +12 -12
- data/distro/common/man/man1/knife-data-bag.1 +34 -10
- data/distro/common/man/man1/knife-delete.1 +5 -5
- data/distro/common/man/man1/knife-deps.1 +5 -5
- data/distro/common/man/man1/knife-diff.1 +7 -7
- data/distro/common/man/man1/knife-download.1 +5 -5
- data/distro/common/man/man1/knife-edit.1 +5 -5
- data/distro/common/man/man1/knife-environment.1 +11 -11
- data/distro/common/man/man1/knife-exec.1 +11 -11
- data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
- data/distro/common/man/man1/knife-list.1 +5 -5
- data/distro/common/man/man1/knife-node.1 +16 -16
- data/distro/common/man/man1/knife-raw.1 +6 -6
- data/distro/common/man/man1/knife-recipe-list.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +7 -7
- data/distro/common/man/man1/knife-search.1 +6 -6
- data/distro/common/man/man1/knife-serve.1 +6 -6
- data/distro/common/man/man1/knife-show.1 +5 -5
- data/distro/common/man/man1/knife-ssh.1 +9 -9
- data/distro/common/man/man1/knife-ssl-check.1 +7 -7
- data/distro/common/man/man1/knife-ssl-fetch.1 +9 -9
- data/distro/common/man/man1/knife-status.1 +5 -5
- data/distro/common/man/man1/knife-tag.1 +8 -8
- data/distro/common/man/man1/knife-upload.1 +5 -5
- data/distro/common/man/man1/knife-user.1 +8 -8
- data/distro/common/man/man1/knife-xargs.1 +36 -10
- data/distro/common/man/man1/knife.1 +14 -14
- data/distro/common/man/man8/chef-client.8 +3 -10
- data/distro/common/man/man8/chef-solo.8 +1 -1
- data/ext/win32-eventlog/Rakefile +50 -0
- data/ext/win32-eventlog/chef-log.man +26 -0
- data/lib/chef/application.rb +313 -241
- data/lib/chef/application/apply.rb +10 -8
- data/lib/chef/application/client.rb +58 -33
- data/lib/chef/application/solo.rb +33 -12
- data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
- data/lib/chef/chef_fs/command_line.rb +1 -1
- data/lib/chef/chef_fs/file_system/organization_invites_entry.rb +2 -1
- data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -1
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +2 -1
- data/lib/chef/client.rb +18 -48
- data/lib/chef/config.rb +43 -11
- data/lib/chef/cookbook/cookbook_version_loader.rb +14 -7
- data/lib/chef/cookbook/metadata.rb +81 -38
- data/lib/chef/cookbook/syntax_check.rb +18 -52
- data/lib/chef/cookbook_loader.rb +1 -1
- data/lib/chef/cookbook_version.rb +58 -39
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/deprecation/provider/file.rb +2 -1
- data/lib/chef/dsl/data_query.rb +2 -29
- data/lib/chef/dsl/recipe.rb +8 -22
- data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -0
- data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +1 -1
- data/lib/chef/event_loggers/base.rb +62 -0
- data/lib/chef/event_loggers/windows_eventlog.rb +104 -0
- data/lib/chef/exceptions.rb +18 -1
- data/lib/chef/file_cache.rb +3 -2
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +15 -6
- data/lib/chef/http.rb +20 -13
- data/lib/chef/http/ssl_policies.rb +2 -1
- data/lib/chef/json_compat.rb +9 -3
- data/lib/chef/knife.rb +2 -1
- data/lib/chef/knife/bootstrap.rb +12 -18
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
- data/lib/chef/knife/cookbook_create.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +43 -8
- data/lib/chef/knife/core/bootstrap_context.rb +6 -11
- data/lib/chef/knife/core/object_loader.rb +5 -5
- data/lib/chef/knife/core/status_presenter.rb +156 -0
- data/lib/chef/knife/core/subcommand_loader.rb +6 -5
- data/lib/chef/knife/core/ui.rb +4 -4
- data/lib/chef/knife/data_bag_create.rb +7 -32
- data/lib/chef/knife/data_bag_edit.rb +24 -43
- data/lib/chef/knife/data_bag_from_file.rb +6 -31
- data/lib/chef/knife/data_bag_secret_options.rb +142 -0
- data/lib/chef/knife/data_bag_show.rb +19 -33
- data/lib/chef/knife/node_from_file.rb +9 -8
- data/lib/chef/knife/ssh.rb +0 -7
- data/lib/chef/knife/ssl_check.rb +70 -6
- data/lib/chef/knife/status.rb +11 -58
- data/lib/chef/mixin/command/unix.rb +2 -2
- data/lib/chef/mixin/convert_to_class_name.rb +54 -0
- data/lib/chef/mixin/descendants_tracker.rb +82 -0
- data/lib/chef/mixin/homebrew_user.rb +68 -0
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
- data/lib/chef/mixin/windows_env_helper.rb +56 -0
- data/lib/chef/node.rb +2 -2
- data/lib/chef/node_map.rb +146 -0
- data/lib/chef/platform/provider_mapping.rb +11 -39
- data/lib/chef/platform/provider_priority_map.rb +80 -0
- data/lib/chef/platform/query_helpers.rb +5 -1
- data/lib/chef/platform/service_helpers.rb +113 -0
- data/lib/chef/provider.rb +24 -0
- data/lib/chef/provider/breakpoint.rb +2 -0
- data/lib/chef/provider/cookbook_file.rb +2 -0
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/cron/unix.rb +13 -9
- data/lib/chef/provider/deploy.rb +3 -2
- data/lib/chef/provider/deploy/revision.rb +4 -2
- data/lib/chef/provider/deploy/timestamped.rb +2 -0
- data/lib/chef/provider/directory.rb +2 -0
- data/lib/chef/provider/dsc_script.rb +179 -0
- data/lib/chef/provider/env.rb +25 -10
- data/lib/chef/provider/env/windows.rb +9 -16
- data/lib/chef/provider/erl_call.rb +2 -0
- data/lib/chef/provider/execute.rb +5 -2
- data/lib/chef/provider/file.rb +2 -0
- data/lib/chef/provider/git.rb +51 -23
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/pw.rb +9 -13
- data/lib/chef/provider/http_request.rb +2 -0
- data/lib/chef/provider/link.rb +3 -0
- data/lib/chef/provider/log.rb +2 -0
- data/lib/chef/provider/lwrp_base.rb +11 -9
- data/lib/chef/provider/mount/mount.rb +1 -1
- data/lib/chef/provider/package/aix.rb +2 -0
- data/lib/chef/provider/package/apt.rb +2 -0
- data/lib/chef/provider/package/dpkg.rb +2 -0
- data/lib/chef/provider/package/easy_install.rb +2 -0
- data/lib/chef/provider/package/freebsd/pkg.rb +2 -1
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
- data/lib/chef/provider/package/freebsd/port.rb +1 -9
- data/lib/chef/provider/package/homebrew.rb +127 -0
- data/lib/chef/provider/package/ips.rb +2 -0
- data/lib/chef/provider/package/macports.rb +3 -0
- data/lib/chef/provider/package/pacman.rb +5 -4
- data/lib/chef/provider/package/paludis.rb +4 -2
- data/lib/chef/provider/package/portage.rb +4 -1
- data/lib/chef/provider/package/rpm.rb +2 -0
- data/lib/chef/provider/package/rubygems.rb +4 -0
- data/lib/chef/provider/package/smartos.rb +2 -0
- data/lib/chef/provider/package/solaris.rb +2 -0
- data/lib/chef/provider/package/windows.rb +5 -2
- data/lib/chef/provider/package/yum.rb +2 -0
- data/lib/chef/provider/powershell_script.rb +3 -1
- data/lib/chef/provider/remote_directory.rb +25 -10
- data/lib/chef/provider/route.rb +2 -0
- data/lib/chef/provider/ruby_block.rb +2 -0
- data/lib/chef/provider/script.rb +6 -0
- data/lib/chef/provider/service/aix.rb +128 -0
- data/lib/chef/provider/service/aixinit.rb +117 -0
- data/lib/chef/provider/service/arch.rb +6 -0
- data/lib/chef/provider/service/debian.rb +35 -29
- data/lib/chef/provider/service/freebsd.rb +7 -1
- data/lib/chef/provider/service/gentoo.rb +5 -1
- data/lib/chef/provider/service/init.rb +2 -0
- data/lib/chef/provider/service/insserv.rb +15 -8
- data/lib/chef/provider/service/invokercd.rb +6 -0
- data/lib/chef/provider/service/macosx.rb +4 -1
- data/lib/chef/provider/service/redhat.rb +9 -3
- data/lib/chef/provider/service/simple.rb +2 -0
- data/lib/chef/provider/service/solaris.rb +2 -0
- data/lib/chef/provider/service/systemd.rb +7 -0
- data/lib/chef/provider/service/upstart.rb +7 -0
- data/lib/chef/provider/service/windows.rb +5 -0
- data/lib/chef/provider/subversion.rb +2 -0
- data/lib/chef/provider/template.rb +1 -0
- data/lib/chef/provider/user/dscl.rb +3 -2
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +2 -0
- data/lib/chef/provider_resolver.rb +103 -0
- data/lib/chef/providers.rb +6 -2
- data/lib/chef/recipe.rb +2 -0
- data/lib/chef/resource.rb +69 -78
- data/lib/chef/resource/apt_package.rb +3 -1
- data/lib/chef/resource/bash.rb +1 -0
- data/lib/chef/resource/bff_package.rb +0 -1
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/chef_gem.rb +1 -2
- data/lib/chef/resource/conditional.rb +26 -6
- data/lib/chef/resource/cookbook_file.rb +2 -3
- data/lib/chef/resource/csh.rb +1 -0
- data/lib/chef/resource/deploy.rb +0 -1
- data/lib/chef/resource/deploy_revision.rb +6 -1
- data/lib/chef/resource/directory.rb +1 -2
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_script.rb +125 -0
- data/lib/chef/resource/easy_install_package.rb +2 -1
- data/lib/chef/resource/erl_call.rb +1 -0
- data/lib/chef/resource/execute.rb +26 -9
- data/lib/chef/resource/file.rb +1 -3
- data/lib/chef/resource/freebsd_package.rb +10 -23
- data/lib/chef/resource/gem_package.rb +2 -1
- data/lib/chef/resource/git.rb +2 -1
- data/lib/chef/resource/homebrew_package.rb +46 -0
- data/lib/chef/resource/http_request.rb +1 -0
- data/lib/chef/resource/ips_package.rb +3 -1
- data/lib/chef/resource/link.rb +1 -2
- data/lib/chef/resource/log.rb +4 -0
- data/lib/chef/resource/lwrp_base.rb +24 -15
- data/lib/chef/resource/macports_package.rb +3 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +3 -1
- data/lib/chef/resource/perl.rb +1 -0
- data/lib/chef/resource/powershell_script.rb +0 -2
- data/lib/chef/resource/python.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +1 -2
- data/lib/chef/resource/remote_file.rb +1 -1
- data/lib/chef/resource/rpm_package.rb +2 -1
- data/lib/chef/resource/ruby.rb +1 -0
- data/lib/chef/resource/ruby_block.rb +3 -0
- data/lib/chef/resource/script.rb +2 -25
- data/lib/chef/resource/service.rb +0 -4
- data/lib/chef/resource/smartos_package.rb +3 -4
- data/lib/chef/resource/solaris_package.rb +7 -1
- data/lib/chef/resource/subversion.rb +0 -1
- data/lib/chef/resource/template.rb +2 -3
- data/lib/chef/resource/timestamped_deploy.rb +1 -2
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
- data/lib/chef/resource/windows_package.rb +3 -4
- data/lib/chef/resource/windows_script.rb +3 -0
- data/lib/chef/resource/windows_service.rb +2 -2
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource_collection.rb +50 -227
- data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -0
- data/lib/chef/resource_collection/resource_list.rb +89 -0
- data/lib/chef/resource_collection/resource_set.rb +170 -0
- data/lib/chef/resources.rb +2 -0
- data/lib/chef/role.rb +1 -1
- data/lib/chef/run_context.rb +5 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/util/backup.rb +3 -2
- data/lib/chef/util/dsc/configuration_generator.rb +115 -0
- data/lib/chef/util/dsc/lcm_output_parser.rb +133 -0
- data/lib/chef/util/dsc/local_configuration_manager.rb +141 -0
- data/lib/chef/util/dsc/resource_info.rb +26 -0
- data/lib/chef/util/path_helper.rb +12 -0
- data/lib/chef/util/powershell/cmdlet.rb +136 -0
- data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api/system.rb +9 -0
- data/lib/chef/win32/version.rb +2 -0
- data/spec/.DS_Store +0 -0
- data/spec/data/.DS_Store +0 -0
- data/spec/data/bootstrap/test-hints.erb +1 -1
- data/spec/data/bootstrap/test.erb +1 -1
- data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
- data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
- data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -0
- data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -0
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -0
- data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -0
- data/spec/data/lwrp/.DS_Store +0 -0
- data/spec/data/lwrp/providers/.DS_Store +0 -0
- data/spec/data/lwrp/providers/buck_passer.rb +9 -2
- data/spec/data/lwrp/resources/.DS_Store +0 -0
- data/spec/data/lwrp/resources/foo.rb +3 -2
- data/spec/data/lwrp_override/.DS_Store +0 -0
- data/spec/data/lwrp_override/providers/.DS_Store +0 -0
- data/spec/data/lwrp_override/providers/buck_passer.rb +5 -10
- data/spec/data/lwrp_override/resources/.DS_Store +0 -0
- data/spec/data/lwrp_override/resources/foo.rb +4 -3
- data/spec/functional/assets/chefinittest +34 -0
- data/spec/functional/assets/testchefsubsys +11 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +19 -16
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +82 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +136 -0
- data/spec/functional/resource/aixinit_service_spec.rb +211 -0
- data/spec/functional/resource/base.rb +1 -0
- data/spec/functional/resource/batch_spec.rb +4 -11
- data/spec/functional/resource/cron_spec.rb +7 -1
- data/spec/functional/resource/dsc_script_spec.rb +382 -0
- data/spec/functional/resource/env_spec.rb +54 -0
- data/spec/functional/resource/execute_spec.rb +113 -0
- data/spec/functional/resource/file_spec.rb +2 -0
- data/spec/functional/resource/group_spec.rb +7 -4
- data/spec/functional/resource/powershell_spec.rb +198 -185
- data/spec/functional/resource/rpm_spec.rb +5 -4
- data/spec/functional/resource/user/dscl_spec.rb +2 -1
- data/spec/functional/util/path_helper_spec.rb +37 -0
- data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
- data/spec/integration/client/client_spec.rb +1 -1
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
- data/spec/integration/knife/chef_repo_path_spec.rb +1 -1
- data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
- data/spec/integration/knife/chefignore_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +1 -1
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
- data/spec/integration/knife/delete_spec.rb +1 -1
- data/spec/integration/knife/deps_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +1 -1
- data/spec/integration/knife/download_spec.rb +1 -1
- data/spec/integration/knife/list_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +1 -1
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/serve_spec.rb +1 -1
- data/spec/integration/knife/show_spec.rb +1 -1
- data/spec/integration/knife/upload_spec.rb +4 -3
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/spec_helper.rb +15 -0
- data/spec/support/chef_helpers.rb +1 -0
- data/spec/support/lib/chef/provider/snakeoil.rb +1 -0
- data/spec/support/lib/chef/resource/zen_follower.rb +1 -7
- data/spec/support/platform_helpers.rb +28 -0
- data/spec/support/shared/functional/file_resource.rb +6 -0
- data/spec/support/shared/functional/windows_script.rb +118 -0
- data/spec/support/shared/integration/integration_helper.rb +5 -2
- data/spec/support/shared/matchers/exit_with_code.rb +28 -0
- data/spec/support/shared/matchers/match_environment_variable.rb +17 -0
- data/spec/support/shared/shared_examples.rb +14 -0
- data/spec/support/shared/unit/execute_resource.rb +0 -7
- data/spec/support/shared/unit/resource/static_provider_resolution.rb +71 -0
- data/spec/support/shared/unit/script_resource.rb +1 -1
- data/spec/support/shared/unit/windows_script_resource.rb +35 -2
- data/spec/tiny_server.rb +1 -2
- data/spec/unit/api_client_spec.rb +5 -1
- data/spec/unit/application/{apply.rb → apply_spec.rb} +13 -5
- data/spec/unit/application/client_spec.rb +106 -13
- data/spec/unit/application/solo_spec.rb +25 -1
- data/spec/unit/client_spec.rb +1 -26
- data/spec/unit/config_fetcher_spec.rb +2 -1
- data/spec/unit/config_spec.rb +91 -2
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +8 -0
- data/spec/unit/cookbook/metadata_spec.rb +43 -6
- data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
- data/spec/unit/cookbook_loader_spec.rb +4 -2
- data/spec/unit/cookbook_version_spec.rb +83 -2
- data/spec/unit/data_bag_item_spec.rb +5 -1
- data/spec/unit/data_bag_spec.rb +6 -1
- data/spec/unit/dsl/data_query_spec.rb +8 -110
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +16 -23
- data/spec/unit/environment_spec.rb +6 -2
- data/spec/unit/exceptions_spec.rb +6 -0
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +16 -15
- data/spec/unit/json_compat_spec.rb +12 -2
- data/spec/unit/knife/bootstrap_spec.rb +16 -63
- data/spec/unit/knife/cookbook_site_share_spec.rb +59 -6
- data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -37
- data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +28 -0
- data/spec/unit/knife/data_bag_create_spec.rb +63 -71
- data/spec/unit/knife/data_bag_edit_spec.rb +83 -49
- data/spec/unit/knife/data_bag_from_file_spec.rb +104 -126
- data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -0
- data/spec/unit/knife/data_bag_show_spec.rb +74 -72
- data/spec/unit/knife/environment_from_file_spec.rb +3 -2
- data/spec/unit/knife/ssl_check_spec.rb +46 -1
- data/spec/unit/knife/status_spec.rb +1 -2
- data/spec/unit/knife_spec.rb +18 -1
- data/spec/unit/lwrp_spec.rb +29 -8
- data/spec/unit/mixin/homebrew_user_spec.rb +100 -0
- data/spec/unit/node_map_spec.rb +155 -0
- data/spec/unit/node_spec.rb +11 -0
- data/spec/unit/platform/query_helpers_spec.rb +23 -0
- data/spec/unit/platform_spec.rb +23 -0
- data/spec/unit/provider/breakpoint_spec.rb +9 -9
- data/spec/unit/provider/cookbook_file/content_spec.rb +3 -3
- data/spec/unit/provider/cookbook_file_spec.rb +1 -1
- data/spec/unit/provider/cron/unix_spec.rb +78 -60
- data/spec/unit/provider/cron_spec.rb +175 -175
- data/spec/unit/provider/deploy/revision_spec.rb +22 -21
- data/spec/unit/provider/deploy/timestamped_spec.rb +3 -3
- data/spec/unit/provider/deploy_spec.rb +231 -230
- data/spec/unit/provider/directory_spec.rb +55 -55
- data/spec/unit/provider/dsc_script_spec.rb +174 -0
- data/spec/unit/provider/env/windows_spec.rb +70 -34
- data/spec/unit/provider/env_spec.rb +95 -49
- data/spec/unit/provider/erl_call_spec.rb +9 -9
- data/spec/unit/provider/execute_spec.rb +43 -27
- data/spec/unit/provider/file/content_spec.rb +9 -9
- data/spec/unit/provider/file_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +221 -159
- data/spec/unit/provider/group/dscl_spec.rb +64 -63
- data/spec/unit/provider/group/gpasswd_spec.rb +14 -14
- data/spec/unit/provider/group/groupadd_spec.rb +33 -33
- data/spec/unit/provider/group/groupmod_spec.rb +23 -23
- data/spec/unit/provider/group/pw_spec.rb +21 -21
- data/spec/unit/provider/group/usermod_spec.rb +20 -20
- data/spec/unit/provider/group/windows_spec.rb +15 -15
- data/spec/unit/provider/group_spec.rb +76 -76
- data/spec/unit/provider/http_request_spec.rb +30 -30
- data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
- data/spec/unit/provider/ifconfig/debian_spec.rb +25 -9
- data/spec/unit/provider/ifconfig/redhat_spec.rb +13 -13
- data/spec/unit/provider/ifconfig_spec.rb +43 -43
- data/spec/unit/provider/link_spec.rb +60 -60
- data/spec/unit/provider/log_spec.rb +0 -4
- data/spec/unit/provider/mdadm_spec.rb +23 -23
- data/spec/unit/provider/mount/aix_spec.rb +17 -17
- data/spec/unit/provider/mount/mount_spec.rb +115 -119
- data/spec/unit/provider/mount/solaris_spec.rb +72 -72
- data/spec/unit/provider/mount/windows_spec.rb +24 -24
- data/spec/unit/provider/ohai_spec.rb +11 -11
- data/spec/unit/provider/package/aix_spec.rb +34 -34
- data/spec/unit/provider/package/apt_spec.rb +36 -36
- data/spec/unit/provider/package/dpkg_spec.rb +27 -27
- data/spec/unit/provider/package/easy_install_spec.rb +16 -16
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +53 -53
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +24 -24
- data/spec/unit/provider/package/freebsd/port_spec.rb +45 -35
- data/spec/unit/provider/package/homebrew_spec.rb +266 -0
- data/spec/unit/provider/package/ips_spec.rb +34 -34
- data/spec/unit/provider/package/macports_spec.rb +49 -49
- data/spec/unit/provider/package/pacman_spec.rb +35 -39
- data/spec/unit/provider/package/paludis_spec.rb +20 -20
- data/spec/unit/provider/package/portage_spec.rb +38 -38
- data/spec/unit/provider/package/rpm_spec.rb +29 -29
- data/spec/unit/provider/package/rubygems_spec.rb +284 -270
- data/spec/unit/provider/package/smartos_spec.rb +15 -15
- data/spec/unit/provider/package/solaris_spec.rb +35 -35
- data/spec/unit/provider/package/windows/msi_spec.rb +3 -3
- data/spec/unit/provider/package/windows_spec.rb +6 -6
- data/spec/unit/provider/package/yum_spec.rb +416 -416
- data/spec/unit/provider/package/zypper_spec.rb +47 -47
- data/spec/unit/provider/package_spec.rb +107 -107
- data/spec/unit/provider/powershell_spec.rb +1 -1
- data/spec/unit/provider/registry_key_spec.rb +61 -61
- data/spec/unit/provider/remote_directory_spec.rb +36 -36
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +24 -24
- data/spec/unit/provider/remote_file/content_spec.rb +45 -45
- data/spec/unit/provider/remote_file/fetcher_spec.rb +9 -9
- data/spec/unit/provider/remote_file/ftp_spec.rb +32 -32
- data/spec/unit/provider/remote_file/http_spec.rb +44 -44
- data/spec/unit/provider/remote_file/local_file_spec.rb +9 -9
- data/spec/unit/provider/remote_file_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +63 -63
- data/spec/unit/provider/ruby_block_spec.rb +4 -4
- data/spec/unit/provider/script_spec.rb +12 -12
- data/spec/unit/provider/service/aix_service_spec.rb +181 -0
- data/spec/unit/provider/service/aixinit_service_spec.rb +269 -0
- data/spec/unit/provider/service/arch_service_spec.rb +48 -48
- data/spec/unit/provider/service/debian_service_spec.rb +40 -40
- data/spec/unit/provider/service/gentoo_service_spec.rb +28 -28
- data/spec/unit/provider/service/init_service_spec.rb +39 -39
- data/spec/unit/provider/service/insserv_service_spec.rb +8 -8
- data/spec/unit/provider/service/invokercd_service_spec.rb +35 -35
- data/spec/unit/provider/service/macosx_spec.rb +49 -49
- data/spec/unit/provider/service/redhat_spec.rb +27 -27
- data/spec/unit/provider/service/simple_service_spec.rb +28 -28
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +43 -46
- data/spec/unit/provider/service/systemd_service_spec.rb +63 -63
- data/spec/unit/provider/service/upstart_service_spec.rb +78 -78
- data/spec/unit/provider/service/windows_spec.rb +92 -92
- data/spec/unit/provider/service_spec.rb +40 -40
- data/spec/unit/provider/subversion_spec.rb +80 -80
- data/spec/unit/provider/template/content_spec.rb +9 -9
- data/spec/unit/provider/template_spec.rb +6 -6
- data/spec/unit/provider/user/dscl_spec.rb +170 -167
- data/spec/unit/provider/user/pw_spec.rb +48 -48
- data/spec/unit/provider/user/solaris_spec.rb +8 -8
- data/spec/unit/provider/user/useradd_spec.rb +1 -1
- data/spec/unit/provider/user/windows_spec.rb +26 -26
- data/spec/unit/provider/user_spec.rb +72 -72
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +4 -4
- data/spec/unit/provider_resolver_spec.rb +387 -0
- data/spec/unit/recipe_spec.rb +33 -12
- data/spec/unit/resource/apt_package_spec.rb +10 -13
- data/spec/unit/resource/bash_spec.rb +4 -4
- data/spec/unit/resource/batch_spec.rb +1 -1
- data/spec/unit/resource/breakpoint_spec.rb +11 -7
- data/spec/unit/resource/chef_gem_spec.rb +8 -15
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
- data/spec/unit/resource/conditional_spec.rb +35 -16
- data/spec/unit/resource/cookbook_file_spec.rb +13 -13
- data/spec/unit/resource/cron_spec.rb +37 -37
- data/spec/unit/resource/csh_spec.rb +4 -4
- data/spec/unit/resource/deploy_revision_spec.rb +13 -18
- data/spec/unit/resource/deploy_spec.rb +60 -55
- data/spec/unit/resource/directory_spec.rb +18 -18
- data/spec/unit/resource/dpkg_package_spec.rb +8 -14
- data/spec/unit/resource/dsc_script_spec.rb +98 -0
- data/spec/unit/resource/easy_install_package_spec.rb +9 -18
- data/spec/unit/resource/env_spec.rb +12 -12
- data/spec/unit/resource/erl_call_spec.rb +11 -11
- data/spec/unit/resource/execute_spec.rb +5 -0
- data/spec/unit/resource/file_spec.rb +29 -29
- data/spec/unit/resource/freebsd_package_spec.rb +11 -12
- data/spec/unit/resource/gem_package_spec.rb +8 -15
- data/spec/unit/resource/git_spec.rb +12 -8
- data/spec/unit/resource/group_spec.rb +27 -27
- data/spec/unit/resource/homebrew_package_spec.rb +50 -0
- data/spec/unit/resource/http_request_spec.rb +6 -6
- data/spec/unit/resource/ifconfig_spec.rb +8 -8
- data/spec/unit/resource/ips_package_spec.rb +10 -13
- data/spec/unit/resource/link_spec.rb +25 -25
- data/spec/unit/resource/log_spec.rb +9 -9
- data/spec/unit/resource/macports_package_spec.rb +8 -13
- data/spec/unit/resource/mdadm_spec.rb +18 -18
- data/spec/unit/resource/mount_spec.rb +45 -45
- data/spec/unit/resource/ohai_spec.rb +7 -7
- data/spec/unit/resource/package_spec.rb +12 -12
- data/spec/unit/resource/pacman_package_spec.rb +8 -14
- data/spec/unit/resource/perl_spec.rb +4 -4
- data/spec/unit/resource/portage_package_spec.rb +3 -3
- data/spec/unit/resource/powershell_spec.rb +7 -7
- data/spec/unit/resource/python_spec.rb +4 -4
- data/spec/unit/resource/registry_key_spec.rb +32 -32
- data/spec/unit/resource/remote_directory_spec.rb +17 -17
- data/spec/unit/resource/remote_file_spec.rb +41 -41
- data/spec/unit/resource/route_spec.rb +19 -19
- data/spec/unit/resource/rpm_package_spec.rb +9 -13
- data/spec/unit/resource/ruby_block_spec.rb +8 -8
- data/spec/unit/resource/ruby_spec.rb +4 -4
- data/spec/unit/resource/scm_spec.rb +40 -40
- data/spec/unit/resource/script_spec.rb +2 -2
- data/spec/unit/resource/service_spec.rb +37 -47
- data/spec/unit/resource/smartos_package_spec.rb +10 -15
- data/spec/unit/resource/solaris_package_spec.rb +13 -28
- data/spec/unit/resource/subversion_spec.rb +16 -12
- data/spec/unit/resource/template_spec.rb +35 -35
- data/spec/unit/resource/timestamped_deploy_spec.rb +30 -4
- data/spec/unit/resource/user_spec.rb +23 -23
- data/spec/unit/resource/windows_package_spec.rb +17 -10
- data/spec/unit/resource/windows_service_spec.rb +9 -6
- data/spec/unit/resource/yum_package_spec.rb +16 -21
- data/spec/unit/resource_collection/resource_list_spec.rb +137 -0
- data/spec/unit/resource_collection/resource_set_spec.rb +199 -0
- data/spec/unit/resource_collection_spec.rb +73 -92
- data/spec/unit/resource_definition_spec.rb +38 -40
- data/spec/unit/resource_reporter_spec.rb +3 -3
- data/spec/unit/resource_spec.rb +68 -33
- data/spec/unit/rest_spec.rb +83 -76
- data/spec/unit/role_spec.rb +5 -0
- data/spec/unit/run_list_spec.rb +5 -1
- data/spec/unit/runner_spec.rb +245 -238
- data/spec/unit/shell/shell_ext_spec.rb +1 -1
- data/spec/unit/user_spec.rb +5 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +171 -0
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +169 -0
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +139 -0
- data/spec/unit/util/path_helper_spec.rb +23 -1
- data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
- data/spec/unit/workstation_config_loader_spec.rb +1 -1
- metadata +303 -196
- checksums.yaml +0 -7
- data/distro/README +0 -2
- data/distro/arch/etc/conf.d/chef-client.conf +0 -5
- data/distro/arch/etc/conf.d/chef-expander.conf +0 -8
- data/distro/arch/etc/conf.d/chef-server-webui.conf +0 -10
- data/distro/arch/etc/conf.d/chef-server.conf +0 -10
- data/distro/arch/etc/conf.d/chef-solr.conf +0 -8
- data/distro/arch/etc/rc.d/chef-client +0 -90
- data/distro/arch/etc/rc.d/chef-expander +0 -78
- data/distro/arch/etc/rc.d/chef-server +0 -78
- data/distro/arch/etc/rc.d/chef-server-webui +0 -78
- data/distro/arch/etc/rc.d/chef-solr +0 -78
- data/distro/debian/etc/default/chef-client +0 -4
- data/distro/debian/etc/default/chef-expander +0 -8
- data/distro/debian/etc/default/chef-server +0 -9
- data/distro/debian/etc/default/chef-server-webui +0 -9
- data/distro/debian/etc/default/chef-solr +0 -8
- data/distro/debian/etc/init.d/chef-client +0 -212
- data/distro/debian/etc/init.d/chef-expander +0 -176
- data/distro/debian/etc/init.d/chef-server +0 -122
- data/distro/debian/etc/init.d/chef-server-webui +0 -123
- data/distro/debian/etc/init.d/chef-solr +0 -176
- data/distro/debian/etc/init/chef-client.conf +0 -17
- data/distro/debian/etc/init/chef-expander.conf +0 -17
- data/distro/debian/etc/init/chef-server-webui.conf +0 -17
- data/distro/debian/etc/init/chef-server.conf +0 -17
- data/distro/debian/etc/init/chef-solr.conf +0 -17
- data/distro/redhat/etc/init.d/chef-client +0 -121
- data/distro/redhat/etc/init.d/chef-expander +0 -104
- data/distro/redhat/etc/init.d/chef-server +0 -112
- data/distro/redhat/etc/init.d/chef-server-webui +0 -112
- data/distro/redhat/etc/init.d/chef-solr +0 -104
- data/distro/redhat/etc/logrotate.d/chef-client +0 -8
- data/distro/redhat/etc/logrotate.d/chef-expander +0 -8
- data/distro/redhat/etc/logrotate.d/chef-server +0 -8
- data/distro/redhat/etc/logrotate.d/chef-server-webui +0 -8
- data/distro/redhat/etc/logrotate.d/chef-solr +0 -8
- data/distro/redhat/etc/sysconfig/chef-client +0 -15
- data/distro/redhat/etc/sysconfig/chef-expander +0 -7
- data/distro/redhat/etc/sysconfig/chef-server +0 -14
- data/distro/redhat/etc/sysconfig/chef-server-webui +0 -14
- data/distro/redhat/etc/sysconfig/chef-solr +0 -8
- data/distro/windows/service_manager.rb +0 -20
- data/lib/chef/resource_platform_map.rb +0 -151
- data/spec/support/shared/matchers.rb +0 -17
- data/spec/unit/resource_platform_map_spec.rb +0 -164
@@ -20,104 +20,77 @@
|
|
20
20
|
require 'spec_helper'
|
21
21
|
|
22
22
|
describe Chef::ResourceCollection do
|
23
|
+
let(:rc) { Chef::ResourceCollection.new() }
|
24
|
+
let(:resource) { Chef::Resource::ZenMaster.new("makoto") }
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
@resource = Chef::Resource::ZenMaster.new("makoto")
|
26
|
+
it "should throw an error when calling a non-delegated method" do
|
27
|
+
expect { rc.not_a_method }.to raise_error(NoMethodError)
|
27
28
|
end
|
28
29
|
|
29
30
|
describe "initialize" do
|
30
31
|
it "should return a Chef::ResourceCollection" do
|
31
|
-
|
32
|
+
rc.should be_kind_of(Chef::ResourceCollection)
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
35
36
|
describe "[]" do
|
36
37
|
it "should accept Chef::Resources through [index]" do
|
37
|
-
lambda {
|
38
|
-
lambda {
|
38
|
+
lambda { rc[0] = resource }.should_not raise_error
|
39
|
+
lambda { rc[0] = "string" }.should raise_error(ArgumentError)
|
39
40
|
end
|
40
41
|
|
41
42
|
it "should allow you to fetch Chef::Resources by position" do
|
42
|
-
|
43
|
-
|
43
|
+
rc[0] = resource
|
44
|
+
rc[0].should eql(resource)
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
47
48
|
describe "push" do
|
48
49
|
it "should accept Chef::Resources through pushing" do
|
49
|
-
lambda {
|
50
|
-
lambda {
|
50
|
+
lambda { rc.push(resource) }.should_not raise_error
|
51
|
+
lambda { rc.push("string") }.should raise_error(ArgumentError)
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
54
55
|
describe "<<" do
|
55
56
|
it "should accept the << operator" do
|
56
|
-
lambda {
|
57
|
+
lambda { rc << resource }.should_not raise_error
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
60
61
|
describe "insert" do
|
61
62
|
it "should accept only Chef::Resources" do
|
62
|
-
lambda {
|
63
|
-
lambda {
|
63
|
+
lambda { rc.insert(resource) }.should_not raise_error
|
64
|
+
lambda { rc.insert("string") }.should raise_error(ArgumentError)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should accept named arguments in any order" do
|
68
|
+
rc.insert(resource, :instance_name => 'foo', :resource_type =>'bar')
|
69
|
+
expect(rc[0]).to eq(resource)
|
64
70
|
end
|
65
71
|
|
66
72
|
it "should append resources to the end of the collection when not executing a run" do
|
67
73
|
zmr = Chef::Resource::ZenMaster.new("there is no spoon")
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
74
|
+
rc.insert(resource)
|
75
|
+
rc.insert(zmr)
|
76
|
+
rc[0].should eql(resource)
|
77
|
+
rc[1].should eql(zmr)
|
72
78
|
end
|
73
79
|
|
74
80
|
it "should insert resources to the middle of the collection if called while executing a run" do
|
75
81
|
resource_to_inject = Chef::Resource::ZenMaster.new("there is no spoon")
|
76
82
|
zmr = Chef::Resource::ZenMaster.new("morpheus")
|
77
83
|
dummy = Chef::Resource::ZenMaster.new("keanu reeves")
|
78
|
-
|
79
|
-
|
84
|
+
rc.insert(zmr)
|
85
|
+
rc.insert(dummy)
|
80
86
|
|
81
|
-
|
82
|
-
|
87
|
+
rc.execute_each_resource do |resource|
|
88
|
+
rc.insert(resource_to_inject) if resource == zmr
|
83
89
|
end
|
84
90
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "insert_at" do
|
92
|
-
it "should accept only Chef::Resources" do
|
93
|
-
lambda { @rc.insert_at(0, @resource, @resource) }.should_not raise_error
|
94
|
-
lambda { @rc.insert_at(0, "string") }.should raise_error
|
95
|
-
lambda { @rc.insert_at(0, @resource, "string") }.should raise_error
|
96
|
-
end
|
97
|
-
|
98
|
-
it "should toss an error if it receives a bad index" do
|
99
|
-
@rc.insert_at(10, @resource)
|
100
|
-
end
|
101
|
-
|
102
|
-
it "should insert resources at the beginning when asked" do
|
103
|
-
@rc.insert(Chef::Resource::ZenMaster.new('1'))
|
104
|
-
@rc.insert(Chef::Resource::ZenMaster.new('2'))
|
105
|
-
@rc.insert_at(0, Chef::Resource::ZenMaster.new('X'))
|
106
|
-
@rc.all_resources.map { |r| r.name }.should == [ 'X', '1', '2' ]
|
107
|
-
end
|
108
|
-
|
109
|
-
it "should insert resources in the middle when asked" do
|
110
|
-
@rc.insert(Chef::Resource::ZenMaster.new('1'))
|
111
|
-
@rc.insert(Chef::Resource::ZenMaster.new('2'))
|
112
|
-
@rc.insert_at(1, Chef::Resource::ZenMaster.new('X'))
|
113
|
-
@rc.all_resources.map { |r| r.name }.should == [ '1', 'X', '2' ]
|
114
|
-
end
|
115
|
-
|
116
|
-
it "should insert resources at the end when asked" do
|
117
|
-
@rc.insert(Chef::Resource::ZenMaster.new('1'))
|
118
|
-
@rc.insert(Chef::Resource::ZenMaster.new('2'))
|
119
|
-
@rc.insert_at(2, Chef::Resource::ZenMaster.new('X'))
|
120
|
-
@rc.all_resources.map { |r| r.name }.should == [ '1', '2', 'X' ]
|
91
|
+
rc[0].should eql(zmr)
|
92
|
+
rc[1].should eql(resource_to_inject)
|
93
|
+
rc[2].should eql(dummy)
|
121
94
|
end
|
122
95
|
end
|
123
96
|
|
@@ -126,7 +99,7 @@ describe Chef::ResourceCollection do
|
|
126
99
|
load_up_resources
|
127
100
|
results = Array.new
|
128
101
|
lambda {
|
129
|
-
|
102
|
+
rc.each do |r|
|
130
103
|
results << r.name
|
131
104
|
end
|
132
105
|
}.should_not raise_error
|
@@ -148,8 +121,8 @@ describe Chef::ResourceCollection do
|
|
148
121
|
load_up_resources
|
149
122
|
results = Array.new
|
150
123
|
lambda {
|
151
|
-
|
152
|
-
results <<
|
124
|
+
rc.each_index do |i|
|
125
|
+
results << rc[i].name
|
153
126
|
end
|
154
127
|
}.should_not raise_error
|
155
128
|
results.each_index do |i|
|
@@ -168,24 +141,24 @@ describe Chef::ResourceCollection do
|
|
168
141
|
describe "lookup" do
|
169
142
|
it "should allow you to find resources by name via lookup" do
|
170
143
|
zmr = Chef::Resource::ZenMaster.new("dog")
|
171
|
-
|
172
|
-
|
144
|
+
rc << zmr
|
145
|
+
rc.lookup(zmr.to_s).should eql(zmr)
|
173
146
|
|
174
147
|
zmr = Chef::Resource::ZenMaster.new("cat")
|
175
|
-
|
176
|
-
|
148
|
+
rc[0] = zmr
|
149
|
+
rc.lookup(zmr).should eql(zmr)
|
177
150
|
|
178
151
|
zmr = Chef::Resource::ZenMaster.new("monkey")
|
179
|
-
|
180
|
-
|
152
|
+
rc.push(zmr)
|
153
|
+
rc.lookup(zmr).should eql(zmr)
|
181
154
|
end
|
182
155
|
|
183
156
|
it "should raise an exception if you send something strange to lookup" do
|
184
|
-
lambda {
|
157
|
+
lambda { rc.lookup(:symbol) }.should raise_error(ArgumentError)
|
185
158
|
end
|
186
159
|
|
187
160
|
it "should raise an exception if it cannot find a resource with lookup" do
|
188
|
-
lambda {
|
161
|
+
lambda { rc.lookup("zen_master[dog]") }.should raise_error(Chef::Exceptions::ResourceNotFound)
|
189
162
|
end
|
190
163
|
end
|
191
164
|
|
@@ -193,80 +166,80 @@ describe Chef::ResourceCollection do
|
|
193
166
|
|
194
167
|
it "should find a resource by symbol and name (:zen_master => monkey)" do
|
195
168
|
load_up_resources
|
196
|
-
|
169
|
+
rc.resources(:zen_master => "monkey").name.should eql("monkey")
|
197
170
|
end
|
198
171
|
|
199
172
|
it "should find a resource by symbol and array of names (:zen_master => [a,b])" do
|
200
173
|
load_up_resources
|
201
|
-
results =
|
174
|
+
results = rc.resources(:zen_master => [ "monkey", "dog" ])
|
202
175
|
results.length.should eql(2)
|
203
176
|
check_by_names(results, "monkey", "dog")
|
204
177
|
end
|
205
178
|
|
206
179
|
it "should find resources of multiple kinds (:zen_master => a, :file => b)" do
|
207
180
|
load_up_resources
|
208
|
-
results =
|
181
|
+
results = rc.resources(:zen_master => "monkey", :file => "something")
|
209
182
|
results.length.should eql(2)
|
210
183
|
check_by_names(results, "monkey", "something")
|
211
184
|
end
|
212
185
|
|
213
186
|
it "should find a resource by string zen_master[a]" do
|
214
187
|
load_up_resources
|
215
|
-
|
188
|
+
rc.resources("zen_master[monkey]").name.should eql("monkey")
|
216
189
|
end
|
217
190
|
|
218
191
|
it "should find resources by strings of zen_master[a,b]" do
|
219
192
|
load_up_resources
|
220
|
-
results =
|
193
|
+
results = rc.resources("zen_master[monkey,dog]")
|
221
194
|
results.length.should eql(2)
|
222
195
|
check_by_names(results, "monkey", "dog")
|
223
196
|
end
|
224
197
|
|
225
198
|
it "should find resources of multiple types by strings of zen_master[a]" do
|
226
199
|
load_up_resources
|
227
|
-
results =
|
200
|
+
results = rc.resources("zen_master[monkey]", "file[something]")
|
228
201
|
results.length.should eql(2)
|
229
202
|
check_by_names(results, "monkey", "something")
|
230
203
|
end
|
231
204
|
|
232
205
|
it "should raise an exception if you pass a bad name to resources" do
|
233
|
-
lambda {
|
206
|
+
lambda { rc.resources("michael jackson") }.should raise_error(ArgumentError)
|
234
207
|
end
|
235
208
|
|
236
209
|
it "should raise an exception if you pass something other than a string or hash to resource" do
|
237
|
-
lambda {
|
210
|
+
lambda { rc.resources([Array.new]) }.should raise_error(ArgumentError)
|
238
211
|
end
|
239
212
|
|
240
213
|
it "raises an error when attempting to find a resource that does not exist" do
|
241
|
-
lambda {
|
214
|
+
lambda {rc.find("script[nonesuch]")}.should raise_error(Chef::Exceptions::ResourceNotFound)
|
242
215
|
end
|
243
216
|
|
244
217
|
end
|
245
218
|
|
246
219
|
describe "when validating a resource query object" do
|
247
220
|
it "accepts a string of the form 'resource_type[resource_name]'" do
|
248
|
-
|
221
|
+
rc.validate_lookup_spec!("resource_type[resource_name]").should be_true
|
249
222
|
end
|
250
223
|
|
251
224
|
it "accepts a single-element :resource_type => 'resource_name' Hash" do
|
252
|
-
|
225
|
+
rc.validate_lookup_spec!(:service => "apache2").should be_true
|
253
226
|
end
|
254
227
|
|
255
228
|
|
256
229
|
it "accepts a chef resource object" do
|
257
230
|
res = Chef::Resource.new("foo", nil)
|
258
|
-
|
231
|
+
rc.validate_lookup_spec!(res).should be_true
|
259
232
|
end
|
260
233
|
|
261
234
|
it "rejects a malformed query string" do
|
262
235
|
lambda do
|
263
|
-
|
236
|
+
rc.validate_lookup_spec!("resource_type[missing-end-bracket")
|
264
237
|
end.should raise_error(Chef::Exceptions::InvalidResourceSpecification)
|
265
238
|
end
|
266
239
|
|
267
240
|
it "rejects an argument that is not a String, Hash, or Chef::Resource" do
|
268
241
|
lambda do
|
269
|
-
|
242
|
+
rc.validate_lookup_spec!(Object.new)
|
270
243
|
end.should raise_error(Chef::Exceptions::InvalidResourceSpecification)
|
271
244
|
end
|
272
245
|
|
@@ -274,32 +247,40 @@ describe Chef::ResourceCollection do
|
|
274
247
|
|
275
248
|
describe "to_json" do
|
276
249
|
it "should serialize to json" do
|
277
|
-
json =
|
250
|
+
json = rc.to_json
|
278
251
|
json.should =~ /json_class/
|
279
252
|
json.should =~ /instance_vars/
|
280
253
|
end
|
254
|
+
|
255
|
+
include_examples "to_json equalivent to Chef::JSONCompat.to_json" do
|
256
|
+
let(:jsonable) { rc }
|
257
|
+
end
|
281
258
|
end
|
282
259
|
|
283
260
|
describe "self.from_json" do
|
284
|
-
it "should
|
285
|
-
|
286
|
-
|
261
|
+
it "should not respond to this method" do
|
262
|
+
expect(rc.respond_to?(:from_json)).to eq(false)
|
263
|
+
end
|
264
|
+
|
265
|
+
it "should convert from json using the CHEF::JSONCompat library" do
|
266
|
+
rc << resource
|
267
|
+
json = Chef::JSONCompat.to_json(rc)
|
287
268
|
s_rc = Chef::JSONCompat.from_json(json)
|
288
269
|
s_rc.should be_a_kind_of(Chef::ResourceCollection)
|
289
|
-
s_rc[0].name.should eql(
|
270
|
+
s_rc[0].name.should eql(resource.name)
|
290
271
|
end
|
291
272
|
end
|
292
273
|
|
293
274
|
describe "provides access to the raw resources array" do
|
294
275
|
it "returns the resources via the all_resources method" do
|
295
|
-
|
276
|
+
rc.all_resources.should equal(rc.instance_variable_get(:@resource_list).instance_variable_get(:@resources))
|
296
277
|
end
|
297
278
|
end
|
298
279
|
|
299
280
|
describe "provides access to stepable iterator" do
|
300
281
|
it "returns the iterator object" do
|
301
|
-
|
302
|
-
|
282
|
+
rc.instance_variable_get(:@resource_list).instance_variable_set(:@iterator, :fooboar)
|
283
|
+
rc.iterator.should == :fooboar
|
303
284
|
end
|
304
285
|
end
|
305
286
|
|
@@ -311,9 +292,9 @@ describe Chef::ResourceCollection do
|
|
311
292
|
|
312
293
|
def load_up_resources
|
313
294
|
%w{dog cat monkey}.each do |n|
|
314
|
-
|
295
|
+
rc << Chef::Resource::ZenMaster.new(n)
|
315
296
|
end
|
316
|
-
|
297
|
+
rc << Chef::Resource::File.new("something")
|
317
298
|
end
|
318
299
|
|
319
300
|
end
|
@@ -19,24 +19,22 @@
|
|
19
19
|
require 'spec_helper'
|
20
20
|
|
21
21
|
describe Chef::ResourceDefinition do
|
22
|
-
|
23
|
-
@def = Chef::ResourceDefinition.new()
|
24
|
-
end
|
22
|
+
let(:defn) { Chef::ResourceDefinition.new() }
|
25
23
|
|
26
24
|
describe "initialize" do
|
27
25
|
it "should be a Chef::ResourceDefinition" do
|
28
|
-
|
26
|
+
expect(defn).to be_a_kind_of(Chef::ResourceDefinition)
|
29
27
|
end
|
30
28
|
|
31
29
|
it "should not initialize a new node if one is not provided" do
|
32
|
-
|
30
|
+
expect(defn.node).to eql(nil)
|
33
31
|
end
|
34
32
|
|
35
33
|
it "should accept a node as an argument" do
|
36
34
|
node = Chef::Node.new
|
37
35
|
node.name("bobo")
|
38
|
-
|
39
|
-
|
36
|
+
defn = Chef::ResourceDefinition.new(node)
|
37
|
+
expect(defn.node.name).to eq("bobo")
|
40
38
|
end
|
41
39
|
end
|
42
40
|
|
@@ -44,76 +42,76 @@ describe Chef::ResourceDefinition do
|
|
44
42
|
it "should set the node with node=" do
|
45
43
|
node = Chef::Node.new
|
46
44
|
node.name("bobo")
|
47
|
-
|
48
|
-
|
45
|
+
defn.node = node
|
46
|
+
expect(defn.node.name).to eq("bobo")
|
49
47
|
end
|
50
48
|
|
51
49
|
it "should return the node" do
|
52
|
-
|
53
|
-
|
50
|
+
defn.node = Chef::Node.new
|
51
|
+
expect(defn.node).to be_a_kind_of(Chef::Node)
|
54
52
|
end
|
55
53
|
end
|
56
54
|
|
57
55
|
it "should accept a new definition with a symbol for a name" do
|
58
|
-
|
59
|
-
|
56
|
+
expect {
|
57
|
+
defn.define :smoke do
|
60
58
|
end
|
61
|
-
}.
|
62
|
-
|
63
|
-
|
59
|
+
}.not_to raise_error
|
60
|
+
expect {
|
61
|
+
defn.define "george washington" do
|
64
62
|
end
|
65
|
-
}.
|
66
|
-
|
63
|
+
}.to raise_error(ArgumentError)
|
64
|
+
expect(defn.name).to eql(:smoke)
|
67
65
|
end
|
68
66
|
|
69
67
|
it "should accept a new definition with a hash" do
|
70
|
-
|
71
|
-
|
68
|
+
expect {
|
69
|
+
defn.define :smoke, :cigar => "cuban", :cigarette => "marlboro" do
|
72
70
|
end
|
73
|
-
}.
|
71
|
+
}.not_to raise_error
|
74
72
|
end
|
75
73
|
|
76
74
|
it "should expose the prototype hash params in the params hash" do
|
77
|
-
|
78
|
-
|
79
|
-
|
75
|
+
defn.define :smoke, :cigar => "cuban", :cigarette => "marlboro" do; end
|
76
|
+
expect(defn.params[:cigar]).to eql("cuban")
|
77
|
+
expect(defn.params[:cigarette]).to eql("marlboro")
|
80
78
|
end
|
81
79
|
|
82
80
|
it "should store the block passed to define as a proc under recipe" do
|
83
|
-
|
81
|
+
defn.define :smoke do
|
84
82
|
"I am what I am"
|
85
83
|
end
|
86
|
-
|
87
|
-
|
84
|
+
expect(defn.recipe).to be_a_kind_of(Proc)
|
85
|
+
expect(defn.recipe.call).to eql("I am what I am")
|
88
86
|
end
|
89
87
|
|
90
88
|
it "should set paramaters based on method_missing" do
|
91
|
-
|
92
|
-
|
89
|
+
defn.mind "to fly"
|
90
|
+
expect(defn.params[:mind]).to eql("to fly")
|
93
91
|
end
|
94
92
|
|
95
93
|
it "should raise an exception if prototype_params is not a hash" do
|
96
|
-
|
97
|
-
|
94
|
+
expect {
|
95
|
+
defn.define :monkey, Array.new do
|
98
96
|
end
|
99
|
-
}.
|
97
|
+
}.to raise_error(ArgumentError)
|
100
98
|
end
|
101
99
|
|
102
100
|
it "should raise an exception if define is called without a block" do
|
103
|
-
|
104
|
-
|
105
|
-
}.
|
101
|
+
expect {
|
102
|
+
defn.define :monkey
|
103
|
+
}.to raise_error(ArgumentError)
|
106
104
|
end
|
107
105
|
|
108
106
|
it "should load a description from a file" do
|
109
|
-
|
110
|
-
|
111
|
-
|
107
|
+
defn.from_file(File.join(CHEF_SPEC_DATA, "definitions", "test.rb"))
|
108
|
+
expect(defn.name).to eql(:rico_suave)
|
109
|
+
expect(defn.params[:rich]).to eql("smooth")
|
112
110
|
end
|
113
111
|
|
114
112
|
it "should turn itself into a string based on the name with to_s" do
|
115
|
-
|
116
|
-
|
113
|
+
defn.name = :woot
|
114
|
+
expect(defn.to_s).to eql("woot")
|
117
115
|
end
|
118
116
|
|
119
117
|
end
|