chef 12.0.0.alpha.2-x86-mingw32 → 12.0.0.rc.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. data/CONTRIBUTING.md +9 -0
  2. data/README.md +1 -1
  3. data/Rakefile +12 -0
  4. data/bin/chef-service-manager +1 -1
  5. data/bin/chef-windows-service +35 -0
  6. data/distro/common/html/_sources/ctl_chef_server.txt +307 -10
  7. data/distro/common/html/ctl_chef_client.html +3 -7
  8. data/distro/common/html/ctl_chef_server.html +609 -41
  9. data/distro/common/html/ctl_chef_shell.html +2 -2
  10. data/distro/common/html/ctl_chef_solo.html +1 -1
  11. data/distro/common/html/index.html +13 -13
  12. data/distro/common/html/knife.html +10 -10
  13. data/distro/common/html/knife_bootstrap.html +8 -8
  14. data/distro/common/html/knife_client.html +12 -12
  15. data/distro/common/html/knife_common_options.html +7 -7
  16. data/distro/common/html/knife_configure.html +3 -3
  17. data/distro/common/html/knife_cookbook.html +19 -19
  18. data/distro/common/html/knife_cookbook_site.html +28 -28
  19. data/distro/common/html/knife_data_bag.html +28 -13
  20. data/distro/common/html/knife_delete.html +2 -2
  21. data/distro/common/html/knife_deps.html +3 -3
  22. data/distro/common/html/knife_diff.html +4 -4
  23. data/distro/common/html/knife_download.html +3 -3
  24. data/distro/common/html/knife_edit.html +2 -2
  25. data/distro/common/html/knife_environment.html +14 -14
  26. data/distro/common/html/knife_exec.html +11 -11
  27. data/distro/common/html/knife_index_rebuild.html +2 -2
  28. data/distro/common/html/knife_list.html +3 -3
  29. data/distro/common/html/knife_node.html +23 -23
  30. data/distro/common/html/knife_raw.html +4 -4
  31. data/distro/common/html/knife_recipe_list.html +3 -3
  32. data/distro/common/html/knife_role.html +11 -11
  33. data/distro/common/html/knife_search.html +4 -4
  34. data/distro/common/html/knife_serve.html +3 -3
  35. data/distro/common/html/knife_show.html +3 -3
  36. data/distro/common/html/knife_ssh.html +7 -7
  37. data/distro/common/html/knife_ssl_check.html +7 -7
  38. data/distro/common/html/knife_ssl_fetch.html +9 -9
  39. data/distro/common/html/knife_status.html +3 -3
  40. data/distro/common/html/knife_tag.html +9 -9
  41. data/distro/common/html/knife_upload.html +3 -3
  42. data/distro/common/html/knife_user.html +9 -9
  43. data/distro/common/html/knife_using.html +11 -11
  44. data/distro/common/html/knife_xargs.html +14 -5
  45. data/distro/common/html/search.html +2 -2
  46. data/distro/common/html/searchindex.js +1 -1
  47. data/distro/common/man/man1/chef-shell.1 +2 -2
  48. data/distro/common/man/man1/knife-bootstrap.1 +7 -7
  49. data/distro/common/man/man1/knife-client.1 +10 -10
  50. data/distro/common/man/man1/knife-configure.1 +5 -5
  51. data/distro/common/man/man1/knife-cookbook-site.1 +24 -24
  52. data/distro/common/man/man1/knife-cookbook.1 +12 -12
  53. data/distro/common/man/man1/knife-data-bag.1 +34 -10
  54. data/distro/common/man/man1/knife-delete.1 +5 -5
  55. data/distro/common/man/man1/knife-deps.1 +5 -5
  56. data/distro/common/man/man1/knife-diff.1 +7 -7
  57. data/distro/common/man/man1/knife-download.1 +5 -5
  58. data/distro/common/man/man1/knife-edit.1 +5 -5
  59. data/distro/common/man/man1/knife-environment.1 +11 -11
  60. data/distro/common/man/man1/knife-exec.1 +11 -11
  61. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  62. data/distro/common/man/man1/knife-list.1 +5 -5
  63. data/distro/common/man/man1/knife-node.1 +16 -16
  64. data/distro/common/man/man1/knife-raw.1 +6 -6
  65. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  66. data/distro/common/man/man1/knife-role.1 +7 -7
  67. data/distro/common/man/man1/knife-search.1 +6 -6
  68. data/distro/common/man/man1/knife-serve.1 +6 -6
  69. data/distro/common/man/man1/knife-show.1 +5 -5
  70. data/distro/common/man/man1/knife-ssh.1 +9 -9
  71. data/distro/common/man/man1/knife-ssl-check.1 +7 -7
  72. data/distro/common/man/man1/knife-ssl-fetch.1 +9 -9
  73. data/distro/common/man/man1/knife-status.1 +5 -5
  74. data/distro/common/man/man1/knife-tag.1 +8 -8
  75. data/distro/common/man/man1/knife-upload.1 +5 -5
  76. data/distro/common/man/man1/knife-user.1 +8 -8
  77. data/distro/common/man/man1/knife-xargs.1 +36 -10
  78. data/distro/common/man/man1/knife.1 +14 -14
  79. data/distro/common/man/man8/chef-client.8 +3 -10
  80. data/distro/common/man/man8/chef-solo.8 +1 -1
  81. data/ext/win32-eventlog/Rakefile +50 -0
  82. data/ext/win32-eventlog/chef-log.man +26 -0
  83. data/lib/chef/application.rb +313 -241
  84. data/lib/chef/application/apply.rb +10 -8
  85. data/lib/chef/application/client.rb +58 -33
  86. data/lib/chef/application/solo.rb +33 -12
  87. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  88. data/lib/chef/chef_fs/command_line.rb +1 -1
  89. data/lib/chef/chef_fs/file_system/organization_invites_entry.rb +2 -1
  90. data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -1
  91. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +2 -1
  92. data/lib/chef/client.rb +18 -48
  93. data/lib/chef/config.rb +43 -11
  94. data/lib/chef/cookbook/cookbook_version_loader.rb +14 -7
  95. data/lib/chef/cookbook/metadata.rb +81 -38
  96. data/lib/chef/cookbook/syntax_check.rb +18 -52
  97. data/lib/chef/cookbook_loader.rb +1 -1
  98. data/lib/chef/cookbook_version.rb +58 -39
  99. data/lib/chef/data_bag.rb +2 -2
  100. data/lib/chef/deprecation/provider/file.rb +2 -1
  101. data/lib/chef/dsl/data_query.rb +2 -29
  102. data/lib/chef/dsl/recipe.rb +8 -22
  103. data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
  104. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -0
  105. data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +1 -1
  106. data/lib/chef/event_loggers/base.rb +62 -0
  107. data/lib/chef/event_loggers/windows_eventlog.rb +104 -0
  108. data/lib/chef/exceptions.rb +18 -1
  109. data/lib/chef/file_cache.rb +3 -2
  110. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +15 -6
  111. data/lib/chef/http.rb +20 -13
  112. data/lib/chef/http/ssl_policies.rb +2 -1
  113. data/lib/chef/json_compat.rb +9 -3
  114. data/lib/chef/knife.rb +2 -1
  115. data/lib/chef/knife/bootstrap.rb +12 -18
  116. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  117. data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
  118. data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
  119. data/lib/chef/knife/cookbook_create.rb +1 -1
  120. data/lib/chef/knife/cookbook_site_share.rb +43 -8
  121. data/lib/chef/knife/core/bootstrap_context.rb +6 -11
  122. data/lib/chef/knife/core/object_loader.rb +5 -5
  123. data/lib/chef/knife/core/status_presenter.rb +156 -0
  124. data/lib/chef/knife/core/subcommand_loader.rb +6 -5
  125. data/lib/chef/knife/core/ui.rb +4 -4
  126. data/lib/chef/knife/data_bag_create.rb +7 -32
  127. data/lib/chef/knife/data_bag_edit.rb +24 -43
  128. data/lib/chef/knife/data_bag_from_file.rb +6 -31
  129. data/lib/chef/knife/data_bag_secret_options.rb +142 -0
  130. data/lib/chef/knife/data_bag_show.rb +19 -33
  131. data/lib/chef/knife/node_from_file.rb +9 -8
  132. data/lib/chef/knife/ssh.rb +0 -7
  133. data/lib/chef/knife/ssl_check.rb +70 -6
  134. data/lib/chef/knife/status.rb +11 -58
  135. data/lib/chef/mixin/command/unix.rb +2 -2
  136. data/lib/chef/mixin/convert_to_class_name.rb +54 -0
  137. data/lib/chef/mixin/descendants_tracker.rb +82 -0
  138. data/lib/chef/mixin/homebrew_user.rb +68 -0
  139. data/lib/chef/mixin/shell_out.rb +0 -4
  140. data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
  141. data/lib/chef/mixin/windows_env_helper.rb +56 -0
  142. data/lib/chef/node.rb +2 -2
  143. data/lib/chef/node_map.rb +146 -0
  144. data/lib/chef/platform/provider_mapping.rb +11 -39
  145. data/lib/chef/platform/provider_priority_map.rb +80 -0
  146. data/lib/chef/platform/query_helpers.rb +5 -1
  147. data/lib/chef/platform/service_helpers.rb +113 -0
  148. data/lib/chef/provider.rb +24 -0
  149. data/lib/chef/provider/breakpoint.rb +2 -0
  150. data/lib/chef/provider/cookbook_file.rb +2 -0
  151. data/lib/chef/provider/cron.rb +1 -1
  152. data/lib/chef/provider/cron/unix.rb +13 -9
  153. data/lib/chef/provider/deploy.rb +3 -2
  154. data/lib/chef/provider/deploy/revision.rb +4 -2
  155. data/lib/chef/provider/deploy/timestamped.rb +2 -0
  156. data/lib/chef/provider/directory.rb +2 -0
  157. data/lib/chef/provider/dsc_script.rb +179 -0
  158. data/lib/chef/provider/env.rb +25 -10
  159. data/lib/chef/provider/env/windows.rb +9 -16
  160. data/lib/chef/provider/erl_call.rb +2 -0
  161. data/lib/chef/provider/execute.rb +5 -2
  162. data/lib/chef/provider/file.rb +2 -0
  163. data/lib/chef/provider/git.rb +51 -23
  164. data/lib/chef/provider/group/dscl.rb +2 -2
  165. data/lib/chef/provider/group/pw.rb +9 -13
  166. data/lib/chef/provider/http_request.rb +2 -0
  167. data/lib/chef/provider/link.rb +3 -0
  168. data/lib/chef/provider/log.rb +2 -0
  169. data/lib/chef/provider/lwrp_base.rb +11 -9
  170. data/lib/chef/provider/mount/mount.rb +1 -1
  171. data/lib/chef/provider/package/aix.rb +2 -0
  172. data/lib/chef/provider/package/apt.rb +2 -0
  173. data/lib/chef/provider/package/dpkg.rb +2 -0
  174. data/lib/chef/provider/package/easy_install.rb +2 -0
  175. data/lib/chef/provider/package/freebsd/pkg.rb +2 -1
  176. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  177. data/lib/chef/provider/package/freebsd/port.rb +1 -9
  178. data/lib/chef/provider/package/homebrew.rb +127 -0
  179. data/lib/chef/provider/package/ips.rb +2 -0
  180. data/lib/chef/provider/package/macports.rb +3 -0
  181. data/lib/chef/provider/package/pacman.rb +5 -4
  182. data/lib/chef/provider/package/paludis.rb +4 -2
  183. data/lib/chef/provider/package/portage.rb +4 -1
  184. data/lib/chef/provider/package/rpm.rb +2 -0
  185. data/lib/chef/provider/package/rubygems.rb +4 -0
  186. data/lib/chef/provider/package/smartos.rb +2 -0
  187. data/lib/chef/provider/package/solaris.rb +2 -0
  188. data/lib/chef/provider/package/windows.rb +5 -2
  189. data/lib/chef/provider/package/yum.rb +2 -0
  190. data/lib/chef/provider/powershell_script.rb +3 -1
  191. data/lib/chef/provider/remote_directory.rb +25 -10
  192. data/lib/chef/provider/route.rb +2 -0
  193. data/lib/chef/provider/ruby_block.rb +2 -0
  194. data/lib/chef/provider/script.rb +6 -0
  195. data/lib/chef/provider/service/aix.rb +128 -0
  196. data/lib/chef/provider/service/aixinit.rb +117 -0
  197. data/lib/chef/provider/service/arch.rb +6 -0
  198. data/lib/chef/provider/service/debian.rb +35 -29
  199. data/lib/chef/provider/service/freebsd.rb +7 -1
  200. data/lib/chef/provider/service/gentoo.rb +5 -1
  201. data/lib/chef/provider/service/init.rb +2 -0
  202. data/lib/chef/provider/service/insserv.rb +15 -8
  203. data/lib/chef/provider/service/invokercd.rb +6 -0
  204. data/lib/chef/provider/service/macosx.rb +4 -1
  205. data/lib/chef/provider/service/redhat.rb +9 -3
  206. data/lib/chef/provider/service/simple.rb +2 -0
  207. data/lib/chef/provider/service/solaris.rb +2 -0
  208. data/lib/chef/provider/service/systemd.rb +7 -0
  209. data/lib/chef/provider/service/upstart.rb +7 -0
  210. data/lib/chef/provider/service/windows.rb +5 -0
  211. data/lib/chef/provider/subversion.rb +2 -0
  212. data/lib/chef/provider/template.rb +1 -0
  213. data/lib/chef/provider/user/dscl.rb +3 -2
  214. data/lib/chef/provider/whyrun_safe_ruby_block.rb +2 -0
  215. data/lib/chef/provider_resolver.rb +103 -0
  216. data/lib/chef/providers.rb +6 -2
  217. data/lib/chef/recipe.rb +2 -0
  218. data/lib/chef/resource.rb +69 -78
  219. data/lib/chef/resource/apt_package.rb +3 -1
  220. data/lib/chef/resource/bash.rb +1 -0
  221. data/lib/chef/resource/bff_package.rb +0 -1
  222. data/lib/chef/resource/breakpoint.rb +1 -1
  223. data/lib/chef/resource/chef_gem.rb +1 -2
  224. data/lib/chef/resource/conditional.rb +26 -6
  225. data/lib/chef/resource/cookbook_file.rb +2 -3
  226. data/lib/chef/resource/csh.rb +1 -0
  227. data/lib/chef/resource/deploy.rb +0 -1
  228. data/lib/chef/resource/deploy_revision.rb +6 -1
  229. data/lib/chef/resource/directory.rb +1 -2
  230. data/lib/chef/resource/dpkg_package.rb +2 -1
  231. data/lib/chef/resource/dsc_script.rb +125 -0
  232. data/lib/chef/resource/easy_install_package.rb +2 -1
  233. data/lib/chef/resource/erl_call.rb +1 -0
  234. data/lib/chef/resource/execute.rb +26 -9
  235. data/lib/chef/resource/file.rb +1 -3
  236. data/lib/chef/resource/freebsd_package.rb +10 -23
  237. data/lib/chef/resource/gem_package.rb +2 -1
  238. data/lib/chef/resource/git.rb +2 -1
  239. data/lib/chef/resource/homebrew_package.rb +46 -0
  240. data/lib/chef/resource/http_request.rb +1 -0
  241. data/lib/chef/resource/ips_package.rb +3 -1
  242. data/lib/chef/resource/link.rb +1 -2
  243. data/lib/chef/resource/log.rb +4 -0
  244. data/lib/chef/resource/lwrp_base.rb +24 -15
  245. data/lib/chef/resource/macports_package.rb +3 -1
  246. data/lib/chef/resource/pacman_package.rb +2 -1
  247. data/lib/chef/resource/paludis_package.rb +3 -1
  248. data/lib/chef/resource/perl.rb +1 -0
  249. data/lib/chef/resource/powershell_script.rb +0 -2
  250. data/lib/chef/resource/python.rb +1 -1
  251. data/lib/chef/resource/remote_directory.rb +1 -2
  252. data/lib/chef/resource/remote_file.rb +1 -1
  253. data/lib/chef/resource/rpm_package.rb +2 -1
  254. data/lib/chef/resource/ruby.rb +1 -0
  255. data/lib/chef/resource/ruby_block.rb +3 -0
  256. data/lib/chef/resource/script.rb +2 -25
  257. data/lib/chef/resource/service.rb +0 -4
  258. data/lib/chef/resource/smartos_package.rb +3 -4
  259. data/lib/chef/resource/solaris_package.rb +7 -1
  260. data/lib/chef/resource/subversion.rb +0 -1
  261. data/lib/chef/resource/template.rb +2 -3
  262. data/lib/chef/resource/timestamped_deploy.rb +1 -2
  263. data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
  264. data/lib/chef/resource/windows_package.rb +3 -4
  265. data/lib/chef/resource/windows_script.rb +3 -0
  266. data/lib/chef/resource/windows_service.rb +2 -2
  267. data/lib/chef/resource/yum_package.rb +3 -1
  268. data/lib/chef/resource_collection.rb +50 -227
  269. data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -0
  270. data/lib/chef/resource_collection/resource_list.rb +89 -0
  271. data/lib/chef/resource_collection/resource_set.rb +170 -0
  272. data/lib/chef/resources.rb +2 -0
  273. data/lib/chef/role.rb +1 -1
  274. data/lib/chef/run_context.rb +5 -1
  275. data/lib/chef/shell/ext.rb +1 -1
  276. data/lib/chef/util/backup.rb +3 -2
  277. data/lib/chef/util/dsc/configuration_generator.rb +115 -0
  278. data/lib/chef/util/dsc/lcm_output_parser.rb +133 -0
  279. data/lib/chef/util/dsc/local_configuration_manager.rb +141 -0
  280. data/lib/chef/util/dsc/resource_info.rb +26 -0
  281. data/lib/chef/util/path_helper.rb +12 -0
  282. data/lib/chef/util/powershell/cmdlet.rb +136 -0
  283. data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
  284. data/lib/chef/version.rb +1 -1
  285. data/lib/chef/win32/api/system.rb +9 -0
  286. data/lib/chef/win32/version.rb +2 -0
  287. data/spec/.DS_Store +0 -0
  288. data/spec/data/.DS_Store +0 -0
  289. data/spec/data/bootstrap/test-hints.erb +1 -1
  290. data/spec/data/bootstrap/test.erb +1 -1
  291. data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
  292. data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
  293. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -0
  294. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -0
  295. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -0
  296. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -0
  297. data/spec/data/lwrp/.DS_Store +0 -0
  298. data/spec/data/lwrp/providers/.DS_Store +0 -0
  299. data/spec/data/lwrp/providers/buck_passer.rb +9 -2
  300. data/spec/data/lwrp/resources/.DS_Store +0 -0
  301. data/spec/data/lwrp/resources/foo.rb +3 -2
  302. data/spec/data/lwrp_override/.DS_Store +0 -0
  303. data/spec/data/lwrp_override/providers/.DS_Store +0 -0
  304. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -10
  305. data/spec/data/lwrp_override/resources/.DS_Store +0 -0
  306. data/spec/data/lwrp_override/resources/foo.rb +4 -3
  307. data/spec/functional/assets/chefinittest +34 -0
  308. data/spec/functional/assets/testchefsubsys +11 -0
  309. data/spec/functional/dsl/reboot_pending_spec.rb +19 -16
  310. data/spec/functional/event_loggers/windows_eventlog_spec.rb +82 -0
  311. data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
  312. data/spec/functional/knife/exec_spec.rb +1 -1
  313. data/spec/functional/resource/aix_service_spec.rb +136 -0
  314. data/spec/functional/resource/aixinit_service_spec.rb +211 -0
  315. data/spec/functional/resource/base.rb +1 -0
  316. data/spec/functional/resource/batch_spec.rb +4 -11
  317. data/spec/functional/resource/cron_spec.rb +7 -1
  318. data/spec/functional/resource/dsc_script_spec.rb +382 -0
  319. data/spec/functional/resource/env_spec.rb +54 -0
  320. data/spec/functional/resource/execute_spec.rb +113 -0
  321. data/spec/functional/resource/file_spec.rb +2 -0
  322. data/spec/functional/resource/group_spec.rb +7 -4
  323. data/spec/functional/resource/powershell_spec.rb +198 -185
  324. data/spec/functional/resource/rpm_spec.rb +5 -4
  325. data/spec/functional/resource/user/dscl_spec.rb +2 -1
  326. data/spec/functional/util/path_helper_spec.rb +37 -0
  327. data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
  328. data/spec/integration/client/client_spec.rb +1 -1
  329. data/spec/integration/client/ipv6_spec.rb +1 -1
  330. data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
  331. data/spec/integration/knife/chef_repo_path_spec.rb +1 -1
  332. data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
  333. data/spec/integration/knife/chefignore_spec.rb +1 -1
  334. data/spec/integration/knife/common_options_spec.rb +1 -1
  335. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  336. data/spec/integration/knife/delete_spec.rb +1 -1
  337. data/spec/integration/knife/deps_spec.rb +1 -1
  338. data/spec/integration/knife/diff_spec.rb +1 -1
  339. data/spec/integration/knife/download_spec.rb +1 -1
  340. data/spec/integration/knife/list_spec.rb +1 -1
  341. data/spec/integration/knife/raw_spec.rb +1 -1
  342. data/spec/integration/knife/redirection_spec.rb +1 -1
  343. data/spec/integration/knife/serve_spec.rb +1 -1
  344. data/spec/integration/knife/show_spec.rb +1 -1
  345. data/spec/integration/knife/upload_spec.rb +4 -3
  346. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  347. data/spec/spec_helper.rb +15 -0
  348. data/spec/support/chef_helpers.rb +1 -0
  349. data/spec/support/lib/chef/provider/snakeoil.rb +1 -0
  350. data/spec/support/lib/chef/resource/zen_follower.rb +1 -7
  351. data/spec/support/platform_helpers.rb +28 -0
  352. data/spec/support/shared/functional/file_resource.rb +6 -0
  353. data/spec/support/shared/functional/windows_script.rb +118 -0
  354. data/spec/support/shared/integration/integration_helper.rb +5 -2
  355. data/spec/support/shared/matchers/exit_with_code.rb +28 -0
  356. data/spec/support/shared/matchers/match_environment_variable.rb +17 -0
  357. data/spec/support/shared/shared_examples.rb +14 -0
  358. data/spec/support/shared/unit/execute_resource.rb +0 -7
  359. data/spec/support/shared/unit/resource/static_provider_resolution.rb +71 -0
  360. data/spec/support/shared/unit/script_resource.rb +1 -1
  361. data/spec/support/shared/unit/windows_script_resource.rb +35 -2
  362. data/spec/tiny_server.rb +1 -2
  363. data/spec/unit/api_client_spec.rb +5 -1
  364. data/spec/unit/application/{apply.rb → apply_spec.rb} +13 -5
  365. data/spec/unit/application/client_spec.rb +106 -13
  366. data/spec/unit/application/solo_spec.rb +25 -1
  367. data/spec/unit/client_spec.rb +1 -26
  368. data/spec/unit/config_fetcher_spec.rb +2 -1
  369. data/spec/unit/config_spec.rb +91 -2
  370. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +8 -0
  371. data/spec/unit/cookbook/metadata_spec.rb +43 -6
  372. data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
  373. data/spec/unit/cookbook_loader_spec.rb +4 -2
  374. data/spec/unit/cookbook_version_spec.rb +83 -2
  375. data/spec/unit/data_bag_item_spec.rb +5 -1
  376. data/spec/unit/data_bag_spec.rb +6 -1
  377. data/spec/unit/dsl/data_query_spec.rb +8 -110
  378. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -0
  379. data/spec/unit/encrypted_data_bag_item_spec.rb +16 -23
  380. data/spec/unit/environment_spec.rb +6 -2
  381. data/spec/unit/exceptions_spec.rb +6 -0
  382. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +16 -15
  383. data/spec/unit/json_compat_spec.rb +12 -2
  384. data/spec/unit/knife/bootstrap_spec.rb +16 -63
  385. data/spec/unit/knife/cookbook_site_share_spec.rb +59 -6
  386. data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -37
  387. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  388. data/spec/unit/knife/core/ui_spec.rb +28 -0
  389. data/spec/unit/knife/data_bag_create_spec.rb +63 -71
  390. data/spec/unit/knife/data_bag_edit_spec.rb +83 -49
  391. data/spec/unit/knife/data_bag_from_file_spec.rb +104 -126
  392. data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -0
  393. data/spec/unit/knife/data_bag_show_spec.rb +74 -72
  394. data/spec/unit/knife/environment_from_file_spec.rb +3 -2
  395. data/spec/unit/knife/ssl_check_spec.rb +46 -1
  396. data/spec/unit/knife/status_spec.rb +1 -2
  397. data/spec/unit/knife_spec.rb +18 -1
  398. data/spec/unit/lwrp_spec.rb +29 -8
  399. data/spec/unit/mixin/homebrew_user_spec.rb +100 -0
  400. data/spec/unit/node_map_spec.rb +155 -0
  401. data/spec/unit/node_spec.rb +11 -0
  402. data/spec/unit/platform/query_helpers_spec.rb +23 -0
  403. data/spec/unit/platform_spec.rb +23 -0
  404. data/spec/unit/provider/breakpoint_spec.rb +9 -9
  405. data/spec/unit/provider/cookbook_file/content_spec.rb +3 -3
  406. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  407. data/spec/unit/provider/cron/unix_spec.rb +78 -60
  408. data/spec/unit/provider/cron_spec.rb +175 -175
  409. data/spec/unit/provider/deploy/revision_spec.rb +22 -21
  410. data/spec/unit/provider/deploy/timestamped_spec.rb +3 -3
  411. data/spec/unit/provider/deploy_spec.rb +231 -230
  412. data/spec/unit/provider/directory_spec.rb +55 -55
  413. data/spec/unit/provider/dsc_script_spec.rb +174 -0
  414. data/spec/unit/provider/env/windows_spec.rb +70 -34
  415. data/spec/unit/provider/env_spec.rb +95 -49
  416. data/spec/unit/provider/erl_call_spec.rb +9 -9
  417. data/spec/unit/provider/execute_spec.rb +43 -27
  418. data/spec/unit/provider/file/content_spec.rb +9 -9
  419. data/spec/unit/provider/file_spec.rb +1 -1
  420. data/spec/unit/provider/git_spec.rb +221 -159
  421. data/spec/unit/provider/group/dscl_spec.rb +64 -63
  422. data/spec/unit/provider/group/gpasswd_spec.rb +14 -14
  423. data/spec/unit/provider/group/groupadd_spec.rb +33 -33
  424. data/spec/unit/provider/group/groupmod_spec.rb +23 -23
  425. data/spec/unit/provider/group/pw_spec.rb +21 -21
  426. data/spec/unit/provider/group/usermod_spec.rb +20 -20
  427. data/spec/unit/provider/group/windows_spec.rb +15 -15
  428. data/spec/unit/provider/group_spec.rb +76 -76
  429. data/spec/unit/provider/http_request_spec.rb +30 -30
  430. data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
  431. data/spec/unit/provider/ifconfig/debian_spec.rb +25 -9
  432. data/spec/unit/provider/ifconfig/redhat_spec.rb +13 -13
  433. data/spec/unit/provider/ifconfig_spec.rb +43 -43
  434. data/spec/unit/provider/link_spec.rb +60 -60
  435. data/spec/unit/provider/log_spec.rb +0 -4
  436. data/spec/unit/provider/mdadm_spec.rb +23 -23
  437. data/spec/unit/provider/mount/aix_spec.rb +17 -17
  438. data/spec/unit/provider/mount/mount_spec.rb +115 -119
  439. data/spec/unit/provider/mount/solaris_spec.rb +72 -72
  440. data/spec/unit/provider/mount/windows_spec.rb +24 -24
  441. data/spec/unit/provider/ohai_spec.rb +11 -11
  442. data/spec/unit/provider/package/aix_spec.rb +34 -34
  443. data/spec/unit/provider/package/apt_spec.rb +36 -36
  444. data/spec/unit/provider/package/dpkg_spec.rb +27 -27
  445. data/spec/unit/provider/package/easy_install_spec.rb +16 -16
  446. data/spec/unit/provider/package/freebsd/pkg_spec.rb +53 -53
  447. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +24 -24
  448. data/spec/unit/provider/package/freebsd/port_spec.rb +45 -35
  449. data/spec/unit/provider/package/homebrew_spec.rb +266 -0
  450. data/spec/unit/provider/package/ips_spec.rb +34 -34
  451. data/spec/unit/provider/package/macports_spec.rb +49 -49
  452. data/spec/unit/provider/package/pacman_spec.rb +35 -39
  453. data/spec/unit/provider/package/paludis_spec.rb +20 -20
  454. data/spec/unit/provider/package/portage_spec.rb +38 -38
  455. data/spec/unit/provider/package/rpm_spec.rb +29 -29
  456. data/spec/unit/provider/package/rubygems_spec.rb +284 -270
  457. data/spec/unit/provider/package/smartos_spec.rb +15 -15
  458. data/spec/unit/provider/package/solaris_spec.rb +35 -35
  459. data/spec/unit/provider/package/windows/msi_spec.rb +3 -3
  460. data/spec/unit/provider/package/windows_spec.rb +6 -6
  461. data/spec/unit/provider/package/yum_spec.rb +416 -416
  462. data/spec/unit/provider/package/zypper_spec.rb +47 -47
  463. data/spec/unit/provider/package_spec.rb +107 -107
  464. data/spec/unit/provider/powershell_spec.rb +1 -1
  465. data/spec/unit/provider/registry_key_spec.rb +61 -61
  466. data/spec/unit/provider/remote_directory_spec.rb +36 -36
  467. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +24 -24
  468. data/spec/unit/provider/remote_file/content_spec.rb +45 -45
  469. data/spec/unit/provider/remote_file/fetcher_spec.rb +9 -9
  470. data/spec/unit/provider/remote_file/ftp_spec.rb +32 -32
  471. data/spec/unit/provider/remote_file/http_spec.rb +44 -44
  472. data/spec/unit/provider/remote_file/local_file_spec.rb +9 -9
  473. data/spec/unit/provider/remote_file_spec.rb +3 -3
  474. data/spec/unit/provider/route_spec.rb +63 -63
  475. data/spec/unit/provider/ruby_block_spec.rb +4 -4
  476. data/spec/unit/provider/script_spec.rb +12 -12
  477. data/spec/unit/provider/service/aix_service_spec.rb +181 -0
  478. data/spec/unit/provider/service/aixinit_service_spec.rb +269 -0
  479. data/spec/unit/provider/service/arch_service_spec.rb +48 -48
  480. data/spec/unit/provider/service/debian_service_spec.rb +40 -40
  481. data/spec/unit/provider/service/gentoo_service_spec.rb +28 -28
  482. data/spec/unit/provider/service/init_service_spec.rb +39 -39
  483. data/spec/unit/provider/service/insserv_service_spec.rb +8 -8
  484. data/spec/unit/provider/service/invokercd_service_spec.rb +35 -35
  485. data/spec/unit/provider/service/macosx_spec.rb +49 -49
  486. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  487. data/spec/unit/provider/service/simple_service_spec.rb +28 -28
  488. data/spec/unit/provider/service/solaris_smf_service_spec.rb +43 -46
  489. data/spec/unit/provider/service/systemd_service_spec.rb +63 -63
  490. data/spec/unit/provider/service/upstart_service_spec.rb +78 -78
  491. data/spec/unit/provider/service/windows_spec.rb +92 -92
  492. data/spec/unit/provider/service_spec.rb +40 -40
  493. data/spec/unit/provider/subversion_spec.rb +80 -80
  494. data/spec/unit/provider/template/content_spec.rb +9 -9
  495. data/spec/unit/provider/template_spec.rb +6 -6
  496. data/spec/unit/provider/user/dscl_spec.rb +170 -167
  497. data/spec/unit/provider/user/pw_spec.rb +48 -48
  498. data/spec/unit/provider/user/solaris_spec.rb +8 -8
  499. data/spec/unit/provider/user/useradd_spec.rb +1 -1
  500. data/spec/unit/provider/user/windows_spec.rb +26 -26
  501. data/spec/unit/provider/user_spec.rb +72 -72
  502. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +4 -4
  503. data/spec/unit/provider_resolver_spec.rb +387 -0
  504. data/spec/unit/recipe_spec.rb +33 -12
  505. data/spec/unit/resource/apt_package_spec.rb +10 -13
  506. data/spec/unit/resource/bash_spec.rb +4 -4
  507. data/spec/unit/resource/batch_spec.rb +1 -1
  508. data/spec/unit/resource/breakpoint_spec.rb +11 -7
  509. data/spec/unit/resource/chef_gem_spec.rb +8 -15
  510. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  511. data/spec/unit/resource/conditional_spec.rb +35 -16
  512. data/spec/unit/resource/cookbook_file_spec.rb +13 -13
  513. data/spec/unit/resource/cron_spec.rb +37 -37
  514. data/spec/unit/resource/csh_spec.rb +4 -4
  515. data/spec/unit/resource/deploy_revision_spec.rb +13 -18
  516. data/spec/unit/resource/deploy_spec.rb +60 -55
  517. data/spec/unit/resource/directory_spec.rb +18 -18
  518. data/spec/unit/resource/dpkg_package_spec.rb +8 -14
  519. data/spec/unit/resource/dsc_script_spec.rb +98 -0
  520. data/spec/unit/resource/easy_install_package_spec.rb +9 -18
  521. data/spec/unit/resource/env_spec.rb +12 -12
  522. data/spec/unit/resource/erl_call_spec.rb +11 -11
  523. data/spec/unit/resource/execute_spec.rb +5 -0
  524. data/spec/unit/resource/file_spec.rb +29 -29
  525. data/spec/unit/resource/freebsd_package_spec.rb +11 -12
  526. data/spec/unit/resource/gem_package_spec.rb +8 -15
  527. data/spec/unit/resource/git_spec.rb +12 -8
  528. data/spec/unit/resource/group_spec.rb +27 -27
  529. data/spec/unit/resource/homebrew_package_spec.rb +50 -0
  530. data/spec/unit/resource/http_request_spec.rb +6 -6
  531. data/spec/unit/resource/ifconfig_spec.rb +8 -8
  532. data/spec/unit/resource/ips_package_spec.rb +10 -13
  533. data/spec/unit/resource/link_spec.rb +25 -25
  534. data/spec/unit/resource/log_spec.rb +9 -9
  535. data/spec/unit/resource/macports_package_spec.rb +8 -13
  536. data/spec/unit/resource/mdadm_spec.rb +18 -18
  537. data/spec/unit/resource/mount_spec.rb +45 -45
  538. data/spec/unit/resource/ohai_spec.rb +7 -7
  539. data/spec/unit/resource/package_spec.rb +12 -12
  540. data/spec/unit/resource/pacman_package_spec.rb +8 -14
  541. data/spec/unit/resource/perl_spec.rb +4 -4
  542. data/spec/unit/resource/portage_package_spec.rb +3 -3
  543. data/spec/unit/resource/powershell_spec.rb +7 -7
  544. data/spec/unit/resource/python_spec.rb +4 -4
  545. data/spec/unit/resource/registry_key_spec.rb +32 -32
  546. data/spec/unit/resource/remote_directory_spec.rb +17 -17
  547. data/spec/unit/resource/remote_file_spec.rb +41 -41
  548. data/spec/unit/resource/route_spec.rb +19 -19
  549. data/spec/unit/resource/rpm_package_spec.rb +9 -13
  550. data/spec/unit/resource/ruby_block_spec.rb +8 -8
  551. data/spec/unit/resource/ruby_spec.rb +4 -4
  552. data/spec/unit/resource/scm_spec.rb +40 -40
  553. data/spec/unit/resource/script_spec.rb +2 -2
  554. data/spec/unit/resource/service_spec.rb +37 -47
  555. data/spec/unit/resource/smartos_package_spec.rb +10 -15
  556. data/spec/unit/resource/solaris_package_spec.rb +13 -28
  557. data/spec/unit/resource/subversion_spec.rb +16 -12
  558. data/spec/unit/resource/template_spec.rb +35 -35
  559. data/spec/unit/resource/timestamped_deploy_spec.rb +30 -4
  560. data/spec/unit/resource/user_spec.rb +23 -23
  561. data/spec/unit/resource/windows_package_spec.rb +17 -10
  562. data/spec/unit/resource/windows_service_spec.rb +9 -6
  563. data/spec/unit/resource/yum_package_spec.rb +16 -21
  564. data/spec/unit/resource_collection/resource_list_spec.rb +137 -0
  565. data/spec/unit/resource_collection/resource_set_spec.rb +199 -0
  566. data/spec/unit/resource_collection_spec.rb +73 -92
  567. data/spec/unit/resource_definition_spec.rb +38 -40
  568. data/spec/unit/resource_reporter_spec.rb +3 -3
  569. data/spec/unit/resource_spec.rb +68 -33
  570. data/spec/unit/rest_spec.rb +83 -76
  571. data/spec/unit/role_spec.rb +5 -0
  572. data/spec/unit/run_list_spec.rb +5 -1
  573. data/spec/unit/runner_spec.rb +245 -238
  574. data/spec/unit/shell/shell_ext_spec.rb +1 -1
  575. data/spec/unit/user_spec.rb +5 -1
  576. data/spec/unit/util/dsc/configuration_generator_spec.rb +171 -0
  577. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +169 -0
  578. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +139 -0
  579. data/spec/unit/util/path_helper_spec.rb +23 -1
  580. data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
  581. data/spec/unit/workstation_config_loader_spec.rb +1 -1
  582. metadata +303 -196
  583. checksums.yaml +0 -7
  584. data/distro/README +0 -2
  585. data/distro/arch/etc/conf.d/chef-client.conf +0 -5
  586. data/distro/arch/etc/conf.d/chef-expander.conf +0 -8
  587. data/distro/arch/etc/conf.d/chef-server-webui.conf +0 -10
  588. data/distro/arch/etc/conf.d/chef-server.conf +0 -10
  589. data/distro/arch/etc/conf.d/chef-solr.conf +0 -8
  590. data/distro/arch/etc/rc.d/chef-client +0 -90
  591. data/distro/arch/etc/rc.d/chef-expander +0 -78
  592. data/distro/arch/etc/rc.d/chef-server +0 -78
  593. data/distro/arch/etc/rc.d/chef-server-webui +0 -78
  594. data/distro/arch/etc/rc.d/chef-solr +0 -78
  595. data/distro/debian/etc/default/chef-client +0 -4
  596. data/distro/debian/etc/default/chef-expander +0 -8
  597. data/distro/debian/etc/default/chef-server +0 -9
  598. data/distro/debian/etc/default/chef-server-webui +0 -9
  599. data/distro/debian/etc/default/chef-solr +0 -8
  600. data/distro/debian/etc/init.d/chef-client +0 -212
  601. data/distro/debian/etc/init.d/chef-expander +0 -176
  602. data/distro/debian/etc/init.d/chef-server +0 -122
  603. data/distro/debian/etc/init.d/chef-server-webui +0 -123
  604. data/distro/debian/etc/init.d/chef-solr +0 -176
  605. data/distro/debian/etc/init/chef-client.conf +0 -17
  606. data/distro/debian/etc/init/chef-expander.conf +0 -17
  607. data/distro/debian/etc/init/chef-server-webui.conf +0 -17
  608. data/distro/debian/etc/init/chef-server.conf +0 -17
  609. data/distro/debian/etc/init/chef-solr.conf +0 -17
  610. data/distro/redhat/etc/init.d/chef-client +0 -121
  611. data/distro/redhat/etc/init.d/chef-expander +0 -104
  612. data/distro/redhat/etc/init.d/chef-server +0 -112
  613. data/distro/redhat/etc/init.d/chef-server-webui +0 -112
  614. data/distro/redhat/etc/init.d/chef-solr +0 -104
  615. data/distro/redhat/etc/logrotate.d/chef-client +0 -8
  616. data/distro/redhat/etc/logrotate.d/chef-expander +0 -8
  617. data/distro/redhat/etc/logrotate.d/chef-server +0 -8
  618. data/distro/redhat/etc/logrotate.d/chef-server-webui +0 -8
  619. data/distro/redhat/etc/logrotate.d/chef-solr +0 -8
  620. data/distro/redhat/etc/sysconfig/chef-client +0 -15
  621. data/distro/redhat/etc/sysconfig/chef-expander +0 -7
  622. data/distro/redhat/etc/sysconfig/chef-server +0 -14
  623. data/distro/redhat/etc/sysconfig/chef-server-webui +0 -14
  624. data/distro/redhat/etc/sysconfig/chef-solr +0 -8
  625. data/distro/windows/service_manager.rb +0 -20
  626. data/lib/chef/resource_platform_map.rb +0 -151
  627. data/spec/support/shared/matchers.rb +0 -17
  628. data/spec/unit/resource_platform_map_spec.rb +0 -164
@@ -22,8 +22,11 @@ describe Chef::Resource::Env, :windows_only do
22
22
  context 'when running on Windows' do
23
23
  let(:chef_env_test_lower_case) { 'chefenvtest' }
24
24
  let(:chef_env_test_mixed_case) { 'chefENVtest' }
25
+ let(:env_dne_key) { 'env_dne_key' }
25
26
  let(:env_value1) { 'value1' }
26
27
  let(:env_value2) { 'value2' }
28
+
29
+ let(:env_value_expandable) { '%SystemRoot%' }
27
30
  let(:test_run_context) {
28
31
  node = Chef::Node.new
29
32
  node.default['platform'] = 'windows'
@@ -71,6 +74,14 @@ describe Chef::Resource::Env, :windows_only do
71
74
  test_resource.run_action(:create)
72
75
  expect(ENV[chef_env_test_lower_case]).to eq(env_value2)
73
76
  end
77
+
78
+ it 'should not expand environment variables if the variable is not PATH' do
79
+ expect(ENV[chef_env_test_lower_case]).to eq(nil)
80
+ test_resource.key_name(chef_env_test_lower_case)
81
+ test_resource.value(env_value_expandable)
82
+ test_resource.run_action(:create)
83
+ expect(ENV[chef_env_test_lower_case]).to eq(env_value_expandable)
84
+ end
74
85
  end
75
86
 
76
87
  context "when the modify action is invoked" do
@@ -102,6 +113,41 @@ describe Chef::Resource::Env, :windows_only do
102
113
  test_resource.run_action(:modify)
103
114
  expect(ENV[chef_env_test_lower_case]).to eq(env_value2)
104
115
  end
116
+
117
+ it 'should not expand environment variables if the variable is not PATH' do
118
+ test_resource.key_name(chef_env_test_lower_case)
119
+ test_resource.value(env_value1)
120
+ test_resource.run_action(:create)
121
+ expect(ENV[chef_env_test_lower_case]).to eq(env_value1)
122
+ test_resource.value(env_value_expandable)
123
+ test_resource.run_action(:modify)
124
+ expect(ENV[chef_env_test_lower_case]).to eq(env_value_expandable)
125
+ end
126
+
127
+ context 'when using PATH' do
128
+ let(:random_name) { Time.now.to_i }
129
+ let(:env_val) { "#{env_value_expandable}_#{random_name}"}
130
+ let!(:path_before) { test_resource.provider_for_action(test_resource.action).env_value('PATH') || '' }
131
+ let!(:env_path_before) { ENV['PATH'] }
132
+
133
+ it 'should expand PATH' do
134
+ path_before.should_not include(env_val)
135
+ test_resource.key_name('PATH')
136
+ test_resource.value("#{path_before};#{env_val}")
137
+ test_resource.run_action(:create)
138
+ ENV['PATH'].should_not include(env_val)
139
+ ENV['PATH'].should include("#{random_name}")
140
+ end
141
+
142
+ after(:each) do
143
+ # cleanup so we don't flood the path
144
+ test_resource.key_name('PATH')
145
+ test_resource.value(path_before)
146
+ test_resource.run_action(:create)
147
+ ENV['PATH'] = env_path_before
148
+ end
149
+ end
150
+
105
151
  end
106
152
 
107
153
  context "when the delete action is invoked" do
@@ -132,6 +178,14 @@ describe Chef::Resource::Env, :windows_only do
132
178
  expect(ENV[chef_env_test_lower_case]).to eq(nil)
133
179
  expect(ENV[chef_env_test_mixed_case]).to eq(nil)
134
180
  end
181
+
182
+ it "should delete a value from the current process even if it is not in the registry" do
183
+ expect(ENV[env_dne_key]).to eq(nil)
184
+ ENV[env_dne_key] = env_value1
185
+ test_resource.key_name(env_dne_key)
186
+ test_resource.run_action(:delete)
187
+ expect(ENV[env_dne_key]).to eq(nil)
188
+ end
135
189
  end
136
190
  end
137
191
  end
@@ -0,0 +1,113 @@
1
+ #
2
+ # Author:: Serdar Sutay (<serdar@opscode.com>)
3
+ # Copyright:: Copyright (c) 2014 Opscode, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'spec_helper'
20
+ require 'functional/resource/base'
21
+
22
+ describe Chef::Resource::Execute do
23
+ let(:execute_resource) {
24
+ exec_resource = Chef::Resource::Execute.new("foo_resource", run_context)
25
+
26
+ exec_resource.environment(resource_environment) if resource_environment
27
+ exec_resource.cwd(resource_cwd) if resource_cwd
28
+ exec_resource.command("echo hello")
29
+ if guard
30
+ if guard_options
31
+ exec_resource.only_if(guard, guard_options)
32
+ else
33
+ exec_resource.only_if(guard)
34
+ end
35
+ end
36
+ exec_resource
37
+ }
38
+
39
+ let(:resource_environment) { nil }
40
+ let(:resource_cwd) { nil }
41
+ let(:guard) { nil }
42
+ let(:guard_options) { nil }
43
+
44
+ describe "when guard is ruby block" do
45
+ it "guard can still run" do
46
+ execute_resource.only_if do
47
+ true
48
+ end
49
+ execute_resource.run_action(:run)
50
+ execute_resource.should be_updated_by_last_action
51
+ end
52
+ end
53
+
54
+ describe "when parent resource sets :cwd" do
55
+ let(:resource_cwd) { CHEF_SPEC_DATA }
56
+
57
+ let(:guard) { %{ruby -e 'exit 1 unless File.exists?("./big_json_plus_one.json")'} }
58
+
59
+ it "guard inherits :cwd from resource" do
60
+ execute_resource.run_action(:run)
61
+ execute_resource.should be_updated_by_last_action
62
+ end
63
+ end
64
+
65
+ describe "when parent resource sets :environment" do
66
+ let(:resource_environment) do
67
+ {
68
+ "SAWS_SECRET" => "supersecret",
69
+ "SAWS_KEY" => "qwerty"
70
+ }
71
+ end
72
+
73
+ # We use ruby command so that we don't need to deal with platform specific
74
+ # commands while testing execute resource. We set it so that the resource
75
+ # will be updated if the ENV variable is set to what we are intending
76
+ let(:guard) { %{ruby -e 'exit 1 if ENV["SAWS_SECRET"] != "supersecret"'} }
77
+
78
+ it "guard inherits :environment value from resource" do
79
+ execute_resource.run_action(:run)
80
+ execute_resource.should be_updated_by_last_action
81
+ end
82
+
83
+ describe "when guard sets additional values in the :environment" do
84
+ let(:guard) { %{ruby -e 'exit 1 if ENV["SGCE_SECRET"] != "regularsecret"'} }
85
+
86
+ let(:guard_options) do
87
+ {
88
+ :environment => { 'SGCE_SECRET' => "regularsecret" }
89
+ }
90
+ end
91
+
92
+ it "guard sees merged value for in its ENV" do
93
+ execute_resource.run_action(:run)
94
+ execute_resource.should be_updated_by_last_action
95
+ end
96
+ end
97
+
98
+ describe "when guard sets same value in the :environment" do
99
+ let(:guard) { %{ruby -e 'exit 1 if ENV["SAWS_SECRET"] != "regularsecret"'} }
100
+
101
+ let(:guard_options) do
102
+ {
103
+ :environment => { 'SAWS_SECRET' => "regularsecret" }
104
+ }
105
+ end
106
+
107
+ it "guard sees value from guard options in its ENV" do
108
+ execute_resource.run_action(:run)
109
+ execute_resource.should be_updated_by_last_action
110
+ end
111
+ end
112
+ end
113
+ end
@@ -17,6 +17,7 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'tmpdir'
20
21
 
21
22
  describe Chef::Resource::File do
22
23
  include_context Chef::Resource::File
@@ -30,6 +31,7 @@ describe Chef::Resource::File do
30
31
  run_context = Chef::RunContext.new(node, {}, events)
31
32
 
32
33
  use_path = if opts[:use_relative_path]
34
+ Dir.chdir(Dir.tmpdir)
33
35
  File.basename(path)
34
36
  else
35
37
  path
@@ -28,10 +28,10 @@ describe Chef::Resource::Group, :requires_root_or_running_windows, :not_supporte
28
28
  def group_should_exist(group)
29
29
  case ohai[:platform_family]
30
30
  when "debian", "fedora", "rhel", "suse", "gentoo", "slackware", "arch"
31
- expect { Etc::getgrnam(group) }.to_not raise_error(ArgumentError, "can't find group for #{group}")
31
+ expect { Etc::getgrnam(group) }.not_to raise_error
32
32
  expect(group).to eq(Etc::getgrnam(group).name)
33
33
  when "windows"
34
- expect { Chef::Util::Windows::NetGroup.new(group).local_get_members }.to_not raise_error(ArgumentError, "The group name could not be found.")
34
+ expect { Chef::Util::Windows::NetGroup.new(group).local_get_members }.not_to raise_error
35
35
  end
36
36
  end
37
37
 
@@ -369,9 +369,12 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
369
369
  let(:tested_action) { :manage }
370
370
 
371
371
  describe "when there is no group" do
372
- it "should raise an error" do
372
+ it "raises an error on modify" do
373
+ lambda { group_resource.run_action(:modify) }.should raise_error
374
+ end
375
+
376
+ it "does not raise an error on manage" do
373
377
  lambda { group_resource.run_action(:manage) }.should_not raise_error
374
- group_should_not_exist(group_name)
375
378
  end
376
379
  end
377
380
 
@@ -22,6 +22,12 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
22
22
 
23
23
  include_context Chef::Resource::WindowsScript
24
24
 
25
+ let (:architecture_command) { 'echo $env:PROCESSOR_ARCHITECTURE' }
26
+ let (:output_command) { ' | out-file -encoding ASCII ' }
27
+
28
+ it_behaves_like "a Windows script running on Windows"
29
+
30
+
25
31
  let(:successful_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
26
32
  let(:failed_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe /badargument" }
27
33
  let(:processor_architecture_script_content) { "echo $env:PROCESSOR_ARCHITECTURE" }
@@ -36,6 +42,7 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
36
42
  let(:arbitrary_nonzero_process_exit_code_content) { "exit #{arbitrary_nonzero_process_exit_code}" }
37
43
  let(:invalid_powershell_interpreter_flag) { "/thisflagisinvalid" }
38
44
  let(:valid_powershell_interpreter_flag) { "-Sta" }
45
+
39
46
  let!(:resource) do
40
47
  r = Chef::Resource::WindowsScript::PowershellScript.new("Powershell resource functional test", @run_context)
41
48
  r.code(successful_executable_script_content)
@@ -162,6 +169,13 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
162
169
  resource.returns(0)
163
170
  resource.run_action(:run)
164
171
  end
172
+
173
+ it "raises an error when given a block and a guard_interpreter" do
174
+ resource.guard_interpreter :sh
175
+ resource.only_if { true }
176
+ expect { resource.should_skip?(:run) }.to raise_error(ArgumentError, /guard_interpreter does not support blocks/)
177
+ end
178
+
165
179
  end
166
180
 
167
181
  context "when running on a 32-bit version of Windows", :windows32_only do
@@ -204,237 +218,236 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
204
218
  end
205
219
 
206
220
  describe "when executing guards" do
207
-
208
221
  before(:each) do
209
222
  resource.not_if.clear
210
223
  resource.only_if.clear
211
- resource.guard_interpreter :powershell_script
212
224
  end
213
225
 
214
- it "evaluates a succeeding not_if block using cmd.exe as false by default" do
215
- resource.guard_interpreter :default
216
- resource.not_if "exit /b 0"
217
- resource.should_skip?(:run).should be_true
218
- end
226
+ context "when the guard_interpreter's default value of :powershell_script is overridden to :default" do
227
+ before(:each) do
228
+ resource.guard_interpreter :default
229
+ end
219
230
 
220
- it "evaluates a failing not_if block using cmd.exe as true by default" do
221
- resource.guard_interpreter :default
222
- resource.not_if "exit /b 2"
223
- resource.should_skip?(:run).should be_false
224
- end
231
+ it "evaluates a succeeding not_if block using cmd.exe as false by default" do
232
+ resource.not_if "exit /b 0"
233
+ resource.should_skip?(:run).should be_true
234
+ end
225
235
 
226
- it "evaluates an succeeding only_if block using cmd.exe as true by default" do
227
- resource.guard_interpreter :default
228
- resource.only_if "exit /b 0"
229
- resource.should_skip?(:run).should be_false
230
- end
236
+ it "evaluates a failing not_if block using cmd.exe as true by default" do
237
+ resource.not_if "exit /b 2"
238
+ resource.should_skip?(:run).should be_false
239
+ end
231
240
 
232
- it "evaluates a failing only_if block using cmd.exe as false by default" do
233
- resource.guard_interpreter :default
234
- resource.only_if "exit /b 2"
235
- resource.should_skip?(:run).should be_true
236
- end
241
+ it "evaluates an succeeding only_if block using cmd.exe as true by default" do
242
+ resource.only_if "exit /b 0"
243
+ resource.should_skip?(:run).should be_false
244
+ end
237
245
 
238
- it "evaluates a powershell $false for a not_if block as true" do
239
- resource.not_if "$false"
240
- resource.should_skip?(:run).should be_false
246
+ it "evaluates a failing only_if block using cmd.exe as false by default" do
247
+ resource.only_if "exit /b 2"
248
+ resource.should_skip?(:run).should be_true
249
+ end
241
250
  end
242
251
 
243
- it "evaluates a powershell $true for a not_if block as false" do
244
- resource.not_if "$true"
245
- resource.should_skip?(:run).should be_true
246
- end
252
+ context "the only_if is specified before the guard" do
253
+ before do
254
+ resource.guard_interpreter :default
255
+ end
247
256
 
248
- it "evaluates a powershell $false for an only_if block as false" do
249
- resource.only_if "$false"
250
- resource.should_skip?(:run).should be_true
257
+ it "evaluates a powershell $true for a only_if block as true" do
258
+ resource.only_if "$true"
259
+ resource.guard_interpreter :powershell_script
260
+ resource.should_skip?(:run).should be_false
261
+ end
251
262
  end
252
263
 
253
- it "evaluates a powershell $true for a only_if block as true" do
254
- resource.only_if "$true"
255
- resource.should_skip?(:run).should be_false
256
- end
264
+ context "with powershell_script as the guard_interpreter" do
257
265
 
258
- it "evaluates a not_if block using powershell.exe" do
259
- resource.not_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
260
- resource.should_skip?(:run).should be_true
261
- end
266
+ it "has a guard_interpreter attribute set to :powershell_script" do
267
+ expect(resource.guard_interpreter).to eq(:powershell_script)
268
+ end
262
269
 
263
- it "evaluates an only_if block using powershell.exe" do
264
- resource.only_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
265
- resource.should_skip?(:run).should be_false
266
- end
270
+ it "evaluates a powershell $false for a not_if block as true" do
271
+ resource.not_if "$false"
272
+ resource.should_skip?(:run).should be_false
273
+ end
267
274
 
268
- it "evaluates a not_if block as false" do
269
- resource.not_if { false }
270
- resource.should_skip?(:run).should be_false
271
- end
275
+ it "evaluates a powershell $true for a not_if block as false" do
276
+ resource.not_if "$true"
277
+ resource.should_skip?(:run).should be_true
278
+ end
272
279
 
273
- it "evaluates a not_if block as true" do
274
- resource.not_if { true }
275
- resource.should_skip?(:run).should be_true
276
- end
280
+ it "evaluates a powershell $false for an only_if block as false" do
281
+ resource.only_if "$false"
282
+ resource.should_skip?(:run).should be_true
283
+ end
277
284
 
278
- it "evaluates an only_if block as false" do
279
- resource.only_if { false }
280
- resource.should_skip?(:run).should be_true
281
- end
285
+ it "evaluates a powershell $true for a only_if block as true" do
286
+ resource.only_if "$true"
287
+ resource.should_skip?(:run).should be_false
288
+ end
282
289
 
283
- it "evaluates an only_if block as true" do
284
- resource.only_if { true }
285
- resource.should_skip?(:run).should be_false
286
- end
290
+ it "evaluates a not_if block using powershell.exe" do
291
+ resource.not_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
292
+ resource.should_skip?(:run).should be_true
293
+ end
287
294
 
288
- it "evaluates a non-zero powershell exit status for not_if as true" do
289
- resource.not_if "exit 37"
290
- resource.should_skip?(:run).should be_false
291
- end
295
+ it "evaluates an only_if block using powershell.exe" do
296
+ resource.only_if "exit([int32](![System.Environment]::CommandLine.Contains('powershell.exe')))"
297
+ resource.should_skip?(:run).should be_false
298
+ end
292
299
 
293
- it "evaluates a zero powershell exit status for not_if as false" do
294
- resource.not_if "exit 0"
295
- resource.should_skip?(:run).should be_true
296
- end
300
+ it "evaluates a non-zero powershell exit status for not_if as true" do
301
+ resource.not_if "exit 37"
302
+ resource.should_skip?(:run).should be_false
303
+ end
297
304
 
298
- it "evaluates a failed executable exit status for not_if as false" do
299
- resource.not_if windows_process_exit_code_not_found_content
300
- resource.should_skip?(:run).should be_false
301
- end
305
+ it "evaluates a zero powershell exit status for not_if as false" do
306
+ resource.not_if "exit 0"
307
+ resource.should_skip?(:run).should be_true
308
+ end
302
309
 
303
- it "evaluates a successful executable exit status for not_if as true" do
304
- resource.not_if windows_process_exit_code_success_content
305
- resource.should_skip?(:run).should be_true
306
- end
310
+ it "evaluates a failed executable exit status for not_if as false" do
311
+ resource.not_if windows_process_exit_code_not_found_content
312
+ resource.should_skip?(:run).should be_false
313
+ end
307
314
 
308
- it "evaluates a failed executable exit status for only_if as false" do
309
- resource.only_if windows_process_exit_code_not_found_content
310
- resource.should_skip?(:run).should be_true
311
- end
315
+ it "evaluates a successful executable exit status for not_if as true" do
316
+ resource.not_if windows_process_exit_code_success_content
317
+ resource.should_skip?(:run).should be_true
318
+ end
312
319
 
313
- it "evaluates a successful executable exit status for only_if as true" do
314
- resource.only_if windows_process_exit_code_success_content
315
- resource.should_skip?(:run).should be_false
316
- end
320
+ it "evaluates a failed executable exit status for only_if as false" do
321
+ resource.only_if windows_process_exit_code_not_found_content
322
+ resource.should_skip?(:run).should be_true
323
+ end
317
324
 
318
- it "evaluates a failed cmdlet exit status for not_if as true" do
319
- resource.not_if "throw 'up'"
320
- resource.should_skip?(:run).should be_false
321
- end
325
+ it "evaluates a successful executable exit status for only_if as true" do
326
+ resource.only_if windows_process_exit_code_success_content
327
+ resource.should_skip?(:run).should be_false
328
+ end
322
329
 
323
- it "evaluates a successful cmdlet exit status for not_if as true" do
324
- resource.not_if "cd ."
325
- resource.should_skip?(:run).should be_true
326
- end
330
+ it "evaluates a failed cmdlet exit status for not_if as true" do
331
+ resource.not_if "throw 'up'"
332
+ resource.should_skip?(:run).should be_false
333
+ end
327
334
 
328
- it "evaluates a failed cmdlet exit status for only_if as false" do
329
- resource.only_if "throw 'up'"
330
- resource.should_skip?(:run).should be_true
331
- end
335
+ it "evaluates a successful cmdlet exit status for not_if as true" do
336
+ resource.not_if "cd ."
337
+ resource.should_skip?(:run).should be_true
338
+ end
332
339
 
333
- it "evaluates a successful cmdlet exit status for only_if as true" do
334
- resource.only_if "cd ."
335
- resource.should_skip?(:run).should be_false
336
- end
340
+ it "evaluates a failed cmdlet exit status for only_if as false" do
341
+ resource.only_if "throw 'up'"
342
+ resource.should_skip?(:run).should be_true
343
+ end
337
344
 
338
- it "evaluates a not_if block using the cwd guard parameter" do
339
- custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
340
- resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
341
- resource.should_skip?(:run).should be_true
342
- end
345
+ it "evaluates a successful cmdlet exit status for only_if as true" do
346
+ resource.only_if "cd ."
347
+ resource.should_skip?(:run).should be_false
348
+ end
343
349
 
344
- it "evaluates an only_if block using the cwd guard parameter" do
345
- custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
346
- resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
347
- resource.should_skip?(:run).should be_false
348
- end
350
+ it "evaluates a not_if block using the cwd guard parameter" do
351
+ custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
352
+ resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
353
+ resource.should_skip?(:run).should be_true
354
+ end
349
355
 
350
- it "inherits cwd from the parent resource for only_if" do
351
- custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
352
- resource.cwd custom_cwd
353
- resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
354
- resource.should_skip?(:run).should be_false
355
- end
356
+ it "evaluates an only_if block using the cwd guard parameter" do
357
+ custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
358
+ resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')", :cwd => custom_cwd
359
+ resource.should_skip?(:run).should be_false
360
+ end
356
361
 
357
- it "inherits cwd from the parent resource for not_if" do
358
- custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
359
- resource.cwd custom_cwd
360
- resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
361
- resource.should_skip?(:run).should be_true
362
- end
362
+ it "inherits cwd from the parent resource for only_if" do
363
+ custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
364
+ resource.cwd custom_cwd
365
+ resource.only_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
366
+ resource.should_skip?(:run).should be_false
367
+ end
363
368
 
364
- it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean false as zero status code", :windows64_only do
365
- resource.architecture :x86_64
366
- resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'AMD64')"
367
- resource.should_skip?(:run).should be_false
368
- end
369
+ it "inherits cwd from the parent resource for not_if" do
370
+ custom_cwd = "#{ENV['SystemRoot']}\\system32\\drivers\\etc"
371
+ resource.cwd custom_cwd
372
+ resource.not_if "exit ! [int32]($pwd.path -eq '#{custom_cwd}')"
373
+ resource.should_skip?(:run).should be_true
374
+ end
369
375
 
370
- it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean true as nonzero status code", :windows64_only do
371
- resource.architecture :x86_64
372
- resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'AMD64')"
373
- resource.should_skip?(:run).should be_true
374
- end
376
+ it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean false as zero status code", :windows64_only do
377
+ resource.architecture :x86_64
378
+ resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'AMD64')"
379
+ resource.should_skip?(:run).should be_false
380
+ end
375
381
 
376
- it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code" do
377
- resource.architecture :i386
378
- resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'X86')"
379
- resource.should_skip?(:run).should be_false
380
- end
382
+ it "evaluates a 64-bit resource with a 64-bit guard and interprets boolean true as nonzero status code", :windows64_only do
383
+ resource.architecture :x86_64
384
+ resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'AMD64')"
385
+ resource.should_skip?(:run).should be_true
386
+ end
381
387
 
382
- it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code" do
383
- resource.architecture :i386
384
- resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'X86')"
385
- resource.should_skip?(:run).should be_true
386
- end
388
+ it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code" do
389
+ resource.architecture :i386
390
+ resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -ne 'X86')"
391
+ resource.should_skip?(:run).should be_false
392
+ end
387
393
 
388
- it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for only_if" do
389
- resource.convert_boolean_return true
390
- resource.only_if "$false"
391
- resource.should_skip?(:run).should be_true
392
- end
394
+ it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code" do
395
+ resource.architecture :i386
396
+ resource.only_if "exit [int32]($env:PROCESSOR_ARCHITECTURE -eq 'X86')"
397
+ resource.should_skip?(:run).should be_true
398
+ end
393
399
 
394
- it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for not_if" do
395
- resource.convert_boolean_return true
396
- resource.not_if "$false"
397
- resource.should_skip?(:run).should be_false
398
- end
400
+ it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for only_if" do
401
+ resource.convert_boolean_return true
402
+ resource.only_if "$false"
403
+ resource.should_skip?(:run).should be_true
404
+ end
399
405
 
400
- it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for only_if" do
401
- resource.convert_boolean_return true
402
- resource.only_if "$true"
403
- resource.should_skip?(:run).should be_false
404
- end
406
+ it "evaluates a simple boolean false as nonzero status code when convert_boolean_return is true for not_if" do
407
+ resource.convert_boolean_return true
408
+ resource.not_if "$false"
409
+ resource.should_skip?(:run).should be_false
410
+ end
405
411
 
406
- it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for not_if" do
407
- resource.convert_boolean_return true
408
- resource.not_if "$true"
409
- resource.should_skip?(:run).should be_true
410
- end
412
+ it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for only_if" do
413
+ resource.convert_boolean_return true
414
+ resource.only_if "$true"
415
+ resource.should_skip?(:run).should be_false
416
+ end
411
417
 
412
- it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code using convert_boolean_return for only_if" do
413
- resource.convert_boolean_return true
414
- resource.architecture :i386
415
- resource.only_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
416
- resource.should_skip?(:run).should be_false
417
- end
418
+ it "evaluates a simple boolean true as 0 status code when convert_boolean_return is true for not_if" do
419
+ resource.convert_boolean_return true
420
+ resource.not_if "$true"
421
+ resource.should_skip?(:run).should be_true
422
+ end
418
423
 
419
- it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code using convert_boolean_return for not_if" do
420
- resource.convert_boolean_return true
421
- resource.architecture :i386
422
- resource.not_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
423
- resource.should_skip?(:run).should be_false
424
- end
424
+ it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code using convert_boolean_return for only_if" do
425
+ resource.convert_boolean_return true
426
+ resource.architecture :i386
427
+ resource.only_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
428
+ resource.should_skip?(:run).should be_false
429
+ end
425
430
 
426
- it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code using convert_boolean_return for only_if" do
427
- resource.convert_boolean_return true
428
- resource.architecture :i386
429
- resource.only_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
430
- resource.should_skip?(:run).should be_true
431
- end
431
+ it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean false as zero status code using convert_boolean_return for not_if" do
432
+ resource.convert_boolean_return true
433
+ resource.architecture :i386
434
+ resource.not_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
435
+ resource.should_skip?(:run).should be_false
436
+ end
432
437
 
433
- it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code using convert_boolean_return for not_if" do
434
- resource.convert_boolean_return true
435
- resource.architecture :i386
436
- resource.not_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
437
- resource.should_skip?(:run).should be_true
438
+ it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code using convert_boolean_return for only_if" do
439
+ resource.convert_boolean_return true
440
+ resource.architecture :i386
441
+ resource.only_if "$env:PROCESSOR_ARCHITECTURE -ne 'X86'"
442
+ resource.should_skip?(:run).should be_true
443
+ end
444
+
445
+ it "evaluates a 32-bit resource with a 32-bit guard and interprets boolean true as nonzero status code using convert_boolean_return for not_if" do
446
+ resource.convert_boolean_return true
447
+ resource.architecture :i386
448
+ resource.not_if "$env:PROCESSOR_ARCHITECTURE -eq 'X86'"
449
+ resource.should_skip?(:run).should be_true
450
+ end
438
451
  end
439
452
  end
440
453