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
@@ -22,8 +22,11 @@ describe Chef::Resource::Env, :windows_only do
|
|
22
22
|
context 'when running on Windows' do
|
23
23
|
let(:chef_env_test_lower_case) { 'chefenvtest' }
|
24
24
|
let(:chef_env_test_mixed_case) { 'chefENVtest' }
|
25
|
+
let(:env_dne_key) { 'env_dne_key' }
|
25
26
|
let(:env_value1) { 'value1' }
|
26
27
|
let(:env_value2) { 'value2' }
|
28
|
+
|
29
|
+
let(:env_value_expandable) { '%SystemRoot%' }
|
27
30
|
let(:test_run_context) {
|
28
31
|
node = Chef::Node.new
|
29
32
|
node.default['platform'] = 'windows'
|
@@ -71,6 +74,14 @@ describe Chef::Resource::Env, :windows_only do
|
|
71
74
|
test_resource.run_action(:create)
|
72
75
|
expect(ENV[chef_env_test_lower_case]).to eq(env_value2)
|
73
76
|
end
|
77
|
+
|
78
|
+
it 'should not expand environment variables if the variable is not PATH' do
|
79
|
+
expect(ENV[chef_env_test_lower_case]).to eq(nil)
|
80
|
+
test_resource.key_name(chef_env_test_lower_case)
|
81
|
+
test_resource.value(env_value_expandable)
|
82
|
+
test_resource.run_action(:create)
|
83
|
+
expect(ENV[chef_env_test_lower_case]).to eq(env_value_expandable)
|
84
|
+
end
|
74
85
|
end
|
75
86
|
|
76
87
|
context "when the modify action is invoked" do
|
@@ -102,6 +113,41 @@ describe Chef::Resource::Env, :windows_only do
|
|
102
113
|
test_resource.run_action(:modify)
|
103
114
|
expect(ENV[chef_env_test_lower_case]).to eq(env_value2)
|
104
115
|
end
|
116
|
+
|
117
|
+
it 'should not expand environment variables if the variable is not PATH' do
|
118
|
+
test_resource.key_name(chef_env_test_lower_case)
|
119
|
+
test_resource.value(env_value1)
|
120
|
+
test_resource.run_action(:create)
|
121
|
+
expect(ENV[chef_env_test_lower_case]).to eq(env_value1)
|
122
|
+
test_resource.value(env_value_expandable)
|
123
|
+
test_resource.run_action(:modify)
|
124
|
+
expect(ENV[chef_env_test_lower_case]).to eq(env_value_expandable)
|
125
|
+
end
|
126
|
+
|
127
|
+
context 'when using PATH' do
|
128
|
+
let(:random_name) { Time.now.to_i }
|
129
|
+
let(:env_val) { "#{env_value_expandable}_#{random_name}"}
|
130
|
+
let!(:path_before) { test_resource.provider_for_action(test_resource.action).env_value('PATH') || '' }
|
131
|
+
let!(:env_path_before) { ENV['PATH'] }
|
132
|
+
|
133
|
+
it 'should expand PATH' do
|
134
|
+
path_before.should_not include(env_val)
|
135
|
+
test_resource.key_name('PATH')
|
136
|
+
test_resource.value("#{path_before};#{env_val}")
|
137
|
+
test_resource.run_action(:create)
|
138
|
+
ENV['PATH'].should_not include(env_val)
|
139
|
+
ENV['PATH'].should include("#{random_name}")
|
140
|
+
end
|
141
|
+
|
142
|
+
after(:each) do
|
143
|
+
# cleanup so we don't flood the path
|
144
|
+
test_resource.key_name('PATH')
|
145
|
+
test_resource.value(path_before)
|
146
|
+
test_resource.run_action(:create)
|
147
|
+
ENV['PATH'] = env_path_before
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
105
151
|
end
|
106
152
|
|
107
153
|
context "when the delete action is invoked" do
|
@@ -132,6 +178,14 @@ describe Chef::Resource::Env, :windows_only do
|
|
132
178
|
expect(ENV[chef_env_test_lower_case]).to eq(nil)
|
133
179
|
expect(ENV[chef_env_test_mixed_case]).to eq(nil)
|
134
180
|
end
|
181
|
+
|
182
|
+
it "should delete a value from the current process even if it is not in the registry" do
|
183
|
+
expect(ENV[env_dne_key]).to eq(nil)
|
184
|
+
ENV[env_dne_key] = env_value1
|
185
|
+
test_resource.key_name(env_dne_key)
|
186
|
+
test_resource.run_action(:delete)
|
187
|
+
expect(ENV[env_dne_key]).to eq(nil)
|
188
|
+
end
|
135
189
|
end
|
136
190
|
end
|
137
191
|
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Serdar Sutay (<serdar@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2014 Opscode, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'spec_helper'
|
20
|
+
require 'functional/resource/base'
|
21
|
+
|
22
|
+
describe Chef::Resource::Execute do
|
23
|
+
let(:execute_resource) {
|
24
|
+
exec_resource = Chef::Resource::Execute.new("foo_resource", run_context)
|
25
|
+
|
26
|
+
exec_resource.environment(resource_environment) if resource_environment
|
27
|
+
exec_resource.cwd(resource_cwd) if resource_cwd
|
28
|
+
exec_resource.command("echo hello")
|
29
|
+
if guard
|
30
|
+
if guard_options
|
31
|
+
exec_resource.only_if(guard, guard_options)
|
32
|
+
else
|
33
|
+
exec_resource.only_if(guard)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
exec_resource
|
37
|
+
}
|
38
|
+
|
39
|
+
let(:resource_environment) { nil }
|
40
|
+
let(:resource_cwd) { nil }
|
41
|
+
let(:guard) { nil }
|
42
|
+
let(:guard_options) { nil }
|
43
|
+
|
44
|
+
describe "when guard is ruby block" do
|
45
|
+
it "guard can still run" do
|
46
|
+
execute_resource.only_if do
|
47
|
+
true
|
48
|
+
end
|
49
|
+
execute_resource.run_action(:run)
|
50
|
+
execute_resource.should be_updated_by_last_action
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "when parent resource sets :cwd" do
|
55
|
+
let(:resource_cwd) { CHEF_SPEC_DATA }
|
56
|
+
|
57
|
+
let(:guard) { %{ruby -e 'exit 1 unless File.exists?("./big_json_plus_one.json")'} }
|
58
|
+
|
59
|
+
it "guard inherits :cwd from resource" do
|
60
|
+
execute_resource.run_action(:run)
|
61
|
+
execute_resource.should be_updated_by_last_action
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "when parent resource sets :environment" do
|
66
|
+
let(:resource_environment) do
|
67
|
+
{
|
68
|
+
"SAWS_SECRET" => "supersecret",
|
69
|
+
"SAWS_KEY" => "qwerty"
|
70
|
+
}
|
71
|
+
end
|
72
|
+
|
73
|
+
# We use ruby command so that we don't need to deal with platform specific
|
74
|
+
# commands while testing execute resource. We set it so that the resource
|
75
|
+
# will be updated if the ENV variable is set to what we are intending
|
76
|
+
let(:guard) { %{ruby -e 'exit 1 if ENV["SAWS_SECRET"] != "supersecret"'} }
|
77
|
+
|
78
|
+
it "guard inherits :environment value from resource" do
|
79
|
+
execute_resource.run_action(:run)
|
80
|
+
execute_resource.should be_updated_by_last_action
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "when guard sets additional values in the :environment" do
|
84
|
+
let(:guard) { %{ruby -e 'exit 1 if ENV["SGCE_SECRET"] != "regularsecret"'} }
|
85
|
+
|
86
|
+
let(:guard_options) do
|
87
|
+
{
|
88
|
+
:environment => { 'SGCE_SECRET' => "regularsecret" }
|
89
|
+
}
|
90
|
+
end
|
91
|
+
|
92
|
+
it "guard sees merged value for in its ENV" do
|
93
|
+
execute_resource.run_action(:run)
|
94
|
+
execute_resource.should be_updated_by_last_action
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "when guard sets same value in the :environment" do
|
99
|
+
let(:guard) { %{ruby -e 'exit 1 if ENV["SAWS_SECRET"] != "regularsecret"'} }
|
100
|
+
|
101
|
+
let(:guard_options) do
|
102
|
+
{
|
103
|
+
:environment => { 'SAWS_SECRET' => "regularsecret" }
|
104
|
+
}
|
105
|
+
end
|
106
|
+
|
107
|
+
it "guard sees value from guard options in its ENV" do
|
108
|
+
execute_resource.run_action(:run)
|
109
|
+
execute_resource.should be_updated_by_last_action
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require 'spec_helper'
|
20
|
+
require 'tmpdir'
|
20
21
|
|
21
22
|
describe Chef::Resource::File do
|
22
23
|
include_context Chef::Resource::File
|
@@ -30,6 +31,7 @@ describe Chef::Resource::File do
|
|
30
31
|
run_context = Chef::RunContext.new(node, {}, events)
|
31
32
|
|
32
33
|
use_path = if opts[:use_relative_path]
|
34
|
+
Dir.chdir(Dir.tmpdir)
|
33
35
|
File.basename(path)
|
34
36
|
else
|
35
37
|
path
|
@@ -28,10 +28,10 @@ describe Chef::Resource::Group, :requires_root_or_running_windows, :not_supporte
|
|
28
28
|
def group_should_exist(group)
|
29
29
|
case ohai[:platform_family]
|
30
30
|
when "debian", "fedora", "rhel", "suse", "gentoo", "slackware", "arch"
|
31
|
-
expect { Etc::getgrnam(group) }.
|
31
|
+
expect { Etc::getgrnam(group) }.not_to raise_error
|
32
32
|
expect(group).to eq(Etc::getgrnam(group).name)
|
33
33
|
when "windows"
|
34
|
-
expect { Chef::Util::Windows::NetGroup.new(group).local_get_members }.
|
34
|
+
expect { Chef::Util::Windows::NetGroup.new(group).local_get_members }.not_to raise_error
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -369,9 +369,12 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
|
|
369
369
|
let(:tested_action) { :manage }
|
370
370
|
|
371
371
|
describe "when there is no group" do
|
372
|
-
it "
|
372
|
+
it "raises an error on modify" do
|
373
|
+
lambda { group_resource.run_action(:modify) }.should raise_error
|
374
|
+
end
|
375
|
+
|
376
|
+
it "does not raise an error on manage" do
|
373
377
|
lambda { group_resource.run_action(:manage) }.should_not raise_error
|
374
|
-
group_should_not_exist(group_name)
|
375
378
|
end
|
376
379
|
end
|
377
380
|
|
@@ -22,6 +22,12 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
|
22
22
|
|
23
23
|
include_context Chef::Resource::WindowsScript
|
24
24
|
|
25
|
+
let (:architecture_command) { 'echo $env:PROCESSOR_ARCHITECTURE' }
|
26
|
+
let (:output_command) { ' | out-file -encoding ASCII ' }
|
27
|
+
|
28
|
+
it_behaves_like "a Windows script running on Windows"
|
29
|
+
|
30
|
+
|
25
31
|
let(:successful_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
|
26
32
|
let(:failed_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe /badargument" }
|
27
33
|
let(:processor_architecture_script_content) { "echo $env:PROCESSOR_ARCHITECTURE" }
|
@@ -36,6 +42,7 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
|
36
42
|
let(:arbitrary_nonzero_process_exit_code_content) { "exit #{arbitrary_nonzero_process_exit_code}" }
|
37
43
|
let(:invalid_powershell_interpreter_flag) { "/thisflagisinvalid" }
|
38
44
|
let(:valid_powershell_interpreter_flag) { "-Sta" }
|
45
|
+
|
39
46
|
let!(:resource) do
|
40
47
|
r = Chef::Resource::WindowsScript::PowershellScript.new("Powershell resource functional test", @run_context)
|
41
48
|
r.code(successful_executable_script_content)
|
@@ -162,6 +169,13 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
|
162
169
|
resource.returns(0)
|
163
170
|
resource.run_action(:run)
|
164
171
|
end
|
172
|
+
|
173
|
+
it "raises an error when given a block and a guard_interpreter" do
|
174
|
+
resource.guard_interpreter :sh
|
175
|
+
resource.only_if { true }
|
176
|
+
expect { resource.should_skip?(:run) }.to raise_error(ArgumentError, /guard_interpreter does not support blocks/)
|
177
|
+
end
|
178
|
+
|
165
179
|
end
|
166
180
|
|
167
181
|
context "when running on a 32-bit version of Windows", :windows32_only do
|
@@ -204,237 +218,236 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
|
204
218
|
end
|
205
219
|
|
206
220
|
describe "when executing guards" do
|
207
|
-
|
208
221
|
before(:each) do
|
209
222
|
resource.not_if.clear
|
210
223
|
resource.only_if.clear
|
211
|
-
resource.guard_interpreter :powershell_script
|
212
224
|
end
|
213
225
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
end
|
226
|
+
context "when the guard_interpreter's default value of :powershell_script is overridden to :default" do
|
227
|
+
before(:each) do
|
228
|
+
resource.guard_interpreter :default
|
229
|
+
end
|
219
230
|
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
end
|
231
|
+
it "evaluates a succeeding not_if block using cmd.exe as false by default" do
|
232
|
+
resource.not_if "exit /b 0"
|
233
|
+
resource.should_skip?(:run).should be_true
|
234
|
+
end
|
225
235
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
end
|
236
|
+
it "evaluates a failing not_if block using cmd.exe as true by default" do
|
237
|
+
resource.not_if "exit /b 2"
|
238
|
+
resource.should_skip?(:run).should be_false
|
239
|
+
end
|
231
240
|
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
end
|
241
|
+
it "evaluates an succeeding only_if block using cmd.exe as true by default" do
|
242
|
+
resource.only_if "exit /b 0"
|
243
|
+
resource.should_skip?(:run).should be_false
|
244
|
+
end
|
237
245
|
|
238
|
-
|
239
|
-
|
240
|
-
|
246
|
+
it "evaluates a failing only_if block using cmd.exe as false by default" do
|
247
|
+
resource.only_if "exit /b 2"
|
248
|
+
resource.should_skip?(:run).should be_true
|
249
|
+
end
|
241
250
|
end
|
242
251
|
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
252
|
+
context "the only_if is specified before the guard" do
|
253
|
+
before do
|
254
|
+
resource.guard_interpreter :default
|
255
|
+
end
|
247
256
|
|
248
|
-
|
249
|
-
|
250
|
-
|
257
|
+
it "evaluates a powershell $true for a only_if block as true" do
|
258
|
+
resource.only_if "$true"
|
259
|
+
resource.guard_interpreter :powershell_script
|
260
|
+
resource.should_skip?(:run).should be_false
|
261
|
+
end
|
251
262
|
end
|
252
263
|
|
253
|
-
|
254
|
-
resource.only_if "$true"
|
255
|
-
resource.should_skip?(:run).should be_false
|
256
|
-
end
|
264
|
+
context "with powershell_script as the guard_interpreter" do
|
257
265
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
end
|
266
|
+
it "has a guard_interpreter attribute set to :powershell_script" do
|
267
|
+
expect(resource.guard_interpreter).to eq(:powershell_script)
|
268
|
+
end
|
262
269
|
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
270
|
+
it "evaluates a powershell $false for a not_if block as true" do
|
271
|
+
resource.not_if "$false"
|
272
|
+
resource.should_skip?(:run).should be_false
|
273
|
+
end
|
267
274
|
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
275
|
+
it "evaluates a powershell $true for a not_if block as false" do
|
276
|
+
resource.not_if "$true"
|
277
|
+
resource.should_skip?(:run).should be_true
|
278
|
+
end
|
272
279
|
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
280
|
+
it "evaluates a powershell $false for an only_if block as false" do
|
281
|
+
resource.only_if "$false"
|
282
|
+
resource.should_skip?(:run).should be_true
|
283
|
+
end
|
277
284
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
285
|
+
it "evaluates a powershell $true for a only_if block as true" do
|
286
|
+
resource.only_if "$true"
|
287
|
+
resource.should_skip?(:run).should be_false
|
288
|
+
end
|
282
289
|
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
290
|
+
it "evaluates a not_if block using powershell.exe" do
|
291
|
+
resource.not_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
|
292
|
+
resource.should_skip?(:run).should be_true
|
293
|
+
end
|
287
294
|
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
295
|
+
it "evaluates an only_if block using powershell.exe" do
|
296
|
+
resource.only_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
|
297
|
+
resource.should_skip?(:run).should be_false
|
298
|
+
end
|
292
299
|
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
300
|
+
it "evaluates a non-zero powershell exit status for not_if as true" do
|
301
|
+
resource.not_if "exit 37"
|
302
|
+
resource.should_skip?(:run).should be_false
|
303
|
+
end
|
297
304
|
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
305
|
+
it "evaluates a zero powershell exit status for not_if as false" do
|
306
|
+
resource.not_if "exit 0"
|
307
|
+
resource.should_skip?(:run).should be_true
|
308
|
+
end
|
302
309
|
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
310
|
+
it "evaluates a failed executable exit status for not_if as false" do
|
311
|
+
resource.not_if windows_process_exit_code_not_found_content
|
312
|
+
resource.should_skip?(:run).should be_false
|
313
|
+
end
|
307
314
|
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
315
|
+
it "evaluates a successful executable exit status for not_if as true" do
|
316
|
+
resource.not_if windows_process_exit_code_success_content
|
317
|
+
resource.should_skip?(:run).should be_true
|
318
|
+
end
|
312
319
|
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
320
|
+
it "evaluates a failed executable exit status for only_if as false" do
|
321
|
+
resource.only_if windows_process_exit_code_not_found_content
|
322
|
+
resource.should_skip?(:run).should be_true
|
323
|
+
end
|
317
324
|
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
325
|
+
it "evaluates a successful executable exit status for only_if as true" do
|
326
|
+
resource.only_if windows_process_exit_code_success_content
|
327
|
+
resource.should_skip?(:run).should be_false
|
328
|
+
end
|
322
329
|
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
330
|
+
it "evaluates a failed cmdlet exit status for not_if as true" do
|
331
|
+
resource.not_if "throw 'up'"
|
332
|
+
resource.should_skip?(:run).should be_false
|
333
|
+
end
|
327
334
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
335
|
+
it "evaluates a successful cmdlet exit status for not_if as true" do
|
336
|
+
resource.not_if "cd ."
|
337
|
+
resource.should_skip?(:run).should be_true
|
338
|
+
end
|
332
339
|
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
340
|
+
it "evaluates a failed cmdlet exit status for only_if as false" do
|
341
|
+
resource.only_if "throw 'up'"
|
342
|
+
resource.should_skip?(:run).should be_true
|
343
|
+
end
|
337
344
|
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
end
|
345
|
+
it "evaluates a successful cmdlet exit status for only_if as true" do
|
346
|
+
resource.only_if "cd ."
|
347
|
+
resource.should_skip?(:run).should be_false
|
348
|
+
end
|
343
349
|
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
350
|
+
it "evaluates a not_if block using the cwd guard parameter" do
|
351
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
352
|
+
resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
|
353
|
+
resource.should_skip?(:run).should be_true
|
354
|
+
end
|
349
355
|
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
end
|
356
|
+
it "evaluates an only_if block using the cwd guard parameter" do
|
357
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
358
|
+
resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
|
359
|
+
resource.should_skip?(:run).should be_false
|
360
|
+
end
|
356
361
|
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
362
|
+
it "inherits cwd from the parent resource for only_if" do
|
363
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
364
|
+
resource.cwd custom_cwd
|
365
|
+
resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
|
366
|
+
resource.should_skip?(:run).should be_false
|
367
|
+
end
|
363
368
|
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
+
it "inherits cwd from the parent resource for not_if" do
|
370
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
371
|
+
resource.cwd custom_cwd
|
372
|
+
resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
|
373
|
+
resource.should_skip?(:run).should be_true
|
374
|
+
end
|
369
375
|
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
376
|
+
it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean false as zero status code", :windows64_only do
|
377
|
+
resource.architecture :x86_64
|
378
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'AMD64')"
|
379
|
+
resource.should_skip?(:run).should be_false
|
380
|
+
end
|
375
381
|
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
382
|
+
it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean true as nonzero status code", :windows64_only do
|
383
|
+
resource.architecture :x86_64
|
384
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'AMD64')"
|
385
|
+
resource.should_skip?(:run).should be_true
|
386
|
+
end
|
381
387
|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
388
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code" do
|
389
|
+
resource.architecture :i386
|
390
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'X86')"
|
391
|
+
resource.should_skip?(:run).should be_false
|
392
|
+
end
|
387
393
|
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
394
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code" do
|
395
|
+
resource.architecture :i386
|
396
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'X86')"
|
397
|
+
resource.should_skip?(:run).should be_true
|
398
|
+
end
|
393
399
|
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
400
|
+
it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for only_if" do
|
401
|
+
resource.convert_boolean_return true
|
402
|
+
resource.only_if "$false"
|
403
|
+
resource.should_skip?(:run).should be_true
|
404
|
+
end
|
399
405
|
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
406
|
+
it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for not_if" do
|
407
|
+
resource.convert_boolean_return true
|
408
|
+
resource.not_if "$false"
|
409
|
+
resource.should_skip?(:run).should be_false
|
410
|
+
end
|
405
411
|
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
412
|
+
it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for only_if" do
|
413
|
+
resource.convert_boolean_return true
|
414
|
+
resource.only_if "$true"
|
415
|
+
resource.should_skip?(:run).should be_false
|
416
|
+
end
|
411
417
|
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
end
|
418
|
+
it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for not_if" do
|
419
|
+
resource.convert_boolean_return true
|
420
|
+
resource.not_if "$true"
|
421
|
+
resource.should_skip?(:run).should be_true
|
422
|
+
end
|
418
423
|
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
424
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code using convert_boolean_return for only_if" do
|
425
|
+
resource.convert_boolean_return true
|
426
|
+
resource.architecture :i386
|
427
|
+
resource.only_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
|
428
|
+
resource.should_skip?(:run).should be_false
|
429
|
+
end
|
425
430
|
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
431
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code using convert_boolean_return for not_if" do
|
432
|
+
resource.convert_boolean_return true
|
433
|
+
resource.architecture :i386
|
434
|
+
resource.not_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
|
435
|
+
resource.should_skip?(:run).should be_false
|
436
|
+
end
|
432
437
|
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code using convert_boolean_return for only_if" do
|
439
|
+
resource.convert_boolean_return true
|
440
|
+
resource.architecture :i386
|
441
|
+
resource.only_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
|
442
|
+
resource.should_skip?(:run).should be_true
|
443
|
+
end
|
444
|
+
|
445
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code using convert_boolean_return for not_if" do
|
446
|
+
resource.convert_boolean_return true
|
447
|
+
resource.architecture :i386
|
448
|
+
resource.not_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
|
449
|
+
resource.should_skip?(:run).should be_true
|
450
|
+
end
|
438
451
|
end
|
439
452
|
end
|
440
453
|
|