chef 11.6.2-x86-mingw32 → 11.8.0.rc.1-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 +12 -12
  2. data/Rakefile +11 -14
  3. data/bin/chef-apply +2 -2
  4. data/bin/chef-client +2 -2
  5. data/bin/chef-service-manager +2 -2
  6. data/bin/chef-shell +3 -0
  7. data/bin/chef-solo +2 -2
  8. data/bin/knife +3 -3
  9. data/distro/arch/etc/rc.d/chef-client +2 -2
  10. data/distro/arch/etc/rc.d/chef-server +2 -2
  11. data/distro/arch/etc/rc.d/chef-server-webui +2 -2
  12. data/distro/arch/etc/rc.d/chef-solr +2 -2
  13. data/distro/common/html/chef-client.8.html +3 -3
  14. data/distro/common/html/chef-expander.8.html +3 -3
  15. data/distro/common/html/chef-expanderctl.8.html +3 -3
  16. data/distro/common/html/chef-server-webui.8.html +3 -3
  17. data/distro/common/html/chef-server.8.html +3 -3
  18. data/distro/common/html/chef-shell.1.html +3 -3
  19. data/distro/common/html/chef-solo.8.html +3 -3
  20. data/distro/common/html/chef-solr.8.html +4 -4
  21. data/distro/common/html/knife-bootstrap.1.html +3 -3
  22. data/distro/common/html/knife-client.1.html +3 -3
  23. data/distro/common/html/knife-configure.1.html +13 -13
  24. data/distro/common/html/knife-cookbook-site.1.html +3 -3
  25. data/distro/common/html/knife-cookbook.1.html +7 -7
  26. data/distro/common/html/knife-data-bag.1.html +3 -3
  27. data/distro/common/html/knife-environment.1.html +3 -3
  28. data/distro/common/html/knife-exec.1.html +3 -3
  29. data/distro/common/html/knife-index.1.html +3 -3
  30. data/distro/common/html/knife-node.1.html +3 -3
  31. data/distro/common/html/knife-role.1.html +3 -3
  32. data/distro/common/html/knife-search.1.html +3 -3
  33. data/distro/common/html/knife-ssh.1.html +3 -3
  34. data/distro/common/html/knife-status.1.html +3 -3
  35. data/distro/common/html/knife-tag.1.html +3 -3
  36. data/distro/common/html/knife.1.html +3 -3
  37. data/distro/common/man/man1/README.md +58 -0
  38. data/distro/common/man/man1/chef-shell.1 +114 -219
  39. data/distro/common/man/man1/knife-bootstrap.1 +176 -180
  40. data/distro/common/man/man1/knife-client.1 +368 -0
  41. data/distro/common/man/man1/knife-configure.1 +147 -85
  42. data/distro/common/man/man1/knife-cookbook-site.1 +465 -133
  43. data/distro/common/man/man1/knife-cookbook.1 +614 -304
  44. data/distro/common/man/man1/knife-data-bag.1 +476 -113
  45. data/distro/common/man/man1/knife-delete.1 +132 -0
  46. data/distro/common/man/man1/knife-deps.1 +219 -0
  47. data/distro/common/man/man1/knife-diff.1 +212 -0
  48. data/distro/common/man/man1/knife-download.1 +220 -0
  49. data/distro/common/man/man1/knife-edit.1 +126 -0
  50. data/distro/common/man/man1/knife-environment.1 +324 -0
  51. data/distro/common/man/man1/knife-exec.1 +317 -35
  52. data/distro/common/man/man1/knife-index-rebuild.1 +115 -0
  53. data/distro/common/man/man1/knife-list.1 +167 -0
  54. data/distro/common/man/man1/knife-node.1 +567 -123
  55. data/distro/common/man/man1/knife-raw.1 +170 -0
  56. data/distro/common/man/man1/knife-recipe-list.1 +133 -0
  57. data/distro/common/man/man1/knife-role.1 +367 -81
  58. data/distro/common/man/man1/knife-search.1 +267 -243
  59. data/distro/common/man/man1/knife-show.1 +138 -0
  60. data/distro/common/man/man1/knife-ssh.1 +241 -66
  61. data/distro/common/man/man1/knife-status.1 +202 -24
  62. data/distro/common/man/man1/knife-tag.1 +176 -39
  63. data/distro/common/man/man1/knife-upload.1 +239 -0
  64. data/distro/common/man/man1/knife-user.1 +317 -0
  65. data/distro/common/man/man1/knife-xargs.1 +166 -0
  66. data/distro/common/man/man1/knife.1 +227 -284
  67. data/distro/common/man/man8/chef-client.8 +247 -81
  68. data/distro/common/man/man8/chef-solo.8 +142 -110
  69. data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
  70. data/distro/common/markdown/man1/knife-configure.mkd +11 -11
  71. data/distro/common/markdown/man1/knife-cookbook.mkd +4 -4
  72. data/distro/common/markdown/man8/chef-expander.mkd +1 -1
  73. data/distro/common/markdown/man8/chef-expanderctl.mkd +1 -1
  74. data/distro/debian/etc/init.d/chef-client +1 -1
  75. data/distro/debian/etc/init.d/chef-expander +1 -1
  76. data/distro/debian/etc/init.d/chef-server +1 -1
  77. data/distro/debian/etc/init.d/chef-server-webui +1 -1
  78. data/distro/debian/etc/init.d/chef-solr +1 -1
  79. data/distro/debian/etc/init/chef-client.conf +1 -1
  80. data/distro/debian/etc/init/chef-expander.conf +1 -1
  81. data/distro/debian/etc/init/chef-server-webui.conf +1 -1
  82. data/distro/debian/etc/init/chef-server.conf +1 -1
  83. data/distro/debian/etc/init/chef-solr.conf +1 -1
  84. data/distro/redhat/etc/init.d/chef-client +1 -1
  85. data/distro/redhat/etc/init.d/chef-server +2 -2
  86. data/distro/redhat/etc/init.d/chef-server-webui +2 -2
  87. data/distro/redhat/etc/init.d/chef-solr +2 -2
  88. data/lib/chef/api_client.rb +20 -5
  89. data/lib/chef/application.rb +53 -22
  90. data/lib/chef/application/agent.rb +2 -2
  91. data/lib/chef/application/client.rb +34 -24
  92. data/lib/chef/application/knife.rb +10 -0
  93. data/lib/chef/application/solo.rb +9 -27
  94. data/lib/chef/application/windows_service.rb +24 -10
  95. data/lib/chef/application/windows_service_manager.rb +8 -0
  96. data/lib/chef/checksum/storage.rb +2 -2
  97. data/lib/chef/checksum/storage/filesystem.rb +2 -2
  98. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  99. data/lib/chef/chef_fs/command_line.rb +2 -1
  100. data/lib/chef/chef_fs/config.rb +19 -64
  101. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -2
  102. data/lib/chef/chef_fs/file_system.rb +2 -2
  103. data/lib/chef/chef_fs/file_system/acl_entry.rb +1 -1
  104. data/lib/chef/chef_fs/file_system/chef_repository_file_system_acls_dir.rb +37 -0
  105. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +16 -8
  106. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +19 -4
  107. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +27 -12
  108. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +31 -3
  109. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +12 -5
  110. data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +12 -2
  111. data/lib/chef/chef_fs/file_system/cookbook_dir.rb +3 -2
  112. data/lib/chef/chef_fs/file_system/cookbook_file.rb +2 -5
  113. data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +21 -6
  114. data/lib/chef/chef_fs/file_system/data_bag_dir.rb +1 -1
  115. data/lib/chef/chef_fs/file_system/data_bags_dir.rb +3 -2
  116. data/lib/chef/chef_fs/file_system/file_system_entry.rb +15 -5
  117. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +2 -1
  118. data/lib/chef/chef_fs/file_system/nodes_dir.rb +1 -1
  119. data/lib/chef/chef_fs/file_system/operation_failed_error.rb +8 -0
  120. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +4 -2
  121. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +4 -6
  122. data/lib/chef/chef_fs/knife.rb +39 -22
  123. data/lib/chef/chef_fs/path_utils.rb +5 -0
  124. data/lib/chef/client.rb +9 -3
  125. data/lib/chef/config.rb +306 -115
  126. data/lib/chef/config_fetcher.rb +79 -0
  127. data/lib/chef/cookbook/file_vendor.rb +5 -5
  128. data/lib/chef/cookbook/metadata.rb +2 -2
  129. data/lib/chef/cookbook/syntax_check.rb +6 -16
  130. data/lib/chef/cookbook_site_streaming_uploader.rb +8 -4
  131. data/lib/chef/cookbook_uploader.rb +10 -8
  132. data/lib/chef/cookbook_version.rb +24 -8
  133. data/lib/chef/daemon.rb +14 -75
  134. data/lib/chef/data_bag.rb +2 -3
  135. data/lib/chef/dsl/include_recipe.rb +2 -2
  136. data/lib/chef/event_dispatch/base.rb +1 -1
  137. data/lib/chef/event_dispatch/dispatcher.rb +1 -1
  138. data/lib/chef/file_access_control/windows.rb +1 -1
  139. data/lib/chef/formatters/doc.rb +5 -5
  140. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +2 -2
  141. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
  142. data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +2 -2
  143. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  144. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  145. data/lib/chef/handler/json_file.rb +2 -2
  146. data/lib/chef/http.rb +386 -0
  147. data/lib/chef/{rest → http}/auth_credentials.rb +1 -1
  148. data/lib/chef/http/authenticator.rb +89 -0
  149. data/lib/chef/http/basic_client.rb +114 -0
  150. data/lib/chef/{rest → http}/cookie_jar.rb +1 -1
  151. data/lib/chef/http/cookie_manager.rb +56 -0
  152. data/lib/chef/http/decompressor.rb +137 -0
  153. data/lib/chef/{rest/rest_request.rb → http/http_request.rb} +13 -74
  154. data/lib/chef/http/json_input.rb +53 -0
  155. data/lib/chef/http/json_output.rb +69 -0
  156. data/lib/chef/http/json_to_model_output.rb +34 -0
  157. data/lib/chef/http/simple.rb +16 -0
  158. data/lib/chef/http/ssl_policies.rb +129 -0
  159. data/lib/chef/knife.rb +45 -23
  160. data/lib/chef/knife/bootstrap.rb +10 -3
  161. data/lib/chef/knife/bootstrap/chef-full.erb +10 -1
  162. data/lib/chef/knife/client_create.rb +1 -1
  163. data/lib/chef/knife/configure.rb +1 -1
  164. data/lib/chef/knife/cookbook_create.rb +7 -7
  165. data/lib/chef/knife/cookbook_download.rb +2 -2
  166. data/lib/chef/knife/cookbook_metadata_from_file.rb +2 -2
  167. data/lib/chef/knife/cookbook_show.rb +3 -3
  168. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  169. data/lib/chef/knife/cookbook_site_list.rb +2 -2
  170. data/lib/chef/knife/cookbook_site_search.rb +3 -3
  171. data/lib/chef/knife/cookbook_site_show.rb +5 -5
  172. data/lib/chef/knife/core/bootstrap_context.rb +7 -3
  173. data/lib/chef/knife/core/node_editor.rb +16 -36
  174. data/lib/chef/knife/core/node_presenter.rb +1 -1
  175. data/lib/chef/knife/core/subcommand_loader.rb +5 -5
  176. data/lib/chef/knife/core/ui.rb +9 -13
  177. data/lib/chef/knife/data_bag_create.rb +7 -5
  178. data/lib/chef/knife/data_bag_delete.rb +3 -3
  179. data/lib/chef/knife/data_bag_edit.rb +9 -7
  180. data/lib/chef/knife/data_bag_from_file.rb +10 -8
  181. data/lib/chef/knife/data_bag_list.rb +2 -2
  182. data/lib/chef/knife/data_bag_show.rb +9 -7
  183. data/lib/chef/knife/delete.rb +2 -0
  184. data/lib/chef/knife/deps.rb +2 -0
  185. data/lib/chef/knife/diff.rb +6 -0
  186. data/lib/chef/knife/download.rb +6 -0
  187. data/lib/chef/knife/edit.rb +5 -8
  188. data/lib/chef/knife/environment_from_file.rb +2 -2
  189. data/lib/chef/knife/help_topics.rb +1 -1
  190. data/lib/chef/knife/index_rebuild.rb +2 -2
  191. data/lib/chef/knife/list.rb +2 -0
  192. data/lib/chef/knife/raw.rb +31 -5
  193. data/lib/chef/knife/show.rb +2 -0
  194. data/lib/chef/knife/ssh.rb +21 -7
  195. data/lib/chef/knife/status.rb +1 -1
  196. data/lib/chef/knife/upload.rb +2 -0
  197. data/lib/chef/knife/xargs.rb +2 -0
  198. data/lib/chef/mixin/checksum.rb +2 -2
  199. data/lib/chef/mixin/command.rb +46 -17
  200. data/lib/chef/mixin/convert_to_class_name.rb +8 -8
  201. data/lib/chef/mixin/create_path.rb +9 -9
  202. data/lib/chef/mixin/deep_merge.rb +2 -2
  203. data/lib/chef/mixin/from_file.rb +6 -6
  204. data/lib/chef/mixin/language_include_recipe.rb +2 -2
  205. data/lib/chef/mixin/params_validate.rb +21 -21
  206. data/lib/chef/mixin/shell_out.rb +9 -0
  207. data/lib/chef/mixin/template.rb +13 -16
  208. data/lib/chef/mixin/why_run.rb +16 -16
  209. data/lib/chef/mixin/windows_architecture_helper.rb +5 -5
  210. data/lib/chef/mixin/xml_escape.rb +10 -10
  211. data/lib/chef/monkey_patches/numeric.rb +1 -1
  212. data/lib/chef/monkey_patches/regexp.rb +4 -4
  213. data/lib/chef/monkey_patches/string.rb +3 -3
  214. data/lib/chef/monkey_patches/tempfile.rb +2 -2
  215. data/lib/chef/node.rb +8 -0
  216. data/lib/chef/node/attribute.rb +1 -1
  217. data/lib/chef/platform/provider_mapping.rb +26 -1
  218. data/lib/chef/provider/batch.rb +3 -3
  219. data/lib/chef/provider/cron.rb +27 -13
  220. data/lib/chef/provider/cron/aix.rb +48 -0
  221. data/lib/chef/provider/cron/solaris.rb +6 -40
  222. data/lib/chef/provider/cron/unix.rb +76 -0
  223. data/lib/chef/provider/deploy/timestamped.rb +4 -4
  224. data/lib/chef/provider/erl_call.rb +1 -1
  225. data/lib/chef/provider/execute.rb +2 -2
  226. data/lib/chef/provider/git.rb +1 -0
  227. data/lib/chef/provider/group.rb +21 -21
  228. data/lib/chef/provider/group/dscl.rb +9 -9
  229. data/lib/chef/provider/group/gpasswd.rb +5 -5
  230. data/lib/chef/provider/group/groupadd.rb +11 -10
  231. data/lib/chef/provider/group/pw.rb +11 -11
  232. data/lib/chef/provider/group/suse.rb +4 -4
  233. data/lib/chef/provider/group/usermod.rb +8 -8
  234. data/lib/chef/provider/group/windows.rb +9 -9
  235. data/lib/chef/provider/http_request.rb +8 -8
  236. data/lib/chef/provider/ifconfig.rb +57 -37
  237. data/lib/chef/provider/ifconfig/aix.rb +99 -0
  238. data/lib/chef/provider/log.rb +3 -3
  239. data/lib/chef/provider/mdadm.rb +5 -4
  240. data/lib/chef/provider/mount.rb +12 -12
  241. data/lib/chef/provider/mount/aix.rb +179 -0
  242. data/lib/chef/provider/mount/mount.rb +29 -15
  243. data/lib/chef/provider/package.rb +26 -16
  244. data/lib/chef/provider/package/aix.rb +146 -0
  245. data/lib/chef/provider/package/apt.rb +16 -31
  246. data/lib/chef/provider/package/dpkg.rb +9 -9
  247. data/lib/chef/provider/package/freebsd.rb +2 -2
  248. data/lib/chef/provider/package/ips.rb +3 -3
  249. data/lib/chef/provider/package/macports.rb +1 -1
  250. data/lib/chef/provider/package/pacman.rb +8 -8
  251. data/lib/chef/provider/package/rpm.rb +14 -14
  252. data/lib/chef/provider/package/rubygems.rb +1 -1
  253. data/lib/chef/provider/package/smartos.rb +3 -3
  254. data/lib/chef/provider/package/solaris.rb +16 -6
  255. data/lib/chef/provider/package/yum-dump.py +4 -4
  256. data/lib/chef/provider/package/yum.rb +3 -3
  257. data/lib/chef/provider/powershell_script.rb +7 -7
  258. data/lib/chef/provider/remote_file/ftp.rb +1 -0
  259. data/lib/chef/provider/remote_file/http.rb +6 -13
  260. data/lib/chef/provider/remote_file/local_file.rb +1 -0
  261. data/lib/chef/provider/resource_update.rb +9 -9
  262. data/lib/chef/provider/ruby_block.rb +3 -3
  263. data/lib/chef/provider/script.rb +1 -1
  264. data/lib/chef/provider/service.rb +2 -2
  265. data/lib/chef/provider/service/debian.rb +35 -15
  266. data/lib/chef/provider/service/freebsd.rb +9 -9
  267. data/lib/chef/provider/service/gentoo.rb +4 -4
  268. data/lib/chef/provider/service/init.rb +1 -1
  269. data/lib/chef/provider/service/insserv.rb +2 -2
  270. data/lib/chef/provider/service/invokercd.rb +1 -1
  271. data/lib/chef/provider/service/redhat.rb +2 -2
  272. data/lib/chef/provider/service/simple.rb +6 -6
  273. data/lib/chef/provider/service/solaris.rb +1 -1
  274. data/lib/chef/provider/service/systemd.rb +3 -3
  275. data/lib/chef/provider/service/upstart.rb +15 -15
  276. data/lib/chef/provider/subversion.rb +6 -5
  277. data/lib/chef/provider/user.rb +13 -9
  278. data/lib/chef/provider/user/dscl.rb +28 -28
  279. data/lib/chef/provider/user/pw.rb +11 -11
  280. data/lib/chef/provider/user/useradd.rb +1 -1
  281. data/lib/chef/provider/user/windows.rb +7 -7
  282. data/lib/chef/provider/windows_script.rb +7 -7
  283. data/lib/chef/providers.rb +4 -0
  284. data/lib/chef/recipe.rb +2 -19
  285. data/lib/chef/resource/apt_package.rb +3 -3
  286. data/lib/chef/resource/bash.rb +3 -3
  287. data/lib/chef/resource/batch.rb +4 -4
  288. data/lib/chef/resource/bff_package.rb +36 -0
  289. data/lib/chef/resource/breakpoint.rb +3 -3
  290. data/lib/chef/resource/cron.rb +5 -5
  291. data/lib/chef/resource/csh.rb +3 -3
  292. data/lib/chef/resource/deploy.rb +16 -3
  293. data/lib/chef/resource/deploy_revision.rb +6 -6
  294. data/lib/chef/resource/directory.rb +2 -2
  295. data/lib/chef/resource/dpkg_package.rb +4 -4
  296. data/lib/chef/resource/easy_install_package.rb +1 -1
  297. data/lib/chef/resource/erl_call.rb +1 -1
  298. data/lib/chef/resource/freebsd_package.rb +4 -4
  299. data/lib/chef/resource/group.rb +15 -6
  300. data/lib/chef/resource/http_request.rb +6 -6
  301. data/lib/chef/resource/ifconfig.rb +4 -4
  302. data/lib/chef/resource/ips_package.rb +2 -2
  303. data/lib/chef/resource/log.rb +12 -11
  304. data/lib/chef/resource/macports_package.rb +2 -2
  305. data/lib/chef/resource/mount.rb +11 -12
  306. data/lib/chef/resource/ohai.rb +3 -3
  307. data/lib/chef/resource/pacman_package.rb +4 -4
  308. data/lib/chef/resource/perl.rb +3 -3
  309. data/lib/chef/resource/portage_package.rb +4 -4
  310. data/lib/chef/resource/powershell_script.rb +3 -3
  311. data/lib/chef/resource/python.rb +3 -3
  312. data/lib/chef/resource/route.rb +4 -4
  313. data/lib/chef/resource/rpm_package.rb +2 -2
  314. data/lib/chef/resource/ruby.rb +3 -3
  315. data/lib/chef/resource/ruby_block.rb +3 -3
  316. data/lib/chef/resource/scm.rb +10 -2
  317. data/lib/chef/resource/script.rb +5 -5
  318. data/lib/chef/resource/service.rb +5 -5
  319. data/lib/chef/resource/smartos_package.rb +8 -6
  320. data/lib/chef/resource/solaris_package.rb +8 -7
  321. data/lib/chef/resource/subversion.rb +3 -3
  322. data/lib/chef/resource/timestamped_deploy.rb +4 -4
  323. data/lib/chef/resource/user.rb +13 -13
  324. data/lib/chef/resource/windows_script.rb +6 -6
  325. data/lib/chef/resource/yum_package.rb +2 -2
  326. data/lib/chef/resource_collection.rb +1 -1
  327. data/lib/chef/resource_collection/stepable_iterator.rb +22 -22
  328. data/lib/chef/resource_definition.rb +8 -8
  329. data/lib/chef/resource_definition_list.rb +2 -2
  330. data/lib/chef/resource_reporter.rb +8 -2
  331. data/lib/chef/resources.rb +2 -0
  332. data/lib/chef/rest.rb +70 -334
  333. data/lib/chef/role.rb +17 -13
  334. data/lib/chef/run_context.rb +14 -0
  335. data/lib/chef/run_context/cookbook_compiler.rb +3 -3
  336. data/lib/chef/run_lock.rb +73 -20
  337. data/lib/chef/server_api.rb +41 -0
  338. data/lib/chef/shell.rb +3 -19
  339. data/lib/chef/shell/shell_session.rb +1 -1
  340. data/lib/chef/streaming_cookbook_uploader.rb +30 -26
  341. data/lib/chef/tasks/chef_repo.rake +17 -17
  342. data/lib/chef/util/backup.rb +2 -1
  343. data/lib/chef/util/diff.rb +76 -33
  344. data/lib/chef/util/windows.rb +2 -2
  345. data/lib/chef/util/windows/net_group.rb +2 -2
  346. data/lib/chef/util/windows/net_use.rb +2 -2
  347. data/lib/chef/util/windows/net_user.rb +3 -3
  348. data/lib/chef/util/windows/volume.rb +3 -3
  349. data/lib/chef/version.rb +1 -1
  350. data/lib/chef/win32/api/file.rb +1 -1
  351. data/lib/chef/win32/api/synchronization.rb +89 -0
  352. data/lib/chef/win32/handle.rb +1 -1
  353. data/lib/chef/win32/mutex.rb +94 -0
  354. data/lib/chef/win32/security/ace.rb +1 -1
  355. data/lib/chef/win32/security/sid.rb +1 -1
  356. data/lib/chef/win32/version.rb +5 -3
  357. data/spec/data/bootstrap/no_proxy.erb +2 -0
  358. data/spec/data/cookbooks/openldap/metadata.rb +8 -0
  359. data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -0
  360. data/spec/data/trusted_certs/example.crt +22 -0
  361. data/spec/data/trusted_certs/intermediate.pem +27 -0
  362. data/spec/data/trusted_certs/opscode.pem +38 -0
  363. data/spec/data/trusted_certs/root.pem +22 -0
  364. data/spec/functional/assets/PkgA.1.0.0.0.bff +0 -0
  365. data/spec/functional/assets/PkgA.2.0.0.0.bff +0 -0
  366. data/spec/functional/assets/dummy-1-0.aix6.1.noarch.rpm +0 -0
  367. data/spec/functional/assets/dummy-2-0.aix6.1.noarch.rpm +0 -0
  368. data/spec/functional/assets/mytest-1.0-1.noarch.rpm +0 -0
  369. data/spec/functional/assets/mytest-2.0-1.noarch.rpm +0 -0
  370. data/spec/functional/knife/cookbook_delete_spec.rb +4 -7
  371. data/spec/functional/knife/exec_spec.rb +0 -3
  372. data/spec/functional/knife/ssh_spec.rb +2 -6
  373. data/spec/functional/resource/base.rb +41 -0
  374. data/spec/functional/resource/batch_spec.rb +6 -33
  375. data/spec/functional/resource/bff_spec.rb +122 -0
  376. data/spec/functional/resource/cron_spec.rb +147 -0
  377. data/spec/functional/resource/group_spec.rb +204 -0
  378. data/spec/functional/resource/ifconfig_spec.rb +163 -0
  379. data/spec/functional/resource/link_spec.rb +4 -4
  380. data/spec/functional/resource/mount_spec.rb +207 -0
  381. data/spec/functional/resource/package_spec.rb +95 -17
  382. data/spec/functional/resource/powershell_spec.rb +21 -22
  383. data/spec/functional/resource/registry_spec.rb +5 -19
  384. data/spec/functional/resource/remote_file_spec.rb +14 -0
  385. data/spec/functional/resource/rpm_spec.rb +122 -0
  386. data/spec/functional/resource/template_spec.rb +11 -44
  387. data/spec/functional/resource/user_spec.rb +2 -1
  388. data/spec/functional/run_lock_spec.rb +48 -5
  389. data/spec/functional/shell_spec.rb +46 -26
  390. data/spec/functional/tiny_server_spec.rb +2 -2
  391. data/spec/functional/version_spec.rb +35 -0
  392. data/spec/functional/win32/versions_spec.rb +3 -3
  393. data/spec/integration/client/client_spec.rb +146 -0
  394. data/spec/integration/knife/chef_fs_data_store_spec.rb +353 -0
  395. data/spec/integration/knife/chef_repo_path_spec.rb +72 -19
  396. data/spec/integration/knife/common_options_spec.rb +103 -0
  397. data/spec/integration/knife/download_spec.rb +38 -2
  398. data/spec/integration/knife/raw_spec.rb +63 -0
  399. data/spec/integration/knife/upload_spec.rb +20 -4
  400. data/spec/integration/solo/solo_spec.rb +78 -25
  401. data/spec/spec_helper.rb +35 -1
  402. data/spec/support/lib/chef/provider/easy.rb +4 -4
  403. data/spec/support/lib/chef/provider/snakeoil.rb +4 -4
  404. data/spec/support/lib/chef/resource/cat.rb +5 -5
  405. data/spec/support/lib/chef/resource/with_state.rb +37 -0
  406. data/spec/support/lib/library_load_order.rb +22 -0
  407. data/spec/support/platform_helpers.rb +8 -0
  408. data/spec/support/shared/functional/file_resource.rb +4 -22
  409. data/spec/support/shared/functional/windows_script.rb +48 -0
  410. data/spec/support/shared/integration/integration_helper.rb +5 -22
  411. data/spec/support/shared/integration/knife_support.rb +3 -3
  412. data/spec/support/shared/unit/script_resource.rb +7 -7
  413. data/spec/support/shared/unit/windows_script_resource.rb +7 -7
  414. data/spec/tiny_server.rb +2 -2
  415. data/spec/unit/api_client/registration_spec.rb +1 -1
  416. data/spec/unit/api_client_spec.rb +25 -2
  417. data/spec/unit/application/apply.rb +1 -9
  418. data/spec/unit/application/client_spec.rb +19 -44
  419. data/spec/unit/application/solo_spec.rb +10 -50
  420. data/spec/unit/application_spec.rb +51 -80
  421. data/spec/unit/checksum/storage/filesystem_spec.rb +3 -2
  422. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +47 -0
  423. data/spec/unit/chef_spec.rb +2 -2
  424. data/spec/unit/client_spec.rb +2 -18
  425. data/spec/unit/config_fetcher_spec.rb +98 -0
  426. data/spec/unit/config_spec.rb +107 -29
  427. data/spec/unit/cookbook/metadata_spec.rb +50 -50
  428. data/spec/unit/cookbook/synchronizer_spec.rb +3 -3
  429. data/spec/unit/cookbook/syntax_check_spec.rb +1 -2
  430. data/spec/unit/cookbook_loader_spec.rb +28 -12
  431. data/spec/unit/cookbook_manifest_spec.rb +11 -11
  432. data/spec/unit/cookbook_site_streaming_uploader.rb +200 -0
  433. data/spec/unit/cookbook_version_spec.rb +16 -0
  434. data/spec/unit/daemon_spec.rb +0 -132
  435. data/spec/unit/data_bag_item_spec.rb +6 -6
  436. data/spec/unit/data_bag_spec.rb +6 -8
  437. data/spec/unit/digester_spec.rb +2 -2
  438. data/spec/unit/encrypted_data_bag_item_spec.rb +0 -15
  439. data/spec/unit/file_cache_spec.rb +1 -1
  440. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +4 -4
  441. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +2 -2
  442. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +2 -2
  443. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +2 -2
  444. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +2 -2
  445. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +4 -4
  446. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +2 -2
  447. data/spec/unit/handler_spec.rb +5 -5
  448. data/spec/unit/http/ssl_policies_spec.rb +170 -0
  449. data/spec/unit/knife/bootstrap_spec.rb +31 -14
  450. data/spec/unit/knife/client_bulk_delete_spec.rb +8 -8
  451. data/spec/unit/knife/client_create_spec.rb +2 -2
  452. data/spec/unit/knife/client_delete_spec.rb +2 -2
  453. data/spec/unit/knife/client_edit_spec.rb +2 -2
  454. data/spec/unit/knife/client_list_spec.rb +2 -2
  455. data/spec/unit/knife/client_reregister_spec.rb +2 -2
  456. data/spec/unit/knife/client_show_spec.rb +2 -2
  457. data/spec/unit/knife/config_file_selection_spec.rb +53 -36
  458. data/spec/unit/knife/configure_spec.rb +0 -6
  459. data/spec/unit/knife/cookbook_create_spec.rb +1 -12
  460. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +2 -2
  461. data/spec/unit/knife/cookbook_show_spec.rb +3 -3
  462. data/spec/unit/knife/cookbook_site_install_spec.rb +1 -1
  463. data/spec/unit/knife/core/bootstrap_context_spec.rb +10 -2
  464. data/spec/unit/knife/core/ui_spec.rb +118 -0
  465. data/spec/unit/knife/data_bag_show_spec.rb +2 -2
  466. data/spec/unit/knife/environment_from_file_spec.rb +2 -2
  467. data/spec/unit/knife/index_rebuild_spec.rb +1 -1
  468. data/spec/unit/knife/node_delete_spec.rb +3 -3
  469. data/spec/unit/knife/node_edit_spec.rb +35 -8
  470. data/spec/unit/knife/node_list_spec.rb +3 -3
  471. data/spec/unit/knife/node_run_list_add_spec.rb +3 -3
  472. data/spec/unit/knife/node_show_spec.rb +3 -3
  473. data/spec/unit/knife/role_create_spec.rb +3 -3
  474. data/spec/unit/knife/role_delete_spec.rb +3 -3
  475. data/spec/unit/knife/role_list_spec.rb +2 -2
  476. data/spec/unit/knife/ssh_spec.rb +1 -8
  477. data/spec/unit/knife_spec.rb +0 -2
  478. data/spec/unit/log_spec.rb +2 -2
  479. data/spec/unit/mash_spec.rb +2 -2
  480. data/spec/unit/mixin/checksum_spec.rb +3 -3
  481. data/spec/unit/mixin/command_spec.rb +1 -1
  482. data/spec/unit/mixin/convert_to_class_name_spec.rb +7 -7
  483. data/spec/unit/mixin/deprecation_spec.rb +2 -2
  484. data/spec/unit/mixin/params_validate_spec.rb +72 -72
  485. data/spec/unit/mixin/securable_spec.rb +0 -14
  486. data/spec/unit/mixin/shell_out_spec.rb +1 -1
  487. data/spec/unit/mixin/template_spec.rb +34 -0
  488. data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
  489. data/spec/unit/mixin/xml_escape_spec.rb +2 -2
  490. data/spec/unit/node/attribute_spec.rb +11 -11
  491. data/spec/unit/node/immutable_collections_spec.rb +2 -2
  492. data/spec/unit/node_spec.rb +5 -0
  493. data/spec/unit/platform_spec.rb +36 -35
  494. data/spec/unit/provider/cron/{solaris_spec.rb → unix_spec.rb} +6 -6
  495. data/spec/unit/provider/cron_spec.rb +21 -3
  496. data/spec/unit/provider/deploy/timestamped_spec.rb +5 -5
  497. data/spec/unit/provider/deploy_spec.rb +21 -7
  498. data/spec/unit/provider/env_spec.rb +2 -2
  499. data/spec/unit/provider/execute_spec.rb +2 -2
  500. data/spec/unit/provider/file/content_spec.rb +0 -8
  501. data/spec/unit/provider/git_spec.rb +29 -9
  502. data/spec/unit/provider/group/dscl_spec.rb +12 -12
  503. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  504. data/spec/unit/provider/group/groupadd_spec.rb +14 -0
  505. data/spec/unit/provider/group/groupmod_spec.rb +13 -13
  506. data/spec/unit/provider/group/pw_spec.rb +16 -16
  507. data/spec/unit/provider/group/usermod_spec.rb +10 -9
  508. data/spec/unit/provider/group/windows_spec.rb +14 -0
  509. data/spec/unit/provider/group_spec.rb +29 -29
  510. data/spec/unit/provider/http_request_spec.rb +15 -15
  511. data/spec/unit/provider/ifconfig/aix_spec.rb +180 -0
  512. data/spec/unit/provider/ifconfig_spec.rb +9 -9
  513. data/spec/unit/provider/link_spec.rb +2 -2
  514. data/spec/unit/provider/log_spec.rb +8 -8
  515. data/spec/unit/provider/mdadm_spec.rb +14 -11
  516. data/spec/unit/provider/mount/aix_spec.rb +237 -0
  517. data/spec/unit/provider/mount/mount_spec.rb +2 -0
  518. data/spec/unit/provider/mount/windows_spec.rb +2 -2
  519. data/spec/unit/provider/mount_spec.rb +6 -6
  520. data/spec/unit/provider/package/aix_spec.rb +171 -0
  521. data/spec/unit/provider/package/apt_spec.rb +130 -171
  522. data/spec/unit/provider/package/dpkg_spec.rb +3 -3
  523. data/spec/unit/provider/package/freebsd_spec.rb +28 -0
  524. data/spec/unit/provider/package/ips_spec.rb +1 -1
  525. data/spec/unit/provider/package/rpm_spec.rb +15 -15
  526. data/spec/unit/provider/package/smartos_spec.rb +21 -3
  527. data/spec/unit/provider/package_spec.rb +4 -2
  528. data/spec/unit/provider/powershell_spec.rb +3 -3
  529. data/spec/unit/provider/remote_directory_spec.rb +2 -2
  530. data/spec/unit/provider/remote_file/ftp_spec.rb +0 -5
  531. data/spec/unit/provider/remote_file/http_spec.rb +12 -28
  532. data/spec/unit/provider/remote_file/local_file_spec.rb +2 -1
  533. data/spec/unit/provider/route_spec.rb +2 -2
  534. data/spec/unit/provider/ruby_block_spec.rb +2 -2
  535. data/spec/unit/provider/service/arch_service_spec.rb +17 -17
  536. data/spec/unit/provider/service/debian_service_spec.rb +242 -152
  537. data/spec/unit/provider/service/freebsd_service_spec.rb +9 -9
  538. data/spec/unit/provider/service/gentoo_service_spec.rb +9 -9
  539. data/spec/unit/provider/service/init_service_spec.rb +11 -11
  540. data/spec/unit/provider/service/insserv_service_spec.rb +5 -5
  541. data/spec/unit/provider/service/invokercd_service_spec.rb +10 -10
  542. data/spec/unit/provider/service/redhat_spec.rb +6 -6
  543. data/spec/unit/provider/service/simple_service_spec.rb +6 -6
  544. data/spec/unit/provider/service/solaris_smf_service_spec.rb +4 -4
  545. data/spec/unit/provider/service/systemd_service_spec.rb +3 -3
  546. data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
  547. data/spec/unit/provider/service/windows_spec.rb +7 -7
  548. data/spec/unit/provider/subversion_spec.rb +1 -1
  549. data/spec/unit/provider/user/dscl_spec.rb +21 -21
  550. data/spec/unit/provider/user/pw_spec.rb +2 -2
  551. data/spec/unit/provider/user/windows_spec.rb +5 -5
  552. data/spec/unit/provider/user_spec.rb +39 -47
  553. data/spec/unit/resource/apt_package_spec.rb +6 -6
  554. data/spec/unit/resource/bash_spec.rb +5 -5
  555. data/spec/unit/resource/batch_spec.rb +7 -7
  556. data/spec/unit/resource/breakpoint_spec.rb +8 -8
  557. data/spec/unit/resource/chef_gem_spec.rb +6 -6
  558. data/spec/unit/resource/cookbook_file_spec.rb +11 -11
  559. data/spec/unit/resource/cron_spec.rb +15 -15
  560. data/spec/unit/resource/csh_spec.rb +5 -5
  561. data/spec/unit/resource/deploy_revision_spec.rb +6 -6
  562. data/spec/unit/resource/deploy_spec.rb +50 -36
  563. data/spec/unit/resource/directory_spec.rb +1 -1
  564. data/spec/unit/resource/dpkg_package_spec.rb +6 -6
  565. data/spec/unit/resource/env_spec.rb +1 -1
  566. data/spec/unit/resource/erl_call_spec.rb +1 -1
  567. data/spec/unit/resource/freebsd_package_spec.rb +6 -6
  568. data/spec/unit/resource/gem_package_spec.rb +6 -6
  569. data/spec/unit/resource/git_spec.rb +8 -8
  570. data/spec/unit/resource/group_spec.rb +11 -11
  571. data/spec/unit/resource/http_request_spec.rb +7 -7
  572. data/spec/unit/resource/ifconfig_spec.rb +1 -1
  573. data/spec/unit/resource/ips_package_spec.rb +6 -6
  574. data/spec/unit/resource/link_spec.rb +1 -1
  575. data/spec/unit/resource/log_spec.rb +13 -10
  576. data/spec/unit/resource/macports_package_spec.rb +2 -2
  577. data/spec/unit/resource/mdadm_spec.rb +3 -3
  578. data/spec/unit/resource/mount_spec.rb +13 -13
  579. data/spec/unit/resource/ohai_spec.rb +1 -1
  580. data/spec/unit/resource/package_spec.rb +6 -6
  581. data/spec/unit/resource/pacman_package_spec.rb +6 -6
  582. data/spec/unit/resource/perl_spec.rb +5 -5
  583. data/spec/unit/resource/portage_package_spec.rb +6 -6
  584. data/spec/unit/resource/powershell_spec.rb +5 -5
  585. data/spec/unit/resource/python_spec.rb +5 -5
  586. data/spec/unit/resource/registry_key_spec.rb +2 -2
  587. data/spec/unit/resource/remote_directory_spec.rb +9 -9
  588. data/spec/unit/resource/remote_file_spec.rb +4 -4
  589. data/spec/unit/resource/route_spec.rb +13 -13
  590. data/spec/unit/resource/rpm_package_spec.rb +2 -2
  591. data/spec/unit/resource/ruby_block_spec.rb +4 -4
  592. data/spec/unit/resource/ruby_spec.rb +5 -5
  593. data/spec/unit/resource/scm_spec.rb +14 -1
  594. data/spec/unit/resource/script_spec.rb +5 -5
  595. data/spec/unit/resource/service_spec.rb +18 -18
  596. data/spec/unit/resource/smartos_package_spec.rb +6 -6
  597. data/spec/unit/resource/solaris_package_spec.rb +57 -0
  598. data/spec/unit/resource/subversion_spec.rb +6 -6
  599. data/spec/unit/resource/timestamped_deploy_spec.rb +4 -4
  600. data/spec/unit/resource/user_spec.rb +13 -13
  601. data/spec/unit/resource/yum_package_spec.rb +7 -7
  602. data/spec/unit/resource_collection/stepable_iterator_spec.rb +21 -21
  603. data/spec/unit/resource_definition_spec.rb +23 -23
  604. data/spec/unit/resource_reporter_spec.rb +27 -0
  605. data/spec/unit/rest/auth_credentials_spec.rb +0 -94
  606. data/spec/unit/rest_spec.rb +117 -99
  607. data/spec/unit/role_spec.rb +57 -4
  608. data/spec/unit/run_context/cookbook_compiler_spec.rb +4 -20
  609. data/spec/unit/run_context_spec.rb +44 -3
  610. data/spec/unit/run_list/run_list_item_spec.rb +1 -1
  611. data/spec/unit/run_lock_spec.rb +6 -3
  612. data/spec/unit/scan_access_control_spec.rb +2 -2
  613. data/spec/unit/search/query_spec.rb +3 -3
  614. data/spec/unit/util/backup_spec.rb +6 -13
  615. data/spec/unit/util/diff_spec.rb +36 -53
  616. data/spec/unit/version/platform_spec.rb +3 -3
  617. data/spec/unit/version_class_spec.rb +5 -5
  618. data/spec/unit/version_constraint/platform_spec.rb +2 -2
  619. data/spec/unit/windows_service_spec.rb +54 -0
  620. metadata +290 -108
  621. checksums.yaml +0 -7
  622. data/distro/common/man/man1/knife-index.1 +0 -29
  623. data/distro/common/man/man8/chef-expander.8 +0 -97
  624. data/distro/common/man/man8/chef-expanderctl.8 +0 -62
  625. data/distro/common/man/man8/chef-server-webui.8 +0 -155
  626. data/distro/common/man/man8/chef-server.8 +0 -147
  627. data/distro/common/man/man8/chef-solr.8 +0 -122
  628. data/lib/chef/chef_fs/raw_request.rb +0 -79
@@ -25,11 +25,9 @@ describe Chef::Provider::Package::Apt do
25
25
  @events = Chef::EventDispatch::Dispatcher.new
26
26
  @run_context = Chef::RunContext.new(@node, {}, @events)
27
27
  @new_resource = Chef::Resource::Package.new("irssi", @run_context)
28
- @current_resource = Chef::Resource::Package.new("irssi", @run_context)
29
28
 
30
29
  @status = mock("Status", :exitstatus => 0)
31
30
  @provider = Chef::Provider::Package::Apt.new(@new_resource, @run_context)
32
- Chef::Resource::Package.stub!(:new).and_return(@current_resource)
33
31
  @stdin = StringIO.new
34
32
  @stdout =<<-PKG_STATUS
35
33
  irssi:
@@ -39,34 +37,21 @@ irssi:
39
37
  0.8.14-1ubuntu4 0
40
38
  500 http://us.archive.ubuntu.com/ubuntu/ lucid/main Packages
41
39
  PKG_STATUS
42
- @stderr = StringIO.new
43
- @pid = 12345
40
+ @stderr = ""
44
41
  @shell_out = OpenStruct.new(:stdout => @stdout,:stdin => @stdin,:stderr => @stderr,:status => @status,:exitstatus => 0)
45
42
  end
46
43
 
47
44
  describe "when loading current resource" do
48
45
 
49
46
  it "should create a current resource with the name of the new_resource" do
50
- @provider.should_receive(:shell_out!).and_return(@shell_out)
51
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
52
- @provider.load_current_resource
53
- end
54
-
55
- it "should set the current resources package name to the new resources package name" do
56
- @provider.should_receive(:shell_out!).and_return(@shell_out)
57
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
58
- @provider.load_current_resource
59
- end
60
-
61
- it "should run apt-cache policy with the package name" do
62
47
  @provider.should_receive(:shell_out!).with("apt-cache policy #{@new_resource.package_name}").and_return(@shell_out)
63
48
  @provider.load_current_resource
64
- end
65
49
 
66
- it "should set the installed version to nil on the current resource if package state is not installed" do
67
- @provider.should_receive(:shell_out!).and_return(@shell_out)
68
- @current_resource.should_receive(:version).with(nil).and_return(true)
69
- @provider.load_current_resource
50
+ current_resource = @provider.current_resource
51
+ current_resource.should be_a(Chef::Resource::Package)
52
+ current_resource.name.should == "irssi"
53
+ current_resource.package_name.should == "irssi"
54
+ current_resource.version.should be_nil
70
55
  end
71
56
 
72
57
  it "should set the installed version if package has one" do
@@ -84,15 +69,10 @@ sudo:
84
69
  INSTALLED
85
70
  @provider.should_receive(:shell_out!).and_return(@shell_out)
86
71
  @provider.load_current_resource
87
- @current_resource.version.should == "1.7.2p1-1ubuntu5.3"
72
+ @provider.current_resource.version.should == "1.7.2p1-1ubuntu5.3"
88
73
  @provider.candidate_version.should eql("1.7.2p1-1ubuntu5.3")
89
74
  end
90
75
 
91
- it "should return the current resouce" do
92
- @provider.should_receive(:shell_out!).and_return(@shell_out)
93
- @provider.load_current_resource.should eql(@current_resource)
94
- end
95
-
96
76
  # libmysqlclient-dev is a real package in newer versions of debian + ubuntu
97
77
  # list of virtual packages: http://www.debian.org/doc/packaging-manuals/virtual-package-names-list.txt
98
78
  it "should not install the virtual package there is a single provider package and it is installed" do
@@ -107,18 +87,18 @@ VPKG_STDOUT
107
87
  @provider.should_receive(:shell_out!).with("apt-cache policy libmysqlclient15-dev").and_return(virtual_package)
108
88
  showpkg_out =<<-SHOWPKG_STDOUT
109
89
  Package: libmysqlclient15-dev
110
- Versions:
90
+ Versions:
111
91
 
112
- Reverse Depends:
92
+ Reverse Depends:
113
93
  libmysqlclient-dev,libmysqlclient15-dev
114
94
  libmysqlclient-dev,libmysqlclient15-dev
115
95
  libmysqlclient-dev,libmysqlclient15-dev
116
96
  libmysqlclient-dev,libmysqlclient15-dev
117
97
  libmysqlclient-dev,libmysqlclient15-dev
118
98
  libmysqlclient-dev,libmysqlclient15-dev
119
- Dependencies:
120
- Provides:
121
- Reverse Provides:
99
+ Dependencies:
100
+ Provides:
101
+ Reverse Provides:
122
102
  libmysqlclient-dev 5.1.41-3ubuntu12.7
123
103
  libmysqlclient-dev 5.1.41-3ubuntu12.10
124
104
  libmysqlclient-dev 5.1.41-3ubuntu12
@@ -140,7 +120,6 @@ libmysqlclient-dev:
140
120
  RPKG_STDOUT
141
121
  real_package = mock(:stdout => real_package_out,:exitstatus => 0)
142
122
  @provider.should_receive(:shell_out!).with("apt-cache policy libmysqlclient-dev").and_return(real_package)
143
- @provider.should_not_receive(:run_command_with_systems_locale)
144
123
  @provider.load_current_resource
145
124
  end
146
125
 
@@ -156,17 +135,17 @@ VPKG_STDOUT
156
135
  @provider.should_receive(:shell_out!).with("apt-cache policy mp3-decoder").and_return(virtual_package)
157
136
  showpkg_out=<<-SHOWPKG_STDOUT
158
137
  Package: mp3-decoder
159
- Versions:
138
+ Versions:
160
139
 
161
- Reverse Depends:
140
+ Reverse Depends:
162
141
  nautilus,mp3-decoder
163
142
  vux,mp3-decoder
164
143
  plait,mp3-decoder
165
144
  ecasound,mp3-decoder
166
145
  nautilus,mp3-decoder
167
- Dependencies:
168
- Provides:
169
- Reverse Provides:
146
+ Dependencies:
147
+ Provides:
148
+ Reverse Provides:
170
149
  vlc-nox 1.0.6-1ubuntu1.8
171
150
  vlc 1.0.6-1ubuntu1.8
172
151
  vlc-nox 1.0.6-1ubuntu1
@@ -192,160 +171,140 @@ SHOWPKG_STDOUT
192
171
 
193
172
  end
194
173
 
195
- describe "install_package" do
196
- it "should run apt-get install with the package name and version" do
197
- @provider.should_receive(:run_command_with_systems_locale).with({
198
- :command => "apt-get -q -y install irssi=0.8.12-7",
199
- :environment => {
200
- "DEBIAN_FRONTEND" => "noninteractive"
201
- }
202
- })
203
- @provider.install_package("irssi", "0.8.12-7")
204
- end
205
-
206
- it "should run apt-get install with the package name and version and options if specified" do
207
- @provider.should_receive(:run_command_with_systems_locale).with({
208
- :command => "apt-get -q -y --force-yes install irssi=0.8.12-7",
209
- :environment => {
210
- "DEBIAN_FRONTEND" => "noninteractive"
211
- }
212
- })
213
- @new_resource.stub!(:options).and_return("--force-yes")
214
-
215
- @provider.install_package("irssi", "0.8.12-7")
216
- end
217
-
218
- it "should run apt-get install with the package name and version and default_release if there is one and provider is explicitly defined" do
219
- @provider.should_receive(:run_command_with_systems_locale).with({
220
- :command => "apt-get -q -y -o APT::Default-Release=lenny-backports install irssi=0.8.12-7",
221
- :environment => {
222
- "DEBIAN_FRONTEND" => "noninteractive"
223
- }
224
- })
225
- @new_resource.stub!(:default_release).and_return("lenny-backports")
226
- @new_resource.stub!(:provider).and_return("Chef::Provider::Package::Apt")
227
-
228
- @provider.install_package("irssi", "0.8.12-7")
229
- end
230
- end
231
-
232
- describe Chef::Provider::Package::Apt, "upgrade_package" do
233
-
234
- it "should run install_package with the name and version" do
235
- @provider.should_receive(:install_package).with("irssi", "0.8.12-7")
236
- @provider.upgrade_package("irssi", "0.8.12-7")
174
+ context "after loading the current resource" do
175
+ before do
176
+ @current_resource = Chef::Resource::Package.new("irssi", @run_context)
177
+ @provider.current_resource = @current_resource
237
178
  end
238
- end
239
179
 
240
- describe Chef::Provider::Package::Apt, "remove_package" do
241
-
242
- it "should run apt-get remove with the package name" do
243
- @provider.should_receive(:run_command_with_systems_locale).with({
244
- :command => "apt-get -q -y remove irssi",
245
- :environment => {
246
- "DEBIAN_FRONTEND" => "noninteractive"
247
- }
248
- })
249
- @provider.remove_package("irssi", "0.8.12-7")
180
+ describe "install_package" do
181
+ it "should run apt-get install with the package name and version" do
182
+ @provider.should_receive(:shell_out!).
183
+ with("apt-get -q -y install irssi=0.8.12-7",
184
+ :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil})
185
+ @provider.install_package("irssi", "0.8.12-7")
186
+ end
187
+
188
+ it "should run apt-get install with the package name and version and options if specified" do
189
+ @provider.should_receive(:shell_out!).
190
+ with("apt-get -q -y --force-yes install irssi=0.8.12-7",
191
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
192
+ @new_resource.options("--force-yes")
193
+ @provider.install_package("irssi", "0.8.12-7")
194
+ end
195
+
196
+ it "should run apt-get install with the package name and version and default_release if there is one and provider is explicitly defined" do
197
+ @new_resource = nil
198
+ @new_resource = Chef::Resource::AptPackage.new("irssi", @run_context)
199
+ @new_resource.default_release("lenny-backports")
200
+
201
+ @provider.new_resource = @new_resource
202
+
203
+ @provider.should_receive(:shell_out!).
204
+ with("apt-get -q -y -o APT::Default-Release=lenny-backports install irssi=0.8.12-7",
205
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
206
+
207
+ @provider.install_package("irssi", "0.8.12-7")
208
+ end
250
209
  end
251
210
 
252
- it "should run apt-get remove with the package name and options if specified" do
253
- @provider.should_receive(:run_command_with_systems_locale).with({
254
- :command => "apt-get -q -y --force-yes remove irssi",
255
- :environment => {
256
- "DEBIAN_FRONTEND" => "noninteractive"
257
- }
258
- })
259
- @new_resource.stub!(:options).and_return("--force-yes")
211
+ describe Chef::Provider::Package::Apt, "upgrade_package" do
260
212
 
261
- @provider.remove_package("irssi", "0.8.12-7")
213
+ it "should run install_package with the name and version" do
214
+ @provider.should_receive(:install_package).with("irssi", "0.8.12-7")
215
+ @provider.upgrade_package("irssi", "0.8.12-7")
216
+ end
262
217
  end
263
- end
264
218
 
265
- describe "when purging a package" do
219
+ describe Chef::Provider::Package::Apt, "remove_package" do
266
220
 
267
- it "should run apt-get purge with the package name" do
268
- @provider.should_receive(:run_command_with_systems_locale).with({
269
- :command => "apt-get -q -y purge irssi",
270
- :environment => {
271
- "DEBIAN_FRONTEND" => "noninteractive"
272
- }
273
- })
274
- @provider.purge_package("irssi", "0.8.12-7")
275
- end
221
+ it "should run apt-get remove with the package name" do
222
+ @provider.should_receive(:shell_out!).
223
+ with("apt-get -q -y remove irssi",
224
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil})
225
+ @provider.remove_package("irssi", "0.8.12-7")
226
+ end
276
227
 
277
- it "should run apt-get purge with the package name and options if specified" do
278
- @provider.should_receive(:run_command_with_systems_locale).with({
279
- :command => "apt-get -q -y --force-yes purge irssi",
280
- :environment => {
281
- "DEBIAN_FRONTEND" => "noninteractive"
282
- }
283
- })
284
- @new_resource.stub!(:options).and_return("--force-yes")
228
+ it "should run apt-get remove with the package name and options if specified" do
229
+ @provider.should_receive(:shell_out!).
230
+ with("apt-get -q -y --force-yes remove irssi",
231
+ :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
232
+ @new_resource.options("--force-yes")
285
233
 
286
- @provider.purge_package("irssi", "0.8.12-7")
234
+ @provider.remove_package("irssi", "0.8.12-7")
235
+ end
287
236
  end
288
- end
289
237
 
290
- describe "when preseeding a package" do
291
- before(:each) do
292
- @provider.stub!(:get_preseed_file).and_return("/tmp/irssi-0.8.12-7.seed")
293
- @provider.stub!(:run_command_with_systems_locale).and_return(true)
294
- end
238
+ describe "when purging a package" do
295
239
 
296
- it "should get the full path to the preseed response file" do
297
- @provider.should_receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
298
- file = @provider.get_preseed_file("irssi", "0.8.12-7")
299
- @provider.preseed_package(file)
300
- end
240
+ it "should run apt-get purge with the package name" do
241
+ @provider.should_receive(:shell_out!).
242
+ with("apt-get -q -y purge irssi",
243
+ :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
244
+ @provider.purge_package("irssi", "0.8.12-7")
245
+ end
301
246
 
302
- it "should run debconf-set-selections on the preseed file if it has changed" do
303
- @provider.should_receive(:run_command_with_systems_locale).with({
304
- :command => "debconf-set-selections /tmp/irssi-0.8.12-7.seed",
305
- :environment => {
306
- "DEBIAN_FRONTEND" => "noninteractive"
307
- }
308
- }).and_return(true)
309
- file = @provider.get_preseed_file("irssi", "0.8.12-7")
310
- @provider.preseed_package(file)
311
- end
247
+ it "should run apt-get purge with the package name and options if specified" do
248
+ @provider.should_receive(:shell_out!).
249
+ with("apt-get -q -y --force-yes purge irssi",
250
+ :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
251
+ @new_resource.options("--force-yes")
312
252
 
313
- it "should not run debconf-set-selections if the preseed file has not changed" do
314
- @provider.stub(:check_package_state)
315
- @current_resource.version "0.8.11"
316
- @new_resource.response_file "/tmp/file"
317
- @provider.stub!(:get_preseed_file).and_return(false)
318
- @provider.should_not_receive(:run_command_with_systems_locale)
319
- @provider.run_action(:reconfig)
253
+ @provider.purge_package("irssi", "0.8.12-7")
254
+ end
320
255
  end
321
- end
322
256
 
323
- describe "when reconfiguring a package" do
324
- before(:each) do
325
- @provider.stub!(:run_command_with_systems_locale).and_return(true)
257
+ describe "when preseeding a package" do
258
+ before(:each) do
259
+ @provider.stub!(:get_preseed_file).and_return("/tmp/irssi-0.8.12-7.seed")
260
+ end
261
+
262
+ it "should get the full path to the preseed response file" do
263
+ @provider.should_receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
264
+ file = @provider.get_preseed_file("irssi", "0.8.12-7")
265
+
266
+ @provider.should_receive(:shell_out!).
267
+ with("debconf-set-selections /tmp/irssi-0.8.12-7.seed",
268
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil})
269
+
270
+ @provider.preseed_package(file)
271
+ end
272
+
273
+ it "should run debconf-set-selections on the preseed file if it has changed" do
274
+ @provider.should_receive(:shell_out!).
275
+ with("debconf-set-selections /tmp/irssi-0.8.12-7.seed",
276
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil})
277
+ file = @provider.get_preseed_file("irssi", "0.8.12-7")
278
+ @provider.preseed_package(file)
279
+ end
280
+
281
+ it "should not run debconf-set-selections if the preseed file has not changed" do
282
+ @provider.stub(:check_package_state)
283
+ @current_resource.version "0.8.11"
284
+ @new_resource.response_file "/tmp/file"
285
+ @provider.stub!(:get_preseed_file).and_return(false)
286
+ @provider.should_not_receive(:shell_out!)
287
+ @provider.run_action(:reconfig)
288
+ end
326
289
  end
327
290
 
328
- it "should run dpkg-reconfigure package" do
329
- @provider.should_receive(:run_command_with_systems_locale).with({
330
- :command => "dpkg-reconfigure irssi",
331
- :environment => {
332
- "DEBIAN_FRONTEND" => "noninteractive"
333
- }
334
- }).and_return(true)
335
- @provider.reconfig_package("irssi", "0.8.12-7")
291
+ describe "when reconfiguring a package" do
292
+ it "should run dpkg-reconfigure package" do
293
+ @provider.should_receive(:shell_out!).
294
+ with("dpkg-reconfigure irssi",
295
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
296
+ @provider.reconfig_package("irssi", "0.8.12-7")
297
+ end
336
298
  end
337
- end
338
299
 
339
- describe "when installing a virtual package" do
340
- it "should install the package without specifying a version" do
341
- @provider.is_virtual_package = true
342
- @provider.should_receive(:run_command_with_systems_locale).with({
343
- :command => "apt-get -q -y install libmysqlclient-dev",
344
- :environment => {
345
- "DEBIAN_FRONTEND" => "noninteractive"
346
- }
347
- })
348
- @provider.install_package("libmysqlclient-dev", "not_a_real_version")
300
+ describe "when installing a virtual package" do
301
+ it "should install the package without specifying a version" do
302
+ @provider.is_virtual_package = true
303
+ @provider.should_receive(:shell_out!).
304
+ with("apt-get -q -y install libmysqlclient-dev",
305
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil })
306
+ @provider.install_package("libmysqlclient-dev", "not_a_real_version")
307
+ end
349
308
  end
350
309
  end
351
310
  end
@@ -60,15 +60,15 @@ describe Chef::Provider::Package::Dpkg do
60
60
  @provider.current_resource.package_name.should == "wget"
61
61
  @new_resource.version.should == version
62
62
  end
63
-
63
+
64
64
  it 'if short version provided' do
65
65
  check_version('1.11.4')
66
66
  end
67
-
67
+
68
68
  it 'if extended version provided' do
69
69
  check_version('1.11.4-1ubuntu1')
70
70
  end
71
-
71
+
72
72
  it 'if distro-specific version provided' do
73
73
  check_version('1.11.4-1ubuntu1~lucid')
74
74
  end
@@ -211,6 +211,34 @@ describe Chef::Provider::Package::Freebsd, "load_current_resource" do
211
211
  end
212
212
  end
213
213
 
214
+ # CHEF-4371
215
+ # There are some port names that contain special characters such as +'s. This breaks the regular expression used to determine what
216
+ # version of a package is currently installed and to get the port_path.
217
+ # Example package name: bonnie++
218
+
219
+ describe Chef::Provider::Package::Freebsd, "bonnie++ (package with a plus in the name :: CHEF-4371)" do
220
+ before(:each) do
221
+ @new_resource = Chef::Resource::Package.new("bonnie++")
222
+ @current_resource = Chef::Resource::Package.new("bonnie++")
223
+ @provider = Chef::Provider::Package::Freebsd.new(@new_resource, @run_context)
224
+ @provider.current_resource = @current_resource
225
+ end
226
+
227
+ it "should return the port path for a valid port name" do
228
+ whereis = OpenStruct.new(:stdout => "bonnie++: /usr/ports/benchmarks/bonnie++")
229
+ @provider.should_receive(:shell_out!).with("whereis -s bonnie++", :env => nil).and_return(whereis)
230
+ @provider.stub!(:port_name).and_return("bonnie++")
231
+ @provider.port_path.should == "/usr/ports/benchmarks/bonnie++"
232
+ end
233
+
234
+ it "should return the version number when it is installed" do
235
+ pkg_info = OpenStruct.new(:stdout => "bonnie++-1.96")
236
+ @provider.should_receive(:shell_out!).with('pkg_info -E "bonnie++*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
237
+ @provider.stub!(:package_name).and_return("bonnie++")
238
+ @provider.current_installed_version.should == "1.96"
239
+ end
240
+ end
241
+
214
242
  # A couple of examples to show up the difficulty of determining the command to install the binary package given the port:
215
243
  # PORT DIRECTORY INSTALLED PACKAGE NAME COMMAND TO INSTALL PACKAGE
216
244
  # /usr/ports/lang/perl5.8 perl-5.8.8_1 pkg_add -r perl
@@ -170,7 +170,7 @@ PKG_STATUS
170
170
  before do
171
171
  @new_resource.stub!(:accept_license).and_return(true)
172
172
  end
173
-
173
+
174
174
  it "should run pkg install with the --accept flag" do
175
175
  @provider.should_receive(:run_command_with_systems_locale).with({
176
176
  :command => "pkg install -q --accept crypto/gnupg@2.0.17"