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
@@ -32,64 +32,64 @@ describe Chef::Provider::Group::Dscl do
|
|
32
32
|
@stdin = StringIO.new
|
33
33
|
@stdout = StringIO.new("\n")
|
34
34
|
@stderr = StringIO.new("")
|
35
|
-
@provider.
|
35
|
+
allow(@provider).to receive(:popen4).and_yield(@pid,@stdin,@stdout,@stderr).and_return(@status)
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should run popen4 with the supplied array of arguments appended to the dscl command" do
|
39
|
-
@provider.
|
39
|
+
expect(@provider).to receive(:popen4).with("dscl . -cmd /Path arg1 arg2")
|
40
40
|
@provider.dscl("cmd", "/Path", "arg1", "arg2")
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should return an array of four elements - cmd, status, stdout, stderr" do
|
44
44
|
dscl_retval = @provider.dscl("cmd /Path args")
|
45
|
-
dscl_retval.
|
46
|
-
dscl_retval.
|
45
|
+
expect(dscl_retval).to be_a_kind_of(Array)
|
46
|
+
expect(dscl_retval).to eq(["dscl . -cmd /Path args",@status,"\n",""])
|
47
47
|
end
|
48
48
|
|
49
49
|
describe "safe_dscl" do
|
50
50
|
before do
|
51
51
|
@node = Chef::Node.new
|
52
52
|
@provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
|
53
|
-
@provider.
|
53
|
+
allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should run dscl with the supplied cmd /Path args" do
|
57
|
-
@provider.
|
57
|
+
expect(@provider).to receive(:dscl).with("cmd /Path args")
|
58
58
|
@provider.safe_dscl("cmd /Path args")
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "with the dscl command returning a non zero exit status for a delete" do
|
62
62
|
before do
|
63
63
|
@status = double("Process::Status", :exitstatus => 1)
|
64
|
-
@provider.
|
64
|
+
allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
|
65
65
|
end
|
66
66
|
|
67
67
|
it "should return an empty string of standard output for a delete" do
|
68
68
|
safe_dscl_retval = @provider.safe_dscl("delete /Path args")
|
69
|
-
safe_dscl_retval.
|
70
|
-
safe_dscl_retval.
|
69
|
+
expect(safe_dscl_retval).to be_a_kind_of(String)
|
70
|
+
expect(safe_dscl_retval).to eq("")
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should raise an exception for any other command" do
|
74
|
-
|
74
|
+
expect { @provider.safe_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::Group)
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
78
|
describe "with the dscl command returning no such key" do
|
79
79
|
before do
|
80
|
-
@provider.
|
80
|
+
allow(@provider).to receive(:dscl).and_return(["cmd", @status, "No such key: ", "stderr"])
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should raise an exception" do
|
84
|
-
|
84
|
+
expect { @provider.safe_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::Group)
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
88
|
describe "with the dscl command returning a zero exit status" do
|
89
89
|
it "should return the third array element, the string of standard output" do
|
90
90
|
safe_dscl_retval = @provider.safe_dscl("cmd /Path args")
|
91
|
-
safe_dscl_retval.
|
92
|
-
safe_dscl_retval.
|
91
|
+
expect(safe_dscl_retval).to be_a_kind_of(String)
|
92
|
+
expect(safe_dscl_retval).to eq("stdout")
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
@@ -98,21 +98,21 @@ describe Chef::Provider::Group::Dscl do
|
|
98
98
|
before do
|
99
99
|
@node = Chef::Node.new
|
100
100
|
@provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
|
101
|
-
@provider.
|
101
|
+
allow(@provider).to receive(:safe_dscl).and_return("\naj 200\njt 201\n")
|
102
102
|
end
|
103
103
|
|
104
104
|
it "should run safe_dscl with list /Groups gid" do
|
105
|
-
@provider.
|
105
|
+
expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
|
106
106
|
@provider.get_free_gid
|
107
107
|
end
|
108
108
|
|
109
109
|
it "should return the first unused gid number on or above 200" do
|
110
|
-
@provider.get_free_gid.
|
110
|
+
expect(@provider.get_free_gid).to equal(202)
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should raise an exception when the search limit is exhausted" do
|
114
114
|
search_limit = 1
|
115
|
-
|
115
|
+
expect { @provider.get_free_gid(search_limit) }.to raise_error(RuntimeError)
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
@@ -120,41 +120,41 @@ describe Chef::Provider::Group::Dscl do
|
|
120
120
|
before do
|
121
121
|
@node = Chef::Node.new
|
122
122
|
@provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
|
123
|
-
@provider.
|
123
|
+
allow(@provider).to receive(:safe_dscl).and_return("\naj 500\n")
|
124
124
|
end
|
125
125
|
|
126
126
|
it "should run safe_dscl with list /Groups gid" do
|
127
|
-
@provider.
|
127
|
+
expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
|
128
128
|
@provider.gid_used?(500)
|
129
129
|
end
|
130
130
|
|
131
131
|
it "should return true for a used gid number" do
|
132
|
-
@provider.gid_used?(500).
|
132
|
+
expect(@provider.gid_used?(500)).to be_true
|
133
133
|
end
|
134
134
|
|
135
135
|
it "should return false for an unused gid number" do
|
136
|
-
@provider.gid_used?(501).
|
136
|
+
expect(@provider.gid_used?(501)).to be_false
|
137
137
|
end
|
138
138
|
|
139
139
|
it "should return false if not given any valid gid number" do
|
140
|
-
@provider.gid_used?(nil).
|
140
|
+
expect(@provider.gid_used?(nil)).to be_false
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
144
|
describe "set_gid" do
|
145
145
|
describe "with the new resource and a gid number which is already in use" do
|
146
146
|
before do
|
147
|
-
@provider.
|
147
|
+
allow(@provider).to receive(:gid_used?).and_return(true)
|
148
148
|
end
|
149
149
|
|
150
150
|
it "should raise an exception if the new resources gid is already in use" do
|
151
|
-
|
151
|
+
expect { @provider.set_gid }.to raise_error(Chef::Exceptions::Group)
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
155
|
describe "with no gid number for the new resources" do
|
156
156
|
it "should run get_free_gid and return a valid, unused gid number" do
|
157
|
-
@provider.
|
157
|
+
expect(@provider).to receive(:get_free_gid).and_return(501)
|
158
158
|
@provider.set_gid
|
159
159
|
end
|
160
160
|
end
|
@@ -162,20 +162,20 @@ describe Chef::Provider::Group::Dscl do
|
|
162
162
|
describe "with blank gid number for the new resources" do
|
163
163
|
before do
|
164
164
|
@new_resource.instance_variable_set(:@gid, nil)
|
165
|
-
@new_resource.
|
165
|
+
allow(@new_resource).to receive(:safe_dscl)
|
166
166
|
end
|
167
167
|
|
168
168
|
it "should run get_free_gid and return a valid, unused gid number" do
|
169
|
-
@provider.
|
169
|
+
expect(@provider).to receive(:get_free_gid).and_return(501)
|
170
170
|
@provider.set_gid
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
174
174
|
describe "with a valid gid number which is not already in use" do
|
175
175
|
it "should run safe_dscl with create /Groups/group PrimaryGroupID gid" do
|
176
|
-
@provider.
|
177
|
-
@provider.
|
178
|
-
@provider.
|
176
|
+
allow(@provider).to receive(:get_free_gid).and_return(50)
|
177
|
+
expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
|
178
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj PrimaryGroupID 50").and_return(true)
|
179
179
|
@provider.set_gid
|
180
180
|
end
|
181
181
|
end
|
@@ -185,19 +185,19 @@ describe Chef::Provider::Group::Dscl do
|
|
185
185
|
|
186
186
|
describe "with existing members in the current resource and append set to false in the new resource" do
|
187
187
|
before do
|
188
|
-
@new_resource.
|
189
|
-
@new_resource.
|
190
|
-
@current_resource.
|
188
|
+
allow(@new_resource).to receive(:members).and_return([])
|
189
|
+
allow(@new_resource).to receive(:append).and_return(false)
|
190
|
+
allow(@current_resource).to receive(:members).and_return(["all", "your", "base"])
|
191
191
|
end
|
192
192
|
|
193
193
|
it "should log an appropriate message" do
|
194
|
-
Chef::Log.
|
194
|
+
expect(Chef::Log).to receive(:debug).with("group[aj] removing group members all your base")
|
195
195
|
@provider.set_members
|
196
196
|
end
|
197
197
|
|
198
198
|
it "should run safe_dscl with create /Groups/group GroupMembership to clear the Group's UID list" do
|
199
|
-
@provider.
|
200
|
-
@provider.
|
199
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
|
200
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
|
201
201
|
@provider.set_members
|
202
202
|
end
|
203
203
|
end
|
@@ -209,14 +209,14 @@ describe Chef::Provider::Group::Dscl do
|
|
209
209
|
end
|
210
210
|
|
211
211
|
it "should log an appropriate debug message" do
|
212
|
-
Chef::Log.
|
212
|
+
expect(Chef::Log).to receive(:debug).with("group[aj] setting group members all, your, base")
|
213
213
|
@provider.set_members
|
214
214
|
end
|
215
215
|
|
216
216
|
it "should run safe_dscl with append /Groups/group GroupMembership and group members all, your, base" do
|
217
|
-
@provider.
|
218
|
-
@provider.
|
219
|
-
@provider.
|
217
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
|
218
|
+
expect(@provider).to receive(:safe_dscl).with("append /Groups/aj GroupMembership all your base").and_return(true)
|
219
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
|
220
220
|
@provider.set_members
|
221
221
|
end
|
222
222
|
end
|
@@ -228,7 +228,7 @@ describe Chef::Provider::Group::Dscl do
|
|
228
228
|
end
|
229
229
|
|
230
230
|
it "should not call safe_dscl" do
|
231
|
-
@provider.
|
231
|
+
expect(@provider).not_to receive(:safe_dscl)
|
232
232
|
@provider.set_members
|
233
233
|
end
|
234
234
|
end
|
@@ -242,23 +242,23 @@ describe Chef::Provider::Group::Dscl do
|
|
242
242
|
end
|
243
243
|
|
244
244
|
it "raises an error if the required binary /usr/bin/dscl doesn't exist" do
|
245
|
-
File.
|
245
|
+
expect(File).to receive(:exists?).with("/usr/bin/dscl").and_return(false)
|
246
246
|
|
247
|
-
|
247
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
248
248
|
end
|
249
249
|
|
250
250
|
it "doesn't raise an error if /usr/bin/dscl exists" do
|
251
|
-
File.
|
252
|
-
|
251
|
+
allow(File).to receive(:exists?).and_return(true)
|
252
|
+
expect { @provider.process_resource_requirements }.not_to raise_error
|
253
253
|
end
|
254
254
|
end
|
255
|
-
|
255
|
+
|
256
256
|
describe "when creating the group" do
|
257
257
|
it "creates the group, password field, gid, and sets group membership" do
|
258
|
-
@provider.
|
259
|
-
@provider.
|
260
|
-
@provider.
|
261
|
-
@provider.
|
258
|
+
expect(@provider).to receive(:set_gid).and_return(true)
|
259
|
+
expect(@provider).to receive(:set_members).and_return(true)
|
260
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj Password '*'")
|
261
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/aj")
|
262
262
|
@provider.create_group
|
263
263
|
end
|
264
264
|
end
|
@@ -267,30 +267,30 @@ describe Chef::Provider::Group::Dscl do
|
|
267
267
|
it "should manage the group_name if it changed and the new resources group_name is not null" do
|
268
268
|
@current_resource.group_name("oldval")
|
269
269
|
@new_resource.group_name("newname")
|
270
|
-
@provider.
|
271
|
-
@provider.
|
272
|
-
@provider.
|
270
|
+
expect(@provider).to receive(:set_members).and_return(true)
|
271
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/newname")
|
272
|
+
expect(@provider).to receive(:safe_dscl).with("create /Groups/newname Password '*'")
|
273
273
|
@provider.manage_group
|
274
274
|
end
|
275
275
|
|
276
276
|
it "should manage the gid if it changed and the new resources gid is not null" do
|
277
277
|
@current_resource.gid(23)
|
278
278
|
@new_resource.gid(42)
|
279
|
-
@provider.
|
279
|
+
expect(@provider).to receive(:set_gid)
|
280
280
|
@provider.manage_group
|
281
281
|
end
|
282
282
|
|
283
283
|
it "should manage the members if it changed and the new resources members is not null" do
|
284
284
|
@current_resource.members(%{charlie root})
|
285
285
|
@new_resource.members(%{crab revenge})
|
286
|
-
@provider.
|
286
|
+
expect(@provider).to receive(:set_members)
|
287
287
|
@provider.manage_group
|
288
288
|
end
|
289
289
|
end
|
290
290
|
|
291
291
|
describe "remove_group" do
|
292
292
|
it "should run safe_dscl with delete /Groups/group and with the new resources group name" do
|
293
|
-
@provider.
|
293
|
+
expect(@provider).to receive(:safe_dscl).with("delete /Groups/aj").and_return(true)
|
294
294
|
@provider.remove_group
|
295
295
|
end
|
296
296
|
end
|
@@ -301,7 +301,8 @@ describe 'Test DSCL loading' do
|
|
301
301
|
@node = Chef::Node.new
|
302
302
|
@events = Chef::EventDispatch::Dispatcher.new
|
303
303
|
@run_context = Chef::RunContext.new(@node, {}, @events)
|
304
|
-
@new_resource = Chef::Resource::Group.new("aj")
|
304
|
+
@new_resource = Chef::Resource::Group.new("group name aj")
|
305
|
+
@new_resource.group_name("aj")
|
305
306
|
@provider = Chef::Provider::Group::Dscl.new(@new_resource, @run_context)
|
306
307
|
@output = <<-EOF
|
307
308
|
AppleMetaNodeLocation: /Local/Default
|
@@ -317,17 +318,17 @@ RecordName: com.apple.aj
|
|
317
318
|
RecordType: dsRecTypeStandard:Groups
|
318
319
|
GroupMembership: waka bar
|
319
320
|
EOF
|
320
|
-
@provider.
|
321
|
+
allow(@provider).to receive(:safe_dscl).with("read /Groups/aj").and_return(@output)
|
321
322
|
@current_resource = @provider.load_current_resource
|
322
323
|
|
323
324
|
end
|
324
325
|
|
325
326
|
it 'should parse gid properly' do
|
326
|
-
File.
|
327
|
-
@current_resource.gid.
|
327
|
+
allow(File).to receive(:exists?).and_return(true)
|
328
|
+
expect(@current_resource.gid).to eq("999")
|
328
329
|
end
|
329
330
|
it 'should parse members properly' do
|
330
|
-
File.
|
331
|
-
@current_resource.members.
|
331
|
+
allow(File).to receive(:exists?).and_return(true)
|
332
|
+
expect(@current_resource.members).to eq(['waka', 'bar'])
|
332
333
|
end
|
333
334
|
end
|
@@ -41,14 +41,14 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
|
|
41
41
|
# for Chef::Provider::Group - no need to repeat it here. We'll
|
42
42
|
# include only what's specific to this provider.
|
43
43
|
it "should raise an error if the required binary /usr/bin/gpasswd doesn't exist" do
|
44
|
-
File.
|
45
|
-
File.
|
46
|
-
|
44
|
+
allow(File).to receive(:exists?).and_return(true)
|
45
|
+
expect(File).to receive(:exists?).with("/usr/bin/gpasswd").and_return(false)
|
46
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
47
47
|
end
|
48
48
|
|
49
49
|
it "shouldn't raise an error if the required binaries exist" do
|
50
|
-
File.
|
51
|
-
|
50
|
+
allow(File).to receive(:exists?).and_return(true)
|
51
|
+
expect { @provider.process_resource_requirements }.not_to raise_error
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -65,8 +65,8 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "logs a message and sets group's members to 'none'" do
|
68
|
-
Chef::Log.
|
69
|
-
@provider.
|
68
|
+
expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
|
69
|
+
expect(@provider).to receive(:shell_out!).with("gpasswd -M \"\" wheel")
|
70
70
|
@provider.modify_group_members
|
71
71
|
end
|
72
72
|
end
|
@@ -78,20 +78,20 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
|
|
78
78
|
end
|
79
79
|
|
80
80
|
it "does not modify group membership" do
|
81
|
-
@provider.
|
81
|
+
expect(@provider).not_to receive(:shell_out!)
|
82
82
|
@provider.modify_group_members
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
86
|
describe "when the resource specifies group members" do
|
87
87
|
it "should log an appropriate debug message" do
|
88
|
-
Chef::Log.
|
89
|
-
@provider.
|
88
|
+
expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
|
89
|
+
allow(@provider).to receive(:shell_out!)
|
90
90
|
@provider.modify_group_members
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should run gpasswd with the members joined by ',' followed by the target group" do
|
94
|
-
@provider.
|
94
|
+
expect(@provider).to receive(:shell_out!).with("gpasswd -M lobster,rage,fist wheel")
|
95
95
|
@provider.modify_group_members
|
96
96
|
end
|
97
97
|
|
@@ -104,9 +104,9 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
|
|
104
104
|
|
105
105
|
it "should run gpasswd individually for each user when the append option is set" do
|
106
106
|
@new_resource.append(true)
|
107
|
-
@provider.
|
108
|
-
@provider.
|
109
|
-
@provider.
|
107
|
+
expect(@provider).to receive(:shell_out!).with("gpasswd -a lobster wheel")
|
108
|
+
expect(@provider).to receive(:shell_out!).with("gpasswd -a rage wheel")
|
109
|
+
expect(@provider).to receive(:shell_out!).with("gpasswd -a fist wheel")
|
110
110
|
@provider.modify_group_members
|
111
111
|
end
|
112
112
|
end
|
@@ -43,47 +43,47 @@ describe Chef::Provider::Group::Groupadd, "set_options" do
|
|
43
43
|
|
44
44
|
field_list.each do |attribute, option|
|
45
45
|
it "should check for differences in #{attribute.to_s} between the current and new resources" do
|
46
|
-
@new_resource.
|
47
|
-
@current_resource.
|
46
|
+
expect(@new_resource).to receive(attribute)
|
47
|
+
expect(@current_resource).to receive(attribute)
|
48
48
|
@provider.set_options
|
49
49
|
end
|
50
50
|
it "should set the option for #{attribute} if the new resources #{attribute} is not null" do
|
51
|
-
@new_resource.
|
52
|
-
@provider.set_options.
|
51
|
+
allow(@new_resource).to receive(attribute).and_return("wowaweea")
|
52
|
+
expect(@provider.set_options).to eql(" #{option} '#{@new_resource.send(attribute)}' #{@new_resource.group_name}")
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should combine all the possible options" do
|
57
57
|
match_string = ""
|
58
58
|
field_list.sort{ |a,b| a[0] <=> b[0] }.each do |attribute, option|
|
59
|
-
@new_resource.
|
59
|
+
allow(@new_resource).to receive(attribute).and_return("hola")
|
60
60
|
match_string << " #{option} 'hola'"
|
61
61
|
end
|
62
62
|
match_string << " aj"
|
63
|
-
@provider.set_options.
|
63
|
+
expect(@provider.set_options).to eql(match_string)
|
64
64
|
end
|
65
65
|
|
66
66
|
describe "when we want to create a system group" do
|
67
67
|
it "should not set groupadd_options '-r' when system is false" do
|
68
68
|
@new_resource.system(false)
|
69
|
-
@provider.groupadd_options.
|
69
|
+
expect(@provider.groupadd_options).not_to match(/-r/)
|
70
70
|
end
|
71
71
|
|
72
72
|
it "should set groupadd -r if system is true" do
|
73
73
|
@new_resource.system(true)
|
74
|
-
@provider.groupadd_options.
|
74
|
+
expect(@provider.groupadd_options).to eq(" -r")
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
78
|
describe "when we want to create a non_unique gid group" do
|
79
79
|
it "should not set groupadd_options '-o' when non_unique is false" do
|
80
80
|
@new_resource.non_unique(false)
|
81
|
-
@provider.groupadd_options.
|
81
|
+
expect(@provider.groupadd_options).not_to match(/-o/)
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should set groupadd -o if non_unique is true" do
|
85
85
|
@new_resource.non_unique(true)
|
86
|
-
@provider.groupadd_options.
|
86
|
+
expect(@provider.groupadd_options).to eq(" -o")
|
87
87
|
end
|
88
88
|
end
|
89
89
|
end
|
@@ -93,19 +93,19 @@ describe Chef::Provider::Group::Groupadd, "create_group" do
|
|
93
93
|
@node = Chef::Node.new
|
94
94
|
@new_resource = Chef::Resource::Group.new("aj")
|
95
95
|
@provider = Chef::Provider::Group::Groupadd.new(@node, @new_resource)
|
96
|
-
@provider.
|
97
|
-
@provider.
|
98
|
-
@provider.
|
99
|
-
@provider.
|
96
|
+
allow(@provider).to receive(:run_command).and_return(true)
|
97
|
+
allow(@provider).to receive(:set_options).and_return(" monkey")
|
98
|
+
allow(@provider).to receive(:groupadd_options).and_return("")
|
99
|
+
allow(@provider).to receive(:modify_group_members).and_return(true)
|
100
100
|
end
|
101
101
|
|
102
102
|
it "should run groupadd with the return of set_options" do
|
103
|
-
@provider.
|
103
|
+
expect(@provider).to receive(:run_command).with({ :command => "groupadd monkey" }).and_return(true)
|
104
104
|
@provider.create_group
|
105
105
|
end
|
106
106
|
|
107
107
|
it "should modify the group members" do
|
108
|
-
@provider.
|
108
|
+
expect(@provider).to receive(:modify_group_members).and_return(true)
|
109
109
|
@provider.create_group
|
110
110
|
end
|
111
111
|
end
|
@@ -117,20 +117,20 @@ describe Chef::Provider::Group::Groupadd do
|
|
117
117
|
@run_context = Chef::RunContext.new(@node, {}, @events)
|
118
118
|
@new_resource = Chef::Resource::Group.new("aj")
|
119
119
|
@provider = Chef::Provider::Group::Groupadd.new(@new_resource, @run_context)
|
120
|
-
@provider.
|
121
|
-
@provider.
|
120
|
+
allow(@provider).to receive(:run_command).and_return(true)
|
121
|
+
allow(@provider).to receive(:set_options).and_return(" monkey")
|
122
122
|
end
|
123
123
|
|
124
124
|
describe "manage group" do
|
125
125
|
|
126
126
|
it "should run groupmod with the return of set_options" do
|
127
|
-
@provider.
|
128
|
-
@provider.
|
127
|
+
allow(@provider).to receive(:modify_group_members).and_return(true)
|
128
|
+
expect(@provider).to receive(:run_command).with({ :command => "groupmod monkey" }).and_return(true)
|
129
129
|
@provider.manage_group
|
130
130
|
end
|
131
131
|
|
132
132
|
it "should modify the group members" do
|
133
|
-
@provider.
|
133
|
+
expect(@provider).to receive(:modify_group_members).and_return(true)
|
134
134
|
@provider.manage_group
|
135
135
|
end
|
136
136
|
end
|
@@ -138,36 +138,36 @@ describe Chef::Provider::Group::Groupadd do
|
|
138
138
|
describe "remove_group" do
|
139
139
|
|
140
140
|
it "should run groupdel with the new resources group name" do
|
141
|
-
@provider.
|
141
|
+
expect(@provider).to receive(:run_command).with({ :command => "groupdel aj" }).and_return(true)
|
142
142
|
@provider.remove_group
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
146
|
[:add_member, :remove_member, :set_members].each do |m|
|
147
147
|
it "should raise an error when calling #{m}" do
|
148
|
-
|
148
|
+
expect { @provider.send(m, [ ]) }.to raise_error(Chef::Exceptions::Group, "you must override #{m} in #{@provider.to_s}")
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
152
152
|
describe "load_current_resource" do
|
153
153
|
before do
|
154
|
-
File.
|
154
|
+
allow(File).to receive(:exists?).and_return(false)
|
155
155
|
@provider.define_resource_requirements
|
156
156
|
end
|
157
157
|
it "should raise an error if the required binary /usr/sbin/groupadd doesn't exist" do
|
158
|
-
File.
|
159
|
-
|
158
|
+
expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(false)
|
159
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
160
160
|
end
|
161
161
|
it "should raise an error if the required binary /usr/sbin/groupmod doesn't exist" do
|
162
|
-
File.
|
163
|
-
File.
|
164
|
-
|
162
|
+
expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
|
163
|
+
expect(File).to receive(:exists?).with("/usr/sbin/groupmod").and_return(false)
|
164
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
165
165
|
end
|
166
166
|
it "should raise an error if the required binary /usr/sbin/groupdel doesn't exist" do
|
167
|
-
File.
|
168
|
-
File.
|
169
|
-
File.
|
170
|
-
|
167
|
+
expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
|
168
|
+
expect(File).to receive(:exists?).with("/usr/sbin/groupmod").and_return(true)
|
169
|
+
expect(File).to receive(:exists?).with("/usr/sbin/groupdel").and_return(false)
|
170
|
+
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
|
171
171
|
end
|
172
172
|
|
173
173
|
end
|