tylerrick-chef 0.10.8

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 (450) hide show
  1. data/LICENSE +201 -0
  2. data/README.rdoc +171 -0
  3. data/bin/chef-client +26 -0
  4. data/bin/chef-solo +25 -0
  5. data/bin/knife +26 -0
  6. data/bin/shef +34 -0
  7. data/distro/README +2 -0
  8. data/distro/arch/etc/conf.d/chef-client.conf +5 -0
  9. data/distro/arch/etc/conf.d/chef-expander.conf +8 -0
  10. data/distro/arch/etc/conf.d/chef-server-webui.conf +10 -0
  11. data/distro/arch/etc/conf.d/chef-server.conf +10 -0
  12. data/distro/arch/etc/conf.d/chef-solr.conf +8 -0
  13. data/distro/arch/etc/rc.d/chef-client +76 -0
  14. data/distro/arch/etc/rc.d/chef-expander +78 -0
  15. data/distro/arch/etc/rc.d/chef-server +78 -0
  16. data/distro/arch/etc/rc.d/chef-server-webui +78 -0
  17. data/distro/arch/etc/rc.d/chef-solr +78 -0
  18. data/distro/common/html/chef-client.8.html +146 -0
  19. data/distro/common/html/chef-expander.8.html +164 -0
  20. data/distro/common/html/chef-expanderctl.8.html +146 -0
  21. data/distro/common/html/chef-server-webui.8.html +185 -0
  22. data/distro/common/html/chef-server.8.html +182 -0
  23. data/distro/common/html/chef-solo.8.html +191 -0
  24. data/distro/common/html/chef-solr.8.html +165 -0
  25. data/distro/common/html/knife-bootstrap.1.html +243 -0
  26. data/distro/common/html/knife-client.1.html +219 -0
  27. data/distro/common/html/knife-configure.1.html +170 -0
  28. data/distro/common/html/knife-cookbook-site.1.html +241 -0
  29. data/distro/common/html/knife-cookbook.1.html +384 -0
  30. data/distro/common/html/knife-data-bag.1.html +234 -0
  31. data/distro/common/html/knife-environment.1.html +267 -0
  32. data/distro/common/html/knife-exec.1.html +134 -0
  33. data/distro/common/html/knife-index.1.html +125 -0
  34. data/distro/common/html/knife-node.1.html +250 -0
  35. data/distro/common/html/knife-recipe.1.html +92 -0
  36. data/distro/common/html/knife-role.1.html +200 -0
  37. data/distro/common/html/knife-search.1.html +288 -0
  38. data/distro/common/html/knife-ssh.1.html +157 -0
  39. data/distro/common/html/knife-status.1.html +128 -0
  40. data/distro/common/html/knife-tag.1.html +137 -0
  41. data/distro/common/html/knife.1.html +321 -0
  42. data/distro/common/html/shef.1.html +283 -0
  43. data/distro/common/man/man1/knife-bootstrap.1 +197 -0
  44. data/distro/common/man/man1/knife-client.1 +99 -0
  45. data/distro/common/man/man1/knife-configure.1 +88 -0
  46. data/distro/common/man/man1/knife-cookbook-site.1 +145 -0
  47. data/distro/common/man/man1/knife-cookbook.1 +345 -0
  48. data/distro/common/man/man1/knife-data-bag.1 +130 -0
  49. data/distro/common/man/man1/knife-environment.1 +178 -0
  50. data/distro/common/man/man1/knife-exec.1 +46 -0
  51. data/distro/common/man/man1/knife-index.1 +29 -0
  52. data/distro/common/man/man1/knife-node.1 +134 -0
  53. data/distro/common/man/man1/knife-role.1 +88 -0
  54. data/distro/common/man/man1/knife-search.1 +280 -0
  55. data/distro/common/man/man1/knife-ssh.1 +83 -0
  56. data/distro/common/man/man1/knife-status.1 +29 -0
  57. data/distro/common/man/man1/knife-tag.1 +43 -0
  58. data/distro/common/man/man1/knife.1 +292 -0
  59. data/distro/common/man/man1/shef.1 +256 -0
  60. data/distro/common/man/man8/chef-client.8 +104 -0
  61. data/distro/common/man/man8/chef-expander.8 +97 -0
  62. data/distro/common/man/man8/chef-expanderctl.8 +62 -0
  63. data/distro/common/man/man8/chef-server-webui.8 +155 -0
  64. data/distro/common/man/man8/chef-server.8 +147 -0
  65. data/distro/common/man/man8/chef-solo.8 +158 -0
  66. data/distro/common/man/man8/chef-solr.8 +122 -0
  67. data/distro/common/markdown/README +3 -0
  68. data/distro/common/markdown/man1/knife-bootstrap.mkd +142 -0
  69. data/distro/common/markdown/man1/knife-client.mkd +103 -0
  70. data/distro/common/markdown/man1/knife-configure.mkd +70 -0
  71. data/distro/common/markdown/man1/knife-cookbook-site.mkd +123 -0
  72. data/distro/common/markdown/man1/knife-cookbook.mkd +263 -0
  73. data/distro/common/markdown/man1/knife-data-bag.mkd +117 -0
  74. data/distro/common/markdown/man1/knife-environment.mkd +151 -0
  75. data/distro/common/markdown/man1/knife-exec.mkd +37 -0
  76. data/distro/common/markdown/man1/knife-index.mkd +30 -0
  77. data/distro/common/markdown/man1/knife-node.mkd +130 -0
  78. data/distro/common/markdown/man1/knife-role.mkd +85 -0
  79. data/distro/common/markdown/man1/knife-search.mkd +180 -0
  80. data/distro/common/markdown/man1/knife-ssh.mkd +72 -0
  81. data/distro/common/markdown/man1/knife-status.mkd +36 -0
  82. data/distro/common/markdown/man1/knife-tag.mkd +39 -0
  83. data/distro/common/markdown/man1/knife.mkd +220 -0
  84. data/distro/common/markdown/man1/shef.mkd +189 -0
  85. data/distro/common/markdown/man8/chef-client.mkd +75 -0
  86. data/distro/common/markdown/man8/chef-expander.mkd +82 -0
  87. data/distro/common/markdown/man8/chef-expanderctl.mkd +58 -0
  88. data/distro/common/markdown/man8/chef-server-webui.mkd +121 -0
  89. data/distro/common/markdown/man8/chef-server.mkd +121 -0
  90. data/distro/common/markdown/man8/chef-solo.mkd +107 -0
  91. data/distro/common/markdown/man8/chef-solr.mkd +89 -0
  92. data/distro/debian/etc/default/chef-client +4 -0
  93. data/distro/debian/etc/default/chef-expander +8 -0
  94. data/distro/debian/etc/default/chef-server +9 -0
  95. data/distro/debian/etc/default/chef-server-webui +9 -0
  96. data/distro/debian/etc/default/chef-solr +8 -0
  97. data/distro/debian/etc/init.d/chef-client +185 -0
  98. data/distro/debian/etc/init.d/chef-expander +176 -0
  99. data/distro/debian/etc/init.d/chef-server +122 -0
  100. data/distro/debian/etc/init.d/chef-server-webui +123 -0
  101. data/distro/debian/etc/init.d/chef-solr +176 -0
  102. data/distro/debian/etc/init/chef-client.conf +17 -0
  103. data/distro/debian/etc/init/chef-expander.conf +17 -0
  104. data/distro/debian/etc/init/chef-server-webui.conf +17 -0
  105. data/distro/debian/etc/init/chef-server.conf +17 -0
  106. data/distro/debian/etc/init/chef-solr.conf +17 -0
  107. data/distro/redhat/etc/init.d/chef-client +110 -0
  108. data/distro/redhat/etc/init.d/chef-expander +104 -0
  109. data/distro/redhat/etc/init.d/chef-server +112 -0
  110. data/distro/redhat/etc/init.d/chef-server-webui +112 -0
  111. data/distro/redhat/etc/init.d/chef-solr +104 -0
  112. data/distro/redhat/etc/logrotate.d/chef-client +8 -0
  113. data/distro/redhat/etc/logrotate.d/chef-expander +8 -0
  114. data/distro/redhat/etc/logrotate.d/chef-server +8 -0
  115. data/distro/redhat/etc/logrotate.d/chef-server-webui +8 -0
  116. data/distro/redhat/etc/logrotate.d/chef-solr +8 -0
  117. data/distro/redhat/etc/sysconfig/chef-client +15 -0
  118. data/distro/redhat/etc/sysconfig/chef-expander +7 -0
  119. data/distro/redhat/etc/sysconfig/chef-server +14 -0
  120. data/distro/redhat/etc/sysconfig/chef-server-webui +14 -0
  121. data/distro/redhat/etc/sysconfig/chef-solr +8 -0
  122. data/lib/chef.rb +41 -0
  123. data/lib/chef/api_client.rb +271 -0
  124. data/lib/chef/application.rb +152 -0
  125. data/lib/chef/application/agent.rb +18 -0
  126. data/lib/chef/application/client.rb +285 -0
  127. data/lib/chef/application/knife.rb +188 -0
  128. data/lib/chef/application/solo.rb +218 -0
  129. data/lib/chef/applications.rb +4 -0
  130. data/lib/chef/certificate.rb +194 -0
  131. data/lib/chef/checksum.rb +167 -0
  132. data/lib/chef/checksum/storage.rb +18 -0
  133. data/lib/chef/checksum/storage/filesystem.rb +56 -0
  134. data/lib/chef/checksum_cache.rb +189 -0
  135. data/lib/chef/client.rb +366 -0
  136. data/lib/chef/config.rb +248 -0
  137. data/lib/chef/cookbook/chefignore.rb +66 -0
  138. data/lib/chef/cookbook/cookbook_collection.rb +45 -0
  139. data/lib/chef/cookbook/cookbook_version_loader.rb +173 -0
  140. data/lib/chef/cookbook/file_system_file_vendor.rb +56 -0
  141. data/lib/chef/cookbook/file_vendor.rb +48 -0
  142. data/lib/chef/cookbook/metadata.rb +629 -0
  143. data/lib/chef/cookbook/remote_file_vendor.rb +88 -0
  144. data/lib/chef/cookbook/syntax_check.rb +136 -0
  145. data/lib/chef/cookbook_loader.rb +121 -0
  146. data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
  147. data/lib/chef/cookbook_uploader.rb +154 -0
  148. data/lib/chef/cookbook_version.rb +1096 -0
  149. data/lib/chef/cookbook_version_selector.rb +168 -0
  150. data/lib/chef/couchdb.rb +246 -0
  151. data/lib/chef/daemon.rb +172 -0
  152. data/lib/chef/data_bag.rb +235 -0
  153. data/lib/chef/data_bag_item.rb +273 -0
  154. data/lib/chef/encrypted_data_bag_item.rb +139 -0
  155. data/lib/chef/environment.rb +455 -0
  156. data/lib/chef/exceptions.rb +154 -0
  157. data/lib/chef/file_access_control.rb +144 -0
  158. data/lib/chef/file_cache.rb +218 -0
  159. data/lib/chef/handler.rb +227 -0
  160. data/lib/chef/handler/error_report.rb +33 -0
  161. data/lib/chef/handler/json_file.rb +58 -0
  162. data/lib/chef/index_queue.rb +29 -0
  163. data/lib/chef/index_queue/amqp_client.rb +116 -0
  164. data/lib/chef/index_queue/consumer.rb +76 -0
  165. data/lib/chef/index_queue/indexable.rb +109 -0
  166. data/lib/chef/json_compat.rb +52 -0
  167. data/lib/chef/knife.rb +520 -0
  168. data/lib/chef/knife/bootstrap.rb +207 -0
  169. data/lib/chef/knife/bootstrap/archlinux-gems.erb +60 -0
  170. data/lib/chef/knife/bootstrap/centos5-gems.erb +56 -0
  171. data/lib/chef/knife/bootstrap/fedora13-gems.erb +43 -0
  172. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +49 -0
  173. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +50 -0
  174. data/lib/chef/knife/client_bulk_delete.rb +65 -0
  175. data/lib/chef/knife/client_create.rb +79 -0
  176. data/lib/chef/knife/client_delete.rb +46 -0
  177. data/lib/chef/knife/client_edit.rb +45 -0
  178. data/lib/chef/knife/client_list.rb +42 -0
  179. data/lib/chef/knife/client_reregister.rb +58 -0
  180. data/lib/chef/knife/client_show.rb +52 -0
  181. data/lib/chef/knife/configure.rb +149 -0
  182. data/lib/chef/knife/configure_client.rb +50 -0
  183. data/lib/chef/knife/cookbook_bulk_delete.rb +72 -0
  184. data/lib/chef/knife/cookbook_create.rb +274 -0
  185. data/lib/chef/knife/cookbook_delete.rb +151 -0
  186. data/lib/chef/knife/cookbook_download.rb +137 -0
  187. data/lib/chef/knife/cookbook_list.rb +47 -0
  188. data/lib/chef/knife/cookbook_metadata.rb +107 -0
  189. data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -0
  190. data/lib/chef/knife/cookbook_show.rb +102 -0
  191. data/lib/chef/knife/cookbook_site_download.rb +70 -0
  192. data/lib/chef/knife/cookbook_site_install.rb +148 -0
  193. data/lib/chef/knife/cookbook_site_list.rb +62 -0
  194. data/lib/chef/knife/cookbook_site_search.rb +51 -0
  195. data/lib/chef/knife/cookbook_site_share.rb +114 -0
  196. data/lib/chef/knife/cookbook_site_show.rb +57 -0
  197. data/lib/chef/knife/cookbook_site_unshare.rb +56 -0
  198. data/lib/chef/knife/cookbook_site_vendor.rb +46 -0
  199. data/lib/chef/knife/cookbook_test.rb +93 -0
  200. data/lib/chef/knife/cookbook_upload.rb +240 -0
  201. data/lib/chef/knife/core/bootstrap_context.rb +100 -0
  202. data/lib/chef/knife/core/cookbook_scm_repo.rb +148 -0
  203. data/lib/chef/knife/core/generic_presenter.rb +191 -0
  204. data/lib/chef/knife/core/node_editor.rb +127 -0
  205. data/lib/chef/knife/core/node_presenter.rb +136 -0
  206. data/lib/chef/knife/core/object_loader.rb +75 -0
  207. data/lib/chef/knife/core/subcommand_loader.rb +112 -0
  208. data/lib/chef/knife/core/text_formatter.rb +100 -0
  209. data/lib/chef/knife/core/ui.rb +216 -0
  210. data/lib/chef/knife/data_bag_create.rb +93 -0
  211. data/lib/chef/knife/data_bag_delete.rb +51 -0
  212. data/lib/chef/knife/data_bag_edit.rb +94 -0
  213. data/lib/chef/knife/data_bag_from_file.rb +87 -0
  214. data/lib/chef/knife/data_bag_list.rb +46 -0
  215. data/lib/chef/knife/data_bag_show.rb +81 -0
  216. data/lib/chef/knife/environment_create.rb +53 -0
  217. data/lib/chef/knife/environment_delete.rb +45 -0
  218. data/lib/chef/knife/environment_edit.rb +45 -0
  219. data/lib/chef/knife/environment_from_file.rb +50 -0
  220. data/lib/chef/knife/environment_list.rb +42 -0
  221. data/lib/chef/knife/environment_show.rb +46 -0
  222. data/lib/chef/knife/exec.rb +51 -0
  223. data/lib/chef/knife/help.rb +103 -0
  224. data/lib/chef/knife/help_topics.rb +4 -0
  225. data/lib/chef/knife/index_rebuild.rb +50 -0
  226. data/lib/chef/knife/node_bulk_delete.rb +80 -0
  227. data/lib/chef/knife/node_create.rb +50 -0
  228. data/lib/chef/knife/node_delete.rb +47 -0
  229. data/lib/chef/knife/node_edit.rb +72 -0
  230. data/lib/chef/knife/node_from_file.rb +50 -0
  231. data/lib/chef/knife/node_list.rb +46 -0
  232. data/lib/chef/knife/node_run_list_add.rb +67 -0
  233. data/lib/chef/knife/node_run_list_remove.rb +48 -0
  234. data/lib/chef/knife/node_show.rb +73 -0
  235. data/lib/chef/knife/recipe_list.rb +32 -0
  236. data/lib/chef/knife/role_bulk_delete.rb +70 -0
  237. data/lib/chef/knife/role_create.rb +55 -0
  238. data/lib/chef/knife/role_delete.rb +47 -0
  239. data/lib/chef/knife/role_edit.rb +48 -0
  240. data/lib/chef/knife/role_from_file.rb +56 -0
  241. data/lib/chef/knife/role_list.rb +43 -0
  242. data/lib/chef/knife/role_show.rb +54 -0
  243. data/lib/chef/knife/search.rb +141 -0
  244. data/lib/chef/knife/ssh.rb +367 -0
  245. data/lib/chef/knife/status.rb +104 -0
  246. data/lib/chef/knife/tag_create.rb +52 -0
  247. data/lib/chef/knife/tag_delete.rb +60 -0
  248. data/lib/chef/knife/tag_list.rb +47 -0
  249. data/lib/chef/log.rb +39 -0
  250. data/lib/chef/mash.rb +211 -0
  251. data/lib/chef/mixin/check_helper.rb +31 -0
  252. data/lib/chef/mixin/checksum.rb +32 -0
  253. data/lib/chef/mixin/command.rb +163 -0
  254. data/lib/chef/mixin/command/unix.rb +215 -0
  255. data/lib/chef/mixin/command/windows.rb +76 -0
  256. data/lib/chef/mixin/convert_to_class_name.rb +63 -0
  257. data/lib/chef/mixin/create_path.rb +57 -0
  258. data/lib/chef/mixin/deep_merge.rb +225 -0
  259. data/lib/chef/mixin/deprecation.rb +65 -0
  260. data/lib/chef/mixin/from_file.rb +50 -0
  261. data/lib/chef/mixin/get_source_from_package.rb +42 -0
  262. data/lib/chef/mixin/language.rb +163 -0
  263. data/lib/chef/mixin/language_include_attribute.rb +61 -0
  264. data/lib/chef/mixin/language_include_recipe.rb +52 -0
  265. data/lib/chef/mixin/params_validate.rb +225 -0
  266. data/lib/chef/mixin/recipe_definition_dsl_core.rb +78 -0
  267. data/lib/chef/mixin/shell_out.rb +41 -0
  268. data/lib/chef/mixin/template.rb +95 -0
  269. data/lib/chef/mixin/xml_escape.rb +140 -0
  270. data/lib/chef/mixins.rb +15 -0
  271. data/lib/chef/monkey_patches/dir.rb +36 -0
  272. data/lib/chef/monkey_patches/numeric.rb +15 -0
  273. data/lib/chef/monkey_patches/object.rb +9 -0
  274. data/lib/chef/monkey_patches/regexp.rb +34 -0
  275. data/lib/chef/monkey_patches/string.rb +49 -0
  276. data/lib/chef/monkey_patches/tempfile.rb +64 -0
  277. data/lib/chef/nil_argument.rb +3 -0
  278. data/lib/chef/node.rb +677 -0
  279. data/lib/chef/node/attribute.rb +487 -0
  280. data/lib/chef/openid_registration.rb +187 -0
  281. data/lib/chef/platform.rb +434 -0
  282. data/lib/chef/provider.rb +124 -0
  283. data/lib/chef/provider/breakpoint.rb +36 -0
  284. data/lib/chef/provider/cookbook_file.rb +100 -0
  285. data/lib/chef/provider/cron.rb +186 -0
  286. data/lib/chef/provider/cron/solaris.rb +195 -0
  287. data/lib/chef/provider/deploy.rb +418 -0
  288. data/lib/chef/provider/deploy/revision.rb +80 -0
  289. data/lib/chef/provider/deploy/timestamped.rb +33 -0
  290. data/lib/chef/provider/directory.rb +72 -0
  291. data/lib/chef/provider/env.rb +152 -0
  292. data/lib/chef/provider/env/windows.rb +75 -0
  293. data/lib/chef/provider/erl_call.rb +101 -0
  294. data/lib/chef/provider/execute.rb +65 -0
  295. data/lib/chef/provider/file.rb +226 -0
  296. data/lib/chef/provider/git.rb +243 -0
  297. data/lib/chef/provider/group.rb +133 -0
  298. data/lib/chef/provider/group/aix.rb +70 -0
  299. data/lib/chef/provider/group/dscl.rb +121 -0
  300. data/lib/chef/provider/group/gpasswd.rb +53 -0
  301. data/lib/chef/provider/group/groupadd.rb +91 -0
  302. data/lib/chef/provider/group/pw.rb +84 -0
  303. data/lib/chef/provider/group/suse.rb +53 -0
  304. data/lib/chef/provider/group/usermod.rb +57 -0
  305. data/lib/chef/provider/group/windows.rb +79 -0
  306. data/lib/chef/provider/http_request.rb +122 -0
  307. data/lib/chef/provider/ifconfig.rb +195 -0
  308. data/lib/chef/provider/link.rb +164 -0
  309. data/lib/chef/provider/log.rb +54 -0
  310. data/lib/chef/provider/mdadm.rb +91 -0
  311. data/lib/chef/provider/mount.rb +114 -0
  312. data/lib/chef/provider/mount/mount.rb +240 -0
  313. data/lib/chef/provider/mount/windows.rb +81 -0
  314. data/lib/chef/provider/ohai.rb +42 -0
  315. data/lib/chef/provider/package.rb +200 -0
  316. data/lib/chef/provider/package/apt.rb +145 -0
  317. data/lib/chef/provider/package/dpkg.rb +115 -0
  318. data/lib/chef/provider/package/easy_install.rb +136 -0
  319. data/lib/chef/provider/package/freebsd.rb +125 -0
  320. data/lib/chef/provider/package/macports.rb +105 -0
  321. data/lib/chef/provider/package/pacman.rb +101 -0
  322. data/lib/chef/provider/package/portage.rb +135 -0
  323. data/lib/chef/provider/package/rpm.rb +104 -0
  324. data/lib/chef/provider/package/rubygems.rb +465 -0
  325. data/lib/chef/provider/package/solaris.rb +130 -0
  326. data/lib/chef/provider/package/yum-dump.py +286 -0
  327. data/lib/chef/provider/package/yum.rb +1173 -0
  328. data/lib/chef/provider/package/zypper.rb +144 -0
  329. data/lib/chef/provider/remote_directory.rb +137 -0
  330. data/lib/chef/provider/remote_file.rb +118 -0
  331. data/lib/chef/provider/route.rb +193 -0
  332. data/lib/chef/provider/ruby_block.rb +34 -0
  333. data/lib/chef/provider/script.rb +55 -0
  334. data/lib/chef/provider/service.rb +122 -0
  335. data/lib/chef/provider/service/arch.rb +116 -0
  336. data/lib/chef/provider/service/debian.rb +130 -0
  337. data/lib/chef/provider/service/freebsd.rb +154 -0
  338. data/lib/chef/provider/service/gentoo.rb +53 -0
  339. data/lib/chef/provider/service/init.rb +71 -0
  340. data/lib/chef/provider/service/insserv.rb +52 -0
  341. data/lib/chef/provider/service/invokercd.rb +35 -0
  342. data/lib/chef/provider/service/redhat.rb +60 -0
  343. data/lib/chef/provider/service/simple.rb +120 -0
  344. data/lib/chef/provider/service/solaris.rb +85 -0
  345. data/lib/chef/provider/service/systemd.rb +102 -0
  346. data/lib/chef/provider/service/upstart.rb +198 -0
  347. data/lib/chef/provider/service/windows.rb +155 -0
  348. data/lib/chef/provider/subversion.rb +197 -0
  349. data/lib/chef/provider/template.rb +104 -0
  350. data/lib/chef/provider/user.rb +186 -0
  351. data/lib/chef/provider/user/dscl.rb +280 -0
  352. data/lib/chef/provider/user/pw.rb +113 -0
  353. data/lib/chef/provider/user/useradd.rb +137 -0
  354. data/lib/chef/provider/user/windows.rb +124 -0
  355. data/lib/chef/providers.rb +95 -0
  356. data/lib/chef/recipe.rb +129 -0
  357. data/lib/chef/resource.rb +609 -0
  358. data/lib/chef/resource/apt_package.rb +34 -0
  359. data/lib/chef/resource/bash.rb +33 -0
  360. data/lib/chef/resource/breakpoint.rb +35 -0
  361. data/lib/chef/resource/conditional.rb +90 -0
  362. data/lib/chef/resource/cookbook_file.rb +45 -0
  363. data/lib/chef/resource/cron.rb +188 -0
  364. data/lib/chef/resource/csh.rb +33 -0
  365. data/lib/chef/resource/deploy.rb +389 -0
  366. data/lib/chef/resource/deploy_revision.rb +40 -0
  367. data/lib/chef/resource/directory.rb +76 -0
  368. data/lib/chef/resource/dpkg_package.rb +34 -0
  369. data/lib/chef/resource/easy_install_package.rb +57 -0
  370. data/lib/chef/resource/env.rb +58 -0
  371. data/lib/chef/resource/erl_call.rb +83 -0
  372. data/lib/chef/resource/execute.rb +127 -0
  373. data/lib/chef/resource/file.rb +99 -0
  374. data/lib/chef/resource/freebsd_package.rb +35 -0
  375. data/lib/chef/resource/gem_package.rb +53 -0
  376. data/lib/chef/resource/git.rb +46 -0
  377. data/lib/chef/resource/group.rb +78 -0
  378. data/lib/chef/resource/http_request.rb +61 -0
  379. data/lib/chef/resource/ifconfig.rb +144 -0
  380. data/lib/chef/resource/link.rb +78 -0
  381. data/lib/chef/resource/log.rb +62 -0
  382. data/lib/chef/resource/macports_package.rb +29 -0
  383. data/lib/chef/resource/mdadm.rb +82 -0
  384. data/lib/chef/resource/mount.rb +134 -0
  385. data/lib/chef/resource/ohai.rb +40 -0
  386. data/lib/chef/resource/package.rb +80 -0
  387. data/lib/chef/resource/pacman_package.rb +33 -0
  388. data/lib/chef/resource/perl.rb +33 -0
  389. data/lib/chef/resource/portage_package.rb +33 -0
  390. data/lib/chef/resource/python.rb +33 -0
  391. data/lib/chef/resource/remote_directory.rb +109 -0
  392. data/lib/chef/resource/remote_file.rb +83 -0
  393. data/lib/chef/resource/route.rb +135 -0
  394. data/lib/chef/resource/rpm_package.rb +34 -0
  395. data/lib/chef/resource/ruby.rb +33 -0
  396. data/lib/chef/resource/ruby_block.rb +40 -0
  397. data/lib/chef/resource/scm.rb +147 -0
  398. data/lib/chef/resource/script.rb +60 -0
  399. data/lib/chef/resource/service.rb +151 -0
  400. data/lib/chef/resource/solaris_package.rb +36 -0
  401. data/lib/chef/resource/subversion.rb +36 -0
  402. data/lib/chef/resource/template.rb +69 -0
  403. data/lib/chef/resource/timestamped_deploy.rb +31 -0
  404. data/lib/chef/resource/user.rb +130 -0
  405. data/lib/chef/resource/yum_package.rb +63 -0
  406. data/lib/chef/resource_collection.rb +217 -0
  407. data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
  408. data/lib/chef/resource_definition.rb +67 -0
  409. data/lib/chef/resource_definition_list.rb +38 -0
  410. data/lib/chef/resources.rb +64 -0
  411. data/lib/chef/rest.rb +400 -0
  412. data/lib/chef/rest/auth_credentials.rb +71 -0
  413. data/lib/chef/rest/cookie_jar.rb +31 -0
  414. data/lib/chef/rest/rest_request.rb +213 -0
  415. data/lib/chef/role.rb +343 -0
  416. data/lib/chef/run_context.rb +126 -0
  417. data/lib/chef/run_list.rb +165 -0
  418. data/lib/chef/run_list/run_list_expansion.rb +193 -0
  419. data/lib/chef/run_list/run_list_item.rb +92 -0
  420. data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
  421. data/lib/chef/run_status.rb +121 -0
  422. data/lib/chef/runner.rb +105 -0
  423. data/lib/chef/sandbox.rb +153 -0
  424. data/lib/chef/search/query.rb +65 -0
  425. data/lib/chef/shef.rb +327 -0
  426. data/lib/chef/shef/ext.rb +569 -0
  427. data/lib/chef/shef/model_wrapper.rb +120 -0
  428. data/lib/chef/shef/shef_rest.rb +28 -0
  429. data/lib/chef/shef/shef_session.rb +285 -0
  430. data/lib/chef/shell_out.rb +249 -0
  431. data/lib/chef/shell_out/unix.rb +223 -0
  432. data/lib/chef/shell_out/windows.rb +588 -0
  433. data/lib/chef/solr_query.rb +187 -0
  434. data/lib/chef/solr_query/lucene.treetop +150 -0
  435. data/lib/chef/solr_query/lucene_nodes.rb +285 -0
  436. data/lib/chef/solr_query/query_transform.rb +65 -0
  437. data/lib/chef/solr_query/solr_http_request.rb +132 -0
  438. data/lib/chef/streaming_cookbook_uploader.rb +201 -0
  439. data/lib/chef/tasks/chef_repo.rake +334 -0
  440. data/lib/chef/util/file_edit.rb +122 -0
  441. data/lib/chef/util/windows.rb +56 -0
  442. data/lib/chef/util/windows/net_group.rb +101 -0
  443. data/lib/chef/util/windows/net_use.rb +121 -0
  444. data/lib/chef/util/windows/net_user.rb +198 -0
  445. data/lib/chef/util/windows/volume.rb +59 -0
  446. data/lib/chef/version.rb +23 -0
  447. data/lib/chef/version_class.rb +70 -0
  448. data/lib/chef/version_constraint.rb +116 -0
  449. data/lib/chef/webui_user.rb +231 -0
  450. metadata +764 -0
@@ -0,0 +1,248 @@
1
+ #
2
+ # Author:: Adam Jacob (<adam@opscode.com>)
3
+ # Author:: Christopher Brown (<cb@opscode.com>)
4
+ # Author:: AJ Christensen (<aj@opscode.com>)
5
+ # Copyright:: Copyright (c) 2008 Opscode, Inc.
6
+ # License:: Apache License, Version 2.0
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+
20
+ require 'chef/log'
21
+ require 'mixlib/config'
22
+
23
+ class Chef
24
+ class Config
25
+
26
+ extend Mixlib::Config
27
+
28
+ # Manages the chef secret session key
29
+ # === Returns
30
+ # <newkey>:: A new or retrieved session key
31
+ #
32
+ def self.manage_secret_key
33
+ newkey = nil
34
+ if Chef::FileCache.has_key?("chef_server_cookie_id")
35
+ newkey = Chef::FileCache.load("chef_server_cookie_id")
36
+ else
37
+ chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
38
+ newkey = ""
39
+ 40.times { |i| newkey << chars[rand(chars.size-1)] }
40
+ Chef::FileCache.store("chef_server_cookie_id", newkey)
41
+ end
42
+ newkey
43
+ end
44
+
45
+ def self.inspect
46
+ configuration.inspect
47
+ end
48
+
49
+ # Override the config dispatch to set the value of multiple server options simultaneously
50
+ #
51
+ # === Parameters
52
+ # url<String>:: String to be set for all of the chef-server-api URL's
53
+ #
54
+ config_attr_writer :chef_server_url do |url|
55
+ configure do |c|
56
+ [ :registration_url,
57
+ :template_url,
58
+ :remotefile_url,
59
+ :search_url,
60
+ :chef_server_url,
61
+ :role_url ].each do |u|
62
+ c[u] = url
63
+ end
64
+ end
65
+ url
66
+ end
67
+
68
+ # When you are using ActiveSupport, they monkey-patch 'daemonize' into Kernel.
69
+ # So while this is basically identical to what method_missing would do, we pull
70
+ # it up here and get a real method written so that things get dispatched
71
+ # properly.
72
+ config_attr_writer :daemonize do |v|
73
+ configure do |c|
74
+ c[:daemonize] = v
75
+ end
76
+ end
77
+
78
+ # Override the config dispatch to set the value of log_location configuration option
79
+ #
80
+ # === Parameters
81
+ # location<IO||String>:: Logging location as either an IO stream or string representing log file path
82
+ #
83
+ config_attr_writer :log_location do |location|
84
+ if location.respond_to? :sync=
85
+ location.sync = true
86
+ location
87
+ elsif location.respond_to? :to_str
88
+ f = File.new(location.to_str, "a")
89
+ f.sync = true
90
+ f
91
+ end
92
+ end
93
+
94
+ # Override the config dispatch to set the value of authorized_openid_providers when openid_providers (deprecated) is used
95
+ #
96
+ # === Parameters
97
+ # providers<Array>:: An array of openid providers that are authorized to login to the chef server
98
+ #
99
+ config_attr_writer :openid_providers do |providers|
100
+ configure { |c| c[:authorized_openid_providers] = providers }
101
+ providers
102
+ end
103
+
104
+ # Turn on "path sanity" by default. See also: http://wiki.opscode.com/display/chef/User+Environment+PATH+Sanity
105
+ enforce_path_sanity(true)
106
+
107
+ # Used when OpenID authentication is enabled in the Web UI
108
+ authorized_openid_identifiers nil
109
+ authorized_openid_providers nil
110
+ openid_cstore_couchdb false
111
+ openid_cstore_path "/var/chef/openid/cstore"
112
+
113
+ # The number of times the client should retry when registering with the server
114
+ client_registration_retries 5
115
+
116
+ # Where the cookbooks are located. Meaning is somewhat context dependent between
117
+ # knife, chef-client, and chef-solo.
118
+ cookbook_path [ "/var/chef/cookbooks", "/var/chef/site-cookbooks" ]
119
+
120
+ # Where files are stored temporarily during uploads
121
+ sandbox_path "/var/chef/sandboxes"
122
+
123
+ # Where cookbook files are stored on the server (by content checksum)
124
+ checksum_path "/var/chef/checksums"
125
+
126
+ # CouchDB database name to use
127
+ couchdb_database "chef"
128
+
129
+ couchdb_url "http://localhost:5984"
130
+
131
+ # Where chef's cache files should be stored
132
+ file_cache_path "/var/chef/cache"
133
+
134
+ # Where backups of chef-managed files should go
135
+ file_backup_path "/var/chef/backup"
136
+
137
+ ## Daemonization Settings ##
138
+ # What user should Chef run as?
139
+ user nil
140
+ # What group should the chef-server, -solr, -solr-indexer run as
141
+ group nil
142
+ umask 0022
143
+
144
+ http_retry_count 5
145
+ http_retry_delay 5
146
+ interval nil
147
+ json_attribs nil
148
+ log_level :info
149
+ log_location STDOUT
150
+ # toggle info level log items that can create a lot of output
151
+ verbose_logging true
152
+ node_name nil
153
+ node_path "/var/chef/node"
154
+
155
+ pid_file nil
156
+
157
+ chef_server_url "http://localhost:4000"
158
+ registration_url "http://localhost:4000"
159
+ template_url "http://localhost:4000"
160
+ role_url "http://localhost:4000"
161
+ remotefile_url "http://localhost:4000"
162
+ search_url "http://localhost:4000"
163
+
164
+ client_url "http://localhost:4042"
165
+
166
+ rest_timeout 300
167
+ run_command_stderr_timeout 120
168
+ run_command_stdout_timeout 120
169
+ solo false
170
+ splay nil
171
+
172
+ # Set these to enable SSL authentication / mutual-authentication
173
+ # with the server
174
+ ssl_client_cert nil
175
+ ssl_client_key nil
176
+ ssl_verify_mode :verify_none
177
+ ssl_ca_path nil
178
+ ssl_ca_file nil
179
+
180
+
181
+ # Where should chef-solo look for role files?
182
+ role_path "/var/chef/roles"
183
+
184
+ # Where should chef-solo download recipes from?
185
+ recipe_url nil
186
+
187
+ solr_url "http://localhost:8983/solr"
188
+ solr_jetty_path "/var/chef/solr-jetty"
189
+ solr_data_path "/var/chef/solr/data"
190
+ solr_home_path "/var/chef/solr"
191
+ solr_heap_size "256M"
192
+ solr_java_opts nil
193
+
194
+ # Parameters for connecting to RabbitMQ
195
+ amqp_host '0.0.0.0'
196
+ amqp_port '5672'
197
+ amqp_user 'chef'
198
+ amqp_pass 'testing'
199
+ amqp_vhost '/chef'
200
+ # Setting this to a UUID string also makes the queue durable
201
+ # (persist across rabbitmq restarts)
202
+ amqp_consumer_id "default"
203
+
204
+ client_key "/etc/chef/client.pem"
205
+ validation_key "/etc/chef/validation.pem"
206
+ validation_client_name "chef-validator"
207
+ web_ui_client_name "chef-webui"
208
+ web_ui_key "/etc/chef/webui.pem"
209
+ web_ui_admin_user_name "admin"
210
+ web_ui_admin_default_password "p@ssw0rd1"
211
+
212
+ # Server Signing CA
213
+ #
214
+ # In truth, these don't even have to change
215
+ signing_ca_cert "/var/chef/ca/cert.pem"
216
+ signing_ca_key "/var/chef/ca/key.pem"
217
+ signing_ca_user nil
218
+ signing_ca_group nil
219
+ signing_ca_country "US"
220
+ signing_ca_state "Washington"
221
+ signing_ca_location "Seattle"
222
+ signing_ca_org "Chef User"
223
+ signing_ca_domain "opensource.opscode.com"
224
+ signing_ca_email "opensource-cert@opscode.com"
225
+
226
+ # Report Handlers
227
+ report_handlers []
228
+
229
+ # Exception Handlers
230
+ exception_handlers []
231
+
232
+ # Start handlers
233
+ start_handlers []
234
+
235
+ # Checksum Cache
236
+ # Uses Moneta on the back-end
237
+ cache_type "BasicFile"
238
+ cache_options({ :path => "/var/chef/cache/checksums", :skip_expires => true })
239
+
240
+ # Arbitrary knife configuration data
241
+ knife Hash.new
242
+
243
+ # Those lists of regular expressions define what chef considers a
244
+ # valid user and group name
245
+ user_valid_regex [ /^([-a-zA-Z0-9_.]+)$/, /^\d+$/ ]
246
+ group_valid_regex [ /^([-a-zA-Z0-9_.\\ ]+)$/, /^\d+$/ ]
247
+ end
248
+ end
@@ -0,0 +1,66 @@
1
+ #--
2
+ # Author:: Daniel DeLeo (<dan@opscode.com>)
3
+ # Copyright:: Copyright (c) 2011 Opscode, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ class Chef
20
+ class Cookbook
21
+ class Chefignore
22
+
23
+ COMMENTS_AND_WHITESPACE = /^\w*(?:#.*)?$/
24
+
25
+ attr_reader :ignores
26
+
27
+ def initialize(ignore_file_or_repo)
28
+ @ignore_file = find_ignore_file(ignore_file_or_repo)
29
+ @ignores = parse_ignore_file
30
+ end
31
+
32
+ def remove_ignores_from(file_list)
33
+ Array(file_list).inject([]) do |unignored, file|
34
+ ignored?(file) ? unignored : unignored << file
35
+ end
36
+ end
37
+
38
+ def ignored?(file_name)
39
+ @ignores.any? {|glob| File.fnmatch?(glob, file_name)}
40
+ end
41
+
42
+ private
43
+
44
+ def parse_ignore_file
45
+ ignore_globs = []
46
+ if File.exist?(@ignore_file) && File.readable?(@ignore_file)
47
+ File.foreach(@ignore_file) do |line|
48
+ ignore_globs << line.strip unless line =~ COMMENTS_AND_WHITESPACE
49
+ end
50
+ else
51
+ Chef::Log.debug("No chefignore file found at #@ignore_file no files will be ignored")
52
+ end
53
+ ignore_globs
54
+ end
55
+
56
+ def find_ignore_file(path)
57
+ if File.basename(path) =~ /chefignore/
58
+ path
59
+ else
60
+ File.join(path, 'chefignore')
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+
@@ -0,0 +1,45 @@
1
+ #--
2
+ # Author:: Tim Hinderliter (<tim@opscode.com>)
3
+ # Author:: Christopher Walters (<cw@opscode.com>)
4
+ # Copyright:: Copyright (c) 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
+
20
+ require 'chef/mash'
21
+
22
+ class Chef
23
+ # == Chef::CookbookCollection
24
+ # This class is the consistent interface for a node to obtain its
25
+ # cookbooks by name.
26
+ #
27
+ # This class is basically a glorified Hash, but since there are
28
+ # several ways this cookbook information is collected,
29
+ # (e.g. CookbookLoader for solo, hash of auto-vivified Cookbook
30
+ # objects for lazily-loaded remote cookbooks), it gets transformed
31
+ # into this.
32
+ class CookbookCollection < Mash
33
+
34
+ # The input is a mapping of cookbook name to CookbookVersion objects. We
35
+ # simply extract them
36
+ def initialize(cookbook_versions={})
37
+ super() do |hash, key|
38
+ raise Chef::Exceptions::CookbookNotFound, "Cookbook #{key} not found. " <<
39
+ "If you're loading #{key} from another cookbook, make sure you configure the dependency in your metadata"
40
+ end
41
+ cookbook_versions.each{ |cookbook_name, cookbook_version| self[cookbook_name] = cookbook_version }
42
+ end
43
+
44
+ end
45
+ end
@@ -0,0 +1,173 @@
1
+
2
+ require 'chef/config'
3
+ require 'chef/cookbook_version'
4
+ require 'chef/cookbook/chefignore'
5
+ require 'chef/cookbook/metadata'
6
+
7
+ class Chef
8
+ class Cookbook
9
+ class CookbookVersionLoader
10
+
11
+ FILETYPES_SUBJECT_TO_IGNORE = [ :attribute_filenames,
12
+ :definition_filenames,
13
+ :recipe_filenames,
14
+ :template_filenames,
15
+ :file_filenames,
16
+ :library_filenames,
17
+ :resource_filenames,
18
+ :provider_filenames]
19
+
20
+
21
+ attr_reader :cookbook_name
22
+ attr_reader :cookbook_settings
23
+ attr_reader :metadata_filenames
24
+
25
+ def initialize(path, chefignore=nil)
26
+ @cookbook_path = File.expand_path( path )
27
+ @cookbook_name = File.basename( path )
28
+ @chefignore = chefignore
29
+ @metadata = Hash.new
30
+ @relative_path = /#{Regexp.escape(@cookbook_path)}\/(.+)$/
31
+ @cookbook_settings = {
32
+ :attribute_filenames => {},
33
+ :definition_filenames => {},
34
+ :recipe_filenames => {},
35
+ :template_filenames => {},
36
+ :file_filenames => {},
37
+ :library_filenames => {},
38
+ :resource_filenames => {},
39
+ :provider_filenames => {},
40
+ :root_filenames => {}
41
+ }
42
+
43
+ @metadata_filenames = []
44
+ end
45
+
46
+ def load_cookbooks
47
+ load_as(:attribute_filenames, 'attributes', '*.rb')
48
+ load_as(:definition_filenames, 'definitions', '*.rb')
49
+ load_as(:recipe_filenames, 'recipes', '*.rb')
50
+ load_as(:library_filenames, 'libraries', '*.rb')
51
+ load_recursively_as(:template_filenames, "templates", "*")
52
+ load_recursively_as(:file_filenames, "files", "*")
53
+ load_recursively_as(:resource_filenames, "resources", "*.rb")
54
+ load_recursively_as(:provider_filenames, "providers", "*.rb")
55
+ load_root_files
56
+
57
+ remove_ignored_files
58
+
59
+ if File.exists?(File.join(@cookbook_path, "metadata.rb"))
60
+ @metadata_filenames << File.join(@cookbook_path, "metadata.rb")
61
+ elsif File.exists?(File.join(@cookbook_path, "metadata.json"))
62
+ @metadata_filenames << File.join(@cookbook_path, "metadata.json")
63
+ end
64
+
65
+ if empty?
66
+ Chef::Log.warn "found a directory #{cookbook_name} in the cookbook path, but it contains no cookbook files. skipping."
67
+ end
68
+ @cookbook_settings
69
+ end
70
+
71
+ def cookbook_version
72
+ return nil if empty?
73
+
74
+ Chef::CookbookVersion.new(@cookbook_name.to_sym).tap do |c|
75
+ c.root_dir = @cookbook_path
76
+ c.attribute_filenames = cookbook_settings[:attribute_filenames].values
77
+ c.definition_filenames = cookbook_settings[:definition_filenames].values
78
+ c.recipe_filenames = cookbook_settings[:recipe_filenames].values
79
+ c.template_filenames = cookbook_settings[:template_filenames].values
80
+ c.file_filenames = cookbook_settings[:file_filenames].values
81
+ c.library_filenames = cookbook_settings[:library_filenames].values
82
+ c.resource_filenames = cookbook_settings[:resource_filenames].values
83
+ c.provider_filenames = cookbook_settings[:provider_filenames].values
84
+ c.root_filenames = cookbook_settings[:root_filenames].values
85
+ c.metadata_filenames = @metadata_filenames
86
+ c.metadata = metadata(c)
87
+ end
88
+ end
89
+
90
+ # Generates the Cookbook::Metadata object
91
+ def metadata(cookbook_version)
92
+ @metadata = Chef::Cookbook::Metadata.new(cookbook_version)
93
+ @metadata_filenames.each do |metadata_file|
94
+ case metadata_file
95
+ when /\.rb$/
96
+ apply_ruby_metadata(metadata_file)
97
+ when /\.json$/
98
+ apply_json_metadata(metadata_file)
99
+ else
100
+ raise RuntimeError, "Invalid metadata file: #{metadata_file} for cookbook: #{cookbook_version}"
101
+ end
102
+ end
103
+ @metadata
104
+ end
105
+
106
+ def empty?
107
+ cookbook_settings.inject(true) do |all_empty, files|
108
+ all_empty && files.last.empty?
109
+ end
110
+ end
111
+
112
+ def merge!(other_cookbook_loader)
113
+ other_cookbook_settings = other_cookbook_loader.cookbook_settings
114
+ @cookbook_settings.each do |file_type, file_list|
115
+ file_list.merge!(other_cookbook_settings[file_type])
116
+ end
117
+ @metadata_filenames.concat(other_cookbook_loader.metadata_filenames)
118
+ end
119
+
120
+ def chefignore
121
+ @chefignore ||= Chefignore.new(File.basename(@cookbook_path))
122
+ end
123
+
124
+ def load_root_files
125
+ Dir.glob(File.join(@cookbook_path, '*'), File::FNM_DOTMATCH).each do |file|
126
+ next if File.directory?(file)
127
+ @cookbook_settings[:root_filenames][file[@relative_path, 1]] = file
128
+ end
129
+ end
130
+
131
+ def load_recursively_as(category, category_dir, glob)
132
+ file_spec = File.join(@cookbook_path, category_dir, '**', glob)
133
+ Dir.glob(file_spec, File::FNM_DOTMATCH).each do |file|
134
+ next if File.directory?(file)
135
+ @cookbook_settings[category][file[@relative_path, 1]] = file
136
+ end
137
+ end
138
+
139
+ def load_as(category, *path_glob)
140
+ Dir[File.join(@cookbook_path, *path_glob)].each do |file|
141
+ @cookbook_settings[category][file[@relative_path, 1]] = file
142
+ end
143
+ end
144
+
145
+ def remove_ignored_files
146
+ @cookbook_settings.each_value do |file_list|
147
+ file_list.reject! do |relative_path, full_path|
148
+ chefignore.ignored?(relative_path)
149
+ end
150
+ end
151
+ end
152
+
153
+ def apply_ruby_metadata(file)
154
+ begin
155
+ @metadata.from_file(file)
156
+ rescue JSON::ParserError
157
+ Chef::Log.error("Error evaluating metadata.rb for #@cookbook_name in " + file)
158
+ raise
159
+ end
160
+ end
161
+
162
+ def apply_json_metadata(file)
163
+ begin
164
+ @metadata.from_json(IO.read(file))
165
+ rescue JSON::ParserError
166
+ Chef::Log.error("Couldn't parse cookbook metadata JSON for #@cookbook_name in " + file)
167
+ raise
168
+ end
169
+ end
170
+
171
+ end
172
+ end
173
+ end