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
@@ -28,73 +28,73 @@ describe Chef::Provider::Service do
|
|
28
28
|
|
29
29
|
@provider = Chef::Provider::Service.new(@new_resource, @run_context)
|
30
30
|
@provider.current_resource = @current_resource
|
31
|
-
@provider.
|
31
|
+
allow(@provider).to receive(:load_current_resource)
|
32
32
|
end
|
33
33
|
|
34
34
|
describe "when enabling the service" do
|
35
35
|
it "should enable the service if disabled and set the resource as updated" do
|
36
36
|
@current_resource.enabled(false)
|
37
|
-
@provider.
|
37
|
+
expect(@provider).to receive(:enable_service).and_return(true)
|
38
38
|
@provider.action_enable
|
39
39
|
@provider.set_updated_status
|
40
|
-
@provider.new_resource.
|
40
|
+
expect(@provider.new_resource).to be_updated
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should not enable the service if already enabled" do
|
44
44
|
@current_resource.enabled(true)
|
45
|
-
@provider.
|
45
|
+
expect(@provider).not_to receive(:enable_service)
|
46
46
|
@provider.action_enable
|
47
47
|
@provider.set_updated_status
|
48
|
-
@provider.new_resource.
|
48
|
+
expect(@provider.new_resource).not_to be_updated
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
|
53
53
|
describe "when disabling the service" do
|
54
54
|
it "should disable the service if enabled and set the resource as updated" do
|
55
|
-
@current_resource.
|
56
|
-
@provider.
|
55
|
+
allow(@current_resource).to receive(:enabled).and_return(true)
|
56
|
+
expect(@provider).to receive(:disable_service).and_return(true)
|
57
57
|
@provider.run_action(:disable)
|
58
|
-
@provider.new_resource.
|
58
|
+
expect(@provider.new_resource).to be_updated
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should not disable the service if already disabled" do
|
62
|
-
@current_resource.
|
63
|
-
@provider.
|
62
|
+
allow(@current_resource).to receive(:enabled).and_return(false)
|
63
|
+
expect(@provider).not_to receive(:disable_service)
|
64
64
|
@provider.run_action(:disable)
|
65
|
-
@provider.new_resource.
|
65
|
+
expect(@provider.new_resource).not_to be_updated
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
69
|
describe "action_start" do
|
70
70
|
it "should start the service if it isn't running and set the resource as updated" do
|
71
71
|
@current_resource.running(false)
|
72
|
-
@provider.
|
72
|
+
expect(@provider).to receive(:start_service).with.and_return(true)
|
73
73
|
@provider.run_action(:start)
|
74
|
-
@provider.new_resource.
|
74
|
+
expect(@provider.new_resource).to be_updated
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should not start the service if already running" do
|
78
78
|
@current_resource.running(true)
|
79
|
-
@provider.
|
79
|
+
expect(@provider).not_to receive(:start_service)
|
80
80
|
@provider.run_action(:start)
|
81
|
-
@provider.new_resource.
|
81
|
+
expect(@provider.new_resource).not_to be_updated
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
85
|
describe "action_stop" do
|
86
86
|
it "should stop the service if it is running and set the resource as updated" do
|
87
|
-
@current_resource.
|
88
|
-
@provider.
|
87
|
+
allow(@current_resource).to receive(:running).and_return(true)
|
88
|
+
expect(@provider).to receive(:stop_service).and_return(true)
|
89
89
|
@provider.run_action(:stop)
|
90
|
-
@provider.new_resource.
|
90
|
+
expect(@provider.new_resource).to be_updated
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should not stop the service if it's already stopped" do
|
94
|
-
@current_resource.
|
95
|
-
@provider.
|
94
|
+
allow(@current_resource).to receive(:running).and_return(false)
|
95
|
+
expect(@provider).not_to receive(:stop_service)
|
96
96
|
@provider.run_action(:stop)
|
97
|
-
@provider.new_resource.
|
97
|
+
expect(@provider.new_resource).not_to be_updated
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
@@ -104,16 +104,16 @@ describe Chef::Provider::Service do
|
|
104
104
|
end
|
105
105
|
|
106
106
|
it "should restart the service if it's supported and set the resource as updated" do
|
107
|
-
@provider.
|
107
|
+
expect(@provider).to receive(:restart_service).and_return(true)
|
108
108
|
@provider.run_action(:restart)
|
109
|
-
@provider.new_resource.
|
109
|
+
expect(@provider.new_resource).to be_updated
|
110
110
|
end
|
111
111
|
|
112
112
|
it "should restart the service even if it isn't running and set the resource as updated" do
|
113
|
-
@current_resource.
|
114
|
-
@provider.
|
113
|
+
allow(@current_resource).to receive(:running).and_return(false)
|
114
|
+
expect(@provider).to receive(:restart_service).and_return(true)
|
115
115
|
@provider.run_action(:restart)
|
116
|
-
@provider.new_resource.
|
116
|
+
expect(@provider.new_resource).to be_updated
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -124,46 +124,46 @@ describe Chef::Provider::Service do
|
|
124
124
|
|
125
125
|
it "should raise an exception if reload isn't supported" do
|
126
126
|
@new_resource.supports(:reload => false)
|
127
|
-
@new_resource.
|
128
|
-
|
127
|
+
allow(@new_resource).to receive(:reload_command).and_return(false)
|
128
|
+
expect { @provider.run_action(:reload) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
129
129
|
end
|
130
130
|
|
131
131
|
it "should reload the service if it is running and set the resource as updated" do
|
132
|
-
@current_resource.
|
133
|
-
@provider.
|
132
|
+
allow(@current_resource).to receive(:running).and_return(true)
|
133
|
+
expect(@provider).to receive(:reload_service).and_return(true)
|
134
134
|
@provider.run_action(:reload)
|
135
|
-
@provider.new_resource.
|
135
|
+
expect(@provider.new_resource).to be_updated
|
136
136
|
end
|
137
137
|
|
138
138
|
it "should not reload the service if it's stopped" do
|
139
|
-
@current_resource.
|
140
|
-
@provider.
|
139
|
+
allow(@current_resource).to receive(:running).and_return(false)
|
140
|
+
expect(@provider).not_to receive(:reload_service)
|
141
141
|
@provider.run_action(:stop)
|
142
|
-
@provider.new_resource.
|
142
|
+
expect(@provider.new_resource).not_to be_updated
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
146
|
it "delegates enable_service to subclasses" do
|
147
|
-
|
147
|
+
expect { @provider.enable_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
148
148
|
end
|
149
149
|
|
150
150
|
it "delegates disable_service to subclasses" do
|
151
|
-
|
151
|
+
expect { @provider.disable_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
152
152
|
end
|
153
153
|
|
154
154
|
it "delegates start_service to subclasses" do
|
155
|
-
|
155
|
+
expect { @provider.start_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
156
156
|
end
|
157
157
|
|
158
158
|
it "delegates stop_service to subclasses" do
|
159
|
-
|
159
|
+
expect { @provider.stop_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
160
160
|
end
|
161
161
|
|
162
162
|
it "delegates restart_service to subclasses" do
|
163
|
-
|
163
|
+
expect { @provider.restart_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
164
164
|
end
|
165
165
|
|
166
166
|
it "delegates reload_service to subclasses" do
|
167
|
-
|
167
|
+
expect { @provider.reload_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
168
168
|
end
|
169
169
|
end
|
@@ -34,9 +34,9 @@ describe Chef::Provider::Subversion do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "converts resource attributes to options for run_command and popen4" do
|
37
|
-
@provider.run_options.
|
37
|
+
expect(@provider.run_options).to eq({})
|
38
38
|
@resource.user 'deployninja'
|
39
|
-
@provider.run_options.
|
39
|
+
expect(@provider.run_options).to eq({:user => "deployninja"})
|
40
40
|
end
|
41
41
|
|
42
42
|
context "determining the revision of the currently deployed code" do
|
@@ -48,8 +48,8 @@ describe Chef::Provider::Subversion do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "sets the revision to nil if there isn't any deployed code yet" do
|
51
|
-
::File.
|
52
|
-
@provider.find_current_revision.
|
51
|
+
expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
|
52
|
+
expect(@provider.find_current_revision).to be_nil
|
53
53
|
end
|
54
54
|
|
55
55
|
it "determines the current revision if there's a checkout with svn data available" do
|
@@ -62,47 +62,47 @@ describe Chef::Provider::Subversion do
|
|
62
62
|
"Last Changed Author: codeninja\n" +
|
63
63
|
"Last Changed Rev: 11410\n" + # Last Changed Rev is preferred to Revision
|
64
64
|
"Last Changed Date: 2009-03-25 06:09:56 -0600 (Wed, 25 Mar 2009)\n\n"
|
65
|
-
::File.
|
66
|
-
::File.
|
67
|
-
::Dir.
|
68
|
-
@stdout.
|
69
|
-
@stderr.
|
70
|
-
@exitstatus.
|
65
|
+
expect(::File).to receive(:exist?).at_least(1).times.with("/my/deploy/dir/.svn").and_return(true)
|
66
|
+
expect(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
|
67
|
+
expect(::Dir).to receive(:chdir).with("/my/deploy/dir").and_yield
|
68
|
+
allow(@stdout).to receive(:string).and_return(example_svn_info)
|
69
|
+
allow(@stderr).to receive(:string).and_return("")
|
70
|
+
allow(@exitstatus).to receive(:exitstatus).and_return(0)
|
71
71
|
expected_command = ["svn info", {:cwd=>"/my/deploy/dir"}]
|
72
|
-
@provider.
|
72
|
+
expect(@provider).to receive(:popen4).with(*expected_command).
|
73
73
|
and_yield("no-pid", "no-stdin", @stdout,@stderr).
|
74
74
|
and_return(@exitstatus)
|
75
|
-
@provider.find_current_revision.
|
75
|
+
expect(@provider.find_current_revision).to eql("11410")
|
76
76
|
end
|
77
77
|
|
78
78
|
it "gives nil as the current revision if the deploy dir isn't a SVN working copy" do
|
79
79
|
example_svn_info = "svn: '/tmp/deploydir' is not a working copy\n"
|
80
|
-
::File.
|
81
|
-
::File.
|
82
|
-
::Dir.
|
83
|
-
@stdout.
|
84
|
-
@stderr.
|
85
|
-
@exitstatus.
|
86
|
-
@provider.
|
80
|
+
expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
|
81
|
+
expect(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
|
82
|
+
expect(::Dir).to receive(:chdir).with("/my/deploy/dir").and_yield
|
83
|
+
allow(@stdout).to receive(:string).and_return(example_svn_info)
|
84
|
+
allow(@stderr).to receive(:string).and_return("")
|
85
|
+
allow(@exitstatus).to receive(:exitstatus).and_return(1)
|
86
|
+
expect(@provider).to receive(:popen4).and_yield("no-pid", "no-stdin", @stdout,@stderr).
|
87
87
|
and_return(@exitstatus)
|
88
|
-
@provider.find_current_revision.
|
88
|
+
expect(@provider.find_current_revision).to be_nil
|
89
89
|
end
|
90
90
|
|
91
91
|
it "finds the current revision when loading the current resource state" do
|
92
92
|
# note: the test is kinda janky, but it provides regression coverage for CHEF-2092
|
93
93
|
@resource.instance_variable_set(:@action, :sync)
|
94
|
-
@provider.
|
94
|
+
expect(@provider).to receive(:find_current_revision).and_return("12345")
|
95
95
|
@provider.load_current_resource
|
96
|
-
@provider.current_resource.revision.
|
96
|
+
expect(@provider.current_resource.revision).to eq("12345")
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
100
|
it "creates the current_resource object and sets its revision to the current deployment's revision as long as we're not exporting" do
|
101
|
-
@provider.
|
101
|
+
allow(@provider).to receive(:find_current_revision).and_return("11410")
|
102
102
|
@provider.new_resource.instance_variable_set :@action, [:checkout]
|
103
103
|
@provider.load_current_resource
|
104
|
-
@provider.current_resource.name.
|
105
|
-
@provider.current_resource.revision.
|
104
|
+
expect(@provider.current_resource.name).to eql(@resource.name)
|
105
|
+
expect(@provider.current_resource.revision).to eql("11410")
|
106
106
|
end
|
107
107
|
|
108
108
|
context "resolving revisions to an integer" do
|
@@ -114,7 +114,7 @@ describe Chef::Provider::Subversion do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
it "returns the revision number as is if it's already an integer" do
|
117
|
-
@provider.revision_int.
|
117
|
+
expect(@provider.revision_int).to eql("12345")
|
118
118
|
end
|
119
119
|
|
120
120
|
it "queries the server and resolves the revision if it's not an integer (i.e. 'HEAD')" do
|
@@ -128,153 +128,153 @@ describe Chef::Provider::Subversion do
|
|
128
128
|
"Last Changed Rev: 11410\n" + # Last Changed Rev is preferred to Revision
|
129
129
|
"Last Changed Date: 2009-03-25 06:09:56 -0600 (Wed, 25 Mar 2009)\n\n"
|
130
130
|
exitstatus = double("exitstatus")
|
131
|
-
exitstatus.
|
131
|
+
allow(exitstatus).to receive(:exitstatus).and_return(0)
|
132
132
|
@resource.revision "HEAD"
|
133
|
-
@stdout.
|
134
|
-
@stderr.
|
133
|
+
allow(@stdout).to receive(:string).and_return(example_svn_info)
|
134
|
+
allow(@stderr).to receive(:string).and_return("")
|
135
135
|
expected_command = ["svn info http://svn.example.org/trunk/ --no-auth-cache -rHEAD", {:cwd=>Dir.tmpdir}]
|
136
|
-
@provider.
|
136
|
+
expect(@provider).to receive(:popen4).with(*expected_command).
|
137
137
|
and_yield("no-pid","no-stdin",@stdout,@stderr).
|
138
138
|
and_return(exitstatus)
|
139
|
-
@provider.revision_int.
|
139
|
+
expect(@provider.revision_int).to eql("11410")
|
140
140
|
end
|
141
141
|
|
142
142
|
it "returns a helpful message if data from `svn info` can't be parsed" do
|
143
143
|
example_svn_info = "some random text from an error message\n"
|
144
144
|
exitstatus = double("exitstatus")
|
145
|
-
exitstatus.
|
145
|
+
allow(exitstatus).to receive(:exitstatus).and_return(0)
|
146
146
|
@resource.revision "HEAD"
|
147
|
-
@stdout.
|
148
|
-
@stderr.
|
149
|
-
@provider.
|
147
|
+
allow(@stdout).to receive(:string).and_return(example_svn_info)
|
148
|
+
allow(@stderr).to receive(:string).and_return("")
|
149
|
+
expect(@provider).to receive(:popen4).and_yield("no-pid","no-stdin",@stdout,@stderr).
|
150
150
|
and_return(exitstatus)
|
151
|
-
|
151
|
+
expect {@provider.revision_int}.to raise_error(RuntimeError, "Could not parse `svn info` data: some random text from an error message")
|
152
152
|
|
153
153
|
end
|
154
154
|
|
155
155
|
it "responds to :revision_slug as an alias for revision_sha" do
|
156
|
-
@provider.
|
156
|
+
expect(@provider).to respond_to(:revision_slug)
|
157
157
|
end
|
158
158
|
|
159
159
|
end
|
160
160
|
|
161
161
|
it "generates a checkout command with default options" do
|
162
|
-
@provider.checkout_command.
|
162
|
+
expect(@provider.checkout_command).to eql("svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
|
163
163
|
end
|
164
164
|
|
165
165
|
it "generates a checkout command with authentication" do
|
166
166
|
@resource.svn_username "deployNinja"
|
167
167
|
@resource.svn_password "vanish!"
|
168
|
-
@provider.checkout_command.
|
168
|
+
expect(@provider.checkout_command).to eql("svn checkout -q --username deployNinja --password vanish! " +
|
169
169
|
"-r12345 http://svn.example.org/trunk/ /my/deploy/dir")
|
170
170
|
end
|
171
171
|
|
172
172
|
it "generates a checkout command with arbitrary options" do
|
173
173
|
@resource.svn_arguments "--no-auth-cache"
|
174
|
-
@provider.checkout_command.
|
174
|
+
expect(@provider.checkout_command).to eql("svn checkout --no-auth-cache -q -r12345 "+
|
175
175
|
"http://svn.example.org/trunk/ /my/deploy/dir")
|
176
176
|
end
|
177
177
|
|
178
178
|
it "generates a sync command with default options" do
|
179
|
-
@provider.sync_command.
|
179
|
+
expect(@provider.sync_command).to eql("svn update -q -r12345 /my/deploy/dir")
|
180
180
|
end
|
181
181
|
|
182
182
|
it "generates an export command with default options" do
|
183
|
-
@provider.export_command.
|
183
|
+
expect(@provider.export_command).to eql("svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
|
184
184
|
end
|
185
185
|
|
186
186
|
it "doesn't try to find the current revision when loading the resource if running an export" do
|
187
187
|
@provider.new_resource.instance_variable_set :@action, [:export]
|
188
|
-
@provider.
|
188
|
+
expect(@provider).not_to receive(:find_current_revision)
|
189
189
|
@provider.load_current_resource
|
190
190
|
end
|
191
191
|
|
192
192
|
it "doesn't try to find the current revision when loading the resource if running a force export" do
|
193
193
|
@provider.new_resource.instance_variable_set :@action, [:force_export]
|
194
|
-
@provider.
|
194
|
+
expect(@provider).not_to receive(:find_current_revision)
|
195
195
|
@provider.load_current_resource
|
196
196
|
end
|
197
197
|
|
198
198
|
it "runs an export with the --force option" do
|
199
|
-
::File.
|
199
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
200
200
|
expected_cmd = "svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
|
201
|
-
@provider.
|
201
|
+
expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
|
202
202
|
@provider.run_action(:force_export)
|
203
|
-
@resource.
|
203
|
+
expect(@resource).to be_updated
|
204
204
|
end
|
205
205
|
|
206
206
|
it "runs the checkout command for action_checkout" do
|
207
|
-
::File.
|
207
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
208
208
|
expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
|
209
|
-
@provider.
|
209
|
+
expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
|
210
210
|
@provider.run_action(:checkout)
|
211
|
-
@resource.
|
211
|
+
expect(@resource).to be_updated
|
212
212
|
end
|
213
213
|
|
214
214
|
it "raises an error if the svn checkout command would fail because the enclosing directory doesn't exist" do
|
215
|
-
|
215
|
+
expect {@provider.run_action(:sync)}.to raise_error(Chef::Exceptions::MissingParentDirectory)
|
216
216
|
end
|
217
217
|
|
218
218
|
it "should not checkout if the destination exists or is a non empty directory" do
|
219
|
-
::File.
|
220
|
-
::File.
|
221
|
-
::File.
|
222
|
-
::Dir.
|
223
|
-
@provider.
|
219
|
+
allow(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
|
220
|
+
allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(true)
|
221
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
222
|
+
allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
|
223
|
+
expect(@provider).not_to receive(:checkout_command)
|
224
224
|
@provider.run_action(:checkout)
|
225
|
-
@resource.
|
225
|
+
expect(@resource).not_to be_updated
|
226
226
|
end
|
227
227
|
|
228
228
|
it "runs commands with the user and group specified in the resource" do
|
229
|
-
::File.
|
229
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
230
230
|
@resource.user "whois"
|
231
231
|
@resource.group "thisis"
|
232
232
|
expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
|
233
|
-
@provider.
|
233
|
+
expect(@provider).to receive(:shell_out!).with(command: expected_cmd, user: "whois", group: "thisis")
|
234
234
|
@provider.run_action(:checkout)
|
235
|
-
@resource.
|
235
|
+
expect(@resource).to be_updated
|
236
236
|
end
|
237
237
|
|
238
238
|
it "does a checkout for action_sync if there's no deploy dir" do
|
239
|
-
::File.
|
240
|
-
::File.
|
241
|
-
@provider.
|
239
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
240
|
+
expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
|
241
|
+
expect(@provider).to receive(:action_checkout)
|
242
242
|
@provider.run_action(:sync)
|
243
243
|
end
|
244
244
|
|
245
245
|
it "does a checkout for action_sync if the deploy dir exists but is empty" do
|
246
|
-
::File.
|
247
|
-
::File.
|
248
|
-
@provider.
|
246
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
247
|
+
expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
|
248
|
+
expect(@provider).to receive(:action_checkout)
|
249
249
|
@provider.run_action(:sync)
|
250
250
|
end
|
251
251
|
|
252
252
|
it "runs the sync_command on action_sync if the deploy dir exists and isn't empty" do
|
253
|
-
::File.
|
254
|
-
::File.
|
255
|
-
@provider.
|
256
|
-
@provider.
|
253
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
254
|
+
expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
|
255
|
+
allow(@provider).to receive(:find_current_revision).and_return("11410")
|
256
|
+
allow(@provider).to receive(:current_revision_matches_target_revision?).and_return(false)
|
257
257
|
expected_cmd = "svn update -q -r12345 /my/deploy/dir"
|
258
|
-
@provider.
|
258
|
+
expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
|
259
259
|
@provider.run_action(:sync)
|
260
|
-
@resource.
|
260
|
+
expect(@resource).to be_updated
|
261
261
|
end
|
262
262
|
|
263
263
|
it "does not fetch any updates if the remote revision matches the current revision" do
|
264
|
-
::File.
|
265
|
-
::File.
|
266
|
-
@provider.
|
267
|
-
@provider.
|
264
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
265
|
+
expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
|
266
|
+
allow(@provider).to receive(:find_current_revision).and_return('12345')
|
267
|
+
allow(@provider).to receive(:current_revision_matches_target_revision?).and_return(true)
|
268
268
|
@provider.run_action(:sync)
|
269
|
-
@resource.
|
269
|
+
expect(@resource).not_to be_updated
|
270
270
|
end
|
271
271
|
|
272
272
|
it "runs the export_command on action_export" do
|
273
|
-
::File.
|
273
|
+
allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
|
274
274
|
expected_cmd = "svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
|
275
|
-
@provider.
|
275
|
+
expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
|
276
276
|
@provider.run_action(:export)
|
277
|
-
@resource.
|
277
|
+
expect(@resource).to be_updated
|
278
278
|
end
|
279
279
|
|
280
280
|
end
|