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
@@ -33,18 +33,18 @@ describe Chef::Provider::Group::Groupmod do
|
|
33
33
|
describe "manage_group" do
|
34
34
|
describe "when determining the current group state" do
|
35
35
|
it "should raise an error if the required binary /usr/sbin/group doesn't exist" do
|
36
|
-
File.
|
37
|
-
|
36
|
+
expect(File).to receive(:exists?).with("/usr/sbin/group").and_return(false)
|
37
|
+
expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Group)
|
38
38
|
end
|
39
39
|
it "should raise an error if the required binary /usr/sbin/user doesn't exist" do
|
40
|
-
File.
|
41
|
-
File.
|
42
|
-
|
40
|
+
expect(File).to receive(:exists?).with("/usr/sbin/group").and_return(true)
|
41
|
+
expect(File).to receive(:exists?).with("/usr/sbin/user").and_return(false)
|
42
|
+
expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Group)
|
43
43
|
end
|
44
44
|
|
45
45
|
it "shouldn't raise an error if the required binaries exist" do
|
46
|
-
File.
|
47
|
-
|
46
|
+
allow(File).to receive(:exists?).and_return(true)
|
47
|
+
expect { @provider.load_current_resource }.not_to raise_error
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -61,10 +61,10 @@ describe Chef::Provider::Group::Groupmod do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
it "logs a message and sets group's members to 'none', then removes existing group members" do
|
64
|
-
Chef::Log.
|
65
|
-
@provider.
|
66
|
-
@provider.
|
67
|
-
@provider.
|
64
|
+
expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
|
65
|
+
expect(@provider).to receive(:shell_out!).with("group mod -n wheel_bak wheel")
|
66
|
+
expect(@provider).to receive(:shell_out!).with("group add -g '123' -o wheel")
|
67
|
+
expect(@provider).to receive(:shell_out!).with("group del wheel_bak")
|
68
68
|
@provider.manage_group
|
69
69
|
end
|
70
70
|
end
|
@@ -76,8 +76,8 @@ describe Chef::Provider::Group::Groupmod do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
it "logs a message and does not modify group membership" do
|
79
|
-
Chef::Log.
|
80
|
-
@provider.
|
79
|
+
expect(Chef::Log).to receive(:debug).with("group[wheel] not changing group members, the group has no members to add")
|
80
|
+
expect(@provider).not_to receive(:shell_out!)
|
81
81
|
@provider.manage_group
|
82
82
|
end
|
83
83
|
end
|
@@ -89,11 +89,11 @@ describe Chef::Provider::Group::Groupmod do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
it "updates group membership correctly" do
|
92
|
-
Chef::Log.
|
93
|
-
@provider.
|
94
|
-
@provider.
|
95
|
-
@provider.
|
96
|
-
@provider.
|
92
|
+
allow(Chef::Log).to receive(:debug)
|
93
|
+
expect(@provider).to receive(:shell_out!).with("group mod -n wheel_bak wheel")
|
94
|
+
expect(@provider).to receive(:shell_out!).with("user mod -G wheel lobster")
|
95
|
+
expect(@provider).to receive(:shell_out!).with("group add -g '123' -o wheel")
|
96
|
+
expect(@provider).to receive(:shell_out!).with("group del wheel_bak")
|
97
97
|
@provider.manage_group
|
98
98
|
end
|
99
99
|
end
|
@@ -108,10 +108,10 @@ describe Chef::Provider::Group::Groupmod do
|
|
108
108
|
end
|
109
109
|
|
110
110
|
it "should run a group add command and some user mod commands" do
|
111
|
-
@provider.
|
112
|
-
@provider.
|
113
|
-
@provider.
|
114
|
-
@provider.
|
111
|
+
expect(@provider).to receive(:shell_out!).with("group add -g '123' wheel")
|
112
|
+
expect(@provider).to receive(:shell_out!).with("user mod -G wheel lobster")
|
113
|
+
expect(@provider).to receive(:shell_out!).with("user mod -G wheel rage")
|
114
|
+
expect(@provider).to receive(:shell_out!).with("user mod -G wheel fist")
|
115
115
|
@provider.create_group
|
116
116
|
end
|
117
117
|
end
|
@@ -125,7 +125,7 @@ describe Chef::Provider::Group::Groupmod do
|
|
125
125
|
end
|
126
126
|
|
127
127
|
it "should run a group del command" do
|
128
|
-
@provider.
|
128
|
+
expect(@provider).to receive(:shell_out!).with("group del wheel")
|
129
129
|
@provider.remove_group
|
130
130
|
end
|
131
131
|
end
|
@@ -37,19 +37,19 @@ describe Chef::Provider::Group::Pw do
|
|
37
37
|
|
38
38
|
describe "when setting options for the pw command" do
|
39
39
|
it "does not set the gid option if gids match or are unmanaged" do
|
40
|
-
@provider.set_options.
|
40
|
+
expect(@provider.set_options).to eq(" wheel")
|
41
41
|
end
|
42
42
|
|
43
43
|
it "sets the option for gid if it is not nil" do
|
44
44
|
@new_resource.gid(42)
|
45
|
-
@provider.set_options.
|
45
|
+
expect(@provider.set_options).to eql(" wheel -g '42'")
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
describe "when creating a group" do
|
50
50
|
it "should run pw groupadd with the return of set_options and set_members_option" do
|
51
51
|
@new_resource.gid(23)
|
52
|
-
@provider.
|
52
|
+
expect(@provider).to receive(:run_command).with({ :command => "pw groupadd wheel -g '23' -M root,aj" }).and_return(true)
|
53
53
|
@provider.create_group
|
54
54
|
end
|
55
55
|
end
|
@@ -59,8 +59,8 @@ describe Chef::Provider::Group::Pw do
|
|
59
59
|
it "should run pw groupmod with the return of set_options" do
|
60
60
|
@new_resource.gid(42)
|
61
61
|
@new_resource.members(["someone"])
|
62
|
-
@provider.
|
63
|
-
@provider.
|
62
|
+
expect(@provider).to receive(:run_command).with({ :command => "pw groupmod wheel -g '42' -m someone" }).and_return(true)
|
63
|
+
expect(@provider).to receive(:run_command).with({ :command => "pw groupmod wheel -g '42' -d root,aj" }).and_return(true)
|
64
64
|
@provider.manage_group
|
65
65
|
end
|
66
66
|
|
@@ -68,7 +68,7 @@ describe Chef::Provider::Group::Pw do
|
|
68
68
|
|
69
69
|
describe "when removing the group" do
|
70
70
|
it "should run pw groupdel with the new resources group name" do
|
71
|
-
@provider.
|
71
|
+
expect(@provider).to receive(:run_command).with({ :command => "pw groupdel wheel" }).and_return(true)
|
72
72
|
@provider.remove_group
|
73
73
|
end
|
74
74
|
end
|
@@ -77,44 +77,44 @@ describe Chef::Provider::Group::Pw do
|
|
77
77
|
|
78
78
|
describe "with an empty members array in both the new and current resource" do
|
79
79
|
before do
|
80
|
-
@new_resource.
|
81
|
-
@current_resource.
|
80
|
+
allow(@new_resource).to receive(:members).and_return([])
|
81
|
+
allow(@current_resource).to receive(:members).and_return([])
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should set no options" do
|
85
|
-
@provider.set_members_options.
|
85
|
+
expect(@provider.set_members_options).to eql([ ])
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
89
|
describe "with an empty members array in the new resource and existing members in the current resource" do
|
90
90
|
before do
|
91
|
-
@new_resource.
|
92
|
-
@current_resource.
|
91
|
+
allow(@new_resource).to receive(:members).and_return([])
|
92
|
+
allow(@current_resource).to receive(:members).and_return(["all", "your", "base"])
|
93
93
|
end
|
94
94
|
|
95
95
|
it "should log an appropriate message" do
|
96
|
-
Chef::Log.
|
96
|
+
expect(Chef::Log).to receive(:debug).with("group[wheel] removing group members: all,your,base")
|
97
97
|
@provider.set_members_options
|
98
98
|
end
|
99
99
|
|
100
100
|
it "should set the -d option with the members joined by ','" do
|
101
|
-
@provider.set_members_options.
|
101
|
+
expect(@provider.set_members_options).to eql([ " -d all,your,base" ])
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
105
|
describe "with supplied members array in the new resource and an empty members array in the current resource" do
|
106
106
|
before do
|
107
|
-
@new_resource.
|
108
|
-
@current_resource.
|
107
|
+
allow(@new_resource).to receive(:members).and_return(["all", "your", "base"])
|
108
|
+
allow(@current_resource).to receive(:members).and_return([])
|
109
109
|
end
|
110
110
|
|
111
111
|
it "should log an appropriate debug message" do
|
112
|
-
Chef::Log.
|
112
|
+
expect(Chef::Log).to receive(:debug).with("group[wheel] adding group members: all,your,base")
|
113
113
|
@provider.set_members_options
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should set the -m option with the members joined by ','" do
|
117
|
-
@provider.set_members_options.
|
117
|
+
expect(@provider.set_members_options).to eql([ " -m all,your,base" ])
|
118
118
|
end
|
119
119
|
end
|
120
120
|
end
|
@@ -126,13 +126,13 @@ describe Chef::Provider::Group::Pw do
|
|
126
126
|
@provider.define_resource_requirements
|
127
127
|
end
|
128
128
|
it "should raise an error if the required binary /usr/sbin/pw doesn't exist" do
|
129
|
-
File.
|
130
|
-
|
129
|
+
expect(File).to receive(:exists?).with("/usr/sbin/pw").and_return(false)
|
130
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
131
131
|
end
|
132
132
|
|
133
133
|
it "shouldn't raise an error if /usr/sbin/pw exists" do
|
134
|
-
File.
|
135
|
-
|
134
|
+
allow(File).to receive(:exists?).and_return(true)
|
135
|
+
expect { @provider.process_resource_requirements }.not_to raise_error
|
136
136
|
end
|
137
137
|
end
|
138
138
|
end
|
@@ -27,19 +27,19 @@ describe Chef::Provider::Group::Usermod do
|
|
27
27
|
@new_resource.members [ "all", "your", "base" ]
|
28
28
|
@new_resource.excluded_members [ ]
|
29
29
|
@provider = Chef::Provider::Group::Usermod.new(@new_resource, @run_context)
|
30
|
-
@provider.
|
30
|
+
allow(@provider).to receive(:run_command)
|
31
31
|
end
|
32
32
|
|
33
33
|
describe "modify_group_members" do
|
34
34
|
|
35
35
|
describe "with an empty members array" do
|
36
36
|
before do
|
37
|
-
@new_resource.
|
38
|
-
@new_resource.
|
37
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
38
|
+
allow(@new_resource).to receive(:members).and_return([])
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should log an appropriate message" do
|
42
|
-
@provider.
|
42
|
+
expect(@provider).not_to receive(:shell_out!)
|
43
43
|
@provider.modify_group_members
|
44
44
|
end
|
45
45
|
end
|
@@ -56,8 +56,8 @@ describe Chef::Provider::Group::Usermod do
|
|
56
56
|
}
|
57
57
|
|
58
58
|
before do
|
59
|
-
@new_resource.
|
60
|
-
File.
|
59
|
+
allow(@new_resource).to receive(:members).and_return(["all", "your", "base"])
|
60
|
+
allow(File).to receive(:exists?).and_return(true)
|
61
61
|
end
|
62
62
|
|
63
63
|
it "should raise an error when setting the entire group directly" do
|
@@ -65,7 +65,7 @@ describe Chef::Provider::Group::Usermod do
|
|
65
65
|
@provider.load_current_resource
|
66
66
|
@provider.instance_variable_set("@group_exists", true)
|
67
67
|
@provider.action = :modify
|
68
|
-
|
68
|
+
expect { @provider.run_action(@provider.process_resource_requirements) }.to raise_error(Chef::Exceptions::Group, "setting group members directly is not supported by #{@provider.to_s}, must set append true in group")
|
69
69
|
end
|
70
70
|
|
71
71
|
it "should raise an error when excluded_members are set" do
|
@@ -73,9 +73,9 @@ describe Chef::Provider::Group::Usermod do
|
|
73
73
|
@provider.load_current_resource
|
74
74
|
@provider.instance_variable_set("@group_exists", true)
|
75
75
|
@provider.action = :modify
|
76
|
-
@new_resource.
|
77
|
-
@new_resource.
|
78
|
-
|
76
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
77
|
+
allow(@new_resource).to receive(:excluded_members).and_return(["someone"])
|
78
|
+
expect { @provider.run_action(@provider.process_resource_requirements) }.to raise_error(Chef::Exceptions::Group, "excluded_members is not supported by #{@provider.to_s}")
|
79
79
|
end
|
80
80
|
|
81
81
|
platforms.each do |platform, flags|
|
@@ -84,10 +84,10 @@ describe Chef::Provider::Group::Usermod do
|
|
84
84
|
current_resource.members([ ])
|
85
85
|
@provider.current_resource = current_resource
|
86
86
|
@node.automatic_attrs[:platform] = platform
|
87
|
-
@new_resource.
|
88
|
-
@provider.
|
89
|
-
@provider.
|
90
|
-
@provider.
|
87
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
88
|
+
expect(@provider).to receive(:shell_out!).with("usermod #{flags} wheel all")
|
89
|
+
expect(@provider).to receive(:shell_out!).with("usermod #{flags} wheel your")
|
90
|
+
expect(@provider).to receive(:shell_out!).with("usermod #{flags} wheel base")
|
91
91
|
@provider.modify_group_members
|
92
92
|
end
|
93
93
|
end
|
@@ -96,20 +96,20 @@ describe Chef::Provider::Group::Usermod do
|
|
96
96
|
|
97
97
|
describe "when loading the current resource" do
|
98
98
|
before(:each) do
|
99
|
-
File.
|
99
|
+
allow(File).to receive(:exists?).and_return(false)
|
100
100
|
@provider.action = :create
|
101
101
|
@provider.define_resource_requirements
|
102
102
|
end
|
103
103
|
|
104
104
|
it "should raise an error if the required binary /usr/sbin/usermod doesn't exist" do
|
105
|
-
File.
|
106
|
-
File.
|
107
|
-
|
105
|
+
allow(File).to receive(:exists?).and_return(true)
|
106
|
+
expect(File).to receive(:exists?).with("/usr/sbin/usermod").and_return(false)
|
107
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
108
108
|
end
|
109
109
|
|
110
110
|
it "shouldn't raise an error if the required binaries exist" do
|
111
|
-
File.
|
112
|
-
|
111
|
+
allow(File).to receive(:exists?).and_return(true)
|
112
|
+
expect { @provider.process_resource_requirements }.not_to raise_error
|
113
113
|
end
|
114
114
|
end
|
115
115
|
end
|
@@ -34,14 +34,14 @@ describe Chef::Provider::Group::Windows do
|
|
34
34
|
@run_context = Chef::RunContext.new(@node, {}, @events)
|
35
35
|
@new_resource = Chef::Resource::Group.new("staff")
|
36
36
|
@net_group = double("Chef::Util::Windows::NetGroup")
|
37
|
-
Chef::Util::Windows::NetGroup.
|
37
|
+
allow(Chef::Util::Windows::NetGroup).to receive(:new).and_return(@net_group)
|
38
38
|
@provider = Chef::Provider::Group::Windows.new(@new_resource, @run_context)
|
39
39
|
end
|
40
40
|
|
41
41
|
describe "when creating the group" do
|
42
42
|
it "should call @net_group.local_add" do
|
43
|
-
@net_group.
|
44
|
-
@net_group.
|
43
|
+
expect(@net_group).to receive(:local_set_members).with([])
|
44
|
+
expect(@net_group).to receive(:local_add)
|
45
45
|
@provider.create_group
|
46
46
|
end
|
47
47
|
end
|
@@ -52,22 +52,22 @@ describe Chef::Provider::Group::Windows do
|
|
52
52
|
@current_resource = Chef::Resource::Group.new("staff")
|
53
53
|
@current_resource.members [ "all", "your", "base" ]
|
54
54
|
|
55
|
-
Chef::Util::Windows::NetGroup.
|
56
|
-
@net_group.
|
57
|
-
@net_group.
|
58
|
-
@provider.
|
55
|
+
allow(Chef::Util::Windows::NetGroup).to receive(:new).and_return(@net_group)
|
56
|
+
allow(@net_group).to receive(:local_add_members)
|
57
|
+
allow(@net_group).to receive(:local_set_members)
|
58
|
+
allow(@provider).to receive(:local_group_name_to_sid)
|
59
59
|
@provider.current_resource = @current_resource
|
60
60
|
end
|
61
61
|
|
62
62
|
it "should call @net_group.local_set_members" do
|
63
|
-
@new_resource.
|
64
|
-
@net_group.
|
63
|
+
allow(@new_resource).to receive(:append).and_return(false)
|
64
|
+
expect(@net_group).to receive(:local_set_members).with(@new_resource.members)
|
65
65
|
@provider.manage_group
|
66
66
|
end
|
67
67
|
|
68
68
|
it "should call @net_group.local_add_members" do
|
69
|
-
@new_resource.
|
70
|
-
@net_group.
|
69
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
70
|
+
expect(@net_group).to receive(:local_add_members).with(@new_resource.members)
|
71
71
|
@provider.manage_group
|
72
72
|
end
|
73
73
|
|
@@ -75,12 +75,12 @@ describe Chef::Provider::Group::Windows do
|
|
75
75
|
|
76
76
|
describe "remove_group" do
|
77
77
|
before do
|
78
|
-
Chef::Util::Windows::NetGroup.
|
79
|
-
@provider.
|
78
|
+
allow(Chef::Util::Windows::NetGroup).to receive(:new).and_return(@net_group)
|
79
|
+
allow(@provider).to receive(:run_command).and_return(true)
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should call @net_group.local_delete" do
|
83
|
-
@net_group.
|
83
|
+
expect(@net_group).to receive(:local_delete)
|
84
84
|
@provider.remove_group
|
85
85
|
end
|
86
86
|
end
|
@@ -95,7 +95,7 @@ describe Chef::Provider::Group::Windows, "NetGroup" do
|
|
95
95
|
@new_resource.group_name "Remote Desktop Users"
|
96
96
|
end
|
97
97
|
it 'sets group_name correctly' do
|
98
|
-
Chef::Util::Windows::NetGroup.
|
98
|
+
expect(Chef::Util::Windows::NetGroup).to receive(:new).with("Remote Desktop Users")
|
99
99
|
Chef::Provider::Group::Windows.new(@new_resource, @run_context)
|
100
100
|
end
|
101
101
|
end
|
@@ -41,89 +41,89 @@ describe Chef::Provider::User do
|
|
41
41
|
:gid => 20,
|
42
42
|
:mem => [ "root", "aj" ]
|
43
43
|
)
|
44
|
-
Etc.
|
44
|
+
allow(Etc).to receive(:getgrnam).with('wheel').and_return(@pw_group)
|
45
45
|
end
|
46
46
|
|
47
47
|
it "assumes the group exists by default" do
|
48
|
-
@provider.group_exists.
|
48
|
+
expect(@provider.group_exists).to be_true
|
49
49
|
end
|
50
50
|
|
51
51
|
describe "when establishing the current state of the group" do
|
52
52
|
|
53
53
|
it "sets the group name of the current resource to the group name of the new resource" do
|
54
54
|
@provider.load_current_resource
|
55
|
-
@provider.current_resource.group_name.
|
55
|
+
expect(@provider.current_resource.group_name).to eq('wheel')
|
56
56
|
end
|
57
57
|
|
58
58
|
it "does not modify the desired gid if set" do
|
59
59
|
@provider.load_current_resource
|
60
|
-
@new_resource.gid.
|
60
|
+
expect(@new_resource.gid).to eq(500)
|
61
61
|
end
|
62
62
|
|
63
63
|
it "sets the desired gid to the current gid if none is set" do
|
64
64
|
@new_resource.instance_variable_set(:@gid, nil)
|
65
65
|
@provider.load_current_resource
|
66
|
-
@new_resource.gid.
|
66
|
+
expect(@new_resource.gid).to eq(20)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "looks up the group in /etc/group with getgrnam" do
|
70
|
-
Etc.
|
70
|
+
expect(Etc).to receive(:getgrnam).with(@new_resource.group_name).and_return(@pw_group)
|
71
71
|
@provider.load_current_resource
|
72
|
-
@provider.current_resource.gid.
|
73
|
-
@provider.current_resource.members.
|
72
|
+
expect(@provider.current_resource.gid).to eq(20)
|
73
|
+
expect(@provider.current_resource.members).to eq(%w{root aj})
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should flip the value of exists if it cannot be found in /etc/group" do
|
77
|
-
Etc.
|
77
|
+
allow(Etc).to receive(:getgrnam).and_raise(ArgumentError)
|
78
78
|
@provider.load_current_resource
|
79
|
-
@provider.group_exists.
|
79
|
+
expect(@provider.group_exists).to be_false
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should return the current resource" do
|
83
|
-
@provider.load_current_resource.
|
83
|
+
expect(@provider.load_current_resource).to equal(@provider.current_resource)
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
87
|
describe "when determining if the system is already in the target state" do
|
88
88
|
[ :gid, :members ].each do |attribute|
|
89
89
|
it "should return true if #{attribute} doesn't match" do
|
90
|
-
@current_resource.
|
91
|
-
@provider.compare_group.
|
90
|
+
allow(@current_resource).to receive(attribute).and_return("looooooooooooooooooool")
|
91
|
+
expect(@provider.compare_group).to be_true
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
95
95
|
it "should return false if gid and members are equal" do
|
96
|
-
@provider.compare_group.
|
96
|
+
expect(@provider.compare_group).to be_false
|
97
97
|
end
|
98
98
|
|
99
99
|
it "should coerce an integer to a string for comparison" do
|
100
|
-
@current_resource.
|
101
|
-
@provider.compare_group.
|
100
|
+
allow(@current_resource).to receive(:gid).and_return("500")
|
101
|
+
expect(@provider.compare_group).to be_false
|
102
102
|
end
|
103
103
|
|
104
104
|
it "should return false if append is true and the group member(s) already exists" do
|
105
105
|
@current_resource.members << "extra_user"
|
106
|
-
@new_resource.
|
107
|
-
@provider.compare_group.
|
106
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
107
|
+
expect(@provider.compare_group).to be_false
|
108
108
|
end
|
109
109
|
|
110
110
|
it "should return true if append is true and the group member(s) do not already exist" do
|
111
111
|
@new_resource.members << "extra_user"
|
112
|
-
@new_resource.
|
113
|
-
@provider.compare_group.
|
112
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
113
|
+
expect(@provider.compare_group).to be_true
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should return false if append is true and excluded_members include a non existing member" do
|
117
117
|
@new_resource.excluded_members << "extra_user"
|
118
|
-
@new_resource.
|
119
|
-
@provider.compare_group.
|
118
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
119
|
+
expect(@provider.compare_group).to be_false
|
120
120
|
end
|
121
121
|
|
122
122
|
it "should return true if the append is true and excluded_members include an existing user" do
|
123
123
|
@new_resource.members.each {|m| @new_resource.excluded_members << m }
|
124
124
|
@new_resource.members.clear
|
125
|
-
@new_resource.
|
126
|
-
@provider.compare_group.
|
125
|
+
allow(@new_resource).to receive(:append).and_return(true)
|
126
|
+
expect(@provider.compare_group).to be_true
|
127
127
|
end
|
128
128
|
|
129
129
|
end
|
@@ -131,40 +131,40 @@ describe Chef::Provider::User do
|
|
131
131
|
describe "when creating a group" do
|
132
132
|
it "should call create_group if the group does not exist" do
|
133
133
|
@provider.group_exists = false
|
134
|
-
@provider.
|
134
|
+
expect(@provider).to receive(:create_group).and_return(true)
|
135
135
|
@provider.run_action(:create)
|
136
136
|
end
|
137
137
|
|
138
138
|
it "should set the new_resources updated flag when it creates the group" do
|
139
139
|
@provider.group_exists = false
|
140
|
-
@provider.
|
140
|
+
allow(@provider).to receive(:create_group)
|
141
141
|
@provider.run_action(:create)
|
142
|
-
@provider.new_resource.
|
142
|
+
expect(@provider.new_resource).to be_updated
|
143
143
|
end
|
144
144
|
|
145
145
|
it "should check to see if the group has mismatched attributes if the group exists" do
|
146
146
|
@provider.group_exists = true
|
147
|
-
@provider.
|
148
|
-
@provider.
|
147
|
+
allow(@provider).to receive(:compare_group).and_return(false)
|
148
|
+
allow(@provider).to receive(:change_desc).and_return([ ])
|
149
149
|
@provider.run_action(:create)
|
150
|
-
@provider.new_resource.
|
150
|
+
expect(@provider.new_resource).not_to be_updated
|
151
151
|
end
|
152
152
|
|
153
153
|
it "should call manage_group if the group exists and has mismatched attributes" do
|
154
154
|
@provider.group_exists = true
|
155
|
-
@provider.
|
156
|
-
@provider.
|
157
|
-
@provider.
|
155
|
+
allow(@provider).to receive(:compare_group).and_return(true)
|
156
|
+
allow(@provider).to receive(:change_desc).and_return([ ])
|
157
|
+
expect(@provider).to receive(:manage_group).and_return(true)
|
158
158
|
@provider.run_action(:create)
|
159
159
|
end
|
160
160
|
|
161
161
|
it "should set the new_resources updated flag when it creates the group if we call manage_group" do
|
162
162
|
@provider.group_exists = true
|
163
|
-
@provider.
|
164
|
-
@provider.
|
165
|
-
@provider.
|
163
|
+
allow(@provider).to receive(:compare_group).and_return(true)
|
164
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
165
|
+
allow(@provider).to receive(:manage_group).and_return(true)
|
166
166
|
@provider.run_action(:create)
|
167
|
-
@new_resource.
|
167
|
+
expect(@new_resource).to be_updated
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
@@ -172,50 +172,50 @@ describe Chef::Provider::User do
|
|
172
172
|
|
173
173
|
it "should not call remove_group if the group does not exist" do
|
174
174
|
@provider.group_exists = false
|
175
|
-
@provider.
|
175
|
+
expect(@provider).not_to receive(:remove_group)
|
176
176
|
@provider.run_action(:remove)
|
177
|
-
@provider.new_resource.
|
177
|
+
expect(@provider.new_resource).not_to be_updated
|
178
178
|
end
|
179
179
|
|
180
180
|
it "should call remove_group if the group exists" do
|
181
181
|
@provider.group_exists = true
|
182
|
-
@provider.
|
182
|
+
expect(@provider).to receive(:remove_group)
|
183
183
|
@provider.run_action(:remove)
|
184
|
-
@provider.new_resource.
|
184
|
+
expect(@provider.new_resource).to be_updated
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
188
188
|
describe "when updating a group" do
|
189
189
|
before(:each) do
|
190
190
|
@provider.group_exists = true
|
191
|
-
@provider.
|
191
|
+
allow(@provider).to receive(:manage_group).and_return(true)
|
192
192
|
end
|
193
193
|
|
194
194
|
it "should run manage_group if the group exists and has mismatched attributes" do
|
195
|
-
@provider.
|
196
|
-
@provider.
|
197
|
-
@provider.
|
195
|
+
expect(@provider).to receive(:compare_group).and_return(true)
|
196
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
197
|
+
expect(@provider).to receive(:manage_group).and_return(true)
|
198
198
|
@provider.run_action(:manage)
|
199
199
|
end
|
200
200
|
|
201
201
|
it "should set the new resources updated flag to true if manage_group is called" do
|
202
|
-
@provider.
|
203
|
-
@provider.
|
204
|
-
@provider.
|
202
|
+
allow(@provider).to receive(:compare_group).and_return(true)
|
203
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
204
|
+
allow(@provider).to receive(:manage_group).and_return(true)
|
205
205
|
@provider.run_action(:manage)
|
206
|
-
@new_resource.
|
206
|
+
expect(@new_resource).to be_updated
|
207
207
|
end
|
208
208
|
|
209
209
|
it "should not run manage_group if the group does not exist" do
|
210
210
|
@provider.group_exists = false
|
211
|
-
@provider.
|
211
|
+
expect(@provider).not_to receive(:manage_group)
|
212
212
|
@provider.run_action(:manage)
|
213
213
|
end
|
214
214
|
|
215
215
|
it "should not run manage_group if the group exists but has no differing attributes" do
|
216
|
-
@provider.
|
217
|
-
@provider.
|
218
|
-
@provider.
|
216
|
+
expect(@provider).to receive(:compare_group).and_return(false)
|
217
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
218
|
+
expect(@provider).not_to receive(:manage_group)
|
219
219
|
@provider.run_action(:manage)
|
220
220
|
end
|
221
221
|
end
|
@@ -223,34 +223,34 @@ describe Chef::Provider::User do
|
|
223
223
|
describe "when modifying the group" do
|
224
224
|
before(:each) do
|
225
225
|
@provider.group_exists = true
|
226
|
-
@provider.
|
226
|
+
allow(@provider).to receive(:manage_group).and_return(true)
|
227
227
|
end
|
228
228
|
|
229
229
|
it "should run manage_group if the group exists and has mismatched attributes" do
|
230
|
-
@provider.
|
231
|
-
@provider.
|
232
|
-
@provider.
|
230
|
+
expect(@provider).to receive(:compare_group).and_return(true)
|
231
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
232
|
+
expect(@provider).to receive(:manage_group).and_return(true)
|
233
233
|
@provider.run_action(:modify)
|
234
234
|
end
|
235
235
|
|
236
236
|
it "should set the new resources updated flag to true if manage_group is called" do
|
237
|
-
@provider.
|
238
|
-
@provider.
|
239
|
-
@provider.
|
237
|
+
allow(@provider).to receive(:compare_group).and_return(true)
|
238
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
239
|
+
allow(@provider).to receive(:manage_group).and_return(true)
|
240
240
|
@provider.run_action(:modify)
|
241
|
-
@new_resource.
|
241
|
+
expect(@new_resource).to be_updated
|
242
242
|
end
|
243
243
|
|
244
244
|
it "should not run manage_group if the group exists but has no differing attributes" do
|
245
|
-
@provider.
|
246
|
-
@provider.
|
247
|
-
@provider.
|
245
|
+
expect(@provider).to receive(:compare_group).and_return(false)
|
246
|
+
allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
|
247
|
+
expect(@provider).not_to receive(:manage_group)
|
248
248
|
@provider.run_action(:modify)
|
249
249
|
end
|
250
250
|
|
251
251
|
it "should raise a Chef::Exceptions::Group if the group doesn't exist" do
|
252
252
|
@provider.group_exists = false
|
253
|
-
|
253
|
+
expect { @provider.run_action(:modify) }.to raise_error(Chef::Exceptions::Group)
|
254
254
|
end
|
255
255
|
end
|
256
256
|
|
@@ -258,28 +258,28 @@ describe Chef::Provider::User do
|
|
258
258
|
it "should report which group members are missing if members are missing and appending to the group" do
|
259
259
|
@new_resource.members << "user1"
|
260
260
|
@new_resource.members << "user2"
|
261
|
-
@new_resource.
|
262
|
-
@provider.compare_group.
|
263
|
-
@provider.change_desc.
|
261
|
+
allow(@new_resource).to receive(:append).and_return true
|
262
|
+
expect(@provider.compare_group).to be_true
|
263
|
+
expect(@provider.change_desc).to eq([ "add missing member(s): user1, user2" ])
|
264
264
|
end
|
265
265
|
|
266
266
|
it "should report that the group members will be overwritten if not appending" do
|
267
267
|
@new_resource.members << "user1"
|
268
|
-
@new_resource.
|
269
|
-
@provider.compare_group.
|
270
|
-
@provider.change_desc.
|
268
|
+
allow(@new_resource).to receive(:append).and_return false
|
269
|
+
expect(@provider.compare_group).to be_true
|
270
|
+
expect(@provider.change_desc).to eq([ "replace group members with new list of members" ])
|
271
271
|
end
|
272
272
|
|
273
273
|
it "should report the gid will be changed when it does not match" do
|
274
|
-
@current_resource.
|
275
|
-
@provider.compare_group.
|
276
|
-
@provider.change_desc.
|
274
|
+
allow(@current_resource).to receive(:gid).and_return("BADF00D")
|
275
|
+
expect(@provider.compare_group).to be_true
|
276
|
+
expect(@provider.change_desc).to eq([ "change gid #{@current_resource.gid} to #{@new_resource.gid}" ])
|
277
277
|
|
278
278
|
end
|
279
279
|
|
280
280
|
it "should report no change reason when no change is required" do
|
281
|
-
@provider.compare_group.
|
282
|
-
@provider.change_desc.
|
281
|
+
expect(@provider.compare_group).to be_false
|
282
|
+
expect(@provider.change_desc).to eq([ ])
|
283
283
|
end
|
284
284
|
end
|
285
285
|
|