chef 12.7.2-universal-mingw32 → 12.8.1-universal-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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +208 -208
- data/Gemfile +49 -58
- data/LICENSE +201 -201
- data/README.md +139 -139
- data/Rakefile +86 -73
- data/VERSION +1 -1
- data/acceptance/.gitignore +2 -1
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +33 -27
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +290 -281
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +59 -49
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +51 -46
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -1
- data/acceptance/Gemfile +14 -11
- data/acceptance/README.md +132 -86
- data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +3 -3
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/basics/.kitchen.yml +4 -4
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +19 -19
- data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +6 -6
- data/acceptance/fips/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/metadata.rb +2 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
- data/acceptance/fips/.kitchen.yml +4 -0
- data/acceptance/fips/test/integration/fips/serverspec/Gemfile +3 -0
- data/acceptance/fips/test/integration/fips/serverspec/fips_spec.rb +39 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +43 -43
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +23 -21
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +3 -3
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/top-cookbooks/.gitignore +1 -1
- data/acceptance/top-cookbooks/.kitchen.docker.yml +12 -0
- data/acceptance/top-cookbooks/.kitchen.git.yml +11 -10
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +7 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +7 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +7 -4
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/trivial/.kitchen.yml +7 -7
- data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +5 -5
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +2 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/windows-service/.kitchen.yml +7 -7
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +58 -58
- data/bin/chef-apply +25 -25
- data/bin/chef-client +26 -26
- data/bin/chef-service-manager +38 -38
- data/bin/chef-shell +34 -37
- data/bin/chef-solo +25 -25
- data/bin/chef-windows-service +35 -35
- data/bin/knife +25 -25
- data/chef-windows.gemspec +24 -24
- data/chef.gemspec +63 -58
- data/distro/common/html/_sources/ctl_chef_client.txt +35 -35
- data/distro/common/html/_sources/ctl_chef_server.txt +341 -341
- data/distro/common/html/_sources/ctl_chef_shell.txt +15 -15
- data/distro/common/html/_sources/ctl_chef_solo.txt +25 -25
- data/distro/common/html/_sources/index.txt +135 -135
- data/distro/common/html/_sources/knife.txt +74 -74
- data/distro/common/html/_sources/knife_bootstrap.txt +56 -56
- data/distro/common/html/_sources/knife_client.txt +150 -150
- data/distro/common/html/_sources/knife_common_options.txt +6 -6
- data/distro/common/html/_sources/knife_configure.txt +29 -29
- data/distro/common/html/_sources/knife_cookbook.txt +236 -236
- data/distro/common/html/_sources/knife_cookbook_site.txt +157 -157
- data/distro/common/html/_sources/knife_data_bag.txt +159 -159
- data/distro/common/html/_sources/knife_delete.txt +26 -26
- data/distro/common/html/_sources/knife_deps.txt +61 -61
- data/distro/common/html/_sources/knife_diff.txt +34 -34
- data/distro/common/html/_sources/knife_download.txt +44 -44
- data/distro/common/html/_sources/knife_edit.txt +26 -26
- data/distro/common/html/_sources/knife_environment.txt +158 -158
- data/distro/common/html/_sources/knife_exec.txt +47 -47
- data/distro/common/html/_sources/knife_index_rebuild.txt +20 -20
- data/distro/common/html/_sources/knife_list.txt +33 -33
- data/distro/common/html/_sources/knife_node.txt +250 -250
- data/distro/common/html/_sources/knife_raw.txt +35 -35
- data/distro/common/html/_sources/knife_recipe_list.txt +23 -23
- data/distro/common/html/_sources/knife_role.txt +157 -157
- data/distro/common/html/_sources/knife_search.txt +53 -53
- data/distro/common/html/_sources/knife_serve.txt +18 -18
- data/distro/common/html/_sources/knife_show.txt +26 -26
- data/distro/common/html/_sources/knife_ssh.txt +43 -43
- data/distro/common/html/_sources/knife_ssl_check.txt +41 -41
- data/distro/common/html/_sources/knife_ssl_fetch.txt +41 -41
- data/distro/common/html/_sources/knife_status.txt +37 -37
- data/distro/common/html/_sources/knife_tag.txt +69 -69
- data/distro/common/html/_sources/knife_upload.txt +49 -49
- data/distro/common/html/_sources/knife_user.txt +127 -127
- data/distro/common/html/_sources/knife_using.txt +43 -43
- data/distro/common/html/_sources/knife_xargs.txt +30 -30
- data/distro/common/html/_static/basic.css +536 -536
- data/distro/common/html/_static/doctools.js +238 -238
- data/distro/common/html/_static/guide.css +504 -504
- data/distro/common/html/_static/pygments.css +61 -61
- data/distro/common/html/_static/searchtools.js +621 -621
- data/distro/common/html/_static/underscore.js +31 -31
- data/distro/common/html/_static/websupport.js +808 -808
- data/distro/common/html/ctl_chef_client.html +269 -269
- data/distro/common/html/ctl_chef_server.html +727 -727
- data/distro/common/html/ctl_chef_shell.html +162 -162
- data/distro/common/html/ctl_chef_solo.html +193 -193
- data/distro/common/html/index.html +201 -201
- data/distro/common/html/knife.html +169 -169
- data/distro/common/html/knife_bootstrap.html +284 -284
- data/distro/common/html/knife_client.html +284 -284
- data/distro/common/html/knife_common_options.html +95 -95
- data/distro/common/html/knife_configure.html +104 -104
- data/distro/common/html/knife_cookbook.html +486 -486
- data/distro/common/html/knife_cookbook_site.html +375 -375
- data/distro/common/html/knife_data_bag.html +373 -373
- data/distro/common/html/knife_delete.html +92 -92
- data/distro/common/html/knife_deps.html +142 -142
- data/distro/common/html/knife_diff.html +122 -122
- data/distro/common/html/knife_download.html +144 -144
- data/distro/common/html/knife_edit.html +88 -88
- data/distro/common/html/knife_environment.html +325 -325
- data/distro/common/html/knife_exec.html +219 -219
- data/distro/common/html/knife_index_rebuild.html +82 -82
- data/distro/common/html/knife_list.html +113 -113
- data/distro/common/html/knife_node.html +457 -457
- data/distro/common/html/knife_raw.html +109 -109
- data/distro/common/html/knife_recipe_list.html +90 -90
- data/distro/common/html/knife_role.html +294 -294
- data/distro/common/html/knife_search.html +202 -202
- data/distro/common/html/knife_serve.html +78 -78
- data/distro/common/html/knife_show.html +103 -103
- data/distro/common/html/knife_ssh.html +176 -176
- data/distro/common/html/knife_ssl_check.html +150 -150
- data/distro/common/html/knife_ssl_fetch.html +150 -150
- data/distro/common/html/knife_status.html +143 -143
- data/distro/common/html/knife_tag.html +137 -137
- data/distro/common/html/knife_upload.html +152 -152
- data/distro/common/html/knife_user.html +241 -241
- data/distro/common/html/knife_using.html +209 -209
- data/distro/common/html/knife_xargs.html +121 -121
- data/distro/common/html/search.html +81 -81
- data/distro/common/man/man1/README.md +58 -58
- data/distro/common/man/man1/chef-shell.1 +194 -194
- data/distro/common/man/man1/knife-bootstrap.1 +215 -215
- data/distro/common/man/man1/knife-client.1 +443 -443
- data/distro/common/man/man1/knife-configure.1 +161 -161
- data/distro/common/man/man1/knife-cookbook-site.1 +552 -552
- data/distro/common/man/man1/knife-cookbook.1 +770 -770
- data/distro/common/man/man1/knife-data-bag.1 +617 -617
- data/distro/common/man/man1/knife-delete.1 +127 -127
- data/distro/common/man/man1/knife-deps.1 +246 -246
- data/distro/common/man/man1/knife-diff.1 +226 -226
- data/distro/common/man/man1/knife-download.1 +258 -258
- data/distro/common/man/man1/knife-edit.1 +121 -121
- data/distro/common/man/man1/knife-environment.1 +508 -508
- data/distro/common/man/man1/knife-exec.1 +362 -362
- data/distro/common/man/man1/knife-index-rebuild.1 +63 -63
- data/distro/common/man/man1/knife-list.1 +174 -174
- data/distro/common/man/man1/knife-node.1 +716 -716
- data/distro/common/man/man1/knife-raw.1 +172 -172
- data/distro/common/man/man1/knife-recipe-list.1 +85 -85
- data/distro/common/man/man1/knife-role.1 +426 -426
- data/distro/common/man/man1/knife-search.1 +359 -359
- data/distro/common/man/man1/knife-serve.1 +109 -109
- data/distro/common/man/man1/knife-show.1 +160 -160
- data/distro/common/man/man1/knife-ssh.1 +284 -284
- data/distro/common/man/man1/knife-ssl-check.1 +207 -207
- data/distro/common/man/man1/knife-ssl-fetch.1 +207 -207
- data/distro/common/man/man1/knife-status.1 +234 -234
- data/distro/common/man/man1/knife-tag.1 +189 -189
- data/distro/common/man/man1/knife-upload.1 +280 -280
- data/distro/common/man/man1/knife-user.1 +356 -356
- data/distro/common/man/man1/knife-xargs.1 +189 -189
- data/distro/common/man/man1/knife.1 +332 -332
- data/distro/common/man/man8/chef-apply.8 +86 -86
- data/distro/common/man/man8/chef-client.8 +398 -398
- data/distro/common/man/man8/chef-solo.8 +260 -260
- data/distro/common/markdown/README +3 -3
- data/distro/common/markdown/man1/chef-shell.mkd +195 -195
- data/distro/common/markdown/man1/knife-bootstrap.mkd +141 -141
- data/distro/common/markdown/man1/knife-client.mkd +103 -103
- data/distro/common/markdown/man1/knife-configure.mkd +70 -70
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +123 -123
- data/distro/common/markdown/man1/knife-cookbook.mkd +263 -263
- data/distro/common/markdown/man1/knife-data-bag.mkd +121 -121
- data/distro/common/markdown/man1/knife-environment.mkd +151 -151
- data/distro/common/markdown/man1/knife-exec.mkd +42 -42
- data/distro/common/markdown/man1/knife-index.mkd +30 -30
- data/distro/common/markdown/man1/knife-node.mkd +130 -130
- data/distro/common/markdown/man1/knife-role.mkd +85 -85
- data/distro/common/markdown/man1/knife-search.mkd +180 -180
- data/distro/common/markdown/man1/knife-ssh.mkd +69 -69
- data/distro/common/markdown/man1/knife-status.mkd +36 -36
- data/distro/common/markdown/man1/knife-tag.mkd +39 -39
- data/distro/common/markdown/man1/knife.mkd +213 -213
- data/distro/common/markdown/man8/chef-client.mkd +75 -73
- data/distro/common/markdown/man8/chef-expander.mkd +81 -81
- data/distro/common/markdown/man8/chef-expanderctl.mkd +57 -57
- data/distro/common/markdown/man8/chef-server-webui.mkd +121 -121
- data/distro/common/markdown/man8/chef-server.mkd +120 -120
- data/distro/common/markdown/man8/chef-solo.mkd +107 -107
- data/distro/common/markdown/man8/chef-solr.mkd +89 -89
- data/distro/powershell/chef/chef.psm1 +327 -327
- data/ext/win32-eventlog/Rakefile +53 -53
- data/ext/win32-eventlog/chef-log.man +56 -56
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +5 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +5 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +5 -5
- data/lib/chef.rb +35 -35
- data/lib/chef/api_client.rb +233 -233
- data/lib/chef/api_client/registration.rb +192 -192
- data/lib/chef/api_client_v1.rb +325 -325
- data/lib/chef/application.rb +342 -342
- data/lib/chef/application/apply.rb +221 -221
- data/lib/chef/application/client.rb +513 -501
- data/lib/chef/application/knife.rb +208 -208
- data/lib/chef/application/solo.rb +334 -330
- data/lib/chef/application/windows_service.rb +338 -338
- data/lib/chef/application/windows_service_manager.rb +202 -202
- data/lib/chef/applications.rb +4 -4
- data/lib/chef/audit/audit_event_proxy.rb +93 -93
- data/lib/chef/audit/audit_reporter.rb +172 -172
- data/lib/chef/audit/control_group_data.rb +139 -139
- data/lib/chef/audit/logger.rb +36 -36
- data/lib/chef/audit/rspec_formatter.rb +37 -37
- data/lib/chef/audit/runner.rb +196 -196
- data/lib/chef/chef_class.rb +228 -228
- data/lib/chef/chef_fs.rb +59 -59
- data/lib/chef/chef_fs/chef_fs_data_store.rb +871 -856
- data/lib/chef/chef_fs/command_line.rb +285 -285
- data/lib/chef/chef_fs/config.rb +283 -282
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -26
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +39 -39
- data/lib/chef/chef_fs/data_handler/client_key_data_handler.rb +11 -0
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +35 -29
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -38
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +62 -56
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +204 -202
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -40
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +55 -55
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -36
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +36 -30
- data/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb +17 -17
- data/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb +17 -17
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +48 -42
- data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +33 -27
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -40
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +29 -29
- data/lib/chef/chef_fs/file_pattern.rb +301 -301
- data/lib/chef/chef_fs/file_system.rb +429 -429
- data/lib/chef/chef_fs/file_system/already_exists_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -47
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +183 -183
- data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +65 -65
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +60 -60
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +75 -75
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +196 -196
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +102 -102
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +222 -222
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +84 -84
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +61 -61
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +102 -102
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +71 -71
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +69 -69
- data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +57 -57
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +53 -53
- data/lib/chef/chef_fs/file_system/chef_server/org_entry.rb +31 -31
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +61 -61
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +60 -60
- data/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb +41 -41
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +160 -160
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +137 -137
- data/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb +43 -43
- data/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb +34 -34
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +178 -178
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +187 -187
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +45 -45
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +107 -107
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +32 -32
- data/lib/chef/chef_fs/file_system/file_system_error.rb +44 -44
- data/lib/chef/chef_fs/file_system/memory/memory_dir.rb +53 -53
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +20 -20
- data/lib/chef/chef_fs/file_system/memory/memory_root.rb +23 -23
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +64 -64
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +36 -36
- data/lib/chef/chef_fs/file_system/not_found_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +42 -42
- data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +46 -46
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +39 -39
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_data_bags_dir.rb → chef_repository_file_system_client_keys_dir.rb} +38 -38
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +41 -41
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +146 -95
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +176 -82
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +83 -83
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +214 -210
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_cookbook_artifacts_dir.rb → cookbook_artifacts_dir.rb} +36 -34
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +52 -0
- data/lib/chef/chef_fs/file_system/repository/data_bag.rb +39 -0
- data/lib/chef/chef_fs/file_system/repository/data_bag_item.rb +114 -0
- data/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb +39 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +139 -0
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +117 -117
- data/lib/chef/chef_fs/file_system/repository/file_system_root_dir.rb +33 -33
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_versioned_cookbooks_dir.rb → versioned_cookbooks_dir.rb} +34 -34
- data/lib/chef/chef_fs/knife.rb +161 -161
- data/lib/chef/chef_fs/parallelizer.rb +105 -105
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +35 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +281 -281
- data/lib/chef/chef_fs/path_utils.rb +127 -127
- data/lib/chef/client.rb +967 -967
- data/lib/chef/config.rb +85 -85
- data/lib/chef/config_fetcher.rb +72 -72
- data/lib/chef/constants.rb +28 -28
- data/lib/chef/cookbook/chefignore.rb +74 -74
- data/lib/chef/cookbook/cookbook_collection.rb +63 -58
- data/lib/chef/cookbook/cookbook_version_loader.rb +352 -301
- data/lib/chef/cookbook/file_system_file_vendor.rb +59 -59
- data/lib/chef/cookbook/file_vendor.rb +71 -71
- data/lib/chef/cookbook/gem_installer.rb +118 -0
- data/lib/chef/cookbook/metadata.rb +904 -886
- data/lib/chef/cookbook/remote_file_vendor.rb +87 -87
- data/lib/chef/cookbook/synchronizer.rb +298 -294
- data/lib/chef/cookbook/syntax_check.rb +260 -260
- data/lib/chef/cookbook_loader.rb +200 -182
- data/lib/chef/cookbook_manifest.rb +290 -290
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -244
- data/lib/chef/cookbook_uploader.rb +157 -157
- data/lib/chef/cookbook_version.rb +631 -627
- data/lib/chef/daemon.rb +131 -131
- data/lib/chef/data_bag.rb +176 -175
- data/lib/chef/data_bag_item.rb +218 -218
- data/lib/chef/delayed_evaluator.rb +21 -21
- data/lib/chef/deprecation/mixin/template.rb +48 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +54 -54
- data/lib/chef/deprecation/provider/file.rb +198 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +52 -52
- data/lib/chef/deprecation/provider/remote_file.rb +85 -85
- data/lib/chef/deprecation/provider/template.rb +63 -63
- data/lib/chef/deprecation/warnings.rb +38 -38
- data/lib/chef/digester.rb +74 -74
- data/lib/chef/dsl.rb +6 -6
- data/lib/chef/dsl/audit.rb +51 -51
- data/lib/chef/dsl/chef_provisioning.rb +57 -57
- data/lib/chef/dsl/cheffish.rb +64 -64
- data/lib/chef/dsl/data_query.rb +89 -89
- data/lib/chef/dsl/declare_resource.rb +108 -108
- data/lib/chef/dsl/definitions.rb +43 -43
- data/lib/chef/dsl/include_attribute.rb +61 -61
- data/lib/chef/dsl/include_recipe.rb +44 -44
- data/lib/chef/dsl/platform_introspection.rb +254 -254
- data/lib/chef/dsl/powershell.rb +29 -29
- data/lib/chef/dsl/reboot_pending.rb +64 -64
- data/lib/chef/dsl/recipe.rb +134 -134
- data/lib/chef/dsl/registry_helper.rb +63 -63
- data/lib/chef/dsl/resources.rb +58 -58
- data/lib/chef/encrypted_data_bag_item.rb +155 -155
- data/lib/chef/encrypted_data_bag_item/assertions.rb +54 -54
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -56
- data/lib/chef/encrypted_data_bag_item/decryption_failure.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +227 -227
- data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +37 -37
- data/lib/chef/encrypted_data_bag_item/encryption_failure.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +225 -225
- data/lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/unsupported_cipher.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format.rb +22 -22
- data/lib/chef/environment.rb +326 -326
- data/lib/chef/event_dispatch/base.rb +420 -400
- data/lib/chef/event_dispatch/dispatcher.rb +62 -62
- data/lib/chef/event_dispatch/dsl.rb +65 -65
- data/lib/chef/event_dispatch/events_output_stream.rb +37 -37
- data/lib/chef/event_loggers/base.rb +62 -62
- data/lib/chef/event_loggers/windows_eventlog.rb +101 -101
- data/lib/chef/exceptions.rb +504 -504
- data/lib/chef/file_access_control.rb +75 -75
- data/lib/chef/file_access_control/unix.rb +290 -290
- data/lib/chef/file_access_control/windows.rb +335 -335
- data/lib/chef/file_cache.rb +221 -221
- data/lib/chef/file_content_management/content_base.rb +56 -56
- data/lib/chef/file_content_management/deploy.rb +37 -37
- data/lib/chef/file_content_management/deploy/cp.rb +48 -48
- data/lib/chef/file_content_management/deploy/mv_unix.rb +76 -76
- data/lib/chef/file_content_management/deploy/mv_windows.rb +103 -103
- data/lib/chef/file_content_management/tempfile.rb +97 -96
- data/lib/chef/formatters/base.rb +237 -237
- data/lib/chef/formatters/doc.rb +422 -396
- data/lib/chef/formatters/error_descriptor.rb +67 -67
- data/lib/chef/formatters/error_inspectors.rb +19 -19
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +184 -184
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +154 -154
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +168 -168
- data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +82 -82
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +128 -128
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +147 -147
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +124 -124
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +121 -121
- data/lib/chef/formatters/error_mapper.rb +85 -85
- data/lib/chef/formatters/indentable_output_stream.rb +170 -170
- data/lib/chef/formatters/minimal.rb +233 -233
- data/lib/chef/guard_interpreter.rb +32 -32
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +43 -43
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +138 -138
- data/lib/chef/handler.rb +235 -235
- data/lib/chef/handler/error_report.rb +33 -33
- data/lib/chef/handler/json_file.rb +63 -63
- data/lib/chef/http.rb +430 -427
- data/lib/chef/http/auth_credentials.rb +57 -57
- data/lib/chef/http/authenticator.rb +106 -106
- data/lib/chef/http/basic_client.rb +169 -169
- data/lib/chef/http/cookie_jar.rb +31 -31
- data/lib/chef/http/cookie_manager.rb +59 -59
- data/lib/chef/http/decompressor.rb +142 -142
- data/lib/chef/http/http_request.rb +186 -186
- data/lib/chef/http/json_input.rb +73 -73
- data/lib/chef/http/json_output.rb +78 -78
- data/lib/chef/http/json_to_model_output.rb +34 -34
- data/lib/chef/http/remote_request_id.rb +46 -46
- data/lib/chef/http/simple.rb +40 -40
- data/lib/chef/http/simple_json.rb +43 -43
- data/lib/chef/http/socketless_chef_zero_client.rb +207 -206
- data/lib/chef/http/ssl_policies.rb +130 -130
- data/lib/chef/http/validate_content_length.rb +115 -110
- data/lib/chef/json_compat.rb +164 -164
- data/lib/chef/key.rb +273 -273
- data/lib/chef/knife.rb +587 -580
- data/lib/chef/knife/bootstrap.rb +480 -480
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +159 -159
- data/lib/chef/knife/bootstrap/client_builder.rb +208 -208
- data/lib/chef/knife/bootstrap/templates/README.md +11 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +236 -231
- data/lib/chef/knife/client_bulk_delete.rb +104 -104
- data/lib/chef/knife/client_create.rb +111 -111
- data/lib/chef/knife/client_delete.rb +60 -60
- data/lib/chef/knife/client_edit.rb +53 -53
- data/lib/chef/knife/client_key_create.rb +67 -67
- data/lib/chef/knife/client_key_delete.rb +76 -76
- data/lib/chef/knife/client_key_edit.rb +79 -79
- data/lib/chef/knife/client_key_list.rb +69 -69
- data/lib/chef/knife/client_key_show.rb +76 -76
- data/lib/chef/knife/client_list.rb +42 -42
- data/lib/chef/knife/client_reregister.rb +59 -59
- data/lib/chef/knife/client_show.rb +49 -49
- data/lib/chef/knife/configure.rb +171 -171
- data/lib/chef/knife/configure_client.rb +50 -50
- data/lib/chef/knife/cookbook_bulk_delete.rb +71 -71
- data/lib/chef/knife/cookbook_create.rb +448 -448
- data/lib/chef/knife/cookbook_delete.rb +151 -151
- data/lib/chef/knife/cookbook_download.rb +143 -143
- data/lib/chef/knife/cookbook_list.rb +47 -47
- data/lib/chef/knife/cookbook_metadata.rb +108 -108
- data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -44
- data/lib/chef/knife/cookbook_show.rb +98 -98
- data/lib/chef/knife/cookbook_site_download.rb +109 -109
- data/lib/chef/knife/cookbook_site_install.rb +192 -192
- data/lib/chef/knife/cookbook_site_list.rb +58 -58
- data/lib/chef/knife/cookbook_site_search.rb +46 -46
- data/lib/chef/knife/cookbook_site_share.rb +169 -169
- data/lib/chef/knife/cookbook_site_show.rb +55 -55
- data/lib/chef/knife/cookbook_site_unshare.rb +56 -56
- data/lib/chef/knife/cookbook_site_vendor.rb +46 -46
- data/lib/chef/knife/cookbook_test.rb +95 -95
- data/lib/chef/knife/cookbook_upload.rb +308 -310
- data/lib/chef/knife/core/bootstrap_context.rb +233 -200
- data/lib/chef/knife/core/cookbook_scm_repo.rb +159 -159
- data/lib/chef/knife/core/custom_manifest_loader.rb +69 -69
- data/lib/chef/knife/core/gem_glob_loader.rb +138 -138
- data/lib/chef/knife/core/generic_presenter.rb +222 -222
- data/lib/chef/knife/core/hashed_command_loader.rb +99 -80
- data/lib/chef/knife/core/node_editor.rb +130 -130
- data/lib/chef/knife/core/node_presenter.rb +159 -159
- data/lib/chef/knife/core/object_loader.rb +115 -115
- data/lib/chef/knife/core/status_presenter.rb +157 -157
- data/lib/chef/knife/core/subcommand_loader.rb +212 -206
- data/lib/chef/knife/core/text_formatter.rb +85 -85
- data/lib/chef/knife/core/ui.rb +284 -275
- data/lib/chef/knife/data_bag_create.rb +78 -78
- data/lib/chef/knife/data_bag_delete.rb +49 -49
- data/lib/chef/knife/data_bag_edit.rb +74 -74
- data/lib/chef/knife/data_bag_from_file.rb +114 -114
- data/lib/chef/knife/data_bag_list.rb +42 -42
- data/lib/chef/knife/data_bag_secret_options.rb +142 -142
- data/lib/chef/knife/data_bag_show.rb +69 -69
- data/lib/chef/knife/delete.rb +107 -107
- data/lib/chef/knife/deps.rb +140 -140
- data/lib/chef/knife/diff.rb +68 -68
- data/lib/chef/knife/download.rb +68 -68
- data/lib/chef/knife/edit.rb +72 -72
- data/lib/chef/knife/environment_compare.rb +127 -127
- data/lib/chef/knife/environment_create.rb +53 -53
- data/lib/chef/knife/environment_delete.rb +45 -45
- data/lib/chef/knife/environment_edit.rb +45 -45
- data/lib/chef/knife/environment_from_file.rb +82 -82
- data/lib/chef/knife/environment_list.rb +42 -42
- data/lib/chef/knife/environment_show.rb +48 -48
- data/lib/chef/knife/exec.rb +87 -87
- data/lib/chef/knife/help.rb +101 -101
- data/lib/chef/knife/help_topics.rb +4 -4
- data/lib/chef/knife/index_rebuild.rb +133 -133
- data/lib/chef/knife/key_create.rb +112 -108
- data/lib/chef/knife/key_create_base.rb +50 -50
- data/lib/chef/knife/key_delete.rb +55 -55
- data/lib/chef/knife/key_edit.rb +118 -114
- data/lib/chef/knife/key_edit_base.rb +55 -55
- data/lib/chef/knife/key_list.rb +88 -88
- data/lib/chef/knife/key_list_base.rb +45 -45
- data/lib/chef/knife/key_show.rb +53 -53
- data/lib/chef/knife/list.rb +157 -157
- data/lib/chef/knife/node_bulk_delete.rb +74 -74
- data/lib/chef/knife/node_create.rb +47 -47
- data/lib/chef/knife/node_delete.rb +46 -46
- data/lib/chef/knife/node_edit.rb +70 -70
- data/lib/chef/knife/node_environment_set.rb +54 -54
- data/lib/chef/knife/node_from_file.rb +51 -51
- data/lib/chef/knife/node_list.rb +44 -44
- data/lib/chef/knife/node_run_list_add.rb +104 -104
- data/lib/chef/knife/node_run_list_remove.rb +67 -67
- data/lib/chef/knife/node_run_list_set.rb +66 -66
- data/lib/chef/knife/node_show.rb +66 -66
- data/lib/chef/knife/null.rb +10 -10
- data/lib/chef/knife/osc_user_create.rb +97 -97
- data/lib/chef/knife/osc_user_delete.rb +51 -51
- data/lib/chef/knife/osc_user_edit.rb +58 -58
- data/lib/chef/knife/osc_user_list.rb +47 -47
- data/lib/chef/knife/osc_user_reregister.rb +64 -64
- data/lib/chef/knife/osc_user_show.rb +54 -54
- data/lib/chef/knife/raw.rb +103 -103
- data/lib/chef/knife/recipe_list.rb +32 -32
- data/lib/chef/knife/rehash.rb +65 -62
- data/lib/chef/knife/role_bulk_delete.rb +65 -65
- data/lib/chef/knife/role_create.rb +53 -53
- data/lib/chef/knife/role_delete.rb +46 -46
- data/lib/chef/knife/role_edit.rb +45 -45
- data/lib/chef/knife/role_env_run_list_add.rb +86 -86
- data/lib/chef/knife/role_env_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +57 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +59 -59
- data/lib/chef/knife/role_env_run_list_set.rb +70 -70
- data/lib/chef/knife/role_from_file.rb +51 -51
- data/lib/chef/knife/role_list.rb +42 -42
- data/lib/chef/knife/role_run_list_add.rb +86 -86
- data/lib/chef/knife/role_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_run_list_remove.rb +57 -57
- data/lib/chef/knife/role_run_list_replace.rb +59 -59
- data/lib/chef/knife/role_run_list_set.rb +70 -70
- data/lib/chef/knife/role_show.rb +49 -49
- data/lib/chef/knife/search.rb +201 -201
- data/lib/chef/knife/serve.rb +48 -48
- data/lib/chef/knife/show.rb +56 -56
- data/lib/chef/knife/ssh.rb +572 -575
- data/lib/chef/knife/ssl_check.rb +281 -281
- data/lib/chef/knife/ssl_fetch.rb +157 -157
- data/lib/chef/knife/status.rb +110 -110
- data/lib/chef/knife/tag_create.rb +52 -52
- data/lib/chef/knife/tag_delete.rb +60 -60
- data/lib/chef/knife/tag_list.rb +47 -47
- data/lib/chef/knife/upload.rb +70 -70
- data/lib/chef/knife/user_create.rb +150 -150
- data/lib/chef/knife/user_delete.rb +95 -95
- data/lib/chef/knife/user_edit.rb +81 -81
- data/lib/chef/knife/user_key_create.rb +69 -69
- data/lib/chef/knife/user_key_delete.rb +76 -76
- data/lib/chef/knife/user_key_edit.rb +79 -79
- data/lib/chef/knife/user_key_list.rb +69 -69
- data/lib/chef/knife/user_key_show.rb +76 -76
- data/lib/chef/knife/user_list.rb +45 -45
- data/lib/chef/knife/user_reregister.rb +89 -89
- data/lib/chef/knife/user_show.rb +78 -78
- data/lib/chef/knife/xargs.rb +266 -266
- data/lib/chef/local_mode.rb +128 -128
- data/lib/chef/log.rb +68 -68
- data/lib/chef/log/syslog.rb +45 -45
- data/lib/chef/log/winevt.rb +99 -99
- data/lib/chef/mash.rb +226 -226
- data/lib/chef/mixin/api_version_request_handling.rb +66 -66
- data/lib/chef/mixin/checksum.rb +32 -32
- data/lib/chef/mixin/command.rb +193 -192
- data/lib/chef/mixin/command/unix.rb +220 -220
- data/lib/chef/mixin/command/windows.rb +71 -71
- data/lib/chef/mixin/convert_to_class_name.rb +126 -126
- data/lib/chef/mixin/create_path.rb +73 -73
- data/lib/chef/mixin/deep_merge.rb +140 -140
- data/lib/chef/mixin/deprecation.rb +123 -123
- data/lib/chef/mixin/descendants_tracker.rb +81 -81
- data/lib/chef/mixin/enforce_ownership_and_permissions.rb +39 -39
- data/lib/chef/mixin/file_class.rb +35 -35
- data/lib/chef/mixin/from_file.rb +50 -50
- data/lib/chef/mixin/get_source_from_package.rb +47 -47
- data/lib/chef/mixin/homebrew_user.rb +68 -68
- data/lib/chef/mixin/language.rb +48 -48
- data/lib/chef/mixin/language_include_attribute.rb +34 -34
- data/lib/chef/mixin/language_include_recipe.rb +31 -31
- data/lib/chef/mixin/params_validate.rb +489 -489
- data/lib/chef/mixin/path_sanity.rb +68 -68
- data/lib/chef/mixin/powershell_out.rb +98 -98
- data/lib/chef/mixin/powershell_type_coercions.rb +84 -84
- data/lib/chef/mixin/properties.rb +303 -302
- data/lib/chef/mixin/provides.rb +28 -27
- data/lib/chef/mixin/proxified_socket.rb +38 -38
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +35 -35
- data/lib/chef/mixin/securable.rb +196 -196
- data/lib/chef/mixin/shell_out.rb +117 -117
- data/lib/chef/mixin/subclass_directive.rb +37 -37
- data/lib/chef/mixin/template.rb +262 -262
- data/lib/chef/mixin/unformatter.rb +32 -32
- data/lib/chef/mixin/uris.rb +43 -43
- data/lib/chef/mixin/which.rb +37 -37
- data/lib/chef/mixin/why_run.rb +331 -331
- data/lib/chef/mixin/wide_string.rb +72 -72
- data/lib/chef/mixin/windows_architecture_helper.rb +114 -114
- data/lib/chef/mixin/windows_env_helper.rb +67 -67
- data/lib/chef/mixin/xml_escape.rb +140 -140
- data/lib/chef/mixins.rb +13 -13
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -140
- data/lib/chef/monkey_patches/net_http.rb +60 -60
- data/lib/chef/monkey_patches/webrick-utils.rb +51 -51
- data/lib/chef/monkey_patches/win32/registry.rb +72 -72
- data/lib/chef/monologger.rb +88 -88
- data/lib/chef/nil_argument.rb +3 -3
- data/lib/chef/node.rb +700 -700
- data/lib/chef/node/attribute.rb +586 -586
- data/lib/chef/node/attribute_collections.rb +323 -323
- data/lib/chef/node/immutable_collections.rb +219 -219
- data/lib/chef/node_map.rb +222 -222
- data/lib/chef/null_logger.rb +72 -72
- data/lib/chef/org.rb +149 -149
- data/lib/chef/platform.rb +30 -30
- data/lib/chef/platform/handler_map.rb +40 -40
- data/lib/chef/platform/priority_map.rb +41 -41
- data/lib/chef/platform/provider_handler_map.rb +29 -29
- data/lib/chef/platform/provider_mapping.rb +214 -214
- data/lib/chef/platform/provider_priority_map.rb +11 -11
- data/lib/chef/platform/query_helpers.rb +112 -112
- data/lib/chef/platform/rebooter.rb +54 -54
- data/lib/chef/platform/resource_handler_map.rb +29 -29
- data/lib/chef/platform/resource_priority_map.rb +11 -11
- data/lib/chef/platform/service_helpers.rb +122 -122
- data/lib/chef/policy_builder.rb +42 -42
- data/lib/chef/policy_builder/dynamic.rb +185 -185
- data/lib/chef/policy_builder/expand_node_object.rb +278 -274
- data/lib/chef/policy_builder/policyfile.rb +527 -525
- data/lib/chef/property.rb +673 -673
- data/lib/chef/provider.rb +461 -461
- data/lib/chef/provider/apt_update.rb +79 -79
- data/lib/chef/provider/batch.rb +45 -45
- data/lib/chef/provider/breakpoint.rb +38 -38
- data/lib/chef/provider/cookbook_file.rb +53 -53
- data/lib/chef/provider/cookbook_file/content.rb +49 -49
- data/lib/chef/provider/cron.rb +263 -263
- data/lib/chef/provider/cron/aix.rb +50 -50
- data/lib/chef/provider/cron/solaris.rb +22 -22
- data/lib/chef/provider/cron/unix.rb +83 -83
- data/lib/chef/provider/deploy.rb +476 -476
- data/lib/chef/provider/deploy/revision.rb +109 -109
- data/lib/chef/provider/deploy/timestamped.rb +34 -34
- data/lib/chef/provider/directory.rb +152 -152
- data/lib/chef/provider/dsc_resource.rb +197 -200
- data/lib/chef/provider/dsc_script.rb +185 -185
- data/lib/chef/provider/env.rb +169 -169
- data/lib/chef/provider/env/windows.rb +72 -72
- data/lib/chef/provider/erl_call.rb +108 -108
- data/lib/chef/provider/execute.rb +125 -125
- data/lib/chef/provider/file.rb +495 -495
- data/lib/chef/provider/file/content.rb +39 -39
- data/lib/chef/provider/git.rb +332 -332
- data/lib/chef/provider/group.rb +183 -183
- data/lib/chef/provider/group/aix.rb +86 -86
- data/lib/chef/provider/group/dscl.rb +170 -170
- data/lib/chef/provider/group/gpasswd.rb +58 -58
- data/lib/chef/provider/group/groupadd.rb +137 -137
- data/lib/chef/provider/group/groupmod.rb +128 -128
- data/lib/chef/provider/group/pw.rb +140 -140
- data/lib/chef/provider/group/suse.rb +62 -62
- data/lib/chef/provider/group/usermod.rb +91 -91
- data/lib/chef/provider/group/windows.rb +98 -98
- data/lib/chef/provider/http_request.rb +122 -122
- data/lib/chef/provider/ifconfig.rb +226 -226
- data/lib/chef/provider/ifconfig/aix.rb +99 -99
- data/lib/chef/provider/ifconfig/debian.rb +84 -84
- data/lib/chef/provider/ifconfig/redhat.rb +48 -48
- data/lib/chef/provider/launchd.rb +208 -0
- data/lib/chef/provider/link.rb +159 -159
- data/lib/chef/provider/log.rb +57 -57
- data/lib/chef/provider/lwrp_base.rb +99 -99
- data/lib/chef/provider/mdadm.rb +92 -92
- data/lib/chef/provider/mount.rb +173 -173
- data/lib/chef/provider/mount/aix.rb +180 -180
- data/lib/chef/provider/mount/mount.rb +270 -270
- data/lib/chef/provider/mount/solaris.rb +271 -271
- data/lib/chef/provider/mount/windows.rb +86 -86
- data/lib/chef/provider/ohai.rb +49 -49
- data/lib/chef/provider/osx_profile.rb +256 -256
- data/lib/chef/provider/package.rb +565 -565
- data/lib/chef/provider/package/aix.rb +136 -136
- data/lib/chef/provider/package/apt.rb +185 -185
- data/lib/chef/provider/package/chocolatey.rb +275 -277
- data/lib/chef/provider/package/dpkg.rb +226 -226
- data/lib/chef/provider/package/easy_install.rb +133 -133
- data/lib/chef/provider/package/freebsd/base.rb +89 -89
- data/lib/chef/provider/package/freebsd/pkg.rb +114 -114
- data/lib/chef/provider/package/freebsd/pkgng.rb +78 -78
- data/lib/chef/provider/package/freebsd/port.rb +60 -60
- data/lib/chef/provider/package/homebrew.rb +137 -137
- data/lib/chef/provider/package/ips.rb +91 -91
- data/lib/chef/provider/package/macports.rb +101 -101
- data/lib/chef/provider/package/openbsd.rb +136 -136
- data/lib/chef/provider/package/pacman.rb +104 -104
- data/lib/chef/provider/package/paludis.rb +86 -86
- data/lib/chef/provider/package/portage.rb +140 -140
- data/lib/chef/provider/package/rpm.rb +123 -123
- data/lib/chef/provider/package/rubygems.rb +586 -586
- data/lib/chef/provider/package/smartos.rb +92 -92
- data/lib/chef/provider/package/solaris.rb +138 -138
- data/lib/chef/provider/package/windows.rb +269 -260
- data/lib/chef/provider/package/windows/exe.rb +117 -117
- data/lib/chef/provider/package/windows/msi.rb +93 -93
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +89 -89
- data/lib/chef/provider/package/yum-dump.py +307 -307
- data/lib/chef/provider/package/yum.rb +1421 -1421
- data/lib/chef/provider/package/zypper.rb +143 -143
- data/lib/chef/provider/powershell_script.rb +215 -215
- data/lib/chef/provider/reboot.rb +70 -70
- data/lib/chef/provider/registry_key.rb +155 -155
- data/lib/chef/provider/remote_directory.rb +281 -281
- data/lib/chef/provider/remote_file.rb +53 -53
- data/lib/chef/provider/remote_file/cache_control_data.rb +195 -195
- data/lib/chef/provider/remote_file/content.rb +81 -81
- data/lib/chef/provider/remote_file/fetcher.rb +55 -55
- data/lib/chef/provider/remote_file/ftp.rb +183 -183
- data/lib/chef/provider/remote_file/http.rb +117 -117
- data/lib/chef/provider/remote_file/local_file.rb +60 -60
- data/lib/chef/provider/remote_file/network_file.rb +48 -48
- data/lib/chef/provider/resource_update.rb +52 -52
- data/lib/chef/provider/route.rb +229 -229
- data/lib/chef/provider/ruby_block.rb +44 -44
- data/lib/chef/provider/script.rb +85 -85
- data/lib/chef/provider/service.rb +250 -212
- data/lib/chef/provider/service/aix.rb +129 -129
- data/lib/chef/provider/service/aixinit.rb +117 -117
- data/lib/chef/provider/service/arch.rb +118 -118
- data/lib/chef/provider/service/debian.rb +182 -182
- data/lib/chef/provider/service/freebsd.rb +195 -195
- data/lib/chef/provider/service/gentoo.rb +71 -71
- data/lib/chef/provider/service/init.rb +94 -94
- data/lib/chef/provider/service/insserv.rb +59 -59
- data/lib/chef/provider/service/invokercd.rb +41 -41
- data/lib/chef/provider/service/macosx.rb +250 -250
- data/lib/chef/provider/service/openbsd.rb +217 -217
- data/lib/chef/provider/service/redhat.rb +120 -120
- data/lib/chef/provider/service/simple.rb +175 -175
- data/lib/chef/provider/service/solaris.rb +117 -117
- data/lib/chef/provider/service/systemd.rb +155 -139
- data/lib/chef/provider/service/upstart.rb +242 -242
- data/lib/chef/provider/service/windows.rb +313 -313
- data/lib/chef/provider/subversion.rb +221 -221
- data/lib/chef/provider/template.rb +65 -65
- data/lib/chef/provider/template/content.rb +70 -70
- data/lib/chef/provider/template_finder.rb +62 -62
- data/lib/chef/provider/user.rb +211 -211
- data/lib/chef/provider/user/aix.rb +97 -97
- data/lib/chef/provider/user/dscl.rb +710 -710
- data/lib/chef/provider/user/pw.rb +114 -114
- data/lib/chef/provider/user/solaris.rb +121 -121
- data/lib/chef/provider/user/useradd.rb +163 -163
- data/lib/chef/provider/user/windows.rb +128 -128
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +32 -32
- data/lib/chef/provider/windows_script.rb +72 -72
- data/lib/chef/provider_resolver.rb +170 -170
- data/lib/chef/providers.rb +142 -141
- data/lib/chef/recipe.rb +119 -119
- data/lib/chef/request_id.rb +37 -37
- data/lib/chef/reserved_names.rb +9 -9
- data/lib/chef/resource.rb +1581 -1581
- data/lib/chef/resource/action_class.rb +87 -87
- data/lib/chef/resource/apt_package.rb +32 -32
- data/lib/chef/resource/apt_update.rb +33 -33
- data/lib/chef/resource/bash.rb +33 -33
- data/lib/chef/resource/batch.rb +33 -33
- data/lib/chef/resource/bff_package.rb +27 -27
- data/lib/chef/resource/breakpoint.rb +32 -32
- data/lib/chef/resource/chef_gem.rb +51 -51
- data/lib/chef/resource/chocolatey_package.rb +39 -39
- data/lib/chef/resource/conditional.rb +127 -127
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -48
- data/lib/chef/resource/cookbook_file.rb +49 -49
- data/lib/chef/resource/cron.rb +216 -216
- data/lib/chef/resource/csh.rb +33 -33
- data/lib/chef/resource/deploy.rb +443 -443
- data/lib/chef/resource/deploy_revision.rb +31 -31
- data/lib/chef/resource/directory.rb +62 -62
- data/lib/chef/resource/dpkg_package.rb +30 -30
- data/lib/chef/resource/dsc_resource.rb +121 -121
- data/lib/chef/resource/dsc_script.rb +140 -140
- data/lib/chef/resource/easy_install_package.rb +32 -32
- data/lib/chef/resource/env.rb +65 -65
- data/lib/chef/resource/erl_call.rb +85 -85
- data/lib/chef/resource/execute.rb +172 -172
- data/lib/chef/resource/file.rb +83 -83
- data/lib/chef/resource/file/verification.rb +128 -128
- data/lib/chef/resource/freebsd_package.rb +62 -62
- data/lib/chef/resource/gem_package.rb +41 -41
- data/lib/chef/resource/git.rb +44 -44
- data/lib/chef/resource/group.rb +102 -102
- data/lib/chef/resource/homebrew_package.rb +34 -34
- data/lib/chef/resource/http_request.rb +66 -66
- data/lib/chef/resource/ifconfig.rb +147 -147
- data/lib/chef/resource/ips_package.rb +34 -34
- data/lib/chef/resource/ksh.rb +32 -32
- data/lib/chef/resource/launchd.rb +104 -0
- data/lib/chef/resource/link.rb +107 -107
- data/lib/chef/resource/log.rb +76 -76
- data/lib/chef/resource/lwrp_base.rb +124 -124
- data/lib/chef/resource/macosx_service.rb +58 -58
- data/lib/chef/resource/macports_package.rb +27 -27
- data/lib/chef/resource/mdadm.rb +103 -103
- data/lib/chef/resource/mount.rb +187 -187
- data/lib/chef/resource/ohai.rb +53 -53
- data/lib/chef/resource/openbsd_package.rb +35 -35
- data/lib/chef/resource/osx_profile.rb +74 -74
- data/lib/chef/resource/package.rb +47 -47
- data/lib/chef/resource/pacman_package.rb +28 -28
- data/lib/chef/resource/paludis_package.rb +33 -33
- data/lib/chef/resource/perl.rb +32 -32
- data/lib/chef/resource/portage_package.rb +32 -32
- data/lib/chef/resource/powershell_script.rb +50 -50
- data/lib/chef/resource/python.rb +31 -31
- data/lib/chef/resource/reboot.rb +48 -48
- data/lib/chef/resource/registry_key.rb +144 -144
- data/lib/chef/resource/remote_directory.rb +122 -122
- data/lib/chef/resource/remote_file.rb +149 -149
- data/lib/chef/resource/resource_notification.rb +122 -122
- data/lib/chef/resource/route.rb +137 -137
- data/lib/chef/resource/rpm_package.rb +32 -32
- data/lib/chef/resource/ruby.rb +31 -31
- data/lib/chef/resource/ruby_block.rb +53 -53
- data/lib/chef/resource/scm.rb +185 -185
- data/lib/chef/resource/script.rb +74 -74
- data/lib/chef/resource/service.rb +208 -197
- data/lib/chef/resource/smartos_package.rb +29 -29
- data/lib/chef/resource/solaris_package.rb +31 -31
- data/lib/chef/resource/subversion.rb +44 -44
- data/lib/chef/resource/template.rb +215 -215
- data/lib/chef/resource/timestamped_deploy.rb +26 -26
- data/lib/chef/resource/user.rb +160 -160
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +24 -24
- data/lib/chef/resource/windows_package.rb +55 -55
- data/lib/chef/resource/windows_script.rb +65 -65
- data/lib/chef/resource/windows_service.rb +71 -71
- data/lib/chef/resource/yum_package.rb +47 -47
- data/lib/chef/resource/zypper_package.rb +28 -28
- data/lib/chef/resource_builder.rb +151 -151
- data/lib/chef/resource_collection.rb +89 -89
- data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -59
- data/lib/chef/resource_collection/resource_list.rb +90 -89
- data/lib/chef/resource_collection/resource_set.rb +170 -170
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -124
- data/lib/chef/resource_definition.rb +68 -68
- data/lib/chef/resource_definition_list.rb +38 -38
- data/lib/chef/resource_reporter.rb +327 -327
- data/lib/chef/resource_resolver.rb +185 -185
- data/lib/chef/resources.rb +88 -87
- data/lib/chef/rest.rb +209 -209
- data/lib/chef/role.rb +280 -280
- data/lib/chef/run_context.rb +670 -670
- data/lib/chef/run_context/cookbook_compiler.rb +289 -289
- data/lib/chef/run_list.rb +168 -166
- data/lib/chef/run_list/run_list_expansion.rb +234 -234
- data/lib/chef/run_list/run_list_item.rb +98 -98
- data/lib/chef/run_list/versioned_recipe_list.rb +102 -102
- data/lib/chef/run_lock.rb +197 -197
- data/lib/chef/run_status.rb +125 -125
- data/lib/chef/runner.rb +141 -141
- data/lib/chef/sandbox.rb +20 -20
- data/lib/chef/scan_access_control.rb +138 -138
- data/lib/chef/search/query.rb +180 -180
- data/lib/chef/server_api.rb +78 -78
- data/lib/chef/shell.rb +327 -322
- data/lib/chef/shell/ext.rb +593 -593
- data/lib/chef/shell/model_wrapper.rb +120 -119
- data/lib/chef/shell/shell_session.rb +299 -299
- data/lib/chef/shell_out.rb +13 -13
- data/lib/chef/tasks/chef_repo.rake +200 -200
- data/lib/chef/user.rb +199 -199
- data/lib/chef/user_v1.rb +330 -330
- data/lib/chef/util/backup.rb +94 -94
- data/lib/chef/util/diff.rb +184 -184
- data/lib/chef/util/dsc/configuration_generator.rb +139 -139
- data/lib/chef/util/dsc/lcm_output_parser.rb +137 -137
- data/lib/chef/util/dsc/local_configuration_manager.rb +141 -141
- data/lib/chef/util/dsc/resource_info.rb +26 -26
- data/lib/chef/util/dsc/resource_store.rb +109 -109
- data/lib/chef/util/editor.rb +91 -91
- data/lib/chef/util/file_edit.rb +100 -100
- data/lib/chef/util/path_helper.rb +25 -25
- data/lib/chef/util/powershell/cmdlet.rb +170 -170
- data/lib/chef/util/powershell/cmdlet_result.rb +61 -61
- data/lib/chef/util/powershell/ps_credential.rb +41 -41
- data/lib/chef/util/selinux.rb +92 -92
- data/lib/chef/util/threaded_job_queue.rb +61 -61
- data/lib/chef/util/windows.rb +24 -24
- data/lib/chef/util/windows/net_group.rb +84 -84
- data/lib/chef/util/windows/net_use.rb +85 -85
- data/lib/chef/util/windows/net_user.rb +170 -169
- data/lib/chef/util/windows/volume.rb +59 -59
- data/lib/chef/version.rb +34 -34
- data/lib/chef/version/platform.rb +44 -44
- data/lib/chef/version_class.rb +70 -70
- data/lib/chef/version_constraint.rb +118 -118
- data/lib/chef/version_constraint/platform.rb +26 -26
- data/lib/chef/whitelist.rb +86 -86
- data/lib/chef/win32/api.rb +374 -374
- data/lib/chef/win32/api/crypto.rb +63 -63
- data/lib/chef/win32/api/error.rb +953 -922
- data/lib/chef/win32/api/file.rb +625 -622
- data/lib/chef/win32/api/installer.rb +165 -165
- data/lib/chef/win32/api/memory.rb +105 -105
- data/lib/chef/win32/api/net.rb +312 -312
- data/lib/chef/win32/api/process.rb +42 -42
- data/lib/chef/win32/api/psapi.rb +51 -51
- data/lib/chef/win32/api/registry.rb +51 -51
- data/lib/chef/win32/api/security.rb +460 -460
- data/lib/chef/win32/api/synchronization.rb +89 -89
- data/lib/chef/win32/api/system.rb +238 -238
- data/lib/chef/win32/api/unicode.rb +135 -135
- data/lib/chef/win32/crypto.rb +50 -50
- data/lib/chef/win32/error.rb +86 -76
- data/lib/chef/win32/eventlog.rb +31 -31
- data/lib/chef/win32/file.rb +218 -218
- data/lib/chef/win32/file/info.rb +99 -99
- data/lib/chef/win32/file/version_info.rb +93 -93
- data/lib/chef/win32/handle.rb +55 -55
- data/lib/chef/win32/memory.rb +101 -101
- data/lib/chef/win32/mutex.rb +116 -116
- data/lib/chef/win32/net.rb +311 -311
- data/lib/chef/win32/process.rb +97 -97
- data/lib/chef/win32/registry.rb +372 -372
- data/lib/chef/win32/security.rb +665 -665
- data/lib/chef/win32/security/ace.rb +123 -123
- data/lib/chef/win32/security/acl.rb +103 -103
- data/lib/chef/win32/security/securable_object.rb +109 -109
- data/lib/chef/win32/security/security_descriptor.rb +93 -93
- data/lib/chef/win32/security/sid.rb +304 -304
- data/lib/chef/win32/security/token.rb +72 -72
- data/lib/chef/win32/system.rb +62 -62
- data/lib/chef/win32/unicode.rb +60 -60
- data/lib/chef/win32/version.rb +158 -158
- data/lib/chef/workstation_config_loader.rb +23 -23
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -5
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -13
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -1
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -11
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -13
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/changelog +5 -5
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.debhelper.log +45 -45
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.substvars +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/conffiles +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/control +10 -10
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/md5sums +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/conffiles +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/control +13 -13
- data/spec/data/apt/chef-integration-test2-1.0/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test2-1.0/debian/files +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test2-1.0/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test2_1.0-1.dsc +18 -18
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.build +91 -91
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.changes +31 -31
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -22
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -22
- data/spec/data/apt/var/www/apt/conf/distributions +7 -7
- data/spec/data/apt/var/www/apt/conf/incoming +4 -4
- data/spec/data/apt/var/www/apt/conf/pulls +3 -3
- data/spec/data/apt/var/www/apt/db/version +4 -4
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -19
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -16
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -5
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -1
- data/spec/data/bootstrap/no_proxy.erb +2 -2
- data/spec/data/bootstrap/secret.erb +9 -9
- data/spec/data/bootstrap/test-hints.erb +12 -12
- data/spec/data/bootstrap/test.erb +1 -1
- data/spec/data/cb_version_cookbooks/tatft/README.rdoc +2 -2
- data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -1
- data/spec/data/client.d_00/00-foo.rb +2 -0
- data/spec/data/client.d_00/01-bar.rb +1 -0
- data/spec/data/client.d_00/bar +1 -0
- data/spec/data/client.d_01/foo/bar.rb +1 -0
- data/spec/data/client.d_02/foo.rb/foo.txt +1 -0
- data/spec/data/config.rb +6 -6
- data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
- data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
- data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
- data/spec/data/cookbooks/apache2/metadata.rb +2 -2
- data/spec/data/cookbooks/apache2/recipes/default.rb +2 -2
- data/spec/data/cookbooks/borken/metadata.rb +2 -2
- data/spec/data/cookbooks/borken/recipes/default.rb +1 -1
- data/spec/data/cookbooks/borken/templates/default/borken.erb +1 -1
- data/spec/data/cookbooks/chefignore +8 -8
- data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -2
- data/spec/data/cookbooks/ignorken/metadata.rb +2 -2
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +1 -1
- data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -2
- data/spec/data/cookbooks/java/files/default/java.response +1 -1
- data/spec/data/cookbooks/java/metadata.rb +2 -2
- data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -4
- data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -8
- data/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb +8 -8
- data/spec/data/cookbooks/openldap/.root_dotfile +0 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +16 -16
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/cookbooks/openldap/definitions/client.rb +5 -5
- data/spec/data/cookbooks/openldap/definitions/server.rb +5 -5
- data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -3
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
- data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -3
- data/spec/data/cookbooks/openldap/metadata.rb +8 -8
- data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
- data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
- data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
- data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
- data/spec/data/cookbooks/openldap/spec/spec_helper.rb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/helpers.erb +14 -14
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/nested_openldap_partials.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/nested_partial.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -4
- data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -1
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -1
- data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -4
- data/spec/data/cookbooks/preseed/metadata.rb +2 -2
- data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +1 -1
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -1
- data/spec/data/cookbooks/supports-platform-constraints/metadata.rb +5 -5
- data/spec/data/definitions/test.rb +4 -4
- data/spec/data/environment-config.rb +4 -4
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -127
- data/spec/data/fileedit/hosts +4 -4
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -4
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -13
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb +8 -8
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb +9 -9
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb +8 -8
- data/spec/data/kitchen/chefignore +6 -6
- data/spec/data/kitchen/openldap/attributes/default.rb +3 -3
- data/spec/data/kitchen/openldap/attributes/robinson.rb +2 -2
- data/spec/data/kitchen/openldap/definitions/client.rb +3 -3
- data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/gigantor.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/ignoreme.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/woot.rb +3 -3
- data/spec/data/knife_subcommand/test_explicit_category.rb +6 -6
- data/spec/data/knife_subcommand/test_name_mapping.rb +4 -4
- data/spec/data/knife_subcommand/test_yourself.rb +21 -21
- data/spec/data/lwrp/providers/buck_passer.rb +28 -28
- data/spec/data/lwrp/providers/buck_passer_2.rb +26 -26
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +28 -28
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -26
- data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -5
- data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -7
- data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -7
- data/spec/data/lwrp/resources/bar.rb +2 -2
- data/spec/data/lwrp/resources/foo.rb +4 -4
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -1
- data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
- data/spec/data/lwrp_override/resources/foo.rb +10 -10
- data/spec/data/mac_users/10.7-8.plist.xml +559 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +11 -11
- data/spec/data/mac_users/10.7.plist.xml +559 -559
- data/spec/data/mac_users/10.7.shadow.xml +11 -11
- data/spec/data/mac_users/10.8.plist.xml +559 -559
- data/spec/data/mac_users/10.8.shadow.xml +21 -21
- data/spec/data/mac_users/10.9.plist.xml +560 -560
- data/spec/data/mac_users/10.9.shadow.xml +21 -21
- data/spec/data/metadata/quick_start/metadata.rb +19 -19
- data/spec/data/nested.json +2 -2
- data/spec/data/nodes/default.rb +15 -15
- data/spec/data/nodes/test.example.com.rb +17 -17
- data/spec/data/nodes/test.rb +15 -15
- data/spec/data/null_config.rb +1 -1
- data/spec/data/object_loader/environments/test.json +7 -7
- data/spec/data/object_loader/environments/test.rb +2 -2
- data/spec/data/object_loader/environments/test_json_class.json +8 -8
- data/spec/data/object_loader/nodes/test.json +7 -7
- data/spec/data/object_loader/nodes/test.rb +2 -2
- data/spec/data/object_loader/nodes/test_json_class.json +8 -8
- data/spec/data/object_loader/roles/test.json +7 -7
- data/spec/data/object_loader/roles/test.rb +2 -2
- data/spec/data/object_loader/roles/test_json_class.json +8 -8
- data/spec/data/partial_one.erb +1 -1
- data/spec/data/recipes/test.rb +7 -7
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -4
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -3
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -3
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -3
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/include/recipes/default.rb +24 -24
- data/spec/data/run_context/cookbooks/include/recipes/includee.rb +3 -3
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -3
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -3
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -3
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -3
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -9
- data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -5
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -5
- data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -7
- data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -7
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -1
- data/spec/data/run_context/nodes/run_context.rb +5 -5
- data/spec/data/search_queries_to_transform.txt +98 -98
- data/spec/data/shef-config.rb +10 -10
- data/spec/data/ssl/5e707473.0 +18 -18
- data/spec/data/ssl/chef-rspec.cert +27 -27
- data/spec/data/ssl/chef-rspec.key +27 -27
- data/spec/data/ssl/key.pem +15 -15
- data/spec/data/ssl/private_key.pem +27 -27
- data/spec/data/ssl/private_key_with_whitespace.pem +32 -32
- data/spec/data/standalone_cookbook/chefignore +9 -9
- data/spec/data/standalone_cookbook/recipes/default.rb +2 -2
- data/spec/data/trusted_certs/example.crt +22 -22
- data/spec/data/trusted_certs/intermediate.pem +27 -27
- data/spec/data/trusted_certs/opscode.pem +57 -57
- data/spec/data/trusted_certs/root.pem +22 -22
- data/spec/functional/application_spec.rb +58 -58
- data/spec/functional/assets/chefinittest +34 -34
- data/spec/functional/assets/testchefsubsys +10 -10
- data/spec/functional/audit/rspec_formatter_spec.rb +54 -54
- data/spec/functional/audit/runner_spec.rb +121 -121
- data/spec/functional/dsl/reboot_pending_spec.rb +106 -106
- data/spec/functional/dsl/registry_helper_spec.rb +61 -61
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +101 -101
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +229 -229
- data/spec/functional/http/simple_spec.rb +140 -140
- data/spec/functional/knife/configure_spec.rb +33 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +167 -167
- data/spec/functional/knife/exec_spec.rb +55 -55
- data/spec/functional/knife/rehash_spec.rb +39 -0
- data/spec/functional/knife/smoke_test.rb +42 -42
- data/spec/functional/knife/ssh_spec.rb +284 -284
- data/spec/functional/mixin/powershell_out_spec.rb +43 -43
- data/spec/functional/mixin/shell_out_spec.rb +48 -48
- data/spec/functional/notifications_spec.rb +238 -238
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +100 -100
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +51 -51
- data/spec/functional/rebooter_spec.rb +105 -105
- data/spec/functional/resource/aix_service_spec.rb +138 -138
- data/spec/functional/resource/aixinit_service_spec.rb +211 -211
- data/spec/functional/resource/base.rb +28 -28
- data/spec/functional/resource/bash_spec.rb +88 -88
- data/spec/functional/resource/batch_spec.rb +30 -30
- data/spec/functional/resource/bff_spec.rb +120 -120
- data/spec/functional/resource/chocolatey_package_spec.rb +130 -124
- data/spec/functional/resource/cookbook_file_spec.rb +81 -81
- data/spec/functional/resource/cron_spec.rb +172 -172
- data/spec/functional/resource/deploy_revision_spec.rb +881 -881
- data/spec/functional/resource/directory_spec.rb +43 -43
- data/spec/functional/resource/dpkg_package_spec.rb +339 -339
- data/spec/functional/resource/dsc_resource_spec.rb +90 -90
- data/spec/functional/resource/dsc_script_spec.rb +479 -469
- data/spec/functional/resource/env_spec.rb +192 -192
- data/spec/functional/resource/execute_spec.rb +154 -154
- data/spec/functional/resource/file_spec.rb +167 -167
- data/spec/functional/resource/git_spec.rb +259 -259
- data/spec/functional/resource/group_spec.rb +461 -461
- data/spec/functional/resource/ifconfig_spec.rb +165 -165
- data/spec/functional/resource/link_spec.rb +613 -613
- data/spec/functional/resource/mount_spec.rb +203 -203
- data/spec/functional/resource/ohai_spec.rb +62 -62
- data/spec/functional/resource/package_spec.rb +386 -386
- data/spec/functional/resource/powershell_script_spec.rb +601 -601
- data/spec/functional/resource/reboot_spec.rb +103 -103
- data/spec/functional/resource/registry_spec.rb +560 -560
- data/spec/functional/resource/remote_directory_spec.rb +220 -220
- data/spec/functional/resource/remote_file_spec.rb +240 -240
- data/spec/functional/resource/rpm_spec.rb +123 -123
- data/spec/functional/resource/template_spec.rb +212 -212
- data/spec/functional/resource/user/dscl_spec.rb +198 -198
- data/spec/functional/resource/user/useradd_spec.rb +692 -699
- data/spec/functional/resource/user/windows_spec.rb +133 -133
- data/spec/functional/resource/windows_package_spec.rb +168 -168
- data/spec/functional/resource/windows_service_spec.rb +102 -102
- data/spec/functional/rest_spec.rb +95 -95
- data/spec/functional/run_lock_spec.rb +466 -466
- data/spec/functional/shell_spec.rb +148 -148
- data/spec/functional/tiny_server_spec.rb +78 -78
- data/spec/functional/util/path_helper_spec.rb +37 -37
- data/spec/functional/util/powershell/cmdlet_spec.rb +111 -111
- data/spec/functional/version_spec.rb +35 -35
- data/spec/functional/win32/crypto_spec.rb +54 -54
- data/spec/functional/win32/registry_spec.rb +623 -623
- data/spec/functional/win32/security_spec.rb +100 -100
- data/spec/functional/win32/service_manager_spec.rb +220 -220
- data/spec/functional/win32/sid_spec.rb +55 -55
- data/spec/functional/win32/version_info_spec.rb +50 -50
- data/spec/functional/win32/versions_spec.rb +117 -117
- data/spec/integration/client/client_spec.rb +500 -500
- data/spec/integration/client/ipv6_spec.rb +134 -134
- data/spec/integration/knife/chef_fs_data_store_spec.rb +556 -556
- data/spec/integration/knife/chef_repo_path_spec.rb +890 -890
- data/spec/integration/knife/chef_repository_file_system_spec.rb +292 -292
- data/spec/integration/knife/chefignore_spec.rb +300 -300
- data/spec/integration/knife/common_options_spec.rb +155 -155
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +112 -112
- data/spec/integration/knife/delete_spec.rb +1017 -1017
- data/spec/integration/knife/deps_spec.rb +706 -706
- data/spec/integration/knife/diff_spec.rb +602 -602
- data/spec/integration/knife/download_spec.rb +1314 -1314
- data/spec/integration/knife/list_spec.rb +1067 -1067
- data/spec/integration/knife/raw_spec.rb +242 -242
- data/spec/integration/knife/redirection_spec.rb +52 -52
- data/spec/integration/knife/serve_spec.rb +57 -57
- data/spec/integration/knife/show_spec.rb +167 -167
- data/spec/integration/knife/upload_spec.rb +1529 -1529
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +148 -148
- data/spec/integration/recipes/lwrp_spec.rb +53 -53
- data/spec/integration/recipes/provider_choice.rb +37 -37
- data/spec/integration/recipes/recipe_dsl_spec.rb +1519 -1519
- data/spec/integration/recipes/remote_directory.rb +74 -74
- data/spec/integration/recipes/resource_action_spec.rb +569 -569
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +496 -496
- data/spec/integration/recipes/resource_load_spec.rb +208 -208
- data/spec/integration/solo/solo_spec.rb +176 -176
- data/spec/rcov.opts +2 -2
- data/spec/scripts/ssl-serve.rb +47 -47
- data/spec/spec_helper.rb +248 -249
- data/spec/stress/win32/file_spec.rb +37 -37
- data/spec/stress/win32/memory_spec.rb +22 -22
- data/spec/stress/win32/security_spec.rb +69 -69
- data/spec/support/chef_helpers.rb +95 -95
- data/spec/support/key_helpers.rb +104 -104
- data/spec/support/lib/chef/provider/easy.rb +35 -35
- data/spec/support/lib/chef/provider/openldap_includer.rb +29 -29
- data/spec/support/lib/chef/provider/snakeoil.rb +41 -41
- data/spec/support/lib/chef/resource/cat.rb +38 -38
- data/spec/support/lib/chef/resource/one_two_three_four.rb +37 -37
- data/spec/support/lib/chef/resource/openldap_includer.rb +26 -26
- data/spec/support/lib/chef/resource/with_state.rb +28 -28
- data/spec/support/lib/chef/resource/zen_follower.rb +35 -35
- data/spec/support/lib/chef/resource/zen_master.rb +41 -41
- data/spec/support/lib/library_load_order.rb +20 -20
- data/spec/support/matchers/leak.rb +98 -98
- data/spec/support/mock/constant.rb +52 -52
- data/spec/support/mock/platform.rb +25 -25
- data/spec/support/platform_helpers.rb +214 -218
- data/spec/support/platforms/prof/gc.rb +53 -53
- data/spec/support/platforms/prof/win32.rb +45 -45
- data/spec/support/platforms/win32/spec_service.rb +59 -59
- data/spec/support/shared/context/client.rb +285 -285
- data/spec/support/shared/context/config.rb +21 -21
- data/spec/support/shared/context/win32.rb +34 -34
- data/spec/support/shared/examples/client.rb +53 -53
- data/spec/support/shared/functional/diff_disabled.rb +10 -10
- data/spec/support/shared/functional/directory_resource.rb +176 -176
- data/spec/support/shared/functional/file_resource.rb +1049 -1049
- data/spec/support/shared/functional/http.rb +248 -248
- data/spec/support/shared/functional/knife.rb +37 -37
- data/spec/support/shared/functional/securable_resource.rb +547 -547
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +394 -394
- data/spec/support/shared/functional/win32_service.rb +59 -59
- data/spec/support/shared/functional/windows_script.rb +202 -202
- data/spec/support/shared/integration/app_server_support.rb +42 -42
- data/spec/support/shared/integration/integration_helper.rb +154 -154
- data/spec/support/shared/integration/knife_support.rb +173 -173
- data/spec/support/shared/matchers/exit_with_code.rb +32 -32
- data/spec/support/shared/matchers/match_environment_variable.rb +17 -17
- data/spec/support/shared/shared_examples.rb +14 -14
- data/spec/support/shared/unit/api_error_inspector.rb +190 -190
- data/spec/support/shared/unit/api_versioning.rb +77 -77
- data/spec/support/shared/unit/application_dot_d.rb +70 -0
- data/spec/support/shared/unit/execute_resource.rb +133 -133
- data/spec/support/shared/unit/file_system_support.rb +69 -69
- data/spec/support/shared/unit/knife_shared.rb +39 -39
- data/spec/support/shared/unit/mock_shellout.rb +49 -49
- data/spec/support/shared/unit/platform_introspector.rb +189 -189
- data/spec/support/shared/unit/provider/file.rb +835 -835
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +433 -433
- data/spec/support/shared/unit/resource/static_provider_resolution.rb +63 -63
- data/spec/support/shared/unit/script_resource.rb +98 -98
- data/spec/support/shared/unit/user_and_client_shared.rb +114 -114
- data/spec/support/shared/unit/windows_script_resource.rb +80 -80
- data/spec/tiny_server.rb +207 -207
- data/spec/unit/api_client/registration_spec.rb +278 -278
- data/spec/unit/api_client_spec.rb +341 -341
- data/spec/unit/api_client_v1_spec.rb +455 -455
- data/spec/unit/application/apply_spec.rb +110 -110
- data/spec/unit/application/client_spec.rb +435 -431
- data/spec/unit/application/knife_spec.rb +229 -229
- data/spec/unit/application/solo_spec.rb +170 -167
- data/spec/unit/application_spec.rb +384 -384
- data/spec/unit/audit/audit_event_proxy_spec.rb +311 -311
- data/spec/unit/audit/audit_reporter_spec.rb +430 -430
- data/spec/unit/audit/control_group_data_spec.rb +477 -477
- data/spec/unit/audit/logger_spec.rb +42 -42
- data/spec/unit/audit/rspec_formatter_spec.rb +29 -29
- data/spec/unit/audit/runner_spec.rb +144 -144
- data/spec/unit/chef_class_spec.rb +110 -110
- data/spec/unit/chef_fs/config_spec.rb +106 -106
- data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +63 -63
- data/spec/unit/chef_fs/diff_spec.rb +328 -328
- data/spec/unit/chef_fs/file_pattern_spec.rb +512 -512
- data/spec/unit/chef_fs/file_system/cookbook_subdir_spec.rb +34 -34
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +47 -47
- data/spec/unit/chef_fs/file_system_spec.rb +148 -148
- data/spec/unit/chef_fs/parallelizer.rb +479 -479
- data/spec/unit/chef_fs/path_util_spec.rb +108 -108
- data/spec/unit/chef_spec.rb +25 -25
- data/spec/unit/client_spec.rb +544 -544
- data/spec/unit/config_fetcher_spec.rb +125 -125
- data/spec/unit/config_spec.rb +31 -31
- data/spec/unit/cookbook/chefignore_spec.rb +49 -49
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +198 -186
- data/spec/unit/cookbook/file_vendor_spec.rb +97 -97
- data/spec/unit/cookbook/metadata_spec.rb +952 -924
- data/spec/unit/cookbook/synchronizer_spec.rb +520 -520
- data/spec/unit/cookbook/syntax_check_spec.rb +219 -217
- data/spec/unit/cookbook_loader_spec.rb +299 -290
- data/spec/unit/cookbook_manifest_spec.rb +243 -243
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +203 -199
- data/spec/unit/cookbook_spec.rb +66 -66
- data/spec/unit/cookbook_uploader_spec.rb +199 -199
- data/spec/unit/cookbook_version_file_specificity_spec.rb +553 -553
- data/spec/unit/cookbook_version_spec.rb +359 -341
- data/spec/unit/daemon_spec.rb +174 -174
- data/spec/unit/data_bag_item_spec.rb +388 -323
- data/spec/unit/data_bag_spec.rb +260 -260
- data/spec/unit/deprecation_spec.rb +150 -150
- data/spec/unit/digester_spec.rb +49 -49
- data/spec/unit/dsl/audit_spec.rb +43 -43
- data/spec/unit/dsl/data_query_spec.rb +106 -106
- data/spec/unit/dsl/platform_introspection_spec.rb +129 -129
- data/spec/unit/dsl/reboot_pending_spec.rb +100 -100
- data/spec/unit/dsl/recipe_spec.rb +80 -80
- data/spec/unit/dsl/regsitry_helper_spec.rb +52 -52
- data/spec/unit/dsl/resources_spec.rb +85 -85
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -95
- data/spec/unit/encrypted_data_bag_item_spec.rb +437 -437
- data/spec/unit/environment_spec.rb +470 -470
- data/spec/unit/event_dispatch/dispatcher_spec.rb +122 -122
- data/spec/unit/event_dispatch/dsl_spec.rb +83 -83
- data/spec/unit/exceptions_spec.rb +130 -130
- data/spec/unit/file_access_control_spec.rb +308 -308
- data/spec/unit/file_cache_spec.rb +114 -114
- data/spec/unit/file_content_management/deploy/cp_spec.rb +44 -44
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +101 -101
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +232 -232
- data/spec/unit/file_content_management/tempfile_spec.rb +85 -0
- data/spec/unit/formatters/base_spec.rb +71 -71
- data/spec/unit/formatters/doc_spec.rb +78 -78
- data/spec/unit/formatters/error_inspectors/api_error_formatting_spec.rb +76 -76
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +265 -265
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +126 -126
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +43 -43
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +26 -26
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +26 -26
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +191 -191
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +91 -91
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +155 -155
- data/spec/unit/guard_interpreter_spec.rb +41 -41
- data/spec/unit/handler/json_file_spec.rb +63 -63
- data/spec/unit/handler_spec.rb +215 -215
- data/spec/unit/http/authenticator_spec.rb +80 -80
- data/spec/unit/http/basic_client_spec.rb +129 -129
- data/spec/unit/http/http_request_spec.rb +91 -91
- data/spec/unit/http/json_input_spec.rb +128 -128
- data/spec/unit/http/simple_spec.rb +32 -32
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +173 -173
- data/spec/unit/http/ssl_policies_spec.rb +169 -169
- data/spec/unit/http/validate_content_length_spec.rb +207 -192
- data/spec/unit/http_spec.rb +206 -194
- data/spec/unit/json_compat_spec.rb +105 -105
- data/spec/unit/key_spec.rb +631 -631
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +152 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +207 -207
- data/spec/unit/knife/bootstrap_spec.rb +822 -773
- data/spec/unit/knife/client_bulk_delete_spec.rb +166 -166
- data/spec/unit/knife/client_create_spec.rb +186 -186
- data/spec/unit/knife/client_delete_spec.rb +83 -83
- data/spec/unit/knife/client_edit_spec.rb +53 -53
- data/spec/unit/knife/client_list_spec.rb +34 -34
- data/spec/unit/knife/client_reregister_spec.rb +62 -62
- data/spec/unit/knife/client_show_spec.rb +52 -52
- data/spec/unit/knife/configure_client_spec.rb +83 -83
- data/spec/unit/knife/configure_spec.rb +241 -241
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +87 -87
- data/spec/unit/knife/cookbook_create_spec.rb +260 -260
- data/spec/unit/knife/cookbook_delete_spec.rb +239 -239
- data/spec/unit/knife/cookbook_download_spec.rb +237 -237
- data/spec/unit/knife/cookbook_list_spec.rb +88 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +65 -65
- data/spec/unit/knife/cookbook_metadata_spec.rb +179 -179
- data/spec/unit/knife/cookbook_show_spec.rb +222 -222
- data/spec/unit/knife/cookbook_site_download_spec.rb +149 -149
- data/spec/unit/knife/cookbook_site_install_spec.rb +197 -197
- data/spec/unit/knife/cookbook_site_share_spec.rb +209 -209
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +77 -77
- data/spec/unit/knife/cookbook_test_spec.rb +84 -84
- data/spec/unit/knife/cookbook_upload_spec.rb +331 -329
- data/spec/unit/knife/core/bootstrap_context_spec.rb +257 -257
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +187 -187
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +41 -41
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +209 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +109 -93
- data/spec/unit/knife/core/node_editor_spec.rb +211 -211
- data/spec/unit/knife/core/object_loader_spec.rb +81 -81
- data/spec/unit/knife/core/subcommand_loader_spec.rb +70 -64
- data/spec/unit/knife/core/ui_spec.rb +598 -591
- data/spec/unit/knife/data_bag_create_spec.rb +109 -109
- data/spec/unit/knife/data_bag_edit_spec.rb +127 -127
- data/spec/unit/knife/data_bag_from_file_spec.rb +172 -172
- data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -165
- data/spec/unit/knife/data_bag_show_spec.rb +123 -123
- data/spec/unit/knife/environment_compare_spec.rb +112 -112
- data/spec/unit/knife/environment_create_spec.rb +91 -91
- data/spec/unit/knife/environment_delete_spec.rb +71 -71
- data/spec/unit/knife/environment_edit_spec.rb +79 -79
- data/spec/unit/knife/environment_from_file_spec.rb +90 -90
- data/spec/unit/knife/environment_list_spec.rb +54 -54
- data/spec/unit/knife/environment_show_spec.rb +52 -52
- data/spec/unit/knife/index_rebuild_spec.rb +125 -125
- data/spec/unit/knife/key_create_spec.rb +223 -223
- data/spec/unit/knife/key_delete_spec.rb +133 -133
- data/spec/unit/knife/key_edit_spec.rb +264 -264
- data/spec/unit/knife/key_helper.rb +74 -74
- data/spec/unit/knife/key_list_spec.rb +216 -216
- data/spec/unit/knife/key_show_spec.rb +126 -126
- data/spec/unit/knife/knife_help.rb +92 -92
- data/spec/unit/knife/node_bulk_delete_spec.rb +94 -94
- data/spec/unit/knife/node_delete_spec.rb +68 -68
- data/spec/unit/knife/node_edit_spec.rb +114 -114
- data/spec/unit/knife/node_environment_set_spec.rb +80 -80
- data/spec/unit/knife/node_from_file_spec.rb +59 -59
- data/spec/unit/knife/node_list_spec.rb +62 -62
- data/spec/unit/knife/node_run_list_add_spec.rb +145 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +106 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +140 -140
- data/spec/unit/knife/node_show_spec.rb +65 -65
- data/spec/unit/knife/osc_user_create_spec.rb +93 -93
- data/spec/unit/knife/osc_user_delete_spec.rb +44 -44
- data/spec/unit/knife/osc_user_edit_spec.rb +52 -52
- data/spec/unit/knife/osc_user_list_spec.rb +37 -37
- data/spec/unit/knife/osc_user_reregister_spec.rb +58 -58
- data/spec/unit/knife/osc_user_show_spec.rb +46 -46
- data/spec/unit/knife/raw_spec.rb +43 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +80 -80
- data/spec/unit/knife/role_create_spec.rb +80 -80
- data/spec/unit/knife/role_delete_spec.rb +67 -67
- data/spec/unit/knife/role_edit_spec.rb +77 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +94 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +102 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +105 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +99 -99
- data/spec/unit/knife/role_from_file_spec.rb +69 -69
- data/spec/unit/knife/role_list_spec.rb +54 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +179 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +84 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +92 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +98 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +89 -89
- data/spec/unit/knife/role_show_spec.rb +59 -59
- data/spec/unit/knife/ssh_spec.rb +410 -410
- data/spec/unit/knife/ssl_check_spec.rb +240 -240
- data/spec/unit/knife/ssl_fetch_spec.rb +184 -184
- data/spec/unit/knife/status_spec.rb +108 -108
- data/spec/unit/knife/tag_create_spec.rb +23 -23
- data/spec/unit/knife/tag_delete_spec.rb +25 -25
- data/spec/unit/knife/tag_list_spec.rb +23 -23
- data/spec/unit/knife/user_create_spec.rb +214 -214
- data/spec/unit/knife/user_delete_spec.rb +65 -65
- data/spec/unit/knife/user_edit_spec.rb +66 -66
- data/spec/unit/knife/user_list_spec.rb +36 -36
- data/spec/unit/knife/user_reregister_spec.rb +74 -74
- data/spec/unit/knife/user_show_spec.rb +65 -65
- data/spec/unit/knife_spec.rb +529 -522
- data/spec/unit/lib_backcompat_spec.rb +34 -34
- data/spec/unit/log/syslog_spec.rb +53 -53
- data/spec/unit/log/winevt_spec.rb +55 -55
- data/spec/unit/log_spec.rb +24 -24
- data/spec/unit/lwrp_spec.rb +720 -720
- data/spec/unit/mash_spec.rb +51 -51
- data/spec/unit/mixin/api_version_request_handling_spec.rb +126 -126
- data/spec/unit/mixin/checksum_spec.rb +40 -40
- data/spec/unit/mixin/command_spec.rb +104 -104
- data/spec/unit/mixin/convert_to_class_name_spec.rb +54 -54
- data/spec/unit/mixin/deep_merge_spec.rb +342 -342
- data/spec/unit/mixin/deprecation_spec.rb +57 -57
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +96 -96
- data/spec/unit/mixin/homebrew_user_spec.rb +100 -100
- data/spec/unit/mixin/params_validate_spec.rb +409 -409
- data/spec/unit/mixin/path_sanity_spec.rb +92 -86
- data/spec/unit/mixin/powershell_out_spec.rb +70 -70
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +83 -83
- data/spec/unit/mixin/properties_spec.rb +97 -97
- data/spec/unit/mixin/proxified_socket_spec.rb +94 -94
- data/spec/unit/mixin/securable_spec.rb +314 -314
- data/spec/unit/mixin/shell_out_spec.rb +299 -299
- data/spec/unit/mixin/subclass_directive_spec.rb +45 -45
- data/spec/unit/mixin/template_spec.rb +276 -276
- data/spec/unit/mixin/unformatter_spec.rb +61 -61
- data/spec/unit/mixin/uris_spec.rb +57 -57
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +85 -85
- data/spec/unit/mixin/xml_escape_spec.rb +54 -54
- data/spec/unit/monkey_patches/uri_spec.rb +34 -34
- data/spec/unit/monologger_spec.rb +45 -45
- data/spec/unit/node/attribute_spec.rb +1179 -1179
- data/spec/unit/node/immutable_collections_spec.rb +197 -197
- data/spec/unit/node_map_spec.rb +170 -170
- data/spec/unit/node_spec.rb +1565 -1565
- data/spec/unit/org_spec.rb +196 -196
- data/spec/unit/platform/query_helpers_spec.rb +220 -220
- data/spec/unit/platform_spec.rb +241 -241
- data/spec/unit/policy_builder/dynamic_spec.rb +273 -273
- data/spec/unit/policy_builder/expand_node_object_spec.rb +336 -336
- data/spec/unit/policy_builder/policyfile_spec.rb +745 -739
- data/spec/unit/policy_builder_spec.rb +26 -26
- data/spec/unit/property/state_spec.rb +508 -508
- data/spec/unit/property/validation_spec.rb +704 -704
- data/spec/unit/property_spec.rb +1227 -1227
- data/spec/unit/provider/apt_update_spec.rb +113 -113
- data/spec/unit/provider/breakpoint_spec.rb +53 -53
- data/spec/unit/provider/cookbook_file/content_spec.rb +39 -39
- data/spec/unit/provider/cookbook_file_spec.rb +58 -58
- data/spec/unit/provider/cron/unix_spec.rb +139 -139
- data/spec/unit/provider/cron_spec.rb +1010 -1010
- data/spec/unit/provider/deploy/revision_spec.rb +110 -110
- data/spec/unit/provider/deploy/timestamped_spec.rb +40 -40
- data/spec/unit/provider/deploy_spec.rb +641 -641
- data/spec/unit/provider/directory_spec.rb +287 -287
- data/spec/unit/provider/dsc_resource_spec.rb +167 -118
- data/spec/unit/provider/dsc_script_spec.rb +173 -173
- data/spec/unit/provider/env/windows_spec.rb +103 -103
- data/spec/unit/provider/env_spec.rb +310 -310
- data/spec/unit/provider/erl_call_spec.rb +85 -85
- data/spec/unit/provider/execute_spec.rb +243 -243
- data/spec/unit/provider/file/content_spec.rb +114 -114
- data/spec/unit/provider/file_spec.rb +56 -56
- data/spec/unit/provider/git_spec.rb +668 -668
- data/spec/unit/provider/group/dscl_spec.rb +331 -331
- data/spec/unit/provider/group/gpasswd_spec.rb +116 -116
- data/spec/unit/provider/group/groupadd_spec.rb +174 -174
- data/spec/unit/provider/group/groupmod_spec.rb +133 -133
- data/spec/unit/provider/group/pw_spec.rb +138 -138
- data/spec/unit/provider/group/usermod_spec.rb +115 -115
- data/spec/unit/provider/group/windows_spec.rb +101 -101
- data/spec/unit/provider/group_spec.rb +286 -286
- data/spec/unit/provider/http_request_spec.rb +159 -159
- data/spec/unit/provider/ifconfig/aix_spec.rb +180 -180
- data/spec/unit/provider/ifconfig/debian_spec.rb +344 -344
- data/spec/unit/provider/ifconfig/redhat_spec.rb +73 -73
- data/spec/unit/provider/ifconfig_spec.rb +200 -200
- data/spec/unit/provider/launchd_spec.rb +189 -0
- data/spec/unit/provider/link_spec.rb +252 -252
- data/spec/unit/provider/log_spec.rb +75 -75
- data/spec/unit/provider/mdadm_spec.rb +131 -131
- data/spec/unit/provider/mount/aix_spec.rb +238 -238
- data/spec/unit/provider/mount/mount_spec.rb +480 -480
- data/spec/unit/provider/mount/solaris_spec.rb +822 -822
- data/spec/unit/provider/mount/windows_spec.rb +151 -151
- data/spec/unit/provider/mount_spec.rb +203 -203
- data/spec/unit/provider/ohai_spec.rb +84 -84
- data/spec/unit/provider/osx_profile_spec.rb +249 -249
- data/spec/unit/provider/package/aix_spec.rb +172 -172
- data/spec/unit/provider/package/apt_spec.rb +386 -386
- data/spec/unit/provider/package/chocolatey_spec.rb +501 -504
- data/spec/unit/provider/package/dpkg_spec.rb +287 -287
- data/spec/unit/provider/package/easy_install_spec.rb +108 -108
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +274 -274
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +148 -148
- data/spec/unit/provider/package/freebsd/port_spec.rb +163 -163
- data/spec/unit/provider/package/homebrew_spec.rb +292 -292
- data/spec/unit/provider/package/ips_spec.rb +227 -227
- data/spec/unit/provider/package/macports_spec.rb +203 -203
- data/spec/unit/provider/package/openbsd_spec.rb +132 -132
- data/spec/unit/provider/package/pacman_spec.rb +194 -194
- data/spec/unit/provider/package/paludis_spec.rb +134 -134
- data/spec/unit/provider/package/portage_spec.rb +310 -310
- data/spec/unit/provider/package/rpm_spec.rb +429 -429
- data/spec/unit/provider/package/rubygems_spec.rb +782 -782
- data/spec/unit/provider/package/smartos_spec.rb +110 -110
- data/spec/unit/provider/package/solaris_spec.rb +167 -167
- data/spec/unit/provider/package/windows/exe_spec.rb +187 -187
- data/spec/unit/provider/package/windows/msi_spec.rb +159 -159
- data/spec/unit/provider/package/windows_spec.rb +397 -376
- data/spec/unit/provider/package/yum_spec.rb +2267 -2267
- data/spec/unit/provider/package/zypper_spec.rb +268 -268
- data/spec/unit/provider/package_spec.rb +870 -870
- data/spec/unit/provider/powershell_script_spec.rb +106 -106
- data/spec/unit/provider/registry_key_spec.rb +295 -295
- data/spec/unit/provider/remote_directory_spec.rb +221 -221
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +245 -245
- data/spec/unit/provider/remote_file/content_spec.rb +252 -252
- data/spec/unit/provider/remote_file/fetcher_spec.rb +94 -94
- data/spec/unit/provider/remote_file/ftp_spec.rb +219 -219
- data/spec/unit/provider/remote_file/http_spec.rb +301 -301
- data/spec/unit/provider/remote_file/local_file_spec.rb +103 -103
- data/spec/unit/provider/remote_file/network_file_spec.rb +45 -45
- data/spec/unit/provider/remote_file_spec.rb +61 -61
- data/spec/unit/provider/route_spec.rb +242 -242
- data/spec/unit/provider/ruby_block_spec.rb +45 -45
- data/spec/unit/provider/script_spec.rb +114 -114
- data/spec/unit/provider/service/aix_service_spec.rb +195 -195
- data/spec/unit/provider/service/aixinit_service_spec.rb +272 -272
- data/spec/unit/provider/service/arch_service_spec.rb +324 -324
- data/spec/unit/provider/service/debian_service_spec.rb +375 -375
- data/spec/unit/provider/service/freebsd_service_spec.rb +613 -613
- data/spec/unit/provider/service/gentoo_service_spec.rb +144 -144
- data/spec/unit/provider/service/init_service_spec.rb +235 -235
- data/spec/unit/provider/service/insserv_service_spec.rb +75 -75
- data/spec/unit/provider/service/invokercd_service_spec.rb +211 -211
- data/spec/unit/provider/service/macosx_spec.rb +335 -335
- data/spec/unit/provider/service/openbsd_service_spec.rb +545 -545
- data/spec/unit/provider/service/redhat_spec.rb +236 -236
- data/spec/unit/provider/service/simple_service_spec.rb +169 -169
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +255 -255
- data/spec/unit/provider/service/systemd_service_spec.rb +344 -279
- data/spec/unit/provider/service/upstart_service_spec.rb +342 -342
- data/spec/unit/provider/service/windows_spec.rb +463 -463
- data/spec/unit/provider/service_spec.rb +168 -168
- data/spec/unit/provider/subversion_spec.rb +298 -298
- data/spec/unit/provider/template/content_spec.rb +169 -169
- data/spec/unit/provider/template_spec.rb +89 -89
- data/spec/unit/provider/user/dscl_spec.rb +901 -900
- data/spec/unit/provider/user/pw_spec.rb +252 -252
- data/spec/unit/provider/user/solaris_spec.rb +139 -137
- data/spec/unit/provider/user/useradd_spec.rb +51 -51
- data/spec/unit/provider/user/windows_spec.rb +185 -185
- data/spec/unit/provider/user_spec.rb +474 -474
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +46 -46
- data/spec/unit/provider_resolver_spec.rb +893 -893
- data/spec/unit/provider_spec.rb +198 -198
- data/spec/unit/pure_application_spec.rb +32 -32
- data/spec/unit/recipe_spec.rb +699 -699
- data/spec/unit/resource/apt_package_spec.rb +38 -38
- data/spec/unit/resource/apt_update_spec.rb +38 -38
- data/spec/unit/resource/bash_spec.rb +40 -40
- data/spec/unit/resource/batch_spec.rb +49 -49
- data/spec/unit/resource/breakpoint_spec.rb +47 -47
- data/spec/unit/resource/chef_gem_spec.rb +157 -157
- data/spec/unit/resource/chocolatey_package_spec.rb +67 -67
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -45
- data/spec/unit/resource/conditional_spec.rb +208 -208
- data/spec/unit/resource/cookbook_file_spec.rb +88 -88
- data/spec/unit/resource/cron_spec.rb +186 -186
- data/spec/unit/resource/csh_spec.rb +40 -40
- data/spec/unit/resource/deploy_revision_spec.rb +42 -42
- data/spec/unit/resource/deploy_spec.rb +283 -283
- data/spec/unit/resource/directory_spec.rb +82 -82
- data/spec/unit/resource/dpkg_package_spec.rb +32 -32
- data/spec/unit/resource/dsc_resource_spec.rb +96 -96
- data/spec/unit/resource/dsc_script_spec.rb +134 -134
- data/spec/unit/resource/easy_install_package_spec.rb +39 -39
- data/spec/unit/resource/env_spec.rb +85 -85
- data/spec/unit/resource/erl_call_spec.rb +81 -81
- data/spec/unit/resource/execute_spec.rb +35 -35
- data/spec/unit/resource/file/verification_spec.rb +139 -139
- data/spec/unit/resource/file_spec.rb +130 -130
- data/spec/unit/resource/freebsd_package_spec.rb +87 -87
- data/spec/unit/resource/gem_package_spec.rb +42 -42
- data/spec/unit/resource/git_spec.rb +50 -50
- data/spec/unit/resource/group_spec.rb +162 -157
- data/spec/unit/resource/homebrew_package_spec.rb +50 -50
- data/spec/unit/resource/http_request_spec.rb +59 -59
- data/spec/unit/resource/ifconfig_spec.rb +109 -109
- data/spec/unit/resource/ips_package_spec.rb +40 -40
- data/spec/unit/resource/ksh_spec.rb +40 -40
- data/spec/unit/resource/launchd_spec.rb +31 -0
- data/spec/unit/resource/link_spec.rb +134 -134
- data/spec/unit/resource/log_spec.rb +73 -73
- data/spec/unit/resource/macports_package_spec.rb +32 -32
- data/spec/unit/resource/mdadm_spec.rb +102 -102
- data/spec/unit/resource/mount_spec.rb +214 -214
- data/spec/unit/resource/ohai_spec.rb +61 -61
- data/spec/unit/resource/openbsd_package_spec.rb +48 -48
- data/spec/unit/resource/osx_profile_spec.rb +61 -61
- data/spec/unit/resource/package_spec.rb +93 -93
- data/spec/unit/resource/pacman_package_spec.rb +32 -32
- data/spec/unit/resource/perl_spec.rb +40 -40
- data/spec/unit/resource/portage_package_spec.rb +38 -38
- data/spec/unit/resource/powershell_script_spec.rb +136 -136
- data/spec/unit/resource/python_spec.rb +40 -40
- data/spec/unit/resource/registry_key_spec.rb +199 -199
- data/spec/unit/resource/remote_directory_spec.rb +97 -97
- data/spec/unit/resource/remote_file_spec.rb +207 -207
- data/spec/unit/resource/resource_notification_spec.rb +169 -169
- data/spec/unit/resource/route_spec.rb +107 -107
- data/spec/unit/resource/rpm_package_spec.rb +46 -46
- data/spec/unit/resource/ruby_block_spec.rb +61 -61
- data/spec/unit/resource/ruby_spec.rb +40 -40
- data/spec/unit/resource/scm_spec.rb +193 -193
- data/spec/unit/resource/script_spec.rb +44 -44
- data/spec/unit/resource/service_spec.rb +179 -179
- data/spec/unit/resource/smartos_package_spec.rb +33 -33
- data/spec/unit/resource/solaris_package_spec.rb +42 -42
- data/spec/unit/resource/subversion_spec.rb +71 -71
- data/spec/unit/resource/template_spec.rb +210 -210
- data/spec/unit/resource/timestamped_deploy_spec.rb +32 -32
- data/spec/unit/resource/user_spec.rb +133 -133
- data/spec/unit/resource/windows_package_spec.rb +95 -95
- data/spec/unit/resource/windows_service_spec.rb +49 -49
- data/spec/unit/resource/yum_package_spec.rb +89 -89
- data/spec/unit/resource_builder_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_list_spec.rb +137 -137
- data/spec/unit/resource_collection/resource_set_spec.rb +199 -199
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +144 -144
- data/spec/unit/resource_collection_spec.rb +299 -299
- data/spec/unit/resource_definition_spec.rb +117 -117
- data/spec/unit/resource_reporter_spec.rb +758 -758
- data/spec/unit/resource_resolver_spec.rb +52 -52
- data/spec/unit/resource_spec.rb +1101 -1101
- data/spec/unit/rest/auth_credentials_spec.rb +296 -296
- data/spec/unit/rest_spec.rb +753 -753
- data/spec/unit/role_spec.rb +358 -358
- data/spec/unit/run_context/child_run_context_spec.rb +133 -133
- data/spec/unit/run_context/cookbook_compiler_spec.rb +184 -184
- data/spec/unit/run_context_spec.rb +241 -241
- data/spec/unit/run_list/run_list_expansion_spec.rb +144 -144
- data/spec/unit/run_list/run_list_item_spec.rb +117 -117
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +194 -194
- data/spec/unit/run_list_spec.rb +312 -312
- data/spec/unit/run_lock_spec.rb +140 -140
- data/spec/unit/run_status_spec.rb +144 -144
- data/spec/unit/runner_spec.rb +411 -411
- data/spec/unit/scan_access_control_spec.rb +183 -183
- data/spec/unit/search/query_spec.rb +289 -289
- data/spec/unit/shell/model_wrapper_spec.rb +96 -96
- data/spec/unit/shell/shell_ext_spec.rb +153 -153
- data/spec/unit/shell/shell_session_spec.rb +195 -195
- data/spec/unit/shell_out_spec.rb +18 -18
- data/spec/unit/shell_spec.rb +162 -162
- data/spec/unit/user_spec.rb +275 -275
- data/spec/unit/user_v1_spec.rb +583 -583
- data/spec/unit/util/backup_spec.rb +141 -141
- data/spec/unit/util/diff_spec.rb +576 -576
- data/spec/unit/util/dsc/configuration_generator_spec.rb +193 -193
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +164 -164
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +138 -138
- data/spec/unit/util/dsc/resource_store.rb +76 -76
- data/spec/unit/util/editor_spec.rb +152 -152
- data/spec/unit/util/file_edit_spec.rb +224 -224
- data/spec/unit/util/powershell/cmdlet_spec.rb +106 -106
- data/spec/unit/util/powershell/ps_credential_spec.rb +44 -44
- data/spec/unit/util/selinux_spec.rb +171 -171
- data/spec/unit/util/threaded_job_queue_spec.rb +51 -51
- data/spec/unit/version/platform_spec.rb +60 -60
- data/spec/unit/version_class_spec.rb +171 -171
- data/spec/unit/version_constraint/platform_spec.rb +45 -45
- data/spec/unit/version_constraint_spec.rb +179 -179
- data/spec/unit/win32/registry_spec.rb +394 -394
- data/spec/unit/windows_service_spec.rb +116 -116
- data/tasks/cbgb.rb +84 -84
- data/tasks/external_tests.rb +64 -64
- data/tasks/maintainers.rb +210 -210
- data/tasks/rspec.rb +89 -89
- metadata +428 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbooks_dir.rb +0 -84
@@ -1,601 +1,601 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Adam Edwards (<adamed@chef.io>)
|
3
|
-
# Copyright:: Copyright 2013-2016, Chef Software 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 "chef/platform/query_helpers"
|
20
|
-
require "spec_helper"
|
21
|
-
|
22
|
-
describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
23
|
-
|
24
|
-
include_context Chef::Resource::WindowsScript
|
25
|
-
|
26
|
-
let (:architecture_command) { "echo $env:PROCESSOR_ARCHITECTURE" }
|
27
|
-
let (:output_command) { " | out-file -encoding ASCII " }
|
28
|
-
|
29
|
-
it_behaves_like "a Windows script running on Windows"
|
30
|
-
|
31
|
-
let(:successful_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
|
32
|
-
let(:failed_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe /badargument" }
|
33
|
-
let(:processor_architecture_script_content) { "echo $env:PROCESSOR_ARCHITECTURE" }
|
34
|
-
let(:native_architecture_script_content) { "echo $env:PROCESSOR_ARCHITECTUREW6432" }
|
35
|
-
let(:cmdlet_exit_code_not_found_content) { "get-item '.\\thisdoesnotexist'" }
|
36
|
-
let(:cmdlet_exit_code_success_content) { "get-item ." }
|
37
|
-
let(:windows_process_exit_code_success_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
|
38
|
-
let(:windows_process_exit_code_not_found_content) { "findstr /notavalidswitch" }
|
39
|
-
# Note that process exit codes on 32-bit Win2k3 cannot
|
40
|
-
# exceed maximum value of signed integer
|
41
|
-
let(:arbitrary_nonzero_process_exit_code) { 4193 }
|
42
|
-
let(:arbitrary_nonzero_process_exit_code_content) { "exit #{arbitrary_nonzero_process_exit_code}" }
|
43
|
-
let(:invalid_powershell_interpreter_flag) { "/thisflagisinvalid" }
|
44
|
-
let(:valid_powershell_interpreter_flag) { "-Sta" }
|
45
|
-
|
46
|
-
let!(:resource) do
|
47
|
-
r = Chef::Resource::WindowsScript::PowershellScript.new("Powershell resource functional test", @run_context)
|
48
|
-
r.code(successful_executable_script_content)
|
49
|
-
r
|
50
|
-
end
|
51
|
-
|
52
|
-
describe "when the run action is invoked on Windows" do
|
53
|
-
it "successfully executes a non-cmdlet Windows binary as the last command of the script" do
|
54
|
-
resource.code(successful_executable_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
55
|
-
resource.returns(0)
|
56
|
-
resource.run_action(:run)
|
57
|
-
end
|
58
|
-
|
59
|
-
it "returns the exit status 27 for a powershell script that exits with 27" do
|
60
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
61
|
-
|
62
|
-
file = Tempfile.new(["foo", ".ps1"])
|
63
|
-
begin
|
64
|
-
file.write "exit 27"
|
65
|
-
file.close
|
66
|
-
resource.code(". \"#{file.path}\"")
|
67
|
-
resource.returns(27)
|
68
|
-
resource.run_action(:run)
|
69
|
-
ensure
|
70
|
-
file.close
|
71
|
-
file.unlink
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
let (:negative_exit_status) { -27 }
|
76
|
-
let (:unsigned_exit_status) { (-negative_exit_status ^ 65535) + 1 }
|
77
|
-
it "returns the exit status -27 as a signed integer or an unsigned 16-bit 2's complement value of 65509 for a powershell script that exits with -27" do
|
78
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
79
|
-
|
80
|
-
# Versions of PowerShell prior to 4.0 return a 16-bit unsigned value --
|
81
|
-
# PowerShell 4.0 and later versions return a 32-bit signed value.
|
82
|
-
file = Tempfile.new(["foo", ".ps1"])
|
83
|
-
begin
|
84
|
-
file.write "exit #{negative_exit_status}"
|
85
|
-
file.close
|
86
|
-
resource.code(". \"#{file.path}\"")
|
87
|
-
|
88
|
-
# PowerShell earlier than 4.0 takes negative exit codes
|
89
|
-
# and returns them as the underlying unsigned 16-bit
|
90
|
-
# 2's complement representation. We cover multiple versions
|
91
|
-
# of PowerShell in this example by including both the signed
|
92
|
-
# exit code and its converted counterpart as permitted return values.
|
93
|
-
# See http://support.microsoft.com/en-us/kb/2646183/zh-cn
|
94
|
-
resource.returns([negative_exit_status, unsigned_exit_status])
|
95
|
-
expect { resource.run_action(:run) }.not_to raise_error
|
96
|
-
ensure
|
97
|
-
file.close
|
98
|
-
file.unlink
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
it "returns the process exit code" do
|
103
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
104
|
-
|
105
|
-
resource.code(arbitrary_nonzero_process_exit_code_content)
|
106
|
-
resource.returns(arbitrary_nonzero_process_exit_code)
|
107
|
-
resource.run_action(:run)
|
108
|
-
end
|
109
|
-
|
110
|
-
it "returns 0 if the last command was a cmdlet that succeeded" do
|
111
|
-
resource.code(cmdlet_exit_code_success_content)
|
112
|
-
resource.returns(0)
|
113
|
-
resource.run_action(:run)
|
114
|
-
end
|
115
|
-
|
116
|
-
it "returns 0 if the last command was a cmdlet that succeeded and was preceded by a non-cmdlet Windows binary that failed" do
|
117
|
-
resource.code([windows_process_exit_code_not_found_content, cmdlet_exit_code_success_content].join(";"))
|
118
|
-
resource.returns(0)
|
119
|
-
resource.run_action(:run)
|
120
|
-
end
|
121
|
-
|
122
|
-
it "returns 1 if the last command was a cmdlet that failed" do
|
123
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
124
|
-
|
125
|
-
resource.code(cmdlet_exit_code_not_found_content)
|
126
|
-
resource.returns(1)
|
127
|
-
resource.run_action(:run)
|
128
|
-
end
|
129
|
-
|
130
|
-
it "returns 1 if the last command was a cmdlet that failed and was preceded by a successfully executed non-cmdlet Windows binary" do
|
131
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
132
|
-
|
133
|
-
resource.code([windows_process_exit_code_success_content, cmdlet_exit_code_not_found_content].join(";"))
|
134
|
-
resource.returns(1)
|
135
|
-
expect { resource.run_action(:run) }.not_to raise_error
|
136
|
-
end
|
137
|
-
|
138
|
-
it "raises a Mixlib::ShellOut::ShellCommandFailed error if the script is not syntactically correct" do
|
139
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
140
|
-
|
141
|
-
resource.code("if({)")
|
142
|
-
resource.returns(0)
|
143
|
-
expect { resource.run_action(:run) }.to raise_error(Mixlib::ShellOut::ShellCommandFailed)
|
144
|
-
end
|
145
|
-
|
146
|
-
it "raises an error if the script is not syntactically correct even if returns is set to 1 which is what powershell.exe returns for syntactically invalid scripts" do
|
147
|
-
# This test fails because shell_out expects the exit status to be 1, but it is actually 0
|
148
|
-
# The error is a false-positive.
|
149
|
-
skip "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
150
|
-
|
151
|
-
resource.code("if({)")
|
152
|
-
resource.returns(1)
|
153
|
-
expect { resource.run_action(:run) }.to raise_error(Mixlib::ShellOut::ShellCommandFailed)
|
154
|
-
end
|
155
|
-
|
156
|
-
# This somewhat ambiguous case, two failures of different types,
|
157
|
-
# seems to violate the principle of returning the status of the
|
158
|
-
# last line executed -- in this case, we return the status of the
|
159
|
-
# second to last line. This happens because Powershell gives no
|
160
|
-
# way for us to determine whether the last operation was a cmdlet
|
161
|
-
# or Windows process. Because the latter gives more specific
|
162
|
-
# errors than 0 or 1, we return that instead, which is acceptable
|
163
|
-
# since callers can test for nonzero rather than testing for 1.
|
164
|
-
it "returns 1 if the last command was a cmdlet that failed and was preceded by an unsuccessfully executed non-cmdlet Windows binary" do
|
165
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
166
|
-
|
167
|
-
resource.code([arbitrary_nonzero_process_exit_code_content, cmdlet_exit_code_not_found_content].join(";"))
|
168
|
-
resource.returns(arbitrary_nonzero_process_exit_code)
|
169
|
-
resource.run_action(:run)
|
170
|
-
end
|
171
|
-
|
172
|
-
it "returns 0 if the last command was a non-cmdlet Windows binary that succeeded and was preceded by a failed cmdlet" do
|
173
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
174
|
-
|
175
|
-
resource.code([cmdlet_exit_code_success_content, arbitrary_nonzero_process_exit_code_content].join(";"))
|
176
|
-
resource.returns(arbitrary_nonzero_process_exit_code)
|
177
|
-
resource.run_action(:run)
|
178
|
-
end
|
179
|
-
|
180
|
-
it "returns a specific error code if the last command was a non-cmdlet Windows binary that failed and was preceded by cmdlet that succeeded" do
|
181
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
182
|
-
|
183
|
-
resource.code([cmdlet_exit_code_success_content, arbitrary_nonzero_process_exit_code_content].join(";"))
|
184
|
-
resource.returns(arbitrary_nonzero_process_exit_code)
|
185
|
-
resource.run_action(:run)
|
186
|
-
end
|
187
|
-
|
188
|
-
it "returns a specific error code if the last command was a non-cmdlet Windows binary that failed and was preceded by cmdlet that failed" do
|
189
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
190
|
-
|
191
|
-
resource.code([cmdlet_exit_code_not_found_content, arbitrary_nonzero_process_exit_code_content].join(";"))
|
192
|
-
resource.returns(arbitrary_nonzero_process_exit_code)
|
193
|
-
resource.run_action(:run)
|
194
|
-
end
|
195
|
-
|
196
|
-
it "returns 0 for $false as the last line of the script when convert_boolean_return is false" do
|
197
|
-
resource.code "$false"
|
198
|
-
resource.returns(0)
|
199
|
-
resource.run_action(:run)
|
200
|
-
end
|
201
|
-
|
202
|
-
it "returns 0 for $true as the last line of the script when convert_boolean_return is false" do
|
203
|
-
resource.code "$true"
|
204
|
-
resource.returns(0)
|
205
|
-
resource.run_action(:run)
|
206
|
-
end
|
207
|
-
|
208
|
-
it "returns 1 for $false as the last line of the script when convert_boolean_return is true" do
|
209
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
210
|
-
|
211
|
-
resource.convert_boolean_return true
|
212
|
-
resource.code "$false"
|
213
|
-
resource.returns(1)
|
214
|
-
resource.run_action(:run)
|
215
|
-
end
|
216
|
-
|
217
|
-
it "returns 0 for $true as the last line of the script when convert_boolean_return is true" do
|
218
|
-
resource.convert_boolean_return true
|
219
|
-
resource.code "$true"
|
220
|
-
resource.returns(0)
|
221
|
-
resource.run_action(:run)
|
222
|
-
end
|
223
|
-
|
224
|
-
it "executes a script with a 64-bit process on a 64-bit OS, otherwise a 32-bit process" do
|
225
|
-
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
226
|
-
resource.returns(0)
|
227
|
-
resource.run_action(:run)
|
228
|
-
|
229
|
-
is_64_bit = (ENV["PROCESSOR_ARCHITECTURE"] == "AMD64") || (ENV["PROCESSOR_ARCHITEW6432"] == "AMD64")
|
230
|
-
|
231
|
-
detected_64_bit = source_contains_case_insensitive_content?( get_script_output, "AMD64" )
|
232
|
-
|
233
|
-
expect(is_64_bit).to eq(detected_64_bit)
|
234
|
-
end
|
235
|
-
|
236
|
-
it "returns 1 if an invalid flag is passed to the interpreter" do
|
237
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
238
|
-
|
239
|
-
resource.code(cmdlet_exit_code_success_content)
|
240
|
-
resource.flags(invalid_powershell_interpreter_flag)
|
241
|
-
resource.returns(1)
|
242
|
-
resource.run_action(:run)
|
243
|
-
end
|
244
|
-
|
245
|
-
it "returns 0 if a valid flag is passed to the interpreter" do
|
246
|
-
resource.code(cmdlet_exit_code_success_content)
|
247
|
-
resource.flags(valid_powershell_interpreter_flag)
|
248
|
-
resource.returns(0)
|
249
|
-
resource.run_action(:run)
|
250
|
-
end
|
251
|
-
|
252
|
-
it "raises an error when given a block and a guard_interpreter" do
|
253
|
-
resource.guard_interpreter :sh
|
254
|
-
resource.only_if { true }
|
255
|
-
expect { resource.should_skip?(:run) }.to raise_error(ArgumentError, /guard_interpreter does not support blocks/)
|
256
|
-
end
|
257
|
-
|
258
|
-
context "when dsc is supported", :windows_powershell_dsc_only do
|
259
|
-
it "can execute LCM configuration code" do
|
260
|
-
resource.code <<-EOF
|
261
|
-
configuration LCM
|
262
|
-
{
|
263
|
-
param ($thumbprint)
|
264
|
-
localconfigurationmanager
|
265
|
-
{
|
266
|
-
RebootNodeIfNeeded = $false
|
267
|
-
ConfigurationMode = 'ApplyOnly'
|
268
|
-
}
|
269
|
-
}
|
270
|
-
EOF
|
271
|
-
expect { resource.run_action(:run) }.not_to raise_error
|
272
|
-
end
|
273
|
-
end
|
274
|
-
end
|
275
|
-
|
276
|
-
context "when running on a 32-bit version of Ruby", :ruby32_only do
|
277
|
-
it "executes a script with a 32-bit process if process architecture :i386 is specified" do
|
278
|
-
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
279
|
-
resource.architecture(:i386)
|
280
|
-
resource.returns(0)
|
281
|
-
resource.run_action(:run)
|
282
|
-
|
283
|
-
expect(source_contains_case_insensitive_content?( get_script_output, "x86" )).to eq(true)
|
284
|
-
end
|
285
|
-
|
286
|
-
context "when running on a 64-bit version of Windows", :windows64_only do
|
287
|
-
it "executes a script with a 64-bit process if :x86_64 arch is specified" do
|
288
|
-
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
289
|
-
resource.architecture(:x86_64)
|
290
|
-
resource.returns(0)
|
291
|
-
resource.run_action(:run)
|
292
|
-
|
293
|
-
expect(source_contains_case_insensitive_content?( get_script_output, "AMD64" )).to eq(true)
|
294
|
-
end
|
295
|
-
end
|
296
|
-
|
297
|
-
context "when running on a 32-bit version of Windows", :windows32_only do
|
298
|
-
it "raises an exception if :x86_64 process architecture is specified" do
|
299
|
-
begin
|
300
|
-
expect(resource.architecture(:x86_64)).to raise_error Chef::Exceptions::Win32ArchitectureIncorrect
|
301
|
-
rescue Chef::Exceptions::Win32ArchitectureIncorrect
|
302
|
-
end
|
303
|
-
end
|
304
|
-
end
|
305
|
-
end
|
306
|
-
|
307
|
-
context "when running on a 64-bit version of Ruby", :ruby64_only do
|
308
|
-
it "executes a script with a 64-bit process if :x86_64 arch is specified" do
|
309
|
-
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
310
|
-
resource.architecture(:x86_64)
|
311
|
-
resource.returns(0)
|
312
|
-
resource.run_action(:run)
|
313
|
-
|
314
|
-
expect(source_contains_case_insensitive_content?( get_script_output, "AMD64" )).to eq(true)
|
315
|
-
end
|
316
|
-
|
317
|
-
it "executes a script with a 32-bit process if :i386 arch is specified", :not_supported_on_nano do
|
318
|
-
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
319
|
-
resource.architecture(:i386)
|
320
|
-
resource.returns(0)
|
321
|
-
resource.run_action(:run)
|
322
|
-
|
323
|
-
expect(source_contains_case_insensitive_content?( get_script_output, "x86" )).to eq(true)
|
324
|
-
end
|
325
|
-
|
326
|
-
it "raises an error when executing a script with a 32-bit process on Windows Nano Server", :windows_nano_only do
|
327
|
-
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
328
|
-
expect { resource.architecture(:i386) }.to raise_error(Chef::Exceptions::Win32ArchitectureIncorrect,
|
329
|
-
"cannot execute script with requested architecture 'i386' on Windows Nano Server")
|
330
|
-
end
|
331
|
-
end
|
332
|
-
|
333
|
-
describe "when executing guards" do
|
334
|
-
before(:each) do
|
335
|
-
resource.not_if.clear
|
336
|
-
resource.only_if.clear
|
337
|
-
end
|
338
|
-
|
339
|
-
context "when the guard_interpreter's default value of :powershell_script is overridden to :default" do
|
340
|
-
before(:each) do
|
341
|
-
resource.guard_interpreter :default
|
342
|
-
end
|
343
|
-
|
344
|
-
it "evaluates a succeeding not_if block using cmd.exe as false by default" do
|
345
|
-
resource.not_if "exit /b 0"
|
346
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
347
|
-
end
|
348
|
-
|
349
|
-
it "evaluates a failing not_if block using cmd.exe as true by default" do
|
350
|
-
resource.not_if "exit /b 2"
|
351
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
352
|
-
end
|
353
|
-
|
354
|
-
it "evaluates an succeeding only_if block using cmd.exe as true by default" do
|
355
|
-
resource.only_if "exit /b 0"
|
356
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
357
|
-
end
|
358
|
-
|
359
|
-
it "evaluates a failing only_if block using cmd.exe as false by default" do
|
360
|
-
resource.only_if "exit /b 2"
|
361
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
362
|
-
end
|
363
|
-
end
|
364
|
-
|
365
|
-
context "the only_if is specified before the guard" do
|
366
|
-
before do
|
367
|
-
resource.guard_interpreter :default
|
368
|
-
end
|
369
|
-
|
370
|
-
it "evaluates a powershell $true for a only_if block as true" do
|
371
|
-
resource.only_if "$true"
|
372
|
-
resource.guard_interpreter :powershell_script
|
373
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
374
|
-
end
|
375
|
-
end
|
376
|
-
|
377
|
-
context "with powershell_script as the guard_interpreter" do
|
378
|
-
|
379
|
-
it "has a guard_interpreter attribute set to :powershell_script" do
|
380
|
-
expect(resource.guard_interpreter).to eq(:powershell_script)
|
381
|
-
end
|
382
|
-
|
383
|
-
it "evaluates a powershell $false for a not_if block as true" do
|
384
|
-
pending "powershell.exe always exits with $true on nano" if Chef::Platform.windows_nano_server?
|
385
|
-
|
386
|
-
resource.not_if "$false"
|
387
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
388
|
-
end
|
389
|
-
|
390
|
-
it "evaluates a powershell $true for a not_if block as false" do
|
391
|
-
resource.not_if "$true"
|
392
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
393
|
-
end
|
394
|
-
|
395
|
-
it "evaluates a powershell $false for an only_if block as false" do
|
396
|
-
pending "powershell.exe always exits with $true on nano" if Chef::Platform.windows_nano_server?
|
397
|
-
|
398
|
-
resource.only_if "$false"
|
399
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
400
|
-
end
|
401
|
-
|
402
|
-
it "evaluates a powershell $true for a only_if block as true" do
|
403
|
-
resource.only_if "$true"
|
404
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
405
|
-
end
|
406
|
-
|
407
|
-
it "evaluates a not_if block using powershell.exe" do
|
408
|
-
resource.not_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
|
409
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
410
|
-
end
|
411
|
-
|
412
|
-
it "evaluates an only_if block using powershell.exe" do
|
413
|
-
resource.only_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
|
414
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
415
|
-
end
|
416
|
-
|
417
|
-
it "evaluates a non-zero powershell exit status for not_if as true" do
|
418
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
419
|
-
|
420
|
-
resource.not_if "exit 37"
|
421
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
422
|
-
end
|
423
|
-
|
424
|
-
it "evaluates a zero powershell exit status for not_if as false" do
|
425
|
-
resource.not_if "exit 0"
|
426
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
427
|
-
end
|
428
|
-
|
429
|
-
it "evaluates a failed executable exit status for not_if as false" do
|
430
|
-
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
431
|
-
|
432
|
-
resource.not_if windows_process_exit_code_not_found_content
|
433
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
434
|
-
end
|
435
|
-
|
436
|
-
it "evaluates a successful executable exit status for not_if as true" do
|
437
|
-
resource.not_if windows_process_exit_code_success_content
|
438
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
439
|
-
end
|
440
|
-
|
441
|
-
it "evaluates a failed executable exit status for only_if as false" do
|
442
|
-
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
443
|
-
|
444
|
-
resource.only_if windows_process_exit_code_not_found_content
|
445
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
446
|
-
end
|
447
|
-
|
448
|
-
it "evaluates a successful executable exit status for only_if as true" do
|
449
|
-
resource.only_if windows_process_exit_code_success_content
|
450
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
451
|
-
end
|
452
|
-
|
453
|
-
it "evaluates a failed cmdlet exit status for not_if as true" do
|
454
|
-
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
455
|
-
|
456
|
-
resource.not_if "throw 'up'"
|
457
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
458
|
-
end
|
459
|
-
|
460
|
-
it "evaluates a successful cmdlet exit status for not_if as true" do
|
461
|
-
resource.not_if
|
462
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
463
|
-
end
|
464
|
-
|
465
|
-
it "evaluates a failed cmdlet exit status for only_if as false" do
|
466
|
-
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
467
|
-
|
468
|
-
resource.only_if "throw 'up'"
|
469
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
470
|
-
end
|
471
|
-
|
472
|
-
it "evaluates a successful cmdlet exit status for only_if as true" do
|
473
|
-
resource.only_if "cd ."
|
474
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
475
|
-
end
|
476
|
-
|
477
|
-
it "evaluates a not_if block using the cwd guard parameter" do
|
478
|
-
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
479
|
-
resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
|
480
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
481
|
-
end
|
482
|
-
|
483
|
-
it "evaluates an only_if block using the cwd guard parameter" do
|
484
|
-
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
485
|
-
resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
|
486
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
487
|
-
end
|
488
|
-
|
489
|
-
it "inherits cwd from the parent resource for only_if" do
|
490
|
-
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
491
|
-
resource.cwd custom_cwd
|
492
|
-
resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
|
493
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
494
|
-
end
|
495
|
-
|
496
|
-
it "inherits cwd from the parent resource for not_if" do
|
497
|
-
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
498
|
-
resource.cwd custom_cwd
|
499
|
-
resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
|
500
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
501
|
-
end
|
502
|
-
|
503
|
-
it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean false as zero status code", :windows64_only do
|
504
|
-
resource.architecture :x86_64
|
505
|
-
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'AMD64')"
|
506
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
507
|
-
end
|
508
|
-
|
509
|
-
it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean true as nonzero status code", :windows64_only do
|
510
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
511
|
-
|
512
|
-
resource.architecture :x86_64
|
513
|
-
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'AMD64')"
|
514
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
515
|
-
end
|
516
|
-
|
517
|
-
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code", :not_supported_on_nano do
|
518
|
-
resource.architecture :i386
|
519
|
-
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'X86')"
|
520
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
521
|
-
end
|
522
|
-
|
523
|
-
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code", :not_supported_on_nano do
|
524
|
-
resource.architecture :i386
|
525
|
-
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'X86')"
|
526
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
527
|
-
end
|
528
|
-
|
529
|
-
it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for only_if" do
|
530
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
531
|
-
|
532
|
-
resource.convert_boolean_return true
|
533
|
-
resource.only_if "$false"
|
534
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
535
|
-
end
|
536
|
-
|
537
|
-
it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for not_if" do
|
538
|
-
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
539
|
-
|
540
|
-
resource.convert_boolean_return true
|
541
|
-
resource.not_if "$false"
|
542
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
543
|
-
end
|
544
|
-
|
545
|
-
it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for only_if" do
|
546
|
-
resource.convert_boolean_return true
|
547
|
-
resource.only_if "$true"
|
548
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
549
|
-
end
|
550
|
-
|
551
|
-
it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for not_if" do
|
552
|
-
resource.convert_boolean_return true
|
553
|
-
resource.not_if "$true"
|
554
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
555
|
-
end
|
556
|
-
|
557
|
-
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", :not_supported_on_nano do
|
558
|
-
resource.convert_boolean_return true
|
559
|
-
resource.architecture :i386
|
560
|
-
resource.only_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
|
561
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
562
|
-
end
|
563
|
-
|
564
|
-
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", :not_supported_on_nano do
|
565
|
-
resource.convert_boolean_return true
|
566
|
-
resource.architecture :i386
|
567
|
-
resource.not_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
|
568
|
-
expect(resource.should_skip?(:run)).to be_falsey
|
569
|
-
end
|
570
|
-
|
571
|
-
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", :not_supported_on_nano do
|
572
|
-
resource.convert_boolean_return true
|
573
|
-
resource.architecture :i386
|
574
|
-
resource.only_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
|
575
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
576
|
-
end
|
577
|
-
|
578
|
-
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", :not_supported_on_nano do
|
579
|
-
resource.convert_boolean_return true
|
580
|
-
resource.architecture :i386
|
581
|
-
resource.not_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
|
582
|
-
expect(resource.should_skip?(:run)).to be_truthy
|
583
|
-
end
|
584
|
-
|
585
|
-
it "raises an error when a 32-bit guard is used on Windows Nano Server", :windows_nano_only do
|
586
|
-
resource.only_if "$true", :architecture => :i386
|
587
|
-
expect { resource.run_action(:run) }.to raise_error(
|
588
|
-
Chef::Exceptions::Win32ArchitectureIncorrect,
|
589
|
-
/cannot execute script with requested architecture 'i386' on Windows Nano Server/)
|
590
|
-
end
|
591
|
-
end
|
592
|
-
end
|
593
|
-
|
594
|
-
def get_script_output
|
595
|
-
script_output = File.read(script_output_path)
|
596
|
-
end
|
597
|
-
|
598
|
-
def source_contains_case_insensitive_content?( source, content )
|
599
|
-
source.downcase.include?(content.downcase)
|
600
|
-
end
|
601
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Adam Edwards (<adamed@chef.io>)
|
3
|
+
# Copyright:: Copyright 2013-2016, Chef Software 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 "chef/platform/query_helpers"
|
20
|
+
require "spec_helper"
|
21
|
+
|
22
|
+
describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
23
|
+
|
24
|
+
include_context Chef::Resource::WindowsScript
|
25
|
+
|
26
|
+
let (:architecture_command) { "echo $env:PROCESSOR_ARCHITECTURE" }
|
27
|
+
let (:output_command) { " | out-file -encoding ASCII " }
|
28
|
+
|
29
|
+
it_behaves_like "a Windows script running on Windows"
|
30
|
+
|
31
|
+
let(:successful_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
|
32
|
+
let(:failed_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe /badargument" }
|
33
|
+
let(:processor_architecture_script_content) { "echo $env:PROCESSOR_ARCHITECTURE" }
|
34
|
+
let(:native_architecture_script_content) { "echo $env:PROCESSOR_ARCHITECTUREW6432" }
|
35
|
+
let(:cmdlet_exit_code_not_found_content) { "get-item '.\\thisdoesnotexist'" }
|
36
|
+
let(:cmdlet_exit_code_success_content) { "get-item ." }
|
37
|
+
let(:windows_process_exit_code_success_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
|
38
|
+
let(:windows_process_exit_code_not_found_content) { "findstr /notavalidswitch" }
|
39
|
+
# Note that process exit codes on 32-bit Win2k3 cannot
|
40
|
+
# exceed maximum value of signed integer
|
41
|
+
let(:arbitrary_nonzero_process_exit_code) { 4193 }
|
42
|
+
let(:arbitrary_nonzero_process_exit_code_content) { "exit #{arbitrary_nonzero_process_exit_code}" }
|
43
|
+
let(:invalid_powershell_interpreter_flag) { "/thisflagisinvalid" }
|
44
|
+
let(:valid_powershell_interpreter_flag) { "-Sta" }
|
45
|
+
|
46
|
+
let!(:resource) do
|
47
|
+
r = Chef::Resource::WindowsScript::PowershellScript.new("Powershell resource functional test", @run_context)
|
48
|
+
r.code(successful_executable_script_content)
|
49
|
+
r
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "when the run action is invoked on Windows" do
|
53
|
+
it "successfully executes a non-cmdlet Windows binary as the last command of the script" do
|
54
|
+
resource.code(successful_executable_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
55
|
+
resource.returns(0)
|
56
|
+
resource.run_action(:run)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns the exit status 27 for a powershell script that exits with 27" do
|
60
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
61
|
+
|
62
|
+
file = Tempfile.new(["foo", ".ps1"])
|
63
|
+
begin
|
64
|
+
file.write "exit 27"
|
65
|
+
file.close
|
66
|
+
resource.code(". \"#{file.path}\"")
|
67
|
+
resource.returns(27)
|
68
|
+
resource.run_action(:run)
|
69
|
+
ensure
|
70
|
+
file.close
|
71
|
+
file.unlink
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
let (:negative_exit_status) { -27 }
|
76
|
+
let (:unsigned_exit_status) { (-negative_exit_status ^ 65535) + 1 }
|
77
|
+
it "returns the exit status -27 as a signed integer or an unsigned 16-bit 2's complement value of 65509 for a powershell script that exits with -27" do
|
78
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
79
|
+
|
80
|
+
# Versions of PowerShell prior to 4.0 return a 16-bit unsigned value --
|
81
|
+
# PowerShell 4.0 and later versions return a 32-bit signed value.
|
82
|
+
file = Tempfile.new(["foo", ".ps1"])
|
83
|
+
begin
|
84
|
+
file.write "exit #{negative_exit_status}"
|
85
|
+
file.close
|
86
|
+
resource.code(". \"#{file.path}\"")
|
87
|
+
|
88
|
+
# PowerShell earlier than 4.0 takes negative exit codes
|
89
|
+
# and returns them as the underlying unsigned 16-bit
|
90
|
+
# 2's complement representation. We cover multiple versions
|
91
|
+
# of PowerShell in this example by including both the signed
|
92
|
+
# exit code and its converted counterpart as permitted return values.
|
93
|
+
# See http://support.microsoft.com/en-us/kb/2646183/zh-cn
|
94
|
+
resource.returns([negative_exit_status, unsigned_exit_status])
|
95
|
+
expect { resource.run_action(:run) }.not_to raise_error
|
96
|
+
ensure
|
97
|
+
file.close
|
98
|
+
file.unlink
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
it "returns the process exit code" do
|
103
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
104
|
+
|
105
|
+
resource.code(arbitrary_nonzero_process_exit_code_content)
|
106
|
+
resource.returns(arbitrary_nonzero_process_exit_code)
|
107
|
+
resource.run_action(:run)
|
108
|
+
end
|
109
|
+
|
110
|
+
it "returns 0 if the last command was a cmdlet that succeeded" do
|
111
|
+
resource.code(cmdlet_exit_code_success_content)
|
112
|
+
resource.returns(0)
|
113
|
+
resource.run_action(:run)
|
114
|
+
end
|
115
|
+
|
116
|
+
it "returns 0 if the last command was a cmdlet that succeeded and was preceded by a non-cmdlet Windows binary that failed" do
|
117
|
+
resource.code([windows_process_exit_code_not_found_content, cmdlet_exit_code_success_content].join(";"))
|
118
|
+
resource.returns(0)
|
119
|
+
resource.run_action(:run)
|
120
|
+
end
|
121
|
+
|
122
|
+
it "returns 1 if the last command was a cmdlet that failed" do
|
123
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
124
|
+
|
125
|
+
resource.code(cmdlet_exit_code_not_found_content)
|
126
|
+
resource.returns(1)
|
127
|
+
resource.run_action(:run)
|
128
|
+
end
|
129
|
+
|
130
|
+
it "returns 1 if the last command was a cmdlet that failed and was preceded by a successfully executed non-cmdlet Windows binary" do
|
131
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
132
|
+
|
133
|
+
resource.code([windows_process_exit_code_success_content, cmdlet_exit_code_not_found_content].join(";"))
|
134
|
+
resource.returns(1)
|
135
|
+
expect { resource.run_action(:run) }.not_to raise_error
|
136
|
+
end
|
137
|
+
|
138
|
+
it "raises a Mixlib::ShellOut::ShellCommandFailed error if the script is not syntactically correct" do
|
139
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
140
|
+
|
141
|
+
resource.code("if({)")
|
142
|
+
resource.returns(0)
|
143
|
+
expect { resource.run_action(:run) }.to raise_error(Mixlib::ShellOut::ShellCommandFailed)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "raises an error if the script is not syntactically correct even if returns is set to 1 which is what powershell.exe returns for syntactically invalid scripts" do
|
147
|
+
# This test fails because shell_out expects the exit status to be 1, but it is actually 0
|
148
|
+
# The error is a false-positive.
|
149
|
+
skip "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
150
|
+
|
151
|
+
resource.code("if({)")
|
152
|
+
resource.returns(1)
|
153
|
+
expect { resource.run_action(:run) }.to raise_error(Mixlib::ShellOut::ShellCommandFailed)
|
154
|
+
end
|
155
|
+
|
156
|
+
# This somewhat ambiguous case, two failures of different types,
|
157
|
+
# seems to violate the principle of returning the status of the
|
158
|
+
# last line executed -- in this case, we return the status of the
|
159
|
+
# second to last line. This happens because Powershell gives no
|
160
|
+
# way for us to determine whether the last operation was a cmdlet
|
161
|
+
# or Windows process. Because the latter gives more specific
|
162
|
+
# errors than 0 or 1, we return that instead, which is acceptable
|
163
|
+
# since callers can test for nonzero rather than testing for 1.
|
164
|
+
it "returns 1 if the last command was a cmdlet that failed and was preceded by an unsuccessfully executed non-cmdlet Windows binary" do
|
165
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
166
|
+
|
167
|
+
resource.code([arbitrary_nonzero_process_exit_code_content, cmdlet_exit_code_not_found_content].join(";"))
|
168
|
+
resource.returns(arbitrary_nonzero_process_exit_code)
|
169
|
+
resource.run_action(:run)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "returns 0 if the last command was a non-cmdlet Windows binary that succeeded and was preceded by a failed cmdlet" do
|
173
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
174
|
+
|
175
|
+
resource.code([cmdlet_exit_code_success_content, arbitrary_nonzero_process_exit_code_content].join(";"))
|
176
|
+
resource.returns(arbitrary_nonzero_process_exit_code)
|
177
|
+
resource.run_action(:run)
|
178
|
+
end
|
179
|
+
|
180
|
+
it "returns a specific error code if the last command was a non-cmdlet Windows binary that failed and was preceded by cmdlet that succeeded" do
|
181
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
182
|
+
|
183
|
+
resource.code([cmdlet_exit_code_success_content, arbitrary_nonzero_process_exit_code_content].join(";"))
|
184
|
+
resource.returns(arbitrary_nonzero_process_exit_code)
|
185
|
+
resource.run_action(:run)
|
186
|
+
end
|
187
|
+
|
188
|
+
it "returns a specific error code if the last command was a non-cmdlet Windows binary that failed and was preceded by cmdlet that failed" do
|
189
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
190
|
+
|
191
|
+
resource.code([cmdlet_exit_code_not_found_content, arbitrary_nonzero_process_exit_code_content].join(";"))
|
192
|
+
resource.returns(arbitrary_nonzero_process_exit_code)
|
193
|
+
resource.run_action(:run)
|
194
|
+
end
|
195
|
+
|
196
|
+
it "returns 0 for $false as the last line of the script when convert_boolean_return is false" do
|
197
|
+
resource.code "$false"
|
198
|
+
resource.returns(0)
|
199
|
+
resource.run_action(:run)
|
200
|
+
end
|
201
|
+
|
202
|
+
it "returns 0 for $true as the last line of the script when convert_boolean_return is false" do
|
203
|
+
resource.code "$true"
|
204
|
+
resource.returns(0)
|
205
|
+
resource.run_action(:run)
|
206
|
+
end
|
207
|
+
|
208
|
+
it "returns 1 for $false as the last line of the script when convert_boolean_return is true" do
|
209
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
210
|
+
|
211
|
+
resource.convert_boolean_return true
|
212
|
+
resource.code "$false"
|
213
|
+
resource.returns(1)
|
214
|
+
resource.run_action(:run)
|
215
|
+
end
|
216
|
+
|
217
|
+
it "returns 0 for $true as the last line of the script when convert_boolean_return is true" do
|
218
|
+
resource.convert_boolean_return true
|
219
|
+
resource.code "$true"
|
220
|
+
resource.returns(0)
|
221
|
+
resource.run_action(:run)
|
222
|
+
end
|
223
|
+
|
224
|
+
it "executes a script with a 64-bit process on a 64-bit OS, otherwise a 32-bit process" do
|
225
|
+
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
226
|
+
resource.returns(0)
|
227
|
+
resource.run_action(:run)
|
228
|
+
|
229
|
+
is_64_bit = (ENV["PROCESSOR_ARCHITECTURE"] == "AMD64") || (ENV["PROCESSOR_ARCHITEW6432"] == "AMD64")
|
230
|
+
|
231
|
+
detected_64_bit = source_contains_case_insensitive_content?( get_script_output, "AMD64" )
|
232
|
+
|
233
|
+
expect(is_64_bit).to eq(detected_64_bit)
|
234
|
+
end
|
235
|
+
|
236
|
+
it "returns 1 if an invalid flag is passed to the interpreter" do
|
237
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
238
|
+
|
239
|
+
resource.code(cmdlet_exit_code_success_content)
|
240
|
+
resource.flags(invalid_powershell_interpreter_flag)
|
241
|
+
resource.returns(1)
|
242
|
+
resource.run_action(:run)
|
243
|
+
end
|
244
|
+
|
245
|
+
it "returns 0 if a valid flag is passed to the interpreter" do
|
246
|
+
resource.code(cmdlet_exit_code_success_content)
|
247
|
+
resource.flags(valid_powershell_interpreter_flag)
|
248
|
+
resource.returns(0)
|
249
|
+
resource.run_action(:run)
|
250
|
+
end
|
251
|
+
|
252
|
+
it "raises an error when given a block and a guard_interpreter" do
|
253
|
+
resource.guard_interpreter :sh
|
254
|
+
resource.only_if { true }
|
255
|
+
expect { resource.should_skip?(:run) }.to raise_error(ArgumentError, /guard_interpreter does not support blocks/)
|
256
|
+
end
|
257
|
+
|
258
|
+
context "when dsc is supported", :windows_powershell_dsc_only do
|
259
|
+
it "can execute LCM configuration code" do
|
260
|
+
resource.code <<-EOF
|
261
|
+
configuration LCM
|
262
|
+
{
|
263
|
+
param ($thumbprint)
|
264
|
+
localconfigurationmanager
|
265
|
+
{
|
266
|
+
RebootNodeIfNeeded = $false
|
267
|
+
ConfigurationMode = 'ApplyOnly'
|
268
|
+
}
|
269
|
+
}
|
270
|
+
EOF
|
271
|
+
expect { resource.run_action(:run) }.not_to raise_error
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
context "when running on a 32-bit version of Ruby", :ruby32_only do
|
277
|
+
it "executes a script with a 32-bit process if process architecture :i386 is specified" do
|
278
|
+
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
279
|
+
resource.architecture(:i386)
|
280
|
+
resource.returns(0)
|
281
|
+
resource.run_action(:run)
|
282
|
+
|
283
|
+
expect(source_contains_case_insensitive_content?( get_script_output, "x86" )).to eq(true)
|
284
|
+
end
|
285
|
+
|
286
|
+
context "when running on a 64-bit version of Windows", :windows64_only do
|
287
|
+
it "executes a script with a 64-bit process if :x86_64 arch is specified" do
|
288
|
+
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
289
|
+
resource.architecture(:x86_64)
|
290
|
+
resource.returns(0)
|
291
|
+
resource.run_action(:run)
|
292
|
+
|
293
|
+
expect(source_contains_case_insensitive_content?( get_script_output, "AMD64" )).to eq(true)
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
context "when running on a 32-bit version of Windows", :windows32_only do
|
298
|
+
it "raises an exception if :x86_64 process architecture is specified" do
|
299
|
+
begin
|
300
|
+
expect(resource.architecture(:x86_64)).to raise_error Chef::Exceptions::Win32ArchitectureIncorrect
|
301
|
+
rescue Chef::Exceptions::Win32ArchitectureIncorrect
|
302
|
+
end
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
context "when running on a 64-bit version of Ruby", :ruby64_only do
|
308
|
+
it "executes a script with a 64-bit process if :x86_64 arch is specified" do
|
309
|
+
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
310
|
+
resource.architecture(:x86_64)
|
311
|
+
resource.returns(0)
|
312
|
+
resource.run_action(:run)
|
313
|
+
|
314
|
+
expect(source_contains_case_insensitive_content?( get_script_output, "AMD64" )).to eq(true)
|
315
|
+
end
|
316
|
+
|
317
|
+
it "executes a script with a 32-bit process if :i386 arch is specified", :not_supported_on_nano do
|
318
|
+
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
319
|
+
resource.architecture(:i386)
|
320
|
+
resource.returns(0)
|
321
|
+
resource.run_action(:run)
|
322
|
+
|
323
|
+
expect(source_contains_case_insensitive_content?( get_script_output, "x86" )).to eq(true)
|
324
|
+
end
|
325
|
+
|
326
|
+
it "raises an error when executing a script with a 32-bit process on Windows Nano Server", :windows_nano_only do
|
327
|
+
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
|
328
|
+
expect { resource.architecture(:i386) }.to raise_error(Chef::Exceptions::Win32ArchitectureIncorrect,
|
329
|
+
"cannot execute script with requested architecture 'i386' on Windows Nano Server")
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
describe "when executing guards" do
|
334
|
+
before(:each) do
|
335
|
+
resource.not_if.clear
|
336
|
+
resource.only_if.clear
|
337
|
+
end
|
338
|
+
|
339
|
+
context "when the guard_interpreter's default value of :powershell_script is overridden to :default" do
|
340
|
+
before(:each) do
|
341
|
+
resource.guard_interpreter :default
|
342
|
+
end
|
343
|
+
|
344
|
+
it "evaluates a succeeding not_if block using cmd.exe as false by default" do
|
345
|
+
resource.not_if "exit /b 0"
|
346
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
347
|
+
end
|
348
|
+
|
349
|
+
it "evaluates a failing not_if block using cmd.exe as true by default" do
|
350
|
+
resource.not_if "exit /b 2"
|
351
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
352
|
+
end
|
353
|
+
|
354
|
+
it "evaluates an succeeding only_if block using cmd.exe as true by default" do
|
355
|
+
resource.only_if "exit /b 0"
|
356
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
357
|
+
end
|
358
|
+
|
359
|
+
it "evaluates a failing only_if block using cmd.exe as false by default" do
|
360
|
+
resource.only_if "exit /b 2"
|
361
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
context "the only_if is specified before the guard" do
|
366
|
+
before do
|
367
|
+
resource.guard_interpreter :default
|
368
|
+
end
|
369
|
+
|
370
|
+
it "evaluates a powershell $true for a only_if block as true" do
|
371
|
+
resource.only_if "$true"
|
372
|
+
resource.guard_interpreter :powershell_script
|
373
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
context "with powershell_script as the guard_interpreter" do
|
378
|
+
|
379
|
+
it "has a guard_interpreter attribute set to :powershell_script" do
|
380
|
+
expect(resource.guard_interpreter).to eq(:powershell_script)
|
381
|
+
end
|
382
|
+
|
383
|
+
it "evaluates a powershell $false for a not_if block as true" do
|
384
|
+
pending "powershell.exe always exits with $true on nano" if Chef::Platform.windows_nano_server?
|
385
|
+
|
386
|
+
resource.not_if "$false"
|
387
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
388
|
+
end
|
389
|
+
|
390
|
+
it "evaluates a powershell $true for a not_if block as false" do
|
391
|
+
resource.not_if "$true"
|
392
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
393
|
+
end
|
394
|
+
|
395
|
+
it "evaluates a powershell $false for an only_if block as false" do
|
396
|
+
pending "powershell.exe always exits with $true on nano" if Chef::Platform.windows_nano_server?
|
397
|
+
|
398
|
+
resource.only_if "$false"
|
399
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
400
|
+
end
|
401
|
+
|
402
|
+
it "evaluates a powershell $true for a only_if block as true" do
|
403
|
+
resource.only_if "$true"
|
404
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
405
|
+
end
|
406
|
+
|
407
|
+
it "evaluates a not_if block using powershell.exe" do
|
408
|
+
resource.not_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
|
409
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
410
|
+
end
|
411
|
+
|
412
|
+
it "evaluates an only_if block using powershell.exe" do
|
413
|
+
resource.only_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
|
414
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
415
|
+
end
|
416
|
+
|
417
|
+
it "evaluates a non-zero powershell exit status for not_if as true" do
|
418
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
419
|
+
|
420
|
+
resource.not_if "exit 37"
|
421
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
422
|
+
end
|
423
|
+
|
424
|
+
it "evaluates a zero powershell exit status for not_if as false" do
|
425
|
+
resource.not_if "exit 0"
|
426
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
427
|
+
end
|
428
|
+
|
429
|
+
it "evaluates a failed executable exit status for not_if as false" do
|
430
|
+
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
431
|
+
|
432
|
+
resource.not_if windows_process_exit_code_not_found_content
|
433
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
434
|
+
end
|
435
|
+
|
436
|
+
it "evaluates a successful executable exit status for not_if as true" do
|
437
|
+
resource.not_if windows_process_exit_code_success_content
|
438
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
439
|
+
end
|
440
|
+
|
441
|
+
it "evaluates a failed executable exit status for only_if as false" do
|
442
|
+
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
443
|
+
|
444
|
+
resource.only_if windows_process_exit_code_not_found_content
|
445
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
446
|
+
end
|
447
|
+
|
448
|
+
it "evaluates a successful executable exit status for only_if as true" do
|
449
|
+
resource.only_if windows_process_exit_code_success_content
|
450
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
451
|
+
end
|
452
|
+
|
453
|
+
it "evaluates a failed cmdlet exit status for not_if as true" do
|
454
|
+
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
455
|
+
|
456
|
+
resource.not_if "throw 'up'"
|
457
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
458
|
+
end
|
459
|
+
|
460
|
+
it "evaluates a successful cmdlet exit status for not_if as true" do
|
461
|
+
resource.not_if "cd ."
|
462
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
463
|
+
end
|
464
|
+
|
465
|
+
it "evaluates a failed cmdlet exit status for only_if as false" do
|
466
|
+
pending "powershell.exe always exits with success on nano" if Chef::Platform.windows_nano_server?
|
467
|
+
|
468
|
+
resource.only_if "throw 'up'"
|
469
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
470
|
+
end
|
471
|
+
|
472
|
+
it "evaluates a successful cmdlet exit status for only_if as true" do
|
473
|
+
resource.only_if "cd ."
|
474
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
475
|
+
end
|
476
|
+
|
477
|
+
it "evaluates a not_if block using the cwd guard parameter" do
|
478
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
479
|
+
resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
|
480
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
481
|
+
end
|
482
|
+
|
483
|
+
it "evaluates an only_if block using the cwd guard parameter" do
|
484
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
485
|
+
resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
|
486
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
487
|
+
end
|
488
|
+
|
489
|
+
it "inherits cwd from the parent resource for only_if" do
|
490
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
491
|
+
resource.cwd custom_cwd
|
492
|
+
resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
|
493
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
494
|
+
end
|
495
|
+
|
496
|
+
it "inherits cwd from the parent resource for not_if" do
|
497
|
+
custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
|
498
|
+
resource.cwd custom_cwd
|
499
|
+
resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
|
500
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
501
|
+
end
|
502
|
+
|
503
|
+
it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean false as zero status code", :windows64_only do
|
504
|
+
resource.architecture :x86_64
|
505
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'AMD64')"
|
506
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
507
|
+
end
|
508
|
+
|
509
|
+
it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean true as nonzero status code", :windows64_only do
|
510
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
511
|
+
|
512
|
+
resource.architecture :x86_64
|
513
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'AMD64')"
|
514
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
515
|
+
end
|
516
|
+
|
517
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code", :not_supported_on_nano do
|
518
|
+
resource.architecture :i386
|
519
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'X86')"
|
520
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
521
|
+
end
|
522
|
+
|
523
|
+
it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code", :not_supported_on_nano do
|
524
|
+
resource.architecture :i386
|
525
|
+
resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'X86')"
|
526
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
527
|
+
end
|
528
|
+
|
529
|
+
it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for only_if" do
|
530
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
531
|
+
|
532
|
+
resource.convert_boolean_return true
|
533
|
+
resource.only_if "$false"
|
534
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
535
|
+
end
|
536
|
+
|
537
|
+
it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for not_if" do
|
538
|
+
pending "powershell.exe always exits with 0 on nano" if Chef::Platform.windows_nano_server?
|
539
|
+
|
540
|
+
resource.convert_boolean_return true
|
541
|
+
resource.not_if "$false"
|
542
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
543
|
+
end
|
544
|
+
|
545
|
+
it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for only_if" do
|
546
|
+
resource.convert_boolean_return true
|
547
|
+
resource.only_if "$true"
|
548
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
549
|
+
end
|
550
|
+
|
551
|
+
it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for not_if" do
|
552
|
+
resource.convert_boolean_return true
|
553
|
+
resource.not_if "$true"
|
554
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
555
|
+
end
|
556
|
+
|
557
|
+
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", :not_supported_on_nano do
|
558
|
+
resource.convert_boolean_return true
|
559
|
+
resource.architecture :i386
|
560
|
+
resource.only_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
|
561
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
562
|
+
end
|
563
|
+
|
564
|
+
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", :not_supported_on_nano do
|
565
|
+
resource.convert_boolean_return true
|
566
|
+
resource.architecture :i386
|
567
|
+
resource.not_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
|
568
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
569
|
+
end
|
570
|
+
|
571
|
+
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", :not_supported_on_nano do
|
572
|
+
resource.convert_boolean_return true
|
573
|
+
resource.architecture :i386
|
574
|
+
resource.only_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
|
575
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
576
|
+
end
|
577
|
+
|
578
|
+
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", :not_supported_on_nano do
|
579
|
+
resource.convert_boolean_return true
|
580
|
+
resource.architecture :i386
|
581
|
+
resource.not_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
|
582
|
+
expect(resource.should_skip?(:run)).to be_truthy
|
583
|
+
end
|
584
|
+
|
585
|
+
it "raises an error when a 32-bit guard is used on Windows Nano Server", :windows_nano_only do
|
586
|
+
resource.only_if "$true", :architecture => :i386
|
587
|
+
expect { resource.run_action(:run) }.to raise_error(
|
588
|
+
Chef::Exceptions::Win32ArchitectureIncorrect,
|
589
|
+
/cannot execute script with requested architecture 'i386' on Windows Nano Server/)
|
590
|
+
end
|
591
|
+
end
|
592
|
+
end
|
593
|
+
|
594
|
+
def get_script_output
|
595
|
+
script_output = File.read(script_output_path)
|
596
|
+
end
|
597
|
+
|
598
|
+
def source_contains_case_insensitive_content?( source, content )
|
599
|
+
source.downcase.include?(content.downcase)
|
600
|
+
end
|
601
|
+
end
|