chef 10.28.2-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 (960) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/README.rdoc +177 -0
  4. data/Rakefile +128 -0
  5. data/bin/chef-client +26 -0
  6. data/bin/chef-solo +25 -0
  7. data/bin/knife +26 -0
  8. data/bin/shef +34 -0
  9. data/distro/README +2 -0
  10. data/distro/arch/etc/conf.d/chef-client.conf +5 -0
  11. data/distro/arch/etc/conf.d/chef-expander.conf +8 -0
  12. data/distro/arch/etc/conf.d/chef-server-webui.conf +10 -0
  13. data/distro/arch/etc/conf.d/chef-server.conf +10 -0
  14. data/distro/arch/etc/conf.d/chef-solr.conf +8 -0
  15. data/distro/arch/etc/rc.d/chef-client +90 -0
  16. data/distro/arch/etc/rc.d/chef-expander +78 -0
  17. data/distro/arch/etc/rc.d/chef-server +78 -0
  18. data/distro/arch/etc/rc.d/chef-server-webui +78 -0
  19. data/distro/arch/etc/rc.d/chef-solr +78 -0
  20. data/distro/common/html/chef-client.8.html +145 -0
  21. data/distro/common/html/chef-expander.8.html +164 -0
  22. data/distro/common/html/chef-expanderctl.8.html +146 -0
  23. data/distro/common/html/chef-server-webui.8.html +185 -0
  24. data/distro/common/html/chef-server.8.html +182 -0
  25. data/distro/common/html/chef-solo.8.html +185 -0
  26. data/distro/common/html/chef-solr.8.html +165 -0
  27. data/distro/common/html/knife-bootstrap.1.html +241 -0
  28. data/distro/common/html/knife-client.1.html +219 -0
  29. data/distro/common/html/knife-configure.1.html +170 -0
  30. data/distro/common/html/knife-cookbook-site.1.html +241 -0
  31. data/distro/common/html/knife-cookbook.1.html +381 -0
  32. data/distro/common/html/knife-data-bag.1.html +235 -0
  33. data/distro/common/html/knife-environment.1.html +265 -0
  34. data/distro/common/html/knife-exec.1.html +134 -0
  35. data/distro/common/html/knife-index.1.html +125 -0
  36. data/distro/common/html/knife-node.1.html +250 -0
  37. data/distro/common/html/knife-recipe.1.html +92 -0
  38. data/distro/common/html/knife-role.1.html +200 -0
  39. data/distro/common/html/knife-search.1.html +288 -0
  40. data/distro/common/html/knife-ssh.1.html +156 -0
  41. data/distro/common/html/knife-status.1.html +128 -0
  42. data/distro/common/html/knife-tag.1.html +137 -0
  43. data/distro/common/html/knife.1.html +320 -0
  44. data/distro/common/html/shef.1.html +283 -0
  45. data/distro/common/man/man1/knife-bootstrap.1 +201 -0
  46. data/distro/common/man/man1/knife-client.1 +99 -0
  47. data/distro/common/man/man1/knife-configure.1 +88 -0
  48. data/distro/common/man/man1/knife-cookbook-site.1 +145 -0
  49. data/distro/common/man/man1/knife-cookbook.1 +332 -0
  50. data/distro/common/man/man1/knife-data-bag.1 +123 -0
  51. data/distro/common/man/man1/knife-environment.1 +168 -0
  52. data/distro/common/man/man1/knife-exec.1 +46 -0
  53. data/distro/common/man/man1/knife-index.1 +29 -0
  54. data/distro/common/man/man1/knife-node.1 +134 -0
  55. data/distro/common/man/man1/knife-role.1 +88 -0
  56. data/distro/common/man/man1/knife-search.1 +280 -0
  57. data/distro/common/man/man1/knife-ssh.1 +79 -0
  58. data/distro/common/man/man1/knife-status.1 +29 -0
  59. data/distro/common/man/man1/knife-tag.1 +43 -0
  60. data/distro/common/man/man1/knife.1 +288 -0
  61. data/distro/common/man/man1/shef.1 +256 -0
  62. data/distro/common/man/man8/chef-client.8 +104 -0
  63. data/distro/common/man/man8/chef-expander.8 +97 -0
  64. data/distro/common/man/man8/chef-expanderctl.8 +62 -0
  65. data/distro/common/man/man8/chef-server-webui.8 +155 -0
  66. data/distro/common/man/man8/chef-server.8 +147 -0
  67. data/distro/common/man/man8/chef-solo.8 +126 -0
  68. data/distro/common/man/man8/chef-solr.8 +122 -0
  69. data/distro/common/markdown/README +3 -0
  70. data/distro/common/markdown/man1/knife-bootstrap.mkd +141 -0
  71. data/distro/common/markdown/man1/knife-client.mkd +103 -0
  72. data/distro/common/markdown/man1/knife-configure.mkd +70 -0
  73. data/distro/common/markdown/man1/knife-cookbook-site.mkd +123 -0
  74. data/distro/common/markdown/man1/knife-cookbook.mkd +263 -0
  75. data/distro/common/markdown/man1/knife-data-bag.mkd +121 -0
  76. data/distro/common/markdown/man1/knife-environment.mkd +151 -0
  77. data/distro/common/markdown/man1/knife-exec.mkd +37 -0
  78. data/distro/common/markdown/man1/knife-index.mkd +30 -0
  79. data/distro/common/markdown/man1/knife-node.mkd +130 -0
  80. data/distro/common/markdown/man1/knife-role.mkd +85 -0
  81. data/distro/common/markdown/man1/knife-search.mkd +180 -0
  82. data/distro/common/markdown/man1/knife-ssh.mkd +69 -0
  83. data/distro/common/markdown/man1/knife-status.mkd +36 -0
  84. data/distro/common/markdown/man1/knife-tag.mkd +39 -0
  85. data/distro/common/markdown/man1/knife.mkd +218 -0
  86. data/distro/common/markdown/man1/shef.mkd +189 -0
  87. data/distro/common/markdown/man8/chef-client.mkd +74 -0
  88. data/distro/common/markdown/man8/chef-expander.mkd +82 -0
  89. data/distro/common/markdown/man8/chef-expanderctl.mkd +58 -0
  90. data/distro/common/markdown/man8/chef-server-webui.mkd +121 -0
  91. data/distro/common/markdown/man8/chef-server.mkd +121 -0
  92. data/distro/common/markdown/man8/chef-solo.mkd +107 -0
  93. data/distro/common/markdown/man8/chef-solr.mkd +89 -0
  94. data/distro/debian/etc/default/chef-client +5 -0
  95. data/distro/debian/etc/default/chef-expander +8 -0
  96. data/distro/debian/etc/default/chef-server +9 -0
  97. data/distro/debian/etc/default/chef-server-webui +9 -0
  98. data/distro/debian/etc/default/chef-solr +8 -0
  99. data/distro/debian/etc/init.d/chef-client +210 -0
  100. data/distro/debian/etc/init.d/chef-expander +176 -0
  101. data/distro/debian/etc/init.d/chef-server +122 -0
  102. data/distro/debian/etc/init.d/chef-server-webui +123 -0
  103. data/distro/debian/etc/init.d/chef-solr +176 -0
  104. data/distro/debian/etc/init/chef-client.conf +17 -0
  105. data/distro/debian/etc/init/chef-expander.conf +17 -0
  106. data/distro/debian/etc/init/chef-server-webui.conf +17 -0
  107. data/distro/debian/etc/init/chef-server.conf +17 -0
  108. data/distro/debian/etc/init/chef-solr.conf +17 -0
  109. data/distro/redhat/etc/init.d/chef-client +121 -0
  110. data/distro/redhat/etc/init.d/chef-expander +104 -0
  111. data/distro/redhat/etc/init.d/chef-server +112 -0
  112. data/distro/redhat/etc/init.d/chef-server-webui +112 -0
  113. data/distro/redhat/etc/init.d/chef-solr +104 -0
  114. data/distro/redhat/etc/logrotate.d/chef-client +8 -0
  115. data/distro/redhat/etc/logrotate.d/chef-expander +8 -0
  116. data/distro/redhat/etc/logrotate.d/chef-server +8 -0
  117. data/distro/redhat/etc/logrotate.d/chef-server-webui +8 -0
  118. data/distro/redhat/etc/logrotate.d/chef-solr +8 -0
  119. data/distro/redhat/etc/sysconfig/chef-client +15 -0
  120. data/distro/redhat/etc/sysconfig/chef-expander +7 -0
  121. data/distro/redhat/etc/sysconfig/chef-server +14 -0
  122. data/distro/redhat/etc/sysconfig/chef-server-webui +14 -0
  123. data/distro/redhat/etc/sysconfig/chef-solr +8 -0
  124. data/distro/windows/service_manager.rb +164 -0
  125. data/lib/chef.rb +41 -0
  126. data/lib/chef/api_client.rb +293 -0
  127. data/lib/chef/application.rb +168 -0
  128. data/lib/chef/application/agent.rb +18 -0
  129. data/lib/chef/application/client.rb +322 -0
  130. data/lib/chef/application/knife.rb +183 -0
  131. data/lib/chef/application/solo.rb +248 -0
  132. data/lib/chef/application/windows_service.rb +227 -0
  133. data/lib/chef/applications.rb +4 -0
  134. data/lib/chef/certificate.rb +161 -0
  135. data/lib/chef/checksum.rb +167 -0
  136. data/lib/chef/checksum/storage.rb +18 -0
  137. data/lib/chef/checksum/storage/filesystem.rb +56 -0
  138. data/lib/chef/checksum_cache.rb +190 -0
  139. data/lib/chef/client.rb +499 -0
  140. data/lib/chef/config.rb +330 -0
  141. data/lib/chef/cookbook/chefignore.rb +66 -0
  142. data/lib/chef/cookbook/cookbook_collection.rb +45 -0
  143. data/lib/chef/cookbook/cookbook_version_loader.rb +171 -0
  144. data/lib/chef/cookbook/file_system_file_vendor.rb +56 -0
  145. data/lib/chef/cookbook/file_vendor.rb +48 -0
  146. data/lib/chef/cookbook/metadata.rb +629 -0
  147. data/lib/chef/cookbook/remote_file_vendor.rb +84 -0
  148. data/lib/chef/cookbook/synchronizer.rb +218 -0
  149. data/lib/chef/cookbook/syntax_check.rb +136 -0
  150. data/lib/chef/cookbook_loader.rb +121 -0
  151. data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
  152. data/lib/chef/cookbook_uploader.rb +173 -0
  153. data/lib/chef/cookbook_version.rb +1081 -0
  154. data/lib/chef/cookbook_version_selector.rb +168 -0
  155. data/lib/chef/couchdb.rb +246 -0
  156. data/lib/chef/daemon.rb +187 -0
  157. data/lib/chef/data_bag.rb +239 -0
  158. data/lib/chef/data_bag_item.rb +277 -0
  159. data/lib/chef/encrypted_data_bag_item.rb +268 -0
  160. data/lib/chef/environment.rb +458 -0
  161. data/lib/chef/event_dispatch/base.rb +311 -0
  162. data/lib/chef/event_dispatch/dispatcher.rb +42 -0
  163. data/lib/chef/exceptions.rb +192 -0
  164. data/lib/chef/file_access_control.rb +75 -0
  165. data/lib/chef/file_access_control/unix.rb +216 -0
  166. data/lib/chef/file_access_control/windows.rb +310 -0
  167. data/lib/chef/file_cache.rb +220 -0
  168. data/lib/chef/formatters/base.rb +247 -0
  169. data/lib/chef/formatters/doc.rb +236 -0
  170. data/lib/chef/formatters/error_descriptor.rb +66 -0
  171. data/lib/chef/formatters/error_inspectors.rb +19 -0
  172. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +111 -0
  173. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +106 -0
  174. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +146 -0
  175. data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +80 -0
  176. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +125 -0
  177. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +137 -0
  178. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +109 -0
  179. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +118 -0
  180. data/lib/chef/formatters/error_mapper.rb +85 -0
  181. data/lib/chef/formatters/minimal.rb +235 -0
  182. data/lib/chef/handler.rb +235 -0
  183. data/lib/chef/handler/error_report.rb +33 -0
  184. data/lib/chef/handler/json_file.rb +64 -0
  185. data/lib/chef/index_queue.rb +29 -0
  186. data/lib/chef/index_queue/amqp_client.rb +116 -0
  187. data/lib/chef/index_queue/consumer.rb +76 -0
  188. data/lib/chef/index_queue/indexable.rb +109 -0
  189. data/lib/chef/json_compat.rb +149 -0
  190. data/lib/chef/knife.rb +537 -0
  191. data/lib/chef/knife/bootstrap.rb +233 -0
  192. data/lib/chef/knife/bootstrap/archlinux-gems.erb +62 -0
  193. data/lib/chef/knife/bootstrap/centos5-gems.erb +62 -0
  194. data/lib/chef/knife/bootstrap/chef-full.erb +60 -0
  195. data/lib/chef/knife/bootstrap/fedora13-gems.erb +44 -0
  196. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +53 -0
  197. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +48 -0
  198. data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +46 -0
  199. data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +60 -0
  200. data/lib/chef/knife/client_bulk_delete.rb +65 -0
  201. data/lib/chef/knife/client_create.rb +80 -0
  202. data/lib/chef/knife/client_delete.rb +46 -0
  203. data/lib/chef/knife/client_edit.rb +45 -0
  204. data/lib/chef/knife/client_list.rb +42 -0
  205. data/lib/chef/knife/client_reregister.rb +59 -0
  206. data/lib/chef/knife/client_show.rb +52 -0
  207. data/lib/chef/knife/configure.rb +168 -0
  208. data/lib/chef/knife/configure_client.rb +50 -0
  209. data/lib/chef/knife/cookbook_bulk_delete.rb +72 -0
  210. data/lib/chef/knife/cookbook_create.rb +447 -0
  211. data/lib/chef/knife/cookbook_delete.rb +151 -0
  212. data/lib/chef/knife/cookbook_download.rb +137 -0
  213. data/lib/chef/knife/cookbook_list.rb +47 -0
  214. data/lib/chef/knife/cookbook_metadata.rb +107 -0
  215. data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -0
  216. data/lib/chef/knife/cookbook_show.rb +102 -0
  217. data/lib/chef/knife/cookbook_site_download.rb +109 -0
  218. data/lib/chef/knife/cookbook_site_install.rb +164 -0
  219. data/lib/chef/knife/cookbook_site_list.rb +62 -0
  220. data/lib/chef/knife/cookbook_site_search.rb +51 -0
  221. data/lib/chef/knife/cookbook_site_share.rb +114 -0
  222. data/lib/chef/knife/cookbook_site_show.rb +60 -0
  223. data/lib/chef/knife/cookbook_site_unshare.rb +56 -0
  224. data/lib/chef/knife/cookbook_site_vendor.rb +46 -0
  225. data/lib/chef/knife/cookbook_test.rb +93 -0
  226. data/lib/chef/knife/cookbook_upload.rb +290 -0
  227. data/lib/chef/knife/core/bootstrap_context.rb +106 -0
  228. data/lib/chef/knife/core/cookbook_scm_repo.rb +160 -0
  229. data/lib/chef/knife/core/generic_presenter.rb +191 -0
  230. data/lib/chef/knife/core/node_editor.rb +130 -0
  231. data/lib/chef/knife/core/node_presenter.rb +137 -0
  232. data/lib/chef/knife/core/object_loader.rb +112 -0
  233. data/lib/chef/knife/core/subcommand_loader.rb +112 -0
  234. data/lib/chef/knife/core/text_formatter.rb +100 -0
  235. data/lib/chef/knife/core/ui.rb +217 -0
  236. data/lib/chef/knife/data_bag_create.rb +93 -0
  237. data/lib/chef/knife/data_bag_delete.rb +51 -0
  238. data/lib/chef/knife/data_bag_edit.rb +94 -0
  239. data/lib/chef/knife/data_bag_from_file.rb +136 -0
  240. data/lib/chef/knife/data_bag_list.rb +46 -0
  241. data/lib/chef/knife/data_bag_show.rb +81 -0
  242. data/lib/chef/knife/environment_create.rb +53 -0
  243. data/lib/chef/knife/environment_delete.rb +45 -0
  244. data/lib/chef/knife/environment_edit.rb +45 -0
  245. data/lib/chef/knife/environment_from_file.rb +83 -0
  246. data/lib/chef/knife/environment_list.rb +42 -0
  247. data/lib/chef/knife/environment_show.rb +46 -0
  248. data/lib/chef/knife/exec.rb +86 -0
  249. data/lib/chef/knife/help.rb +103 -0
  250. data/lib/chef/knife/help_topics.rb +4 -0
  251. data/lib/chef/knife/index_rebuild.rb +50 -0
  252. data/lib/chef/knife/node_bulk_delete.rb +80 -0
  253. data/lib/chef/knife/node_create.rb +50 -0
  254. data/lib/chef/knife/node_delete.rb +47 -0
  255. data/lib/chef/knife/node_edit.rb +72 -0
  256. data/lib/chef/knife/node_from_file.rb +50 -0
  257. data/lib/chef/knife/node_list.rb +46 -0
  258. data/lib/chef/knife/node_run_list_add.rb +75 -0
  259. data/lib/chef/knife/node_run_list_remove.rb +48 -0
  260. data/lib/chef/knife/node_show.rb +73 -0
  261. data/lib/chef/knife/recipe_list.rb +32 -0
  262. data/lib/chef/knife/role_bulk_delete.rb +70 -0
  263. data/lib/chef/knife/role_create.rb +55 -0
  264. data/lib/chef/knife/role_delete.rb +47 -0
  265. data/lib/chef/knife/role_edit.rb +48 -0
  266. data/lib/chef/knife/role_from_file.rb +56 -0
  267. data/lib/chef/knife/role_list.rb +43 -0
  268. data/lib/chef/knife/role_show.rb +54 -0
  269. data/lib/chef/knife/search.rb +141 -0
  270. data/lib/chef/knife/ssh.rb +459 -0
  271. data/lib/chef/knife/status.rb +119 -0
  272. data/lib/chef/knife/tag_create.rb +52 -0
  273. data/lib/chef/knife/tag_delete.rb +60 -0
  274. data/lib/chef/knife/tag_list.rb +47 -0
  275. data/lib/chef/log.rb +39 -0
  276. data/lib/chef/mash.rb +225 -0
  277. data/lib/chef/mixin/check_helper.rb +31 -0
  278. data/lib/chef/mixin/checksum.rb +32 -0
  279. data/lib/chef/mixin/command.rb +164 -0
  280. data/lib/chef/mixin/command/unix.rb +220 -0
  281. data/lib/chef/mixin/command/windows.rb +76 -0
  282. data/lib/chef/mixin/convert_to_class_name.rb +65 -0
  283. data/lib/chef/mixin/create_path.rb +57 -0
  284. data/lib/chef/mixin/deep_merge.rb +247 -0
  285. data/lib/chef/mixin/deprecation.rb +65 -0
  286. data/lib/chef/mixin/enforce_ownership_and_permissions.rb +39 -0
  287. data/lib/chef/mixin/file_class.rb +46 -0
  288. data/lib/chef/mixin/from_file.rb +50 -0
  289. data/lib/chef/mixin/get_source_from_package.rb +42 -0
  290. data/lib/chef/mixin/language.rb +249 -0
  291. data/lib/chef/mixin/language_include_attribute.rb +61 -0
  292. data/lib/chef/mixin/language_include_recipe.rb +58 -0
  293. data/lib/chef/mixin/params_validate.rb +238 -0
  294. data/lib/chef/mixin/path_sanity.rb +67 -0
  295. data/lib/chef/mixin/recipe_definition_dsl_core.rb +86 -0
  296. data/lib/chef/mixin/securable.rb +180 -0
  297. data/lib/chef/mixin/shell_out.rb +69 -0
  298. data/lib/chef/mixin/template.rb +100 -0
  299. data/lib/chef/mixin/why_run.rb +332 -0
  300. data/lib/chef/mixin/xml_escape.rb +140 -0
  301. data/lib/chef/mixins.rb +18 -0
  302. data/lib/chef/monkey_patches/dir.rb +36 -0
  303. data/lib/chef/monkey_patches/fileutils.rb +65 -0
  304. data/lib/chef/monkey_patches/moneta.rb +50 -0
  305. data/lib/chef/monkey_patches/net_http.rb +22 -0
  306. data/lib/chef/monkey_patches/numeric.rb +15 -0
  307. data/lib/chef/monkey_patches/object.rb +9 -0
  308. data/lib/chef/monkey_patches/regexp.rb +34 -0
  309. data/lib/chef/monkey_patches/string.rb +49 -0
  310. data/lib/chef/monkey_patches/tempfile.rb +64 -0
  311. data/lib/chef/nil_argument.rb +3 -0
  312. data/lib/chef/node.rb +682 -0
  313. data/lib/chef/node/attribute.rb +504 -0
  314. data/lib/chef/openid_registration.rb +187 -0
  315. data/lib/chef/platform.rb +520 -0
  316. data/lib/chef/provider.rb +223 -0
  317. data/lib/chef/provider/breakpoint.rb +36 -0
  318. data/lib/chef/provider/cookbook_file.rb +105 -0
  319. data/lib/chef/provider/cron.rb +214 -0
  320. data/lib/chef/provider/cron/solaris.rb +56 -0
  321. data/lib/chef/provider/deploy.rb +474 -0
  322. data/lib/chef/provider/deploy/revision.rb +80 -0
  323. data/lib/chef/provider/deploy/timestamped.rb +32 -0
  324. data/lib/chef/provider/directory.rb +128 -0
  325. data/lib/chef/provider/env.rb +152 -0
  326. data/lib/chef/provider/env/windows.rb +75 -0
  327. data/lib/chef/provider/erl_call.rb +106 -0
  328. data/lib/chef/provider/execute.rb +68 -0
  329. data/lib/chef/provider/file.rb +355 -0
  330. data/lib/chef/provider/git.rb +260 -0
  331. data/lib/chef/provider/group.rb +159 -0
  332. data/lib/chef/provider/group/aix.rb +70 -0
  333. data/lib/chef/provider/group/dscl.rb +129 -0
  334. data/lib/chef/provider/group/gpasswd.rb +65 -0
  335. data/lib/chef/provider/group/groupadd.rb +96 -0
  336. data/lib/chef/provider/group/groupmod.rb +120 -0
  337. data/lib/chef/provider/group/pw.rb +93 -0
  338. data/lib/chef/provider/group/suse.rb +60 -0
  339. data/lib/chef/provider/group/usermod.rb +68 -0
  340. data/lib/chef/provider/group/windows.rb +79 -0
  341. data/lib/chef/provider/http_request.rb +136 -0
  342. data/lib/chef/provider/ifconfig.rb +214 -0
  343. data/lib/chef/provider/link.rb +130 -0
  344. data/lib/chef/provider/log.rb +54 -0
  345. data/lib/chef/provider/mdadm.rb +92 -0
  346. data/lib/chef/provider/mount.rb +128 -0
  347. data/lib/chef/provider/mount/mount.rb +252 -0
  348. data/lib/chef/provider/mount/windows.rb +81 -0
  349. data/lib/chef/provider/ohai.rb +47 -0
  350. data/lib/chef/provider/package.rb +229 -0
  351. data/lib/chef/provider/package/apt.rb +147 -0
  352. data/lib/chef/provider/package/dpkg.rb +128 -0
  353. data/lib/chef/provider/package/easy_install.rb +136 -0
  354. data/lib/chef/provider/package/freebsd.rb +149 -0
  355. data/lib/chef/provider/package/ips.rb +101 -0
  356. data/lib/chef/provider/package/macports.rb +105 -0
  357. data/lib/chef/provider/package/pacman.rb +111 -0
  358. data/lib/chef/provider/package/portage.rb +143 -0
  359. data/lib/chef/provider/package/rpm.rb +121 -0
  360. data/lib/chef/provider/package/rubygems.rb +580 -0
  361. data/lib/chef/provider/package/smartos.rb +84 -0
  362. data/lib/chef/provider/package/solaris.rb +139 -0
  363. data/lib/chef/provider/package/yum-dump.py +307 -0
  364. data/lib/chef/provider/package/yum.rb +1261 -0
  365. data/lib/chef/provider/package/zypper.rb +144 -0
  366. data/lib/chef/provider/remote_directory.rb +178 -0
  367. data/lib/chef/provider/remote_file.rb +126 -0
  368. data/lib/chef/provider/resource_update.rb +55 -0
  369. data/lib/chef/provider/route.rb +223 -0
  370. data/lib/chef/provider/ruby_block.rb +39 -0
  371. data/lib/chef/provider/script.rb +57 -0
  372. data/lib/chef/provider/service.rb +158 -0
  373. data/lib/chef/provider/service/arch.rb +113 -0
  374. data/lib/chef/provider/service/debian.rb +152 -0
  375. data/lib/chef/provider/service/freebsd.rb +175 -0
  376. data/lib/chef/provider/service/gentoo.rb +67 -0
  377. data/lib/chef/provider/service/init.rb +87 -0
  378. data/lib/chef/provider/service/insserv.rb +52 -0
  379. data/lib/chef/provider/service/invokercd.rb +35 -0
  380. data/lib/chef/provider/service/macosx.rb +144 -0
  381. data/lib/chef/provider/service/redhat.rb +77 -0
  382. data/lib/chef/provider/service/simple.rb +172 -0
  383. data/lib/chef/provider/service/solaris.rb +86 -0
  384. data/lib/chef/provider/service/systemd.rb +115 -0
  385. data/lib/chef/provider/service/upstart.rb +232 -0
  386. data/lib/chef/provider/service/windows.rb +163 -0
  387. data/lib/chef/provider/subversion.rb +214 -0
  388. data/lib/chef/provider/template.rb +117 -0
  389. data/lib/chef/provider/user.rb +207 -0
  390. data/lib/chef/provider/user/dscl.rb +280 -0
  391. data/lib/chef/provider/user/pw.rb +113 -0
  392. data/lib/chef/provider/user/solaris.rb +90 -0
  393. data/lib/chef/provider/user/useradd.rb +153 -0
  394. data/lib/chef/provider/user/windows.rb +124 -0
  395. data/lib/chef/providers.rb +101 -0
  396. data/lib/chef/recipe.rb +129 -0
  397. data/lib/chef/reserved_names.rb +9 -0
  398. data/lib/chef/resource.rb +912 -0
  399. data/lib/chef/resource/apt_package.rb +43 -0
  400. data/lib/chef/resource/bash.rb +33 -0
  401. data/lib/chef/resource/breakpoint.rb +35 -0
  402. data/lib/chef/resource/chef_gem.rb +53 -0
  403. data/lib/chef/resource/conditional.rb +101 -0
  404. data/lib/chef/resource/cookbook_file.rb +52 -0
  405. data/lib/chef/resource/cron.rb +202 -0
  406. data/lib/chef/resource/csh.rb +33 -0
  407. data/lib/chef/resource/deploy.rb +403 -0
  408. data/lib/chef/resource/deploy_revision.rb +40 -0
  409. data/lib/chef/resource/directory.rb +65 -0
  410. data/lib/chef/resource/dpkg_package.rb +34 -0
  411. data/lib/chef/resource/easy_install_package.rb +57 -0
  412. data/lib/chef/resource/env.rb +63 -0
  413. data/lib/chef/resource/erl_call.rb +86 -0
  414. data/lib/chef/resource/execute.rb +132 -0
  415. data/lib/chef/resource/file.rb +96 -0
  416. data/lib/chef/resource/freebsd_package.rb +35 -0
  417. data/lib/chef/resource/gem_package.rb +53 -0
  418. data/lib/chef/resource/git.rb +46 -0
  419. data/lib/chef/resource/group.rb +83 -0
  420. data/lib/chef/resource/http_request.rb +64 -0
  421. data/lib/chef/resource/ifconfig.rb +149 -0
  422. data/lib/chef/resource/ips_package.rb +42 -0
  423. data/lib/chef/resource/link.rb +92 -0
  424. data/lib/chef/resource/log.rb +74 -0
  425. data/lib/chef/resource/macports_package.rb +29 -0
  426. data/lib/chef/resource/mdadm.rb +105 -0
  427. data/lib/chef/resource/mount.rb +139 -0
  428. data/lib/chef/resource/ohai.rb +54 -0
  429. data/lib/chef/resource/package.rb +84 -0
  430. data/lib/chef/resource/pacman_package.rb +33 -0
  431. data/lib/chef/resource/perl.rb +33 -0
  432. data/lib/chef/resource/portage_package.rb +33 -0
  433. data/lib/chef/resource/python.rb +33 -0
  434. data/lib/chef/resource/remote_directory.rb +125 -0
  435. data/lib/chef/resource/remote_file.rb +90 -0
  436. data/lib/chef/resource/route.rb +140 -0
  437. data/lib/chef/resource/rpm_package.rb +34 -0
  438. data/lib/chef/resource/ruby.rb +33 -0
  439. data/lib/chef/resource/ruby_block.rb +51 -0
  440. data/lib/chef/resource/scm.rb +151 -0
  441. data/lib/chef/resource/script.rb +63 -0
  442. data/lib/chef/resource/service.rb +164 -0
  443. data/lib/chef/resource/smartos_package.rb +36 -0
  444. data/lib/chef/resource/solaris_package.rb +36 -0
  445. data/lib/chef/resource/subversion.rb +37 -0
  446. data/lib/chef/resource/template.rb +76 -0
  447. data/lib/chef/resource/timestamped_deploy.rb +31 -0
  448. data/lib/chef/resource/user.rb +134 -0
  449. data/lib/chef/resource/yum_package.rb +63 -0
  450. data/lib/chef/resource_collection.rb +217 -0
  451. data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
  452. data/lib/chef/resource_definition.rb +67 -0
  453. data/lib/chef/resource_definition_list.rb +38 -0
  454. data/lib/chef/resource_platform_map.rb +151 -0
  455. data/lib/chef/resource_reporter.rb +281 -0
  456. data/lib/chef/resources.rb +67 -0
  457. data/lib/chef/rest.rb +510 -0
  458. data/lib/chef/rest/auth_credentials.rb +73 -0
  459. data/lib/chef/rest/cookie_jar.rb +31 -0
  460. data/lib/chef/rest/rest_request.rb +229 -0
  461. data/lib/chef/role.rb +349 -0
  462. data/lib/chef/run_context.rb +236 -0
  463. data/lib/chef/run_list.rb +165 -0
  464. data/lib/chef/run_list/run_list_expansion.rb +206 -0
  465. data/lib/chef/run_list/run_list_item.rb +99 -0
  466. data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
  467. data/lib/chef/run_status.rb +124 -0
  468. data/lib/chef/runner.rb +95 -0
  469. data/lib/chef/sandbox.rb +153 -0
  470. data/lib/chef/scan_access_control.rb +135 -0
  471. data/lib/chef/search/query.rb +65 -0
  472. data/lib/chef/shef.rb +327 -0
  473. data/lib/chef/shef/ext.rb +591 -0
  474. data/lib/chef/shef/model_wrapper.rb +120 -0
  475. data/lib/chef/shef/shef_rest.rb +28 -0
  476. data/lib/chef/shef/shef_session.rb +296 -0
  477. data/lib/chef/shell_out.rb +6 -0
  478. data/lib/chef/solr_query.rb +187 -0
  479. data/lib/chef/solr_query/lucene.treetop +150 -0
  480. data/lib/chef/solr_query/lucene_nodes.rb +285 -0
  481. data/lib/chef/solr_query/query_transform.rb +65 -0
  482. data/lib/chef/solr_query/solr_http_request.rb +132 -0
  483. data/lib/chef/streaming_cookbook_uploader.rb +201 -0
  484. data/lib/chef/tasks/chef_repo.rake +334 -0
  485. data/lib/chef/util/file_edit.rb +132 -0
  486. data/lib/chef/util/windows.rb +56 -0
  487. data/lib/chef/util/windows/net_group.rb +101 -0
  488. data/lib/chef/util/windows/net_use.rb +121 -0
  489. data/lib/chef/util/windows/net_user.rb +198 -0
  490. data/lib/chef/util/windows/volume.rb +59 -0
  491. data/lib/chef/version.rb +23 -0
  492. data/lib/chef/version_class.rb +70 -0
  493. data/lib/chef/version_constraint.rb +116 -0
  494. data/lib/chef/webui_user.rb +231 -0
  495. data/lib/chef/win32/api.rb +364 -0
  496. data/lib/chef/win32/api/error.rb +921 -0
  497. data/lib/chef/win32/api/file.rb +535 -0
  498. data/lib/chef/win32/api/memory.rb +105 -0
  499. data/lib/chef/win32/api/process.rb +41 -0
  500. data/lib/chef/win32/api/psapi.rb +51 -0
  501. data/lib/chef/win32/api/security.rb +341 -0
  502. data/lib/chef/win32/api/system.rb +192 -0
  503. data/lib/chef/win32/api/unicode.rb +178 -0
  504. data/lib/chef/win32/error.rb +73 -0
  505. data/lib/chef/win32/file.rb +167 -0
  506. data/lib/chef/win32/file/info.rb +100 -0
  507. data/lib/chef/win32/handle.rb +55 -0
  508. data/lib/chef/win32/memory.rb +101 -0
  509. data/lib/chef/win32/process.rb +84 -0
  510. data/lib/chef/win32/security.rb +489 -0
  511. data/lib/chef/win32/security/ace.rb +125 -0
  512. data/lib/chef/win32/security/acl.rb +101 -0
  513. data/lib/chef/win32/security/securable_object.rb +109 -0
  514. data/lib/chef/win32/security/security_descriptor.rb +93 -0
  515. data/lib/chef/win32/security/sid.rb +199 -0
  516. data/lib/chef/win32/security/token.rb +64 -0
  517. data/lib/chef/win32/unicode.rb +43 -0
  518. data/lib/chef/win32/version.rb +119 -0
  519. data/spec/data/bad-config.rb +1 -0
  520. data/spec/data/big_json.json +2 -0
  521. data/spec/data/big_json_plus_one.json +2 -0
  522. data/spec/data/bootstrap/test-hints.erb +12 -0
  523. data/spec/data/bootstrap/test.erb +1 -0
  524. data/spec/data/cb_version_cookbooks/tatft/README.rdoc +3 -0
  525. data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -0
  526. data/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb +1 -0
  527. data/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz +1 -0
  528. data/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb +1 -0
  529. data/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb +1 -0
  530. data/spec/data/cb_version_cookbooks/tatft/recipes/default.rb +1 -0
  531. data/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb +1 -0
  532. data/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb +0 -0
  533. data/spec/data/checksum/random.txt +1 -0
  534. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -0
  535. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0 +0 -0
  536. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -0
  537. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -0
  538. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -0
  539. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -0
  540. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -0
  541. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -0
  542. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -0
  543. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -0
  544. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -0
  545. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -0
  546. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -0
  547. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -0
  548. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -0
  549. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -0
  550. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -0
  551. data/spec/data/config.rb +6 -0
  552. data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -0
  553. data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -0
  554. data/spec/data/cookbooks/apache2/recipes/default.rb +3 -0
  555. data/spec/data/cookbooks/borken/recipes/default.rb +2 -0
  556. data/spec/data/cookbooks/borken/templates/default/borken.erb +2 -0
  557. data/spec/data/cookbooks/chefignore +8 -0
  558. data/spec/data/cookbooks/java/files/default/java.response +2 -0
  559. data/spec/data/cookbooks/openldap/attributes/default.rb +15 -0
  560. data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -0
  561. data/spec/data/cookbooks/openldap/definitions/client.rb +5 -0
  562. data/spec/data/cookbooks/openldap/definitions/server.rb +5 -0
  563. data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -0
  564. data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +1 -0
  565. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -0
  566. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +3 -0
  567. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +3 -0
  568. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -0
  569. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +3 -0
  570. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +3 -0
  571. data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -0
  572. data/spec/data/cookbooks/openldap/recipes/default.rb +3 -0
  573. data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -0
  574. data/spec/data/cookbooks/openldap/recipes/one.rb +15 -0
  575. data/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb +1 -0
  576. data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -0
  577. data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -0
  578. data/spec/data/definitions/test.rb +5 -0
  579. data/spec/data/environment-config.rb +5 -0
  580. data/spec/data/fileedit/blank +0 -0
  581. data/spec/data/fileedit/hosts +4 -0
  582. data/spec/data/gems/chef-integration-test-0.1.0.gem +0 -0
  583. data/spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle +0 -0
  584. data/spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle +0 -0
  585. data/spec/data/git_bundles/sinatra-test-app.gitbundle +0 -0
  586. data/spec/data/kitchen/chefignore +6 -0
  587. data/spec/data/kitchen/openldap/attributes/default.rb +3 -0
  588. data/spec/data/kitchen/openldap/attributes/robinson.rb +3 -0
  589. data/spec/data/kitchen/openldap/definitions/client.rb +3 -0
  590. data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +3 -0
  591. data/spec/data/kitchen/openldap/recipes/gigantor.rb +3 -0
  592. data/spec/data/kitchen/openldap/recipes/ignoreme.rb +3 -0
  593. data/spec/data/kitchen/openldap/recipes/woot.rb +3 -0
  594. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  595. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  596. data/spec/data/knife_subcommand/test_explicit_category.rb +7 -0
  597. data/spec/data/knife_subcommand/test_name_mapping.rb +4 -0
  598. data/spec/data/knife_subcommand/test_yourself.rb +13 -0
  599. data/spec/data/lwrp/providers/buck_passer.rb +3 -0
  600. data/spec/data/lwrp/providers/buck_passer_2.rb +10 -0
  601. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +16 -0
  602. data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -0
  603. data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -0
  604. data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -0
  605. data/spec/data/lwrp/resources/bar.rb +1 -0
  606. data/spec/data/lwrp/resources/foo.rb +3 -0
  607. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -0
  608. data/spec/data/lwrp_const_scoping/resources/conflict.rb +0 -0
  609. data/spec/data/lwrp_override/providers/buck_passer.rb +10 -0
  610. data/spec/data/lwrp_override/resources/foo.rb +4 -0
  611. data/spec/data/metadata/quick_start/metadata.rb +19 -0
  612. data/spec/data/nodes/default.rb +15 -0
  613. data/spec/data/nodes/test.example.com.rb +17 -0
  614. data/spec/data/nodes/test.rb +15 -0
  615. data/spec/data/object_loader/environments/test.json +5 -0
  616. data/spec/data/object_loader/environments/test.rb +2 -0
  617. data/spec/data/object_loader/environments/test_json_class.json +6 -0
  618. data/spec/data/object_loader/nodes/test.json +5 -0
  619. data/spec/data/object_loader/nodes/test.rb +2 -0
  620. data/spec/data/object_loader/nodes/test_json_class.json +6 -0
  621. data/spec/data/object_loader/roles/test.json +5 -0
  622. data/spec/data/object_loader/roles/test.rb +2 -0
  623. data/spec/data/object_loader/roles/test_json_class.json +6 -0
  624. data/spec/data/old_home_dir/my-dot-emacs +0 -0
  625. data/spec/data/old_home_dir/my-dot-vim +0 -0
  626. data/spec/data/recipes/test.rb +7 -0
  627. data/spec/data/remote_directory_data/remote_dir_file.txt +1 -0
  628. data/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt +1 -0
  629. data/spec/data/remote_file/nyan_cat.png +0 -0
  630. data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -0
  631. data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -0
  632. data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -0
  633. data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -0
  634. data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -0
  635. data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -0
  636. data/spec/data/run_context/nodes/run_context.rb +5 -0
  637. data/spec/data/search_queries_to_transform.txt +98 -0
  638. data/spec/data/ssl/5e707473.0 +18 -0
  639. data/spec/data/ssl/chef-rspec.cert +27 -0
  640. data/spec/data/ssl/chef-rspec.key +27 -0
  641. data/spec/data/ssl/key.pem +15 -0
  642. data/spec/data/ssl/private_key.pem +27 -0
  643. data/spec/data/ssl/private_key_with_whitespace.pem +32 -0
  644. data/spec/data/templates/seattle.txt +1 -0
  645. data/spec/functional/knife/cookbook_delete_spec.rb +160 -0
  646. data/spec/functional/knife/exec_spec.rb +60 -0
  647. data/spec/functional/knife/ssh_spec.rb +268 -0
  648. data/spec/functional/resource/cookbook_file_spec.rb +75 -0
  649. data/spec/functional/resource/deploy_revision_spec.rb +515 -0
  650. data/spec/functional/resource/directory_spec.rb +39 -0
  651. data/spec/functional/resource/file_spec.rb +69 -0
  652. data/spec/functional/resource/link_spec.rb +572 -0
  653. data/spec/functional/resource/remote_directory_spec.rb +114 -0
  654. data/spec/functional/resource/remote_file_spec.rb +65 -0
  655. data/spec/functional/resource/template_spec.rb +68 -0
  656. data/spec/functional/tiny_server_spec.rb +78 -0
  657. data/spec/rcov.opts +2 -0
  658. data/spec/spec_helper.rb +82 -0
  659. data/spec/stress/win32/file_spec.rb +37 -0
  660. data/spec/stress/win32/memory_spec.rb +22 -0
  661. data/spec/stress/win32/security_spec.rb +69 -0
  662. data/spec/support/chef_helpers.rb +65 -0
  663. data/spec/support/lib/chef/provider/easy.rb +35 -0
  664. data/spec/support/lib/chef/provider/snakeoil.rb +40 -0
  665. data/spec/support/lib/chef/resource/cat.rb +41 -0
  666. data/spec/support/lib/chef/resource/one_two_three_four.rb +43 -0
  667. data/spec/support/lib/chef/resource/zen_master.rb +46 -0
  668. data/spec/support/matchers/leak.rb +96 -0
  669. data/spec/support/mock/constant.rb +52 -0
  670. data/spec/support/mock/platform.rb +18 -0
  671. data/spec/support/platform_helpers.rb +39 -0
  672. data/spec/support/platforms/prof/gc.rb +54 -0
  673. data/spec/support/platforms/prof/win32.rb +46 -0
  674. data/spec/support/shared/functional/directory_resource.rb +85 -0
  675. data/spec/support/shared/functional/file_resource.rb +202 -0
  676. data/spec/support/shared/functional/knife.rb +37 -0
  677. data/spec/support/shared/functional/securable_resource.rb +402 -0
  678. data/spec/support/shared/unit/api_error_inspector.rb +192 -0
  679. data/spec/tiny_server.rb +202 -0
  680. data/spec/unit/api_client_spec.rb +257 -0
  681. data/spec/unit/application/agent_spec.rb +0 -0
  682. data/spec/unit/application/client_spec.rb +171 -0
  683. data/spec/unit/application/knife_spec.rb +152 -0
  684. data/spec/unit/application/server_spec.rb +0 -0
  685. data/spec/unit/application/solo_spec.rb +167 -0
  686. data/spec/unit/application_spec.rb +239 -0
  687. data/spec/unit/certificate_spec.rb +76 -0
  688. data/spec/unit/checksum/storage/filesystem_spec.rb +69 -0
  689. data/spec/unit/checksum_cache_spec.rb +209 -0
  690. data/spec/unit/checksum_spec.rb +94 -0
  691. data/spec/unit/chef_spec.rb +25 -0
  692. data/spec/unit/client_spec.rb +290 -0
  693. data/spec/unit/config_spec.rb +223 -0
  694. data/spec/unit/cookbook/chefignore_spec.rb +39 -0
  695. data/spec/unit/cookbook/metadata_spec.rb +627 -0
  696. data/spec/unit/cookbook/synchronizer_spec.rb +306 -0
  697. data/spec/unit/cookbook/syntax_check_spec.rb +211 -0
  698. data/spec/unit/cookbook_loader_spec.rb +145 -0
  699. data/spec/unit/cookbook_manifest_spec.rb +554 -0
  700. data/spec/unit/cookbook_spec.rb +101 -0
  701. data/spec/unit/cookbook_version_spec.rb +406 -0
  702. data/spec/unit/couchdb_spec.rb +274 -0
  703. data/spec/unit/daemon_spec.rb +302 -0
  704. data/spec/unit/data_bag_item_spec.rb +280 -0
  705. data/spec/unit/data_bag_spec.rb +169 -0
  706. data/spec/unit/encrypted_data_bag_item_spec.rb +293 -0
  707. data/spec/unit/environment_spec.rb +492 -0
  708. data/spec/unit/exceptions_spec.rb +74 -0
  709. data/spec/unit/file_access_control_spec.rb +282 -0
  710. data/spec/unit/file_cache_spec.rb +114 -0
  711. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +202 -0
  712. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +93 -0
  713. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +43 -0
  714. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +27 -0
  715. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +27 -0
  716. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +182 -0
  717. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +93 -0
  718. data/spec/unit/handler/json_file_spec.rb +64 -0
  719. data/spec/unit/handler_spec.rb +216 -0
  720. data/spec/unit/index_queue_spec.rb +391 -0
  721. data/spec/unit/json_compat_spec.rb +61 -0
  722. data/spec/unit/knife/bootstrap_spec.rb +265 -0
  723. data/spec/unit/knife/client_bulk_delete_spec.rb +78 -0
  724. data/spec/unit/knife/client_create_spec.rb +74 -0
  725. data/spec/unit/knife/client_delete_spec.rb +40 -0
  726. data/spec/unit/knife/client_edit_spec.rb +40 -0
  727. data/spec/unit/knife/client_list_spec.rb +34 -0
  728. data/spec/unit/knife/client_reregister_spec.rb +62 -0
  729. data/spec/unit/knife/client_show_spec.rb +42 -0
  730. data/spec/unit/knife/config_file_selection_spec.rb +118 -0
  731. data/spec/unit/knife/configure_client_spec.rb +83 -0
  732. data/spec/unit/knife/configure_spec.rb +229 -0
  733. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +87 -0
  734. data/spec/unit/knife/cookbook_create_spec.rb +271 -0
  735. data/spec/unit/knife/cookbook_delete_spec.rb +239 -0
  736. data/spec/unit/knife/cookbook_download_spec.rb +217 -0
  737. data/spec/unit/knife/cookbook_list_spec.rb +88 -0
  738. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +65 -0
  739. data/spec/unit/knife/cookbook_metadata_spec.rb +172 -0
  740. data/spec/unit/knife/cookbook_show_spec.rb +223 -0
  741. data/spec/unit/knife/cookbook_site_download_spec.rb +151 -0
  742. data/spec/unit/knife/cookbook_site_install_spec.rb +148 -0
  743. data/spec/unit/knife/cookbook_site_share_spec.rb +146 -0
  744. data/spec/unit/knife/cookbook_site_unshare_spec.rb +77 -0
  745. data/spec/unit/knife/cookbook_test_spec.rb +83 -0
  746. data/spec/unit/knife/cookbook_upload_spec.rb +148 -0
  747. data/spec/unit/knife/core/bootstrap_context_spec.rb +135 -0
  748. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +187 -0
  749. data/spec/unit/knife/core/object_loader_spec.rb +81 -0
  750. data/spec/unit/knife/core/subcommand_loader_spec.rb +54 -0
  751. data/spec/unit/knife/core/ui_spec.rb +160 -0
  752. data/spec/unit/knife/data_bag_create_spec.rb +101 -0
  753. data/spec/unit/knife/data_bag_edit_spec.rb +96 -0
  754. data/spec/unit/knife/data_bag_from_file_spec.rb +198 -0
  755. data/spec/unit/knife/data_bag_show_spec.rb +105 -0
  756. data/spec/unit/knife/environment_create_spec.rb +91 -0
  757. data/spec/unit/knife/environment_delete_spec.rb +71 -0
  758. data/spec/unit/knife/environment_edit_spec.rb +79 -0
  759. data/spec/unit/knife/environment_from_file_spec.rb +89 -0
  760. data/spec/unit/knife/environment_list_spec.rb +54 -0
  761. data/spec/unit/knife/environment_show_spec.rb +52 -0
  762. data/spec/unit/knife/index_rebuild_spec.rb +65 -0
  763. data/spec/unit/knife/knife_help.rb +92 -0
  764. data/spec/unit/knife/node_bulk_delete_spec.rb +97 -0
  765. data/spec/unit/knife/node_delete_spec.rb +68 -0
  766. data/spec/unit/knife/node_edit_spec.rb +88 -0
  767. data/spec/unit/knife/node_from_file_spec.rb +59 -0
  768. data/spec/unit/knife/node_list_spec.rb +63 -0
  769. data/spec/unit/knife/node_run_list_add_spec.rb +125 -0
  770. data/spec/unit/knife/node_run_list_remove_spec.rb +73 -0
  771. data/spec/unit/knife/node_show_spec.rb +48 -0
  772. data/spec/unit/knife/role_bulk_delete_spec.rb +80 -0
  773. data/spec/unit/knife/role_create_spec.rb +80 -0
  774. data/spec/unit/knife/role_delete_spec.rb +67 -0
  775. data/spec/unit/knife/role_edit_spec.rb +79 -0
  776. data/spec/unit/knife/role_from_file_spec.rb +69 -0
  777. data/spec/unit/knife/role_list_spec.rb +56 -0
  778. data/spec/unit/knife/ssh_spec.rb +293 -0
  779. data/spec/unit/knife/status_spec.rb +43 -0
  780. data/spec/unit/knife/tag_create_spec.rb +23 -0
  781. data/spec/unit/knife/tag_delete_spec.rb +25 -0
  782. data/spec/unit/knife/tag_list_spec.rb +23 -0
  783. data/spec/unit/knife_spec.rb +295 -0
  784. data/spec/unit/log_spec.rb +24 -0
  785. data/spec/unit/lwrp_spec.rb +256 -0
  786. data/spec/unit/mash_spec.rb +51 -0
  787. data/spec/unit/mixin/checksum_spec.rb +41 -0
  788. data/spec/unit/mixin/command_spec.rb +105 -0
  789. data/spec/unit/mixin/convert_to_class_name_spec.rb +50 -0
  790. data/spec/unit/mixin/deep_merge_spec.rb +786 -0
  791. data/spec/unit/mixin/deprecation_spec.rb +34 -0
  792. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +90 -0
  793. data/spec/unit/mixin/language_spec.rb +305 -0
  794. data/spec/unit/mixin/params_validate_spec.rb +405 -0
  795. data/spec/unit/mixin/path_sanity_spec.rb +80 -0
  796. data/spec/unit/mixin/securable_spec.rb +254 -0
  797. data/spec/unit/mixin/shell_out_spec.rb +109 -0
  798. data/spec/unit/mixin/template_spec.rb +104 -0
  799. data/spec/unit/mixin/xml_escape_spec.rb +54 -0
  800. data/spec/unit/monkey_patches/string_spec.rb +37 -0
  801. data/spec/unit/node/attribute_spec.rb +1033 -0
  802. data/spec/unit/node_spec.rb +744 -0
  803. data/spec/unit/openid_registration_spec.rb +153 -0
  804. data/spec/unit/platform_spec.rb +241 -0
  805. data/spec/unit/provider/breakpoint_spec.rb +54 -0
  806. data/spec/unit/provider/cookbook_file_spec.rb +218 -0
  807. data/spec/unit/provider/cron/solaris_spec.rb +121 -0
  808. data/spec/unit/provider/cron_spec.rb +812 -0
  809. data/spec/unit/provider/deploy/revision_spec.rb +103 -0
  810. data/spec/unit/provider/deploy/timestamped_spec.rb +40 -0
  811. data/spec/unit/provider/deploy_spec.rb +620 -0
  812. data/spec/unit/provider/directory_spec.rb +156 -0
  813. data/spec/unit/provider/env_spec.rb +232 -0
  814. data/spec/unit/provider/erl_call_spec.rb +86 -0
  815. data/spec/unit/provider/execute_spec.rb +63 -0
  816. data/spec/unit/provider/file_spec.rb +505 -0
  817. data/spec/unit/provider/git_spec.rb +342 -0
  818. data/spec/unit/provider/group/dscl_spec.rb +294 -0
  819. data/spec/unit/provider/group/gpasswd_spec.rb +108 -0
  820. data/spec/unit/provider/group/groupadd_spec.rb +161 -0
  821. data/spec/unit/provider/group/groupmod_spec.rb +134 -0
  822. data/spec/unit/provider/group/pw_spec.rb +140 -0
  823. data/spec/unit/provider/group/usermod_spec.rb +95 -0
  824. data/spec/unit/provider/group/windows_spec.rb +94 -0
  825. data/spec/unit/provider/group_spec.rb +259 -0
  826. data/spec/unit/provider/http_request_spec.rb +178 -0
  827. data/spec/unit/provider/ifconfig_spec.rb +213 -0
  828. data/spec/unit/provider/link_spec.rb +252 -0
  829. data/spec/unit/provider/log_spec.rb +81 -0
  830. data/spec/unit/provider/mdadm_spec.rb +128 -0
  831. data/spec/unit/provider/mount/mount_spec.rb +398 -0
  832. data/spec/unit/provider/mount/windows_spec.rb +134 -0
  833. data/spec/unit/provider/mount_spec.rb +160 -0
  834. data/spec/unit/provider/ohai_spec.rb +85 -0
  835. data/spec/unit/provider/package/apt_spec.rb +352 -0
  836. data/spec/unit/provider/package/dpkg_spec.rb +216 -0
  837. data/spec/unit/provider/package/easy_install_spec.rb +112 -0
  838. data/spec/unit/provider/package/freebsd_spec.rb +259 -0
  839. data/spec/unit/provider/package/ips_spec.rb +210 -0
  840. data/spec/unit/provider/package/macports_spec.rb +203 -0
  841. data/spec/unit/provider/package/pacman_spec.rb +206 -0
  842. data/spec/unit/provider/package/portage_spec.rb +320 -0
  843. data/spec/unit/provider/package/rpm_spec.rb +152 -0
  844. data/spec/unit/provider/package/rubygems_spec.rb +639 -0
  845. data/spec/unit/provider/package/smartos_spec.rb +83 -0
  846. data/spec/unit/provider/package/solaris_spec.rb +181 -0
  847. data/spec/unit/provider/package/yum_spec.rb +1856 -0
  848. data/spec/unit/provider/package/zypper_spec.rb +159 -0
  849. data/spec/unit/provider/package_spec.rb +427 -0
  850. data/spec/unit/provider/remote_directory_spec.rb +222 -0
  851. data/spec/unit/provider/remote_file_spec.rb +288 -0
  852. data/spec/unit/provider/route_spec.rb +226 -0
  853. data/spec/unit/provider/ruby_block_spec.rb +38 -0
  854. data/spec/unit/provider/script_spec.rb +96 -0
  855. data/spec/unit/provider/service/arch_service_spec.rb +330 -0
  856. data/spec/unit/provider/service/debian_service_spec.rb +254 -0
  857. data/spec/unit/provider/service/freebsd_service_spec.rb +379 -0
  858. data/spec/unit/provider/service/gentoo_service_spec.rb +144 -0
  859. data/spec/unit/provider/service/init_service_spec.rb +212 -0
  860. data/spec/unit/provider/service/insserv_service_spec.rb +76 -0
  861. data/spec/unit/provider/service/invokercd_service_spec.rb +212 -0
  862. data/spec/unit/provider/service/macosx_spec.rb +229 -0
  863. data/spec/unit/provider/service/redhat_spec.rb +156 -0
  864. data/spec/unit/provider/service/simple_service_spec.rb +171 -0
  865. data/spec/unit/provider/service/solaris_smf_service_spec.rb +140 -0
  866. data/spec/unit/provider/service/systemd_service_spec.rb +239 -0
  867. data/spec/unit/provider/service/upstart_service_spec.rb +314 -0
  868. data/spec/unit/provider/service/windows_spec.rb +235 -0
  869. data/spec/unit/provider/service_spec.rb +169 -0
  870. data/spec/unit/provider/subversion_spec.rb +281 -0
  871. data/spec/unit/provider/template_spec.rb +196 -0
  872. data/spec/unit/provider/user/dscl_spec.rb +454 -0
  873. data/spec/unit/provider/user/pw_spec.rb +235 -0
  874. data/spec/unit/provider/user/solaris_spec.rb +414 -0
  875. data/spec/unit/provider/user/useradd_spec.rb +386 -0
  876. data/spec/unit/provider/user/windows_spec.rb +178 -0
  877. data/spec/unit/provider/user_spec.rb +468 -0
  878. data/spec/unit/provider_spec.rb +169 -0
  879. data/spec/unit/recipe_spec.rb +268 -0
  880. data/spec/unit/resource/apt_package_spec.rb +43 -0
  881. data/spec/unit/resource/bash_spec.rb +40 -0
  882. data/spec/unit/resource/breakpoint_spec.rb +43 -0
  883. data/spec/unit/resource/chef_gem_spec.rb +49 -0
  884. data/spec/unit/resource/conditional_spec.rb +147 -0
  885. data/spec/unit/resource/cookbook_file_spec.rb +89 -0
  886. data/spec/unit/resource/cron_spec.rb +181 -0
  887. data/spec/unit/resource/csh_spec.rb +40 -0
  888. data/spec/unit/resource/deploy_revision_spec.rb +47 -0
  889. data/spec/unit/resource/deploy_spec.rb +259 -0
  890. data/spec/unit/resource/directory_spec.rb +82 -0
  891. data/spec/unit/resource/dpkg_package_spec.rb +38 -0
  892. data/spec/unit/resource/easy_install_package_spec.rb +48 -0
  893. data/spec/unit/resource/env_spec.rb +85 -0
  894. data/spec/unit/resource/erl_call_spec.rb +81 -0
  895. data/spec/unit/resource/execute_spec.rb +124 -0
  896. data/spec/unit/resource/file_spec.rb +121 -0
  897. data/spec/unit/resource/freebsd_package_spec.rb +39 -0
  898. data/spec/unit/resource/gem_package_spec.rb +49 -0
  899. data/spec/unit/resource/git_spec.rb +46 -0
  900. data/spec/unit/resource/group_spec.rb +148 -0
  901. data/spec/unit/resource/http_request_spec.rb +59 -0
  902. data/spec/unit/resource/ifconfig_spec.rb +46 -0
  903. data/spec/unit/resource/ips_package_spec.rb +43 -0
  904. data/spec/unit/resource/link_spec.rb +118 -0
  905. data/spec/unit/resource/log_spec.rb +70 -0
  906. data/spec/unit/resource/macports_package_spec.rb +37 -0
  907. data/spec/unit/resource/mdadm_spec.rb +102 -0
  908. data/spec/unit/resource/mount_spec.rb +158 -0
  909. data/spec/unit/resource/ohai_spec.rb +62 -0
  910. data/spec/unit/resource/package_spec.rb +80 -0
  911. data/spec/unit/resource/pacman_package_spec.rb +38 -0
  912. data/spec/unit/resource/perl_spec.rb +40 -0
  913. data/spec/unit/resource/portage_package_spec.rb +38 -0
  914. data/spec/unit/resource/python_spec.rb +40 -0
  915. data/spec/unit/resource/remote_directory_spec.rb +97 -0
  916. data/spec/unit/resource/remote_file_spec.rb +125 -0
  917. data/spec/unit/resource/route_spec.rb +107 -0
  918. data/spec/unit/resource/rpm_package_spec.rb +38 -0
  919. data/spec/unit/resource/ruby_block_spec.rb +57 -0
  920. data/spec/unit/resource/ruby_spec.rb +40 -0
  921. data/spec/unit/resource/scm_spec.rb +159 -0
  922. data/spec/unit/resource/script_spec.rb +69 -0
  923. data/spec/unit/resource/service_spec.rb +165 -0
  924. data/spec/unit/resource/smartos_package_spec.rb +38 -0
  925. data/spec/unit/resource/subversion_spec.rb +58 -0
  926. data/spec/unit/resource/template_spec.rb +108 -0
  927. data/spec/unit/resource/timestamped_deploy_spec.rb +28 -0
  928. data/spec/unit/resource/user_spec.rb +122 -0
  929. data/spec/unit/resource/yum_package_spec.rb +85 -0
  930. data/spec/unit/resource_collection/stepable_iterator_spec.rb +144 -0
  931. data/spec/unit/resource_collection_spec.rb +257 -0
  932. data/spec/unit/resource_definition_spec.rb +119 -0
  933. data/spec/unit/resource_platform_map_spec.rb +164 -0
  934. data/spec/unit/resource_reporter_spec.rb +591 -0
  935. data/spec/unit/resource_spec.rb +721 -0
  936. data/spec/unit/rest/auth_credentials_spec.rb +431 -0
  937. data/spec/unit/rest_spec.rb +644 -0
  938. data/spec/unit/role_spec.rb +275 -0
  939. data/spec/unit/run_context_spec.rb +64 -0
  940. data/spec/unit/run_list/run_list_expansion_spec.rb +129 -0
  941. data/spec/unit/run_list/run_list_item_spec.rb +117 -0
  942. data/spec/unit/run_list/versioned_recipe_list_spec.rb +123 -0
  943. data/spec/unit/run_list_spec.rb +521 -0
  944. data/spec/unit/run_status_spec.rb +145 -0
  945. data/spec/unit/runner_spec.rb +303 -0
  946. data/spec/unit/scan_access_control_spec.rb +182 -0
  947. data/spec/unit/search/query_spec.rb +99 -0
  948. data/spec/unit/shef/model_wrapper_spec.rb +97 -0
  949. data/spec/unit/shef/shef_ext_spec.rb +153 -0
  950. data/spec/unit/shef/shef_session_spec.rb +154 -0
  951. data/spec/unit/shef_spec.rb +161 -0
  952. data/spec/unit/solr_query/query_transform_spec.rb +454 -0
  953. data/spec/unit/solr_query/solr_http_request_spec.rb +244 -0
  954. data/spec/unit/solr_query_spec.rb +203 -0
  955. data/spec/unit/util/file_edit_spec.rb +135 -0
  956. data/spec/unit/version_class_spec.rb +172 -0
  957. data/spec/unit/version_constraint_spec.rb +134 -0
  958. data/spec/unit/webui_user_spec.rb +238 -0
  959. data/tasks/rspec.rb +75 -0
  960. metadata +1548 -0
@@ -0,0 +1,320 @@
1
+ #
2
+ # Author:: Caleb Tennis (<caleb.tennis@gmail.com>)
3
+ # Copyright:: Copyright (c) 2008 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
+ require 'spec_helper'
19
+
20
+ describe Chef::Provider::Package::Portage, "load_current_resource" do
21
+ before(:each) do
22
+ @node = Chef::Node.new
23
+ @events = Chef::EventDispatch::Dispatcher.new
24
+ @run_context = Chef::RunContext.new(@node, {}, @events)
25
+ @new_resource = Chef::Resource::Package.new("dev-util/git")
26
+ @new_resource_without_category = Chef::Resource::Package.new("git")
27
+ @current_resource = Chef::Resource::Package.new("dev-util/git")
28
+
29
+ @provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
30
+ Chef::Resource::Package.stub!(:new).and_return(@current_resource)
31
+ end
32
+
33
+ describe "when determining the current state of the package" do
34
+
35
+ it "should create a current resource with the name of new_resource" do
36
+ ::Dir.stub!(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
37
+ Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
38
+ @provider.load_current_resource
39
+ end
40
+
41
+ it "should set the current resource package name to the new resource package name" do
42
+ ::Dir.stub!(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
43
+ @current_resource.should_receive(:package_name).with(@new_resource.package_name)
44
+ @provider.load_current_resource
45
+ end
46
+
47
+ it "should return a current resource with the correct version if the package is found" do
48
+ ::Dir.stub!(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
49
+ @provider.load_current_resource
50
+ @provider.current_resource.version.should == "1.0.0"
51
+ end
52
+
53
+ it "should return a current resource with the correct version if the package is found with revision" do
54
+ ::Dir.stub!(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0-r1"])
55
+ @provider.load_current_resource
56
+ @provider.current_resource.version.should == "1.0.0-r1"
57
+ end
58
+
59
+ it "should return a current resource with a nil version if the package is not found" do
60
+ ::Dir.stub!(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
61
+ @provider.load_current_resource
62
+ @provider.current_resource.version.should be_nil
63
+ end
64
+
65
+ it "should return a package name match from /var/db/pkg/* if a category isn't specified and a match is found" do
66
+ ::Dir.stub!(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
67
+ @provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
68
+ @provider.load_current_resource
69
+ @provider.current_resource.version.should == "1.0.0"
70
+ end
71
+
72
+ it "should return a current resource with a nil version if a category isn't specified and a name match from /var/db/pkg/* is not found" do
73
+ ::Dir.stub!(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
74
+ @provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
75
+ @provider.load_current_resource
76
+ @provider.current_resource.version.should be_nil
77
+ end
78
+
79
+ it "should throw an exception if a category isn't specified and multiple packages are found" do
80
+ ::Dir.stub!(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
81
+ @provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
82
+ lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
83
+ end
84
+
85
+ it "should return a current resource with a nil version if a category is specified and multiple packages are found" do
86
+ ::Dir.stub!(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
87
+ @provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
88
+ @provider.load_current_resource
89
+ @provider.current_resource.version.should be_nil
90
+ end
91
+
92
+ it "should return a current resource with a nil version if a category is not specified and multiple packages from the same category are found" do
93
+ ::Dir.stub!(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/dev-util/git-1.0.1"])
94
+ @provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
95
+ @provider.load_current_resource
96
+ @provider.current_resource.version.should be_nil
97
+ end
98
+ end
99
+
100
+ describe "once the state of the package is known" do
101
+
102
+ describe Chef::Provider::Package::Portage, "candidate_version" do
103
+ it "should return the candidate_version variable if already set" do
104
+ @provider.candidate_version = "1.0.0"
105
+ @provider.should_not_receive(:popen4)
106
+ @provider.candidate_version
107
+ end
108
+
109
+ it "should throw an exception if the exitstatus is not 0" do
110
+ @status = mock("Status", :exitstatus => 1)
111
+ @provider.stub!(:popen4).and_return(@status)
112
+ lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
113
+ end
114
+
115
+ it "should find the candidate_version if a category is specifed and there are no duplicates" do
116
+ output = <<EOF
117
+ Searching...
118
+ [ Results for search key : git ]
119
+ [ Applications found : 14 ]
120
+
121
+ * app-misc/digitemp [ Masked ]
122
+ Latest version available: 3.5.0
123
+ Latest version installed: [ Not Installed ]
124
+ Size of files: 261 kB
125
+ Homepage: http://www.digitemp.com/ http://www.ibutton.com/
126
+ Description: Temperature logging and reporting using Dallas Semiconductor's iButtons and 1-Wire protocol
127
+ License: GPL-2
128
+
129
+ * dev-util/git
130
+ Latest version available: 1.6.0.6
131
+ Latest version installed: ignore
132
+ Size of files: 2,725 kB
133
+ Homepage: http://git.or.cz/
134
+ Description: GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team
135
+ License: GPL-2
136
+
137
+ * dev-util/gitosis [ Masked ]
138
+ Latest version available: 0.2_p20080825
139
+ Latest version installed: [ Not Installed ]
140
+ Size of files: 31 kB
141
+ Homepage: http://eagain.net/gitweb/?p=gitosis.git;a=summary
142
+ Description: gitosis -- software for hosting git repositories
143
+ License: GPL-2
144
+ EOF
145
+
146
+ @status = mock("Status", :exitstatus => 0)
147
+ @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
148
+ @provider.candidate_version.should == "1.6.0.6"
149
+ end
150
+
151
+ it "should find the candidate_version if a category is not specifed and there are no duplicates" do
152
+ output = <<EOF
153
+ Searching...
154
+ [ Results for search key : git ]
155
+ [ Applications found : 14 ]
156
+
157
+ * app-misc/digitemp [ Masked ]
158
+ Latest version available: 3.5.0
159
+ Latest version installed: [ Not Installed ]
160
+ Size of files: 261 kB
161
+ Homepage: http://www.digitemp.com/ http://www.ibutton.com/
162
+ Description: Temperature logging and reporting using Dallas Semiconductor's iButtons and 1-Wire protocol
163
+ License: GPL-2
164
+
165
+ * dev-util/git
166
+ Latest version available: 1.6.0.6
167
+ Latest version installed: ignore
168
+ Size of files: 2,725 kB
169
+ Homepage: http://git.or.cz/
170
+ Description: GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team
171
+ License: GPL-2
172
+
173
+ * dev-util/gitosis [ Masked ]
174
+ Latest version available: 0.2_p20080825
175
+ Latest version installed: [ Not Installed ]
176
+ Size of files: 31 kB
177
+ Homepage: http://eagain.net/gitweb/?p=gitosis.git;a=summary
178
+ Description: gitosis -- software for hosting git repositories
179
+ License: GPL-2
180
+ EOF
181
+
182
+ @status = mock("Status", :exitstatus => 0)
183
+ @provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
184
+ @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
185
+ @provider.candidate_version.should == "1.6.0.6"
186
+ end
187
+
188
+ it "should throw an exception if a category is not specified and there are duplicates" do
189
+ output = <<EOF
190
+ Searching...
191
+ [ Results for search key : git ]
192
+ [ Applications found : 14 ]
193
+
194
+ * app-misc/digitemp [ Masked ]
195
+ Latest version available: 3.5.0
196
+ Latest version installed: [ Not Installed ]
197
+ Size of files: 261 kB
198
+ Homepage: http://www.digitemp.com/ http://www.ibutton.com/
199
+ Description: Temperature logging and reporting using Dallas Semiconductor's iButtons and 1-Wire protocol
200
+ License: GPL-2
201
+
202
+ * app-misc/git
203
+ Latest version available: 4.3.20
204
+ Latest version installed: [ Not Installed ]
205
+ Size of files: 416 kB
206
+ Homepage: http://www.gnu.org/software/git/
207
+ Description: GNU Interactive Tools - increase speed and efficiency of most daily task
208
+ License: GPL-2
209
+
210
+ * dev-util/git
211
+ Latest version available: 1.6.0.6
212
+ Latest version installed: ignore
213
+ Size of files: 2,725 kB
214
+ Homepage: http://git.or.cz/
215
+ Description: GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team
216
+ License: GPL-2
217
+
218
+ * dev-util/gitosis [ Masked ]
219
+ Latest version available: 0.2_p20080825
220
+ Latest version installed: [ Not Installed ]
221
+ Size of files: 31 kB
222
+ Homepage: http://eagain.net/gitweb/?p=gitosis.git;a=summary
223
+ Description: gitosis -- software for hosting git repositories
224
+ License: GPL-2
225
+ EOF
226
+
227
+ @status = mock("Status", :exitstatus => 0)
228
+ @provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
229
+ @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
230
+ lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
231
+ end
232
+
233
+ it "should find the candidate_version if a category is specifed and there are category duplicates" do
234
+ output = <<EOF
235
+ Searching...
236
+ [ Results for search key : git ]
237
+ [ Applications found : 14 ]
238
+
239
+ * app-misc/digitemp [ Masked ]
240
+ Latest version available: 3.5.0
241
+ Latest version installed: [ Not Installed ]
242
+ Size of files: 261 kB
243
+ Homepage: http://www.digitemp.com/ http://www.ibutton.com/
244
+ Description: Temperature logging and reporting using Dallas Semiconductor's iButtons and 1-Wire protocol
245
+ License: GPL-2
246
+
247
+ * app-misc/git
248
+ Latest version available: 4.3.20
249
+ Latest version installed: [ Not Installed ]
250
+ Size of files: 416 kB
251
+ Homepage: http://www.gnu.org/software/git/
252
+ Description: GNU Interactive Tools - increase speed and efficiency of most daily task
253
+ License: GPL-2
254
+
255
+ * dev-util/git
256
+ Latest version available: 1.6.0.6
257
+ Latest version installed: ignore
258
+ Size of files: 2,725 kB
259
+ Homepage: http://git.or.cz/
260
+ Description: GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team
261
+ License: GPL-2
262
+
263
+ * dev-util/gitosis [ Masked ]
264
+ Latest version available: 0.2_p20080825
265
+ Latest version installed: [ Not Installed ]
266
+ Size of files: 31 kB
267
+ Homepage: http://eagain.net/gitweb/?p=gitosis.git;a=summary
268
+ Description: gitosis -- software for hosting git repositories
269
+ License: GPL-2
270
+ EOF
271
+
272
+ @status = mock("Status", :exitstatus => 0)
273
+ @provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
274
+ @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
275
+ @provider.candidate_version.should == "1.6.0.6"
276
+ end
277
+ end
278
+
279
+ describe Chef::Provider::Package::Portage, "install_package" do
280
+ it "should install a normally versioned package using portage" do
281
+ @provider.should_receive(:run_command_with_systems_locale).with({
282
+ :command => "emerge -g --color n --nospinner --quiet =dev-util/git-1.0.0"
283
+ })
284
+ @provider.install_package("dev-util/git", "1.0.0")
285
+ end
286
+
287
+ it "should install a tilde versioned package using portage" do
288
+ @provider.should_receive(:run_command_with_systems_locale).with({
289
+ :command => "emerge -g --color n --nospinner --quiet ~dev-util/git-1.0.0"
290
+ })
291
+ @provider.install_package("dev-util/git", "~1.0.0")
292
+ end
293
+
294
+ it "should add options to the emerge command when specified" do
295
+ @provider.should_receive(:run_command_with_systems_locale).with({
296
+ :command => "emerge -g --color n --nospinner --quiet --oneshot =dev-util/git-1.0.0"
297
+ })
298
+ @new_resource.stub!(:options).and_return("--oneshot")
299
+
300
+ @provider.install_package("dev-util/git", "1.0.0")
301
+ end
302
+ end
303
+
304
+ describe Chef::Provider::Package::Portage, "remove_package" do
305
+ it "should un-emerge the package with no version specified" do
306
+ @provider.should_receive(:run_command_with_systems_locale).with({
307
+ :command => "emerge --unmerge --color n --nospinner --quiet dev-util/git"
308
+ })
309
+ @provider.remove_package("dev-util/git", nil)
310
+ end
311
+
312
+ it "should un-emerge the package with a version specified" do
313
+ @provider.should_receive(:run_command_with_systems_locale).with({
314
+ :command => "emerge --unmerge --color n --nospinner --quiet =dev-util/git-1.0.0"
315
+ })
316
+ @provider.remove_package("dev-util/git", "1.0.0")
317
+ end
318
+ end
319
+ end
320
+ end
@@ -0,0 +1,152 @@
1
+ #
2
+ # Author:: Joshua Timberman (<joshua@opscode.com>)
3
+ # Author:: Daniel DeLeo (<dan@opscode.com>)
4
+ # Copyright:: Copyright (c) 2008, 2010 Opscode, Inc.
5
+ # License:: Apache License, Version 2.0
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+ require 'spec_helper'
20
+
21
+ describe Chef::Provider::Package::Rpm do
22
+ before(:each) do
23
+ @node = Chef::Node.new
24
+ @events = Chef::EventDispatch::Dispatcher.new
25
+ @run_context = Chef::RunContext.new(@node, {}, @events)
26
+
27
+ @new_resource = Chef::Resource::Package.new("emacs")
28
+ @new_resource.source "/tmp/emacs-21.4-20.el5.i386.rpm"
29
+
30
+ @provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
31
+
32
+ @status = mock("Status", :exitstatus => 0)
33
+ ::File.stub!(:exists?).and_return(true)
34
+ end
35
+
36
+ describe "when determining the current state of the package" do
37
+
38
+ it "should create a current resource with the name of new_resource" do
39
+ @provider.stub!(:popen4).and_return(@status)
40
+ @provider.load_current_resource
41
+ @provider.current_resource.name.should == "emacs"
42
+ end
43
+
44
+ it "should set the current reource package name to the new resource package name" do
45
+ @provider.stub!(:popen4).and_return(@status)
46
+ @provider.load_current_resource
47
+ @provider.current_resource.package_name.should == 'emacs'
48
+ end
49
+
50
+ it "should raise an exception if a source is supplied but not found" do
51
+ ::File.stub!(:exists?).and_return(false)
52
+ lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
53
+ end
54
+
55
+ it "should get the source package version from rpm if provided" do
56
+ @stdout = StringIO.new("emacs 21.4-20.el5")
57
+ @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/emacs-21.4-20.el5.i386.rpm").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
58
+ @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' emacs").and_return(@status)
59
+ @provider.load_current_resource
60
+ @provider.current_resource.package_name.should == "emacs"
61
+ @provider.new_resource.version.should == "21.4-20.el5"
62
+ end
63
+
64
+ it "should return the current version installed if found by rpm" do
65
+ @stdout = StringIO.new("emacs 21.4-20.el5")
66
+ @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/emacs-21.4-20.el5.i386.rpm").and_return(@status)
67
+ @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' emacs").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
68
+ @provider.load_current_resource
69
+ @provider.current_resource.version.should == "21.4-20.el5"
70
+ end
71
+
72
+ it "should raise an exception if the source is not set but we are installing" do
73
+ new_resource = Chef::Resource::Package.new("emacs")
74
+ provider = Chef::Provider::Package::Rpm.new(new_resource, @run_context)
75
+ lambda { provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
76
+ end
77
+
78
+ it "should raise an exception if rpm fails to run" do
79
+ status = mock("Status", :exitstatus => -1)
80
+ @provider.stub!(:popen4).and_return(status)
81
+ lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
82
+ end
83
+ end
84
+
85
+ describe "after the current resource is loaded" do
86
+ before do
87
+ @current_resource = Chef::Resource::Package.new("emacs")
88
+ @provider.current_resource = @current_resource
89
+ end
90
+
91
+ describe "when installing or upgrading" do
92
+ it "should run rpm -i with the package source to install" do
93
+ @provider.should_receive(:run_command_with_systems_locale).with({
94
+ :command => "rpm -i /tmp/emacs-21.4-20.el5.i386.rpm"
95
+ })
96
+ @provider.install_package("emacs", "21.4-20.el5")
97
+ end
98
+
99
+ it "should run rpm -U with the package source to upgrade" do
100
+ @current_resource.version("21.4-19.el5")
101
+ @provider.should_receive(:run_command_with_systems_locale).with({
102
+ :command => "rpm -U /tmp/emacs-21.4-20.el5.i386.rpm"
103
+ })
104
+ @provider.upgrade_package("emacs", "21.4-20.el5")
105
+ end
106
+
107
+ it "should install from a path when the package is a path and the source is nil" do
108
+ @new_resource = Chef::Resource::Package.new("/tmp/emacs-21.4-20.el5.i386.rpm")
109
+ @provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
110
+ @new_resource.source.should == "/tmp/emacs-21.4-20.el5.i386.rpm"
111
+ @current_resource = Chef::Resource::Package.new("emacs")
112
+ @provider.current_resource = @current_resource
113
+ @provider.should_receive(:run_command_with_systems_locale).with({
114
+ :command => "rpm -i /tmp/emacs-21.4-20.el5.i386.rpm"
115
+ })
116
+ @provider.install_package("/tmp/emacs-21.4-20.el5.i386.rpm", "21.4-20.el5")
117
+ end
118
+
119
+ it "should uprgrade from a path when the package is a path and the source is nil" do
120
+ @new_resource = Chef::Resource::Package.new("/tmp/emacs-21.4-20.el5.i386.rpm")
121
+ @provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
122
+ @new_resource.source.should == "/tmp/emacs-21.4-20.el5.i386.rpm"
123
+ @current_resource = Chef::Resource::Package.new("emacs")
124
+ @current_resource.version("21.4-19.el5")
125
+ @provider.current_resource = @current_resource
126
+ @provider.should_receive(:run_command_with_systems_locale).with({
127
+ :command => "rpm -U /tmp/emacs-21.4-20.el5.i386.rpm"
128
+ })
129
+ @provider.upgrade_package("/tmp/emacs-21.4-20.el5.i386.rpm", "21.4-20.el5")
130
+ end
131
+
132
+ it "installs with custom options specified in the resource" do
133
+ @provider.candidate_version = '11'
134
+ @new_resource.options("--dbpath /var/lib/rpm")
135
+ @provider.should_receive(:run_command_with_systems_locale).with({
136
+ :command => "rpm --dbpath /var/lib/rpm -i /tmp/emacs-21.4-20.el5.i386.rpm"
137
+ })
138
+ @provider.install_package(@new_resource.name, @provider.candidate_version)
139
+ end
140
+ end
141
+
142
+ describe "when removing the package" do
143
+ it "should run rpm -e to remove the package" do
144
+ @provider.should_receive(:run_command_with_systems_locale).with({
145
+ :command => "rpm -e emacs-21.4-20.el5"
146
+ })
147
+ @provider.remove_package("emacs", "21.4-20.el5")
148
+ end
149
+ end
150
+ end
151
+ end
152
+