chef 11.4.4 → 11.6.0.hotfix.1

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 (504) hide show
  1. data/README.md +1 -1
  2. data/Rakefile +18 -1
  3. data/bin/chef-service-manager +37 -0
  4. data/distro/common/html/chef-client.8.html +4 -4
  5. data/distro/common/html/chef-expander.8.html +4 -4
  6. data/distro/common/html/chef-expanderctl.8.html +4 -4
  7. data/distro/common/html/chef-server-webui.8.html +4 -4
  8. data/distro/common/html/chef-server.8.html +4 -4
  9. data/distro/common/html/chef-shell.1.html +4 -4
  10. data/distro/common/html/chef-solo.8.html +12 -18
  11. data/distro/common/html/chef-solr.8.html +4 -4
  12. data/distro/common/html/knife-bootstrap.1.html +4 -4
  13. data/distro/common/html/knife-client.1.html +4 -4
  14. data/distro/common/html/knife-configure.1.html +4 -4
  15. data/distro/common/html/knife-cookbook-site.1.html +4 -4
  16. data/distro/common/html/knife-cookbook.1.html +7 -10
  17. data/distro/common/html/knife-data-bag.1.html +7 -10
  18. data/distro/common/html/knife-environment.1.html +6 -8
  19. data/distro/common/html/knife-exec.1.html +4 -4
  20. data/distro/common/html/knife-index.1.html +4 -4
  21. data/distro/common/html/knife-node.1.html +4 -4
  22. data/distro/common/html/knife-role.1.html +4 -4
  23. data/distro/common/html/knife-search.1.html +4 -4
  24. data/distro/common/html/knife-ssh.1.html +4 -4
  25. data/distro/common/html/knife-status.1.html +4 -4
  26. data/distro/common/html/knife-tag.1.html +4 -4
  27. data/distro/common/html/knife.1.html +4 -4
  28. data/distro/common/man/man1/chef-shell.1 +1 -1
  29. data/distro/common/man/man1/knife-bootstrap.1 +1 -1
  30. data/distro/common/man/man1/knife-client.1 +1 -1
  31. data/distro/common/man/man1/knife-configure.1 +1 -1
  32. data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
  33. data/distro/common/man/man1/knife-cookbook.1 +2 -15
  34. data/distro/common/man/man1/knife-data-bag.1 +2 -15
  35. data/distro/common/man/man1/knife-environment.1 +2 -12
  36. data/distro/common/man/man1/knife-exec.1 +1 -1
  37. data/distro/common/man/man1/knife-index.1 +1 -1
  38. data/distro/common/man/man1/knife-node.1 +1 -1
  39. data/distro/common/man/man1/knife-role.1 +1 -1
  40. data/distro/common/man/man1/knife-search.1 +1 -1
  41. data/distro/common/man/man1/knife-ssh.1 +1 -1
  42. data/distro/common/man/man1/knife-status.1 +1 -1
  43. data/distro/common/man/man1/knife-tag.1 +1 -1
  44. data/distro/common/man/man1/knife.1 +1 -1
  45. data/distro/common/man/man8/chef-client.8 +1 -1
  46. data/distro/common/man/man8/chef-expander.8 +1 -1
  47. data/distro/common/man/man8/chef-expanderctl.8 +1 -1
  48. data/distro/common/man/man8/chef-server-webui.8 +1 -1
  49. data/distro/common/man/man8/chef-server.8 +1 -1
  50. data/distro/common/man/man8/chef-solo.8 +4 -36
  51. data/distro/common/man/man8/chef-solr.8 +1 -1
  52. data/distro/debian/etc/init.d/chef-client +4 -2
  53. data/distro/windows/service_manager.rb +2 -146
  54. data/lib/chef.rb +1 -1
  55. data/lib/chef/application.rb +5 -12
  56. data/lib/chef/application/apply.rb +2 -0
  57. data/lib/chef/application/client.rb +12 -12
  58. data/lib/chef/application/knife.rb +2 -2
  59. data/lib/chef/application/solo.rb +4 -5
  60. data/lib/chef/application/windows_service.rb +113 -56
  61. data/lib/chef/application/windows_service_manager.rb +179 -0
  62. data/lib/chef/chef_fs.rb +2 -4
  63. data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
  64. data/lib/chef/chef_fs/command_line.rb +145 -93
  65. data/lib/chef/chef_fs/config.rb +205 -0
  66. data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -0
  67. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +38 -0
  68. data/lib/chef/chef_fs/data_handler/container_data_handler.rb +29 -0
  69. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -0
  70. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +56 -0
  71. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +128 -0
  72. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -0
  73. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +51 -0
  74. data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -0
  75. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -0
  76. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +27 -0
  77. data/lib/chef/chef_fs/file_system.rb +195 -127
  78. data/lib/chef/chef_fs/file_system/acl_dir.rb +64 -0
  79. data/lib/chef/chef_fs/file_system/acl_entry.rb +58 -0
  80. data/lib/chef/chef_fs/file_system/acls_dir.rb +68 -0
  81. data/lib/chef/chef_fs/file_system/already_exists_error.rb +31 -0
  82. data/lib/chef/chef_fs/file_system/base_fs_object.rb +98 -39
  83. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +85 -0
  84. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +71 -0
  85. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +55 -0
  86. data/lib/chef/chef_fs/file_system/chef_repository_file_system_data_bags_dir.rb +36 -0
  87. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +14 -63
  88. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +93 -3
  89. data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +35 -9
  90. data/lib/chef/chef_fs/file_system/cookbook_dir.rb +67 -32
  91. data/lib/chef/chef_fs/file_system/cookbook_file.rb +13 -6
  92. data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
  93. data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
  94. data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +102 -21
  95. data/lib/chef/chef_fs/file_system/data_bag_dir.rb +12 -21
  96. data/lib/chef/chef_fs/file_system/data_bags_dir.rb +14 -8
  97. data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +36 -0
  98. data/lib/chef/chef_fs/file_system/environments_dir.rb +60 -0
  99. data/lib/chef/chef_fs/file_system/file_system_entry.rb +8 -8
  100. data/lib/chef/chef_fs/file_system/file_system_error.rb +3 -1
  101. data/lib/chef/chef_fs/file_system/memory_dir.rb +52 -0
  102. data/lib/chef/chef_fs/file_system/memory_file.rb +17 -0
  103. data/lib/chef/chef_fs/file_system/memory_root.rb +21 -0
  104. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +48 -0
  105. data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +2 -2
  106. data/lib/chef/chef_fs/file_system/nodes_dir.rb +17 -9
  107. data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +0 -4
  108. data/lib/chef/chef_fs/file_system/not_found_error.rb +2 -2
  109. data/lib/chef/chef_fs/file_system/operation_failed_error.rb +34 -0
  110. data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +48 -0
  111. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +42 -13
  112. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +81 -27
  113. data/lib/chef/chef_fs/knife.rb +68 -29
  114. data/lib/chef/chef_fs/parallelizer.rb +129 -0
  115. data/lib/chef/chef_fs/path_utils.rb +29 -3
  116. data/lib/chef/chef_fs/raw_request.rb +79 -0
  117. data/lib/chef/client.rb +46 -20
  118. data/lib/chef/config.rb +59 -61
  119. data/lib/chef/cookbook/chefignore.rb +2 -1
  120. data/lib/chef/cookbook/synchronizer.rb +8 -6
  121. data/lib/chef/cookbook/syntax_check.rb +17 -2
  122. data/lib/chef/cookbook_uploader.rb +10 -1
  123. data/lib/chef/cookbook_version.rb +0 -109
  124. data/lib/chef/data_bag.rb +15 -6
  125. data/lib/chef/deprecation/mixin/template.rb +49 -0
  126. data/lib/chef/deprecation/provider/cookbook_file.rb +55 -0
  127. data/lib/chef/deprecation/provider/file.rb +197 -0
  128. data/lib/chef/deprecation/provider/remote_file.rb +86 -0
  129. data/lib/chef/deprecation/provider/template.rb +63 -0
  130. data/lib/chef/deprecation/warnings.rb +38 -0
  131. data/lib/chef/encrypted_data_bag_item.rb +153 -61
  132. data/lib/chef/environment.rb +34 -3
  133. data/lib/chef/event_dispatch/base.rb +3 -0
  134. data/lib/chef/exceptions.rb +27 -2
  135. data/lib/chef/file_access_control/unix.rb +64 -7
  136. data/lib/chef/file_access_control/windows.rb +22 -11
  137. data/lib/chef/file_content_management/content_base.rb +56 -0
  138. data/lib/chef/file_content_management/deploy.rb +38 -0
  139. data/lib/chef/file_content_management/deploy/cp.rb +48 -0
  140. data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -0
  141. data/lib/chef/file_content_management/deploy/mv_windows.rb +95 -0
  142. data/lib/chef/file_content_management/tempfile.rb +61 -0
  143. data/lib/chef/formatters/doc.rb +1 -1
  144. data/lib/chef/formatters/error_descriptor.rb +5 -4
  145. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +23 -3
  146. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +4 -0
  147. data/lib/chef/json_compat.rb +3 -0
  148. data/lib/chef/knife.rb +12 -3
  149. data/lib/chef/knife/bootstrap.rb +46 -2
  150. data/lib/chef/knife/bootstrap/archlinux-gems.erb +3 -3
  151. data/lib/chef/knife/bootstrap/centos5-gems.erb +3 -3
  152. data/lib/chef/knife/bootstrap/chef-full.erb +4 -4
  153. data/lib/chef/knife/bootstrap/fedora13-gems.erb +3 -3
  154. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +3 -3
  155. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +3 -3
  156. data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +3 -3
  157. data/lib/chef/knife/client_show.rb +2 -5
  158. data/lib/chef/knife/configure.rb +3 -3
  159. data/lib/chef/knife/cookbook_create.rb +6 -5
  160. data/lib/chef/knife/cookbook_download.rb +13 -5
  161. data/lib/chef/knife/cookbook_site_share.rb +1 -0
  162. data/lib/chef/knife/cookbook_test.rb +1 -0
  163. data/lib/chef/knife/cookbook_upload.rb +4 -9
  164. data/lib/chef/knife/core/bootstrap_context.rb +10 -4
  165. data/lib/chef/knife/core/generic_presenter.rb +16 -0
  166. data/lib/chef/knife/core/node_editor.rb +1 -1
  167. data/lib/chef/knife/core/subcommand_loader.rb +43 -12
  168. data/lib/chef/knife/core/ui.rb +19 -4
  169. data/lib/chef/knife/delete.rb +76 -9
  170. data/lib/chef/knife/deps.rb +139 -0
  171. data/lib/chef/knife/diff.rb +22 -5
  172. data/lib/chef/knife/download.rb +16 -3
  173. data/lib/chef/knife/edit.rb +76 -0
  174. data/lib/chef/knife/environment_show.rb +2 -7
  175. data/lib/chef/knife/list.rb +91 -47
  176. data/lib/chef/knife/node_run_list_set.rb +66 -0
  177. data/lib/chef/knife/node_show.rb +1 -7
  178. data/lib/chef/knife/raw.rb +20 -64
  179. data/lib/chef/knife/role_show.rb +2 -4
  180. data/lib/chef/knife/search.rb +5 -6
  181. data/lib/chef/knife/show.rb +34 -11
  182. data/lib/chef/knife/ssh.rb +8 -0
  183. data/lib/chef/knife/upload.rb +23 -4
  184. data/lib/chef/knife/user_show.rb +2 -5
  185. data/lib/chef/knife/xargs.rb +265 -0
  186. data/lib/chef/log.rb +2 -2
  187. data/lib/chef/mixin/file_class.rb +0 -9
  188. data/lib/chef/mixin/language_include_recipe.rb +1 -1
  189. data/lib/chef/mixin/params_validate.rb +19 -9
  190. data/lib/chef/mixin/template.rb +126 -36
  191. data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
  192. data/lib/chef/monkey_patches/file.rb +26 -0
  193. data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
  194. data/lib/chef/monkey_patches/securerandom.rb +44 -0
  195. data/lib/chef/monologger.rb +93 -0
  196. data/lib/chef/node.rb +4 -0
  197. data/lib/chef/platform.rb +4 -490
  198. data/lib/chef/platform/provider_mapping.rb +529 -0
  199. data/lib/chef/{monkey_patches/dir.rb → platform/query_helpers.rb} +25 -19
  200. data/lib/chef/provider.rb +12 -9
  201. data/lib/chef/provider/batch.rb +35 -0
  202. data/lib/chef/provider/cookbook_file.rb +9 -78
  203. data/lib/chef/provider/cookbook_file/content.rb +49 -0
  204. data/lib/chef/provider/deploy.rb +24 -20
  205. data/lib/chef/provider/deploy/revision.rb +27 -0
  206. data/lib/chef/provider/directory.rb +19 -22
  207. data/lib/chef/provider/execute.rb +22 -5
  208. data/lib/chef/provider/file.rb +299 -217
  209. data/lib/chef/provider/file/content.rb +39 -0
  210. data/lib/chef/provider/git.rb +76 -43
  211. data/lib/chef/provider/group/usermod.rb +2 -2
  212. data/lib/chef/provider/ifconfig.rb +25 -35
  213. data/lib/chef/provider/ifconfig/debian.rb +71 -0
  214. data/lib/chef/provider/ifconfig/redhat.rb +47 -0
  215. data/lib/chef/provider/link.rb +10 -3
  216. data/lib/chef/provider/mount.rb +1 -1
  217. data/lib/chef/provider/mount/mount.rb +8 -3
  218. data/lib/chef/provider/mount/windows.rb +4 -1
  219. data/lib/chef/provider/package/portage.rb +9 -4
  220. data/lib/chef/provider/package/rubygems.rb +45 -10
  221. data/lib/chef/provider/package/smartos.rb +47 -36
  222. data/lib/chef/provider/package/yum.rb +19 -12
  223. data/lib/chef/provider/package/zypper.rb +45 -55
  224. data/lib/chef/provider/powershell_script.rb +77 -0
  225. data/lib/chef/provider/remote_directory.rb +5 -6
  226. data/lib/chef/provider/remote_file.rb +12 -108
  227. data/lib/chef/provider/remote_file/cache_control_data.rb +165 -0
  228. data/lib/chef/provider/remote_file/content.rb +75 -0
  229. data/lib/chef/provider/remote_file/fetcher.rb +43 -0
  230. data/lib/chef/provider/remote_file/ftp.rb +183 -0
  231. data/lib/chef/provider/remote_file/http.rb +124 -0
  232. data/lib/chef/provider/remote_file/local_file.rb +47 -0
  233. data/lib/chef/provider/route.rb +6 -2
  234. data/lib/chef/provider/script.rb +14 -2
  235. data/lib/chef/provider/service/macosx.rb +16 -10
  236. data/lib/chef/provider/service/solaris.rb +6 -5
  237. data/lib/chef/provider/template.rb +16 -78
  238. data/lib/chef/provider/template/content.rb +61 -0
  239. data/lib/chef/provider/user/solaris.rb +90 -0
  240. data/lib/chef/provider/user/useradd.rb +76 -63
  241. data/lib/chef/provider/windows_script.rb +73 -0
  242. data/lib/chef/providers.rb +16 -0
  243. data/lib/chef/resource.rb +23 -2
  244. data/lib/chef/resource/batch.rb +31 -0
  245. data/lib/chef/resource/conditional.rb +4 -0
  246. data/lib/chef/resource/conditional_action_not_nothing.rb +48 -0
  247. data/lib/chef/resource/file.rb +31 -3
  248. data/lib/chef/resource/link.rb +17 -0
  249. data/lib/chef/resource/lwrp_base.rb +1 -1
  250. data/lib/chef/resource/mount.rb +29 -2
  251. data/lib/chef/resource/powershell_script.rb +31 -0
  252. data/lib/chef/resource/remote_file.rb +47 -1
  253. data/lib/chef/resource/route.rb +1 -1
  254. data/lib/chef/resource/template.rb +145 -0
  255. data/lib/chef/resource/windows_script.rb +62 -0
  256. data/lib/chef/resource_collection.rb +45 -11
  257. data/lib/chef/resource_reporter.rb +81 -52
  258. data/lib/chef/resources.rb +2 -0
  259. data/lib/chef/rest.rb +13 -4
  260. data/lib/chef/rest/rest_request.rb +5 -1
  261. data/lib/chef/run_context/cookbook_compiler.rb +3 -3
  262. data/lib/chef/run_list/run_list_expansion.rb +1 -1
  263. data/lib/chef/run_lock.rb +7 -1
  264. data/lib/chef/runner.rb +0 -1
  265. data/lib/chef/scan_access_control.rb +6 -1
  266. data/lib/chef/search/query.rb +2 -2
  267. data/lib/chef/shell/shell_session.rb +2 -2
  268. data/lib/chef/util/backup.rb +84 -0
  269. data/lib/chef/util/diff.rb +145 -0
  270. data/lib/chef/util/file_edit.rb +1 -1
  271. data/lib/chef/util/selinux.rb +100 -0
  272. data/lib/chef/util/windows/net_user.rb +14 -1
  273. data/lib/chef/util/windows/volume.rb +2 -2
  274. data/lib/chef/version.rb +1 -1
  275. data/lib/chef/version/platform.rb +42 -0
  276. data/lib/chef/version_class.rb +1 -1
  277. data/lib/chef/version_constraint.rb +6 -5
  278. data/lib/chef/version_constraint/platform.rb +26 -0
  279. data/lib/chef/win32/api/file.rb +8 -2
  280. data/lib/chef/win32/version.rb +25 -8
  281. data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -0
  282. data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -0
  283. data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -0
  284. data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -0
  285. data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -0
  286. data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -0
  287. data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -0
  288. data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -0
  289. data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -0
  290. data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -0
  291. data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -0
  292. data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -0
  293. data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -0
  294. data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -0
  295. data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -0
  296. data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
  297. data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
  298. data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -0
  299. data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
  300. data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
  301. data/spec/data/apt/var/www/apt/conf/distributions +7 -0
  302. data/spec/data/apt/var/www/apt/conf/incoming +4 -0
  303. data/spec/data/apt/var/www/apt/conf/pulls +3 -0
  304. data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
  305. data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
  306. data/spec/data/apt/var/www/apt/db/packages.db +0 -0
  307. data/spec/data/apt/var/www/apt/db/references.db +0 -0
  308. data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
  309. data/spec/data/apt/var/www/apt/db/version +4 -0
  310. data/spec/data/apt/var/www/apt/dists/sid/Release +19 -0
  311. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -0
  312. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
  313. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -0
  314. data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
  315. data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
  316. data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
  317. data/spec/data/bootstrap/encrypted_data_bag_secret +1 -0
  318. data/spec/data/bootstrap/secret.erb +9 -0
  319. data/spec/data/cookbooks/ignorken/recipes/default.rb +1 -0
  320. data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +2 -0
  321. data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -0
  322. data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +1 -0
  323. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -0
  324. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -0
  325. data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -0
  326. data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -0
  327. data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -0
  328. data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -0
  329. data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +4 -0
  330. data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -0
  331. data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -0
  332. data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -0
  333. data/spec/data/git_bundles/example-repo.gitbundle +0 -0
  334. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  335. data/spec/data/knife_subcommand/test_yourself.rb +8 -0
  336. data/spec/data/null_config.rb +1 -0
  337. data/spec/data/partial_one.erb +1 -1
  338. data/spec/data/remote_file/nyan_cat.png.gz +0 -0
  339. data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
  340. data/spec/functional/knife/exec_spec.rb +2 -2
  341. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +101 -0
  342. data/spec/functional/resource/batch_spec.rb +64 -0
  343. data/spec/functional/resource/cookbook_file_spec.rb +2 -3
  344. data/spec/functional/resource/deploy_revision_spec.rb +180 -0
  345. data/spec/functional/resource/directory_spec.rb +2 -2
  346. data/spec/functional/resource/file_spec.rb +17 -1
  347. data/spec/functional/resource/git_spec.rb +259 -0
  348. data/spec/functional/resource/link_spec.rb +422 -388
  349. data/spec/functional/resource/package_spec.rb +297 -0
  350. data/spec/functional/resource/powershell_spec.rb +188 -0
  351. data/spec/functional/resource/registry_spec.rb +8 -4
  352. data/spec/functional/resource/remote_directory_spec.rb +2 -2
  353. data/spec/functional/resource/remote_file_spec.rb +97 -29
  354. data/spec/functional/resource/template_spec.rb +173 -17
  355. data/spec/functional/resource/user_spec.rb +547 -0
  356. data/spec/functional/run_lock_spec.rb +5 -0
  357. data/spec/functional/shell_spec.rb +2 -1
  358. data/spec/functional/win32/service_manager_spec.rb +269 -0
  359. data/spec/functional/win32/versions_spec.rb +78 -0
  360. data/spec/integration/knife/chef_repo_path_spec.rb +805 -0
  361. data/spec/integration/knife/chef_repository_file_system_spec.rb +276 -0
  362. data/spec/integration/knife/chefignore_spec.rb +271 -0
  363. data/spec/integration/knife/delete_spec.rb +944 -0
  364. data/spec/integration/knife/deps_spec.rb +648 -0
  365. data/spec/integration/knife/diff_spec.rb +536 -0
  366. data/spec/integration/knife/download_spec.rb +962 -0
  367. data/spec/integration/knife/list_spec.rb +633 -0
  368. data/spec/integration/knife/raw_spec.rb +166 -0
  369. data/spec/integration/knife/redirection_spec.rb +57 -0
  370. data/spec/integration/knife/show_spec.rb +158 -0
  371. data/spec/integration/knife/upload_spec.rb +1060 -0
  372. data/spec/integration/solo/solo_spec.rb +41 -0
  373. data/spec/spec_helper.rb +55 -1
  374. data/spec/support/chef_helpers.rb +32 -0
  375. data/spec/support/platform_helpers.rb +40 -0
  376. data/spec/support/platforms/win32/spec_service.rb +59 -0
  377. data/spec/support/shared/functional/directory_resource.rb +43 -16
  378. data/spec/support/shared/functional/file_resource.rb +661 -20
  379. data/spec/support/shared/functional/securable_resource.rb +109 -8
  380. data/spec/support/shared/functional/securable_resource_with_reporting.rb +39 -31
  381. data/spec/support/shared/integration/integration_helper.rb +166 -0
  382. data/spec/support/shared/integration/knife_support.rb +171 -0
  383. data/spec/support/shared/unit/execute_resource.rb +125 -0
  384. data/spec/support/shared/unit/file_system_support.rb +8 -48
  385. data/spec/support/shared/unit/provider/file.rb +609 -0
  386. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +407 -0
  387. data/spec/support/shared/unit/script_resource.rb +52 -0
  388. data/spec/support/shared/unit/windows_script_resource.rb +48 -0
  389. data/spec/tiny_server.rb +13 -11
  390. data/spec/unit/application/client_spec.rb +39 -1
  391. data/spec/unit/application/knife_spec.rb +12 -0
  392. data/spec/unit/application/solo_spec.rb +1 -1
  393. data/spec/unit/application_spec.rb +57 -2
  394. data/spec/unit/chef_fs/diff_spec.rb +30 -31
  395. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  396. data/spec/unit/chef_fs/file_system_spec.rb +2 -3
  397. data/spec/unit/client_spec.rb +20 -1
  398. data/spec/unit/config_spec.rb +70 -52
  399. data/spec/unit/cookbook/synchronizer_spec.rb +49 -1
  400. data/spec/unit/cookbook/syntax_check_spec.rb +28 -3
  401. data/spec/unit/cookbook_loader_spec.rb +3 -2
  402. data/spec/unit/daemon_spec.rb +7 -7
  403. data/spec/unit/data_bag_spec.rb +7 -0
  404. data/spec/unit/deprecation_spec.rb +86 -0
  405. data/spec/unit/encrypted_data_bag_item_spec.rb +183 -88
  406. data/spec/unit/environment_spec.rb +98 -0
  407. data/spec/unit/exceptions_spec.rb +6 -1
  408. data/spec/unit/file_access_control_spec.rb +21 -1
  409. data/spec/unit/file_content_management/deploy/cp_spec.rb +46 -0
  410. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +103 -0
  411. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +179 -0
  412. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +38 -2
  413. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -2
  414. data/spec/unit/knife/bootstrap_spec.rb +128 -29
  415. data/spec/unit/knife/configure_spec.rb +42 -26
  416. data/spec/unit/knife/cookbook_download_spec.rb +24 -3
  417. data/spec/unit/knife/cookbook_upload_spec.rb +8 -4
  418. data/spec/unit/knife/core/bootstrap_context_spec.rb +78 -61
  419. data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
  420. data/spec/unit/knife/core/ui_spec.rb +41 -0
  421. data/spec/unit/knife/node_run_list_set_spec.rb +140 -0
  422. data/spec/unit/knife_spec.rb +21 -0
  423. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +1 -0
  424. data/spec/unit/mixin/params_validate_spec.rb +35 -0
  425. data/spec/unit/mixin/template_spec.rb +69 -57
  426. data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
  427. data/spec/unit/node_spec.rb +7 -0
  428. data/spec/unit/platform_spec.rb +15 -1
  429. data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
  430. data/spec/unit/provider/cookbook_file_spec.rb +26 -183
  431. data/spec/unit/provider/cron/solaris_spec.rb +1 -1
  432. data/spec/unit/provider/deploy/revision_spec.rb +19 -11
  433. data/spec/unit/provider/deploy_spec.rb +2 -2
  434. data/spec/unit/provider/directory_spec.rb +23 -23
  435. data/spec/unit/provider/execute_spec.rb +27 -1
  436. data/spec/unit/provider/file/content_spec.rb +101 -0
  437. data/spec/unit/provider/file_spec.rb +25 -484
  438. data/spec/unit/provider/git_spec.rb +224 -28
  439. data/spec/unit/provider/group/usermod_spec.rb +3 -1
  440. data/spec/unit/provider/ifconfig/debian_spec.rb +89 -0
  441. data/spec/unit/provider/ifconfig/redhat_spec.rb +71 -0
  442. data/spec/unit/provider/ifconfig_spec.rb +0 -33
  443. data/spec/unit/provider/mount/mount_spec.rb +33 -2
  444. data/spec/unit/provider/mount/windows_spec.rb +4 -1
  445. data/spec/unit/provider/mount_spec.rb +16 -6
  446. data/spec/unit/provider/package/portage_spec.rb +44 -0
  447. data/spec/unit/provider/package/rubygems_spec.rb +44 -1
  448. data/spec/unit/provider/package/smartos_spec.rb +3 -2
  449. data/spec/unit/provider/package/yum_spec.rb +36 -39
  450. data/spec/unit/provider/package/zypper_spec.rb +84 -22
  451. data/spec/unit/provider/package_spec.rb +0 -4
  452. data/spec/unit/provider/powershell_spec.rb +38 -0
  453. data/spec/unit/provider/remote_directory_spec.rb +0 -4
  454. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +211 -0
  455. data/spec/unit/provider/remote_file/content_spec.rb +230 -0
  456. data/spec/unit/provider/remote_file/fetcher_spec.rb +75 -0
  457. data/spec/unit/provider/remote_file/ftp_spec.rb +224 -0
  458. data/spec/unit/provider/remote_file/http_spec.rb +319 -0
  459. data/spec/unit/provider/remote_file/local_file_spec.rb +60 -0
  460. data/spec/unit/provider/remote_file_spec.rb +33 -295
  461. data/spec/unit/provider/route_spec.rb +25 -9
  462. data/spec/unit/provider/service/macosx_spec.rb +176 -152
  463. data/spec/unit/provider/service/solaris_smf_service_spec.rb +21 -18
  464. data/spec/unit/provider/service/systemd_service_spec.rb +2 -2
  465. data/spec/unit/provider/service/upstart_service_spec.rb +2 -2
  466. data/spec/unit/provider/service_spec.rb +3 -3
  467. data/spec/unit/provider/template/content_spec.rb +78 -0
  468. data/spec/unit/provider/template_spec.rb +52 -184
  469. data/spec/unit/provider/user/solaris_spec.rb +80 -0
  470. data/spec/unit/provider/user/useradd_spec.rb +12 -358
  471. data/spec/unit/resource/batch_spec.rb +48 -0
  472. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -0
  473. data/spec/unit/resource/execute_spec.rb +3 -101
  474. data/spec/unit/resource/file_spec.rb +0 -5
  475. data/spec/unit/resource/group_spec.rb +9 -0
  476. data/spec/unit/resource/ifconfig_spec.rb +60 -1
  477. data/spec/unit/resource/link_spec.rb +1 -0
  478. data/spec/unit/resource/mount_spec.rb +37 -0
  479. data/spec/unit/resource/powershell_spec.rb +48 -0
  480. data/spec/unit/resource/remote_file_spec.rb +44 -4
  481. data/spec/unit/resource/route_spec.rb +1 -1
  482. data/spec/unit/resource/script_spec.rb +13 -36
  483. data/spec/unit/resource/template_spec.rb +111 -8
  484. data/spec/unit/resource/user_spec.rb +7 -0
  485. data/spec/unit/resource_collection_spec.rb +61 -32
  486. data/spec/unit/resource_reporter_spec.rb +115 -102
  487. data/spec/unit/resource_spec.rb +170 -1
  488. data/spec/unit/rest/auth_credentials_spec.rb +2 -2
  489. data/spec/unit/rest_spec.rb +6 -2
  490. data/spec/unit/run_context/cookbook_compiler_spec.rb +9 -0
  491. data/spec/unit/runner_spec.rb +1 -1
  492. data/spec/unit/scan_access_control_spec.rb +4 -2
  493. data/spec/unit/shell/shell_session_spec.rb +15 -2
  494. data/spec/unit/util/backup_spec.rb +149 -0
  495. data/spec/unit/util/diff_spec.rb +596 -0
  496. data/spec/unit/util/selinux_spec.rb +172 -0
  497. data/spec/unit/version/platform_spec.rb +61 -0
  498. data/spec/unit/version_constraint/platform_spec.rb +46 -0
  499. data/spec/unit/version_constraint_spec.rb +5 -0
  500. metadata +233 -10
  501. data/lib/chef/chef_fs/file_system/data_bag_item.rb +0 -59
  502. data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +0 -237
  503. data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +0 -568
  504. data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +0 -220
@@ -0,0 +1,48 @@
1
+ #
2
+ # Author:: Adam Edwards (<adamed@opscode.com>)
3
+ # Copyright:: Copyright (c) 2013 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
+
21
+ require 'support/shared/unit/execute_resource'
22
+ require 'support/shared/unit/script_resource'
23
+
24
+ shared_examples_for "a Windows script resource" do
25
+ before(:each) do
26
+ node = Chef::Node.new
27
+
28
+ node.default["kernel"] = Hash.new
29
+ node.default["kernel"][:machine] = :x86_64.to_s
30
+
31
+ run_context = Chef::RunContext.new(node, nil, nil)
32
+
33
+ @resource = resource_instance
34
+
35
+ end
36
+
37
+ it "should be a kind of Chef::Resource::WindowsScript" do
38
+ @resource.should be_a_kind_of(Chef::Resource)
39
+ @resource.should be_a_kind_of(Chef::Resource::WindowsScript)
40
+ end
41
+
42
+ context "script" do
43
+ let(:script_resource) { resource_instance }
44
+ it_should_behave_like "a script resource"
45
+ end
46
+
47
+ end
48
+
@@ -18,6 +18,7 @@
18
18
 
19
19
  require 'rubygems'
20
20
  require 'webrick'
21
+ require 'webrick/https'
21
22
  require 'rack'
22
23
  #require 'thin'
23
24
  require 'singleton'
@@ -90,7 +91,7 @@ module TinyServer
90
91
  true
91
92
  rescue OpenURI::HTTPError
92
93
  true
93
- rescue Errno::ECONNREFUSED => e
94
+ rescue Errno::ECONNREFUSED, EOFError, Errno::ECONNRESET => e
94
95
  sleep 0.1
95
96
  # If the host has ":::1 localhost" in its hosts file and if IPv6
96
97
  # is not enabled we can get NetworkUnreachable exception...
@@ -127,20 +128,20 @@ module TinyServer
127
128
  @routes = {GET => [], PUT => [], POST => [], DELETE => []}
128
129
  end
129
130
 
130
- def get(path, response_code, data=nil, &block)
131
- @routes[GET] << Route.new(path, Response.new(response_code,data, &block))
131
+ def get(path, response_code, data=nil, headers=nil, &block)
132
+ @routes[GET] << Route.new(path, Response.new(response_code, data, headers, &block))
132
133
  end
133
134
 
134
- def put(path, response_code, data=nil, &block)
135
- @routes[PUT] << Route.new(path, Response.new(response_code,data, &block))
135
+ def put(path, response_code, data=nil, headers=nil, &block)
136
+ @routes[PUT] << Route.new(path, Response.new(response_code, data, headers, &block))
136
137
  end
137
138
 
138
- def post(path, response_code, data=nil, &block)
139
- @routes[POST] << Route.new(path, Response.new(response_code,data, &block))
139
+ def post(path, response_code, data=nil, headers=nil, &block)
140
+ @routes[POST] << Route.new(path, Response.new(response_code, data, headers, &block))
140
141
  end
141
142
 
142
- def delete(path, response_code, data=nil, &block)
143
- @routes[DELETE] << Route.new(path, Response.new(response_code,data, &block))
143
+ def delete(path, response_code, data=nil, headers=nil, &block)
144
+ @routes[DELETE] << Route.new(path, Response.new(response_code, data, headers, &block))
144
145
  end
145
146
 
146
147
  def call(env)
@@ -183,14 +184,15 @@ module TinyServer
183
184
  class Response
184
185
  HEADERS = {'Content-Type' => 'application/json'}
185
186
 
186
- def initialize(response_code=200,data=nil, &block)
187
+ def initialize(response_code=200, data=nil, headers=nil, &block)
187
188
  @response_code, @data = response_code, data
189
+ @response_headers = headers ? HEADERS.merge(headers) : HEADERS
188
190
  @block = block_given? ? block : nil
189
191
  end
190
192
 
191
193
  def call
192
194
  data = @data || @block.call
193
- [@response_code, HEADERS, Array(data)]
195
+ [@response_code, @response_headers, Array(data)]
194
196
  end
195
197
 
196
198
  def to_s
@@ -19,7 +19,7 @@ require 'spec_helper'
19
19
 
20
20
  describe Chef::Application::Client, "reconfigure" do
21
21
  before do
22
- @original_config = Chef::Config.configuration
22
+ @original_config = Chef::Config.configuration.dup
23
23
 
24
24
  @app = Chef::Application::Client.new
25
25
  @app.stub!(:configure_opt_parser).and_return(true)
@@ -134,3 +134,41 @@ describe Chef::Application::Client, "setup_application" do
134
134
  Chef::Config[:solo] = false
135
135
  end
136
136
  end
137
+
138
+ describe Chef::Application::Client, "configure_chef" do
139
+ before do
140
+ @app = Chef::Application::Client.new
141
+ @app.configure_chef
142
+ end
143
+
144
+ it "should set the colored output to false by default on windows and true otherwise" do
145
+ if windows?
146
+ Chef::Config[:color].should be_false
147
+ else
148
+ Chef::Config[:color].should be_true
149
+ end
150
+ end
151
+ end
152
+
153
+ describe Chef::Application::Client, "run_application", :unix_only do
154
+ before do
155
+ @pipe = IO.pipe
156
+ @app = Chef::Application::Client.new
157
+ @app.stub(:run_chef_client) do
158
+ @pipe[1].puts 'started'
159
+ sleep 1
160
+ @pipe[1].puts 'finished'
161
+ end
162
+ end
163
+
164
+ it "should exit gracefully when sent SIGTERM" do
165
+ pid = fork do
166
+ @app.run_application
167
+ end
168
+ @pipe[0].gets.should == "started\n"
169
+ Process.kill("TERM", pid)
170
+ Process.wait
171
+ IO.select([@pipe[0]], nil, nil, 0).should_not be_nil
172
+ @pipe[0].gets.should == "finished\n"
173
+ end
174
+ end
@@ -61,6 +61,18 @@ describe Chef::Application::Knife do
61
61
  end
62
62
  end
63
63
 
64
+ it "should set the colored output to false by default on windows and true otherwise" do
65
+ with_argv(*%w{noop knife command}) do
66
+ @knife.should_receive(:exit).with(0)
67
+ @knife.run
68
+ end
69
+ if windows?
70
+ Chef::Config[:color].should be_false
71
+ else
72
+ Chef::Config[:color].should be_true
73
+ end
74
+ end
75
+
64
76
  describe "when given a path to the client key" do
65
77
  it "expands a relative path relative to the CWD" do
66
78
  relative_path = '.chef/client.pem'
@@ -136,7 +136,7 @@ describe Chef::Application::Solo do
136
136
  end
137
137
 
138
138
  it "should untar the target file to the parent of the cookbook path" do
139
- Chef::Mixin::Command.should_receive(:run_command).with({:command => "tar zxvfC #{Dir.tmpdir}/chef-solo/recipes.tgz #{Dir.tmpdir}/chef-solo"}).and_return(true)
139
+ Chef::Mixin::Command.should_receive(:run_command).with({:command => "tar zxvf #{Dir.tmpdir}/chef-solo/recipes.tgz -C #{Dir.tmpdir}/chef-solo"}).and_return(true)
140
140
  @app.reconfigure
141
141
  end
142
142
  end
@@ -183,7 +183,9 @@ describe Chef::Application do
183
183
 
184
184
  it "should initialise the chef logger" do
185
185
  Chef::Log.stub!(:level=)
186
- Chef::Log.should_receive(:init).with(Chef::Config[:log_location]).and_return(true)
186
+ @monologger = mock("Monologger")
187
+ MonoLogger.should_receive(:new).with(Chef::Config[:log_location]).and_return(@monologger)
188
+ Chef::Log.should_receive(:init).with(@monologger)
187
189
  @app.configure_logging
188
190
  end
189
191
 
@@ -240,7 +242,6 @@ describe Chef::Application do
240
242
  end
241
243
  end
242
244
 
243
-
244
245
  end
245
246
  end
246
247
 
@@ -291,4 +292,58 @@ describe Chef::Application do
291
292
  lambda { @app.run_application }.should raise_error(Chef::Exceptions::Application)
292
293
  end
293
294
  end
295
+
296
+ describe "configuration errors" do
297
+ before do
298
+ Process.stub!(:exit).and_return(true)
299
+ end
300
+
301
+ def raises_informative_fatals_on_configure_chef
302
+ config_file_regexp = Regexp.new @app.config[:config_file]
303
+ Chef::Log.should_receive(:fatal).with(config_file_regexp).and_return(true)
304
+ @app.configure_chef
305
+ end
306
+
307
+ def warns_informatively_on_configure_chef
308
+ config_file_regexp = Regexp.new @app.config[:config_file]
309
+ Chef::Log.should_receive(:warn).at_least(:once).with(config_file_regexp).and_return(true)
310
+ Chef::Log.should_receive(:warn).any_number_of_times.and_return(true)
311
+ @app.configure_chef
312
+ end
313
+
314
+ it "should warn for bad config file path" do
315
+ @app.config[:config_file] = "/tmp/non-existing-dir/file"
316
+ warns_informatively_on_configure_chef
317
+ end
318
+
319
+ it "should raise informative fatals for bad config file url" do
320
+ non_existing_url = "http://its-stubbed.com/foo.rb"
321
+ @app.config[:config_file] = non_existing_url
322
+ Chef::REST.any_instance.stub(:fetch).with(non_existing_url).and_raise(SocketError)
323
+ raises_informative_fatals_on_configure_chef
324
+ end
325
+
326
+ describe "when config file exists but contains errors" do
327
+ def create_config_file(text)
328
+ @config_file = Tempfile.new("rspec-chef-config")
329
+ @config_file.write(text)
330
+ @config_file.close
331
+ @app.config[:config_file] = @config_file.path
332
+ end
333
+
334
+ after(:each) do
335
+ @config_file.unlink
336
+ end
337
+
338
+ it "should raise informative fatals for missing log file dir" do
339
+ create_config_file('log_location "/tmp/non-existing-dir/logfile"')
340
+ raises_informative_fatals_on_configure_chef
341
+ end
342
+
343
+ it "should raise informative fatals for badly written config" do
344
+ create_config_file("text that should break the config parsing")
345
+ raises_informative_fatals_on_configure_chef
346
+ end
347
+ end
348
+ end
294
349
  end
@@ -17,7 +17,6 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
- require 'support/shared/unit/file_system_support'
21
20
  require 'chef/chef_fs/file_pattern'
22
21
  require 'chef/chef_fs/command_line'
23
22
 
@@ -87,9 +86,9 @@ describe 'diff', :uses_diff => true do
87
86
  :file_in_a_dir_in_b => {}
88
87
  }, /cannot_be_in_b/)
89
88
  }
90
- it 'Chef::ChefFS::CommandLine.diff(/)' do
89
+ it 'Chef::ChefFS::CommandLine.diff_print(/)' do
91
90
  results = []
92
- Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, nil, nil) do |diff|
91
+ Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, nil, nil) do |diff|
93
92
  results << remove_os_differences(diff)
94
93
  end
95
94
  results.should =~ [
@@ -118,8 +117,8 @@ deleted file
118
117
  +++ /dev/null DATE
119
118
  CONTEXT_LINE_NUMBERS
120
119
  -sub_a_only_file
121
- ','File b/both_dirs/sub_dir_in_a_file_in_b is a directory while file b/both_dirs/sub_dir_in_a_file_in_b is a regular file
122
- ','File a/both_dirs/sub_file_in_a_dir_in_b is a regular file while file a/both_dirs/sub_file_in_a_dir_in_b is a directory
120
+ ','File a/both_dirs/sub_dir_in_a_file_in_b is a directory while file b/both_dirs/sub_dir_in_a_file_in_b is a regular file
121
+ ','File a/both_dirs/sub_file_in_a_dir_in_b is a regular file while file b/both_dirs/sub_file_in_a_dir_in_b is a directory
123
122
  ','Only in b/both_dirs: sub_b_only_dir
124
123
  ','diff --knife a/both_dirs/sub_b_only_file b/both_dirs/sub_b_only_file
125
124
  new file
@@ -152,8 +151,8 @@ deleted file
152
151
  +++ /dev/null DATE
153
152
  CONTEXT_LINE_NUMBERS
154
153
  -a_only_file
155
- ','File b/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
156
- ','File a/file_in_a_dir_in_b is a regular file while file a/file_in_a_dir_in_b is a directory
154
+ ','File a/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
155
+ ','File a/file_in_a_dir_in_b is a regular file while file b/file_in_a_dir_in_b is a directory
157
156
  ','Only in b: b_only_dir
158
157
  ','diff --knife a/b_only_file b/b_only_file
159
158
  new file
@@ -163,9 +162,9 @@ CONTEXT_LINE_NUMBERS
163
162
  +b_only_file
164
163
  ' ]
165
164
  end
166
- it 'Chef::ChefFS::CommandLine.diff(/both_dirs)' do
165
+ it 'Chef::ChefFS::CommandLine.diff_print(/both_dirs)' do
167
166
  results = []
168
- Chef::ChefFS::CommandLine.diff(pattern('/both_dirs'), a, b, nil, nil) do |diff|
167
+ Chef::ChefFS::CommandLine.diff_print(pattern('/both_dirs'), a, b, nil, nil) do |diff|
169
168
  results << remove_os_differences(diff)
170
169
  end
171
170
  results.should =~ [
@@ -194,8 +193,8 @@ deleted file
194
193
  +++ /dev/null DATE
195
194
  CONTEXT_LINE_NUMBERS
196
195
  -sub_a_only_file
197
- ','File b/both_dirs/sub_dir_in_a_file_in_b is a directory while file b/both_dirs/sub_dir_in_a_file_in_b is a regular file
198
- ','File a/both_dirs/sub_file_in_a_dir_in_b is a regular file while file a/both_dirs/sub_file_in_a_dir_in_b is a directory
196
+ ','File a/both_dirs/sub_dir_in_a_file_in_b is a directory while file b/both_dirs/sub_dir_in_a_file_in_b is a regular file
197
+ ','File a/both_dirs/sub_file_in_a_dir_in_b is a regular file while file b/both_dirs/sub_file_in_a_dir_in_b is a directory
199
198
  ','Only in b/both_dirs: sub_b_only_dir
200
199
  ','diff --knife a/both_dirs/sub_b_only_file b/both_dirs/sub_b_only_file
201
200
  new file
@@ -205,22 +204,22 @@ CONTEXT_LINE_NUMBERS
205
204
  +sub_b_only_file
206
205
  ' ]
207
206
  end
208
- it 'Chef::ChefFS::CommandLine.diff(/) with depth 1' do
207
+ it 'Chef::ChefFS::CommandLine.diff_print(/) with depth 1' do
209
208
  results = []
210
- Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, 1, nil) do |diff|
209
+ Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, 1, nil) do |diff|
211
210
  results << remove_os_differences(diff)
212
211
  end
213
212
  results.should =~ [
214
- 'Common subdirectories: /both_dirs
213
+ 'Common subdirectories: b/both_dirs
215
214
  ','diff --knife a/both_files_different b/both_files_different
216
215
  --- a/both_files_different DATE
217
216
  +++ b/both_files_different DATE
218
217
  CONTEXT_LINE_NUMBERS
219
218
  -a
220
219
  +b
221
- ','Common subdirectories: /both_dirs_empty
222
- ','Common subdirectories: /dirs_empty_in_b_filled_in_a
223
- ','Common subdirectories: /dirs_empty_in_a_filled_in_b
220
+ ','Common subdirectories: b/both_dirs_empty
221
+ ','Common subdirectories: b/dirs_empty_in_b_filled_in_a
222
+ ','Common subdirectories: b/dirs_empty_in_a_filled_in_b
224
223
  ','Only in a: a_only_dir
225
224
  ','diff --knife a/a_only_file b/a_only_file
226
225
  deleted file
@@ -228,8 +227,8 @@ deleted file
228
227
  +++ /dev/null DATE
229
228
  CONTEXT_LINE_NUMBERS
230
229
  -a_only_file
231
- ','File b/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
232
- ','File a/file_in_a_dir_in_b is a regular file while file a/file_in_a_dir_in_b is a directory
230
+ ','File a/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
231
+ ','File a/file_in_a_dir_in_b is a regular file while file b/file_in_a_dir_in_b is a directory
233
232
  ','Only in b: b_only_dir
234
233
  ','diff --knife a/b_only_file b/b_only_file
235
234
  new file
@@ -239,22 +238,22 @@ CONTEXT_LINE_NUMBERS
239
238
  +b_only_file
240
239
  ' ]
241
240
  end
242
- it 'Chef::ChefFS::CommandLine.diff(/*_*) with depth 0' do
241
+ it 'Chef::ChefFS::CommandLine.diff_print(/*_*) with depth 0' do
243
242
  results = []
244
- Chef::ChefFS::CommandLine.diff(pattern('/*_*'), a, b, 0, nil) do |diff|
243
+ Chef::ChefFS::CommandLine.diff_print(pattern('/*_*'), a, b, 0, nil) do |diff|
245
244
  results << remove_os_differences(diff)
246
245
  end
247
246
  results.should =~ [
248
- 'Common subdirectories: /both_dirs
247
+ 'Common subdirectories: b/both_dirs
249
248
  ','diff --knife a/both_files_different b/both_files_different
250
249
  --- a/both_files_different DATE
251
250
  +++ b/both_files_different DATE
252
251
  CONTEXT_LINE_NUMBERS
253
252
  -a
254
253
  +b
255
- ','Common subdirectories: /both_dirs_empty
256
- ','Common subdirectories: /dirs_empty_in_b_filled_in_a
257
- ','Common subdirectories: /dirs_empty_in_a_filled_in_b
254
+ ','Common subdirectories: b/both_dirs_empty
255
+ ','Common subdirectories: b/dirs_empty_in_b_filled_in_a
256
+ ','Common subdirectories: b/dirs_empty_in_a_filled_in_b
258
257
  ','Only in a: a_only_dir
259
258
  ','diff --knife a/a_only_file b/a_only_file
260
259
  deleted file
@@ -262,8 +261,8 @@ deleted file
262
261
  +++ /dev/null DATE
263
262
  CONTEXT_LINE_NUMBERS
264
263
  -a_only_file
265
- ','File b/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
266
- ','File a/file_in_a_dir_in_b is a regular file while file a/file_in_a_dir_in_b is a directory
264
+ ','File a/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
265
+ ','File a/file_in_a_dir_in_b is a regular file while file b/file_in_a_dir_in_b is a directory
267
266
  ','Only in b: b_only_dir
268
267
  ','diff --knife a/b_only_file b/b_only_file
269
268
  new file
@@ -273,9 +272,9 @@ CONTEXT_LINE_NUMBERS
273
272
  +b_only_file
274
273
  ' ]
275
274
  end
276
- it 'Chef::ChefFS::CommandLine.diff(/) in name-only mode' do
275
+ it 'Chef::ChefFS::CommandLine.diff_print(/) in name-only mode' do
277
276
  results = []
278
- Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, nil, :name_only) do |diff|
277
+ Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, nil, :name_only) do |diff|
279
278
  results << remove_os_differences(diff)
280
279
  end
281
280
  results.should =~ [
@@ -299,9 +298,9 @@ CONTEXT_LINE_NUMBERS
299
298
  "b/file_in_a_dir_in_b\n"
300
299
  ]
301
300
  end
302
- it 'Chef::ChefFS::CommandLine.diff(/) in name-status mode' do
301
+ it 'Chef::ChefFS::CommandLine.diff_print(/) in name-status mode' do
303
302
  results = []
304
- Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, nil, :name_status) do |diff|
303
+ Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, nil, :name_status) do |diff|
305
304
  results << remove_os_differences(diff)
306
305
  end
307
306
  results.should =~ [
@@ -157,7 +157,7 @@ describe Chef::ChefFS::FilePattern do
157
157
  end
158
158
  end
159
159
 
160
- context 'with simple pattern "a\*\b"' do
160
+ context 'with simple pattern "a\*\b"', :pending => (Chef::Platform.windows?) do
161
161
  let(:pattern) { Chef::ChefFS::FilePattern.new('a\*\b') }
162
162
  it 'match?' do
163
163
  pattern.match?('a*b').should be_true
@@ -264,7 +264,7 @@ describe Chef::ChefFS::FilePattern do
264
264
  end
265
265
  end
266
266
 
267
- context 'with star pattern "/abc/d[a-z][0-9]f/ghi"' do
267
+ context 'with star pattern "/abc/d[a-z][0-9]f/ghi"', :pending => (Chef::Platform.windows?) do
268
268
  let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/d[a-z][0-9]f/ghi') }
269
269
  it 'match?' do
270
270
  pattern.match?('/abc/de1f/ghi').should be_true