TrueCar-chef 0.10.0.beta.3

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 (372) 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-server-webui.conf +10 -0
  10. data/distro/arch/etc/conf.d/chef-server.conf +10 -0
  11. data/distro/arch/etc/conf.d/chef-solr-indexer.conf +8 -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-server +78 -0
  15. data/distro/arch/etc/rc.d/chef-server-webui +78 -0
  16. data/distro/arch/etc/rc.d/chef-solr +78 -0
  17. data/distro/arch/etc/rc.d/chef-solr-indexer +78 -0
  18. data/distro/common/man/man1/chef-indexer.1 +42 -0
  19. data/distro/common/man/man1/chef-server-webui.1 +106 -0
  20. data/distro/common/man/man1/chef-server.1 +107 -0
  21. data/distro/common/man/man1/chef-solr-indexer.1 +55 -0
  22. data/distro/common/man/man1/chef-solr.1 +55 -0
  23. data/distro/common/man/man8/chef-client.8 +63 -0
  24. data/distro/common/man/man8/chef-solo.8 +57 -0
  25. data/distro/common/man/man8/chef-solr-rebuild.8 +37 -0
  26. data/distro/common/man/man8/knife.8 +1349 -0
  27. data/distro/common/man/man8/shef.8 +45 -0
  28. data/distro/common/markdown/README +3 -0
  29. data/distro/common/markdown/knife.mkd +865 -0
  30. data/distro/debian/etc/default/chef-client +4 -0
  31. data/distro/debian/etc/default/chef-server +9 -0
  32. data/distro/debian/etc/default/chef-server-webui +9 -0
  33. data/distro/debian/etc/default/chef-solr +8 -0
  34. data/distro/debian/etc/default/chef-solr-indexer +7 -0
  35. data/distro/debian/etc/init.d/chef-client +175 -0
  36. data/distro/debian/etc/init.d/chef-server +122 -0
  37. data/distro/debian/etc/init.d/chef-server-webui +123 -0
  38. data/distro/debian/etc/init.d/chef-solr +176 -0
  39. data/distro/debian/etc/init.d/chef-solr-indexer +176 -0
  40. data/distro/debian/etc/init/chef-client.conf +17 -0
  41. data/distro/debian/etc/init/chef-server-webui.conf +17 -0
  42. data/distro/debian/etc/init/chef-server.conf +17 -0
  43. data/distro/debian/etc/init/chef-solr-indexer.conf +17 -0
  44. data/distro/debian/etc/init/chef-solr.conf +17 -0
  45. data/distro/redhat/etc/init.d/chef-client +106 -0
  46. data/distro/redhat/etc/init.d/chef-server +112 -0
  47. data/distro/redhat/etc/init.d/chef-server-webui +112 -0
  48. data/distro/redhat/etc/init.d/chef-solr +104 -0
  49. data/distro/redhat/etc/init.d/chef-solr-indexer +104 -0
  50. data/distro/redhat/etc/logrotate.d/chef-client +8 -0
  51. data/distro/redhat/etc/logrotate.d/chef-server +8 -0
  52. data/distro/redhat/etc/logrotate.d/chef-server-webui +8 -0
  53. data/distro/redhat/etc/logrotate.d/chef-solr +8 -0
  54. data/distro/redhat/etc/logrotate.d/chef-solr-indexer +8 -0
  55. data/distro/redhat/etc/sysconfig/chef-client +15 -0
  56. data/distro/redhat/etc/sysconfig/chef-server +14 -0
  57. data/distro/redhat/etc/sysconfig/chef-server-webui +14 -0
  58. data/distro/redhat/etc/sysconfig/chef-solr +8 -0
  59. data/distro/redhat/etc/sysconfig/chef-solr-indexer +7 -0
  60. data/lib/chef.rb +40 -0
  61. data/lib/chef/api_client.rb +264 -0
  62. data/lib/chef/application.rb +137 -0
  63. data/lib/chef/application/agent.rb +18 -0
  64. data/lib/chef/application/client.rb +242 -0
  65. data/lib/chef/application/knife.rb +169 -0
  66. data/lib/chef/application/solo.rb +217 -0
  67. data/lib/chef/applications.rb +4 -0
  68. data/lib/chef/certificate.rb +194 -0
  69. data/lib/chef/checksum.rb +182 -0
  70. data/lib/chef/checksum_cache.rb +189 -0
  71. data/lib/chef/client.rb +362 -0
  72. data/lib/chef/config.rb +244 -0
  73. data/lib/chef/cookbook/chefignore.rb +66 -0
  74. data/lib/chef/cookbook/cookbook_collection.rb +45 -0
  75. data/lib/chef/cookbook/cookbook_version_loader.rb +151 -0
  76. data/lib/chef/cookbook/file_system_file_vendor.rb +56 -0
  77. data/lib/chef/cookbook/file_vendor.rb +48 -0
  78. data/lib/chef/cookbook/metadata.rb +592 -0
  79. data/lib/chef/cookbook/remote_file_vendor.rb +87 -0
  80. data/lib/chef/cookbook/syntax_check.rb +136 -0
  81. data/lib/chef/cookbook_loader.rb +103 -0
  82. data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
  83. data/lib/chef/cookbook_uploader.rb +125 -0
  84. data/lib/chef/cookbook_version.rb +979 -0
  85. data/lib/chef/cookbook_version_selector.rb +163 -0
  86. data/lib/chef/couchdb.rb +247 -0
  87. data/lib/chef/daemon.rb +172 -0
  88. data/lib/chef/data_bag.rb +223 -0
  89. data/lib/chef/data_bag_item.rb +267 -0
  90. data/lib/chef/encrypted_data_bag_item.rb +126 -0
  91. data/lib/chef/environment.rb +386 -0
  92. data/lib/chef/exceptions.rb +153 -0
  93. data/lib/chef/file_access_control.rb +140 -0
  94. data/lib/chef/file_cache.rb +218 -0
  95. data/lib/chef/handler.rb +206 -0
  96. data/lib/chef/handler/json_file.rb +58 -0
  97. data/lib/chef/index_queue.rb +29 -0
  98. data/lib/chef/index_queue/amqp_client.rb +116 -0
  99. data/lib/chef/index_queue/consumer.rb +76 -0
  100. data/lib/chef/index_queue/indexable.rb +109 -0
  101. data/lib/chef/json_compat.rb +52 -0
  102. data/lib/chef/knife.rb +424 -0
  103. data/lib/chef/knife/bootstrap.rb +185 -0
  104. data/lib/chef/knife/bootstrap/archlinux-gems.erb +47 -0
  105. data/lib/chef/knife/bootstrap/centos5-gems.erb +41 -0
  106. data/lib/chef/knife/bootstrap/client-install.vbs +80 -0
  107. data/lib/chef/knife/bootstrap/fedora13-gems.erb +38 -0
  108. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +32 -0
  109. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +46 -0
  110. data/lib/chef/knife/bootstrap/windows-gems.erb +34 -0
  111. data/lib/chef/knife/client_bulk_delete.rb +43 -0
  112. data/lib/chef/knife/client_create.rb +73 -0
  113. data/lib/chef/knife/client_delete.rb +48 -0
  114. data/lib/chef/knife/client_edit.rb +48 -0
  115. data/lib/chef/knife/client_list.rb +43 -0
  116. data/lib/chef/knife/client_reregister.rb +59 -0
  117. data/lib/chef/knife/client_show.rb +53 -0
  118. data/lib/chef/knife/configure.rb +136 -0
  119. data/lib/chef/knife/configure_client.rb +52 -0
  120. data/lib/chef/knife/cookbook_bulk_delete.rb +61 -0
  121. data/lib/chef/knife/cookbook_create.rb +274 -0
  122. data/lib/chef/knife/cookbook_delete.rb +149 -0
  123. data/lib/chef/knife/cookbook_download.rb +134 -0
  124. data/lib/chef/knife/cookbook_list.rb +50 -0
  125. data/lib/chef/knife/cookbook_metadata.rb +102 -0
  126. data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -0
  127. data/lib/chef/knife/cookbook_show.rb +101 -0
  128. data/lib/chef/knife/cookbook_site_download.rb +58 -0
  129. data/lib/chef/knife/cookbook_site_list.rb +56 -0
  130. data/lib/chef/knife/cookbook_site_search.rb +51 -0
  131. data/lib/chef/knife/cookbook_site_share.rb +114 -0
  132. data/lib/chef/knife/cookbook_site_show.rb +57 -0
  133. data/lib/chef/knife/cookbook_site_unshare.rb +56 -0
  134. data/lib/chef/knife/cookbook_site_vendor.rb +145 -0
  135. data/lib/chef/knife/cookbook_test.rb +82 -0
  136. data/lib/chef/knife/cookbook_upload.rb +146 -0
  137. data/lib/chef/knife/data_bag_create.rb +94 -0
  138. data/lib/chef/knife/data_bag_delete.rb +51 -0
  139. data/lib/chef/knife/data_bag_edit.rb +94 -0
  140. data/lib/chef/knife/data_bag_from_file.rb +85 -0
  141. data/lib/chef/knife/data_bag_list.rb +46 -0
  142. data/lib/chef/knife/data_bag_show.rb +81 -0
  143. data/lib/chef/knife/environment_create.rb +53 -0
  144. data/lib/chef/knife/environment_delete.rb +45 -0
  145. data/lib/chef/knife/environment_edit.rb +45 -0
  146. data/lib/chef/knife/environment_from_file.rb +39 -0
  147. data/lib/chef/knife/environment_list.rb +42 -0
  148. data/lib/chef/knife/environment_show.rb +46 -0
  149. data/lib/chef/knife/exec.rb +51 -0
  150. data/lib/chef/knife/index_rebuild.rb +50 -0
  151. data/lib/chef/knife/node_bulk_delete.rb +46 -0
  152. data/lib/chef/knife/node_create.rb +50 -0
  153. data/lib/chef/knife/node_delete.rb +47 -0
  154. data/lib/chef/knife/node_edit.rb +163 -0
  155. data/lib/chef/knife/node_from_file.rb +45 -0
  156. data/lib/chef/knife/node_list.rb +46 -0
  157. data/lib/chef/knife/node_run_list_add.rb +67 -0
  158. data/lib/chef/knife/node_run_list_remove.rb +48 -0
  159. data/lib/chef/knife/node_show.rb +62 -0
  160. data/lib/chef/knife/recipe_list.rb +33 -0
  161. data/lib/chef/knife/role_bulk_delete.rb +47 -0
  162. data/lib/chef/knife/role_create.rb +55 -0
  163. data/lib/chef/knife/role_delete.rb +47 -0
  164. data/lib/chef/knife/role_edit.rb +48 -0
  165. data/lib/chef/knife/role_from_file.rb +49 -0
  166. data/lib/chef/knife/role_list.rb +43 -0
  167. data/lib/chef/knife/role_show.rb +54 -0
  168. data/lib/chef/knife/search.rb +123 -0
  169. data/lib/chef/knife/ssh.rb +318 -0
  170. data/lib/chef/knife/status.rb +90 -0
  171. data/lib/chef/knife/subcommand_loader.rb +101 -0
  172. data/lib/chef/knife/tag_create.rb +31 -0
  173. data/lib/chef/knife/tag_delete.rb +31 -0
  174. data/lib/chef/knife/tag_list.rb +29 -0
  175. data/lib/chef/knife/ui.rb +227 -0
  176. data/lib/chef/knife/windows_bootstrap.rb +157 -0
  177. data/lib/chef/log.rb +39 -0
  178. data/lib/chef/mash.rb +211 -0
  179. data/lib/chef/mixin/check_helper.rb +31 -0
  180. data/lib/chef/mixin/checksum.rb +32 -0
  181. data/lib/chef/mixin/command.rb +221 -0
  182. data/lib/chef/mixin/command/unix.rb +215 -0
  183. data/lib/chef/mixin/command/windows.rb +76 -0
  184. data/lib/chef/mixin/convert_to_class_name.rb +63 -0
  185. data/lib/chef/mixin/create_path.rb +56 -0
  186. data/lib/chef/mixin/deep_merge.rb +225 -0
  187. data/lib/chef/mixin/deprecation.rb +65 -0
  188. data/lib/chef/mixin/from_file.rb +50 -0
  189. data/lib/chef/mixin/language.rb +165 -0
  190. data/lib/chef/mixin/language_include_attribute.rb +61 -0
  191. data/lib/chef/mixin/language_include_recipe.rb +52 -0
  192. data/lib/chef/mixin/params_validate.rb +225 -0
  193. data/lib/chef/mixin/recipe_definition_dsl_core.rb +81 -0
  194. data/lib/chef/mixin/shell_out.rb +40 -0
  195. data/lib/chef/mixin/template.rb +95 -0
  196. data/lib/chef/mixin/xml_escape.rb +140 -0
  197. data/lib/chef/mixins.rb +15 -0
  198. data/lib/chef/monkey_patches/dir.rb +36 -0
  199. data/lib/chef/monkey_patches/numeric.rb +7 -0
  200. data/lib/chef/monkey_patches/regexp.rb +34 -0
  201. data/lib/chef/monkey_patches/string.rb +28 -0
  202. data/lib/chef/monkey_patches/tempfile.rb +64 -0
  203. data/lib/chef/nil_argument.rb +3 -0
  204. data/lib/chef/node.rb +661 -0
  205. data/lib/chef/node/attribute.rb +487 -0
  206. data/lib/chef/openid_registration.rb +187 -0
  207. data/lib/chef/platform.rb +409 -0
  208. data/lib/chef/provider.rb +124 -0
  209. data/lib/chef/provider/breakpoint.rb +36 -0
  210. data/lib/chef/provider/cookbook_file.rb +101 -0
  211. data/lib/chef/provider/cron.rb +186 -0
  212. data/lib/chef/provider/cron/solaris.rb +195 -0
  213. data/lib/chef/provider/deploy.rb +320 -0
  214. data/lib/chef/provider/deploy/revision.rb +80 -0
  215. data/lib/chef/provider/deploy/timestamped.rb +33 -0
  216. data/lib/chef/provider/directory.rb +72 -0
  217. data/lib/chef/provider/env.rb +152 -0
  218. data/lib/chef/provider/env/windows.rb +75 -0
  219. data/lib/chef/provider/erl_call.rb +100 -0
  220. data/lib/chef/provider/execute.rb +60 -0
  221. data/lib/chef/provider/file.rb +222 -0
  222. data/lib/chef/provider/git.rb +221 -0
  223. data/lib/chef/provider/group.rb +133 -0
  224. data/lib/chef/provider/group/aix.rb +70 -0
  225. data/lib/chef/provider/group/dscl.rb +121 -0
  226. data/lib/chef/provider/group/gpasswd.rb +53 -0
  227. data/lib/chef/provider/group/groupadd.rb +81 -0
  228. data/lib/chef/provider/group/pw.rb +84 -0
  229. data/lib/chef/provider/group/usermod.rb +57 -0
  230. data/lib/chef/provider/group/windows.rb +79 -0
  231. data/lib/chef/provider/http_request.rb +122 -0
  232. data/lib/chef/provider/ifconfig.rb +132 -0
  233. data/lib/chef/provider/link.rb +161 -0
  234. data/lib/chef/provider/log.rb +54 -0
  235. data/lib/chef/provider/mdadm.rb +91 -0
  236. data/lib/chef/provider/mount.rb +117 -0
  237. data/lib/chef/provider/mount/mount.rb +232 -0
  238. data/lib/chef/provider/mount/windows.rb +80 -0
  239. data/lib/chef/provider/ohai.rb +41 -0
  240. data/lib/chef/provider/package.rb +160 -0
  241. data/lib/chef/provider/package/apt.rb +110 -0
  242. data/lib/chef/provider/package/dpkg.rb +112 -0
  243. data/lib/chef/provider/package/easy_install.rb +136 -0
  244. data/lib/chef/provider/package/freebsd.rb +123 -0
  245. data/lib/chef/provider/package/macports.rb +105 -0
  246. data/lib/chef/provider/package/pacman.rb +101 -0
  247. data/lib/chef/provider/package/portage.rb +135 -0
  248. data/lib/chef/provider/package/rpm.rb +101 -0
  249. data/lib/chef/provider/package/rubygems.rb +462 -0
  250. data/lib/chef/provider/package/solaris.rb +127 -0
  251. data/lib/chef/provider/package/yum-dump.py +128 -0
  252. data/lib/chef/provider/package/yum.rb +261 -0
  253. data/lib/chef/provider/package/zypper.rb +133 -0
  254. data/lib/chef/provider/remote_directory.rb +138 -0
  255. data/lib/chef/provider/remote_file.rb +119 -0
  256. data/lib/chef/provider/route.rb +195 -0
  257. data/lib/chef/provider/ruby_block.rb +33 -0
  258. data/lib/chef/provider/script.rb +55 -0
  259. data/lib/chef/provider/service.rb +128 -0
  260. data/lib/chef/provider/service/arch.rb +109 -0
  261. data/lib/chef/provider/service/debian.rb +130 -0
  262. data/lib/chef/provider/service/freebsd.rb +156 -0
  263. data/lib/chef/provider/service/gentoo.rb +54 -0
  264. data/lib/chef/provider/service/init.rb +71 -0
  265. data/lib/chef/provider/service/insserv.rb +52 -0
  266. data/lib/chef/provider/service/redhat.rb +60 -0
  267. data/lib/chef/provider/service/simple.rb +118 -0
  268. data/lib/chef/provider/service/solaris.rb +85 -0
  269. data/lib/chef/provider/service/upstart.rb +192 -0
  270. data/lib/chef/provider/service/windows.rb +146 -0
  271. data/lib/chef/provider/subversion.rb +194 -0
  272. data/lib/chef/provider/template.rb +105 -0
  273. data/lib/chef/provider/user.rb +187 -0
  274. data/lib/chef/provider/user/dscl.rb +280 -0
  275. data/lib/chef/provider/user/pw.rb +113 -0
  276. data/lib/chef/provider/user/useradd.rb +137 -0
  277. data/lib/chef/provider/user/windows.rb +124 -0
  278. data/lib/chef/providers.rb +93 -0
  279. data/lib/chef/recipe.rb +128 -0
  280. data/lib/chef/resource.rb +530 -0
  281. data/lib/chef/resource/apt_package.rb +34 -0
  282. data/lib/chef/resource/bash.rb +33 -0
  283. data/lib/chef/resource/breakpoint.rb +35 -0
  284. data/lib/chef/resource/cookbook_file.rb +45 -0
  285. data/lib/chef/resource/cron.rb +188 -0
  286. data/lib/chef/resource/csh.rb +33 -0
  287. data/lib/chef/resource/deploy.rb +371 -0
  288. data/lib/chef/resource/deploy_revision.rb +35 -0
  289. data/lib/chef/resource/directory.rb +76 -0
  290. data/lib/chef/resource/dpkg_package.rb +34 -0
  291. data/lib/chef/resource/easy_install_package.rb +57 -0
  292. data/lib/chef/resource/env.rb +58 -0
  293. data/lib/chef/resource/erl_call.rb +83 -0
  294. data/lib/chef/resource/execute.rb +127 -0
  295. data/lib/chef/resource/file.rb +99 -0
  296. data/lib/chef/resource/freebsd_package.rb +35 -0
  297. data/lib/chef/resource/gem_package.rb +53 -0
  298. data/lib/chef/resource/git.rb +37 -0
  299. data/lib/chef/resource/group.rb +70 -0
  300. data/lib/chef/resource/http_request.rb +61 -0
  301. data/lib/chef/resource/ifconfig.rb +134 -0
  302. data/lib/chef/resource/link.rb +78 -0
  303. data/lib/chef/resource/log.rb +62 -0
  304. data/lib/chef/resource/macports_package.rb +29 -0
  305. data/lib/chef/resource/mdadm.rb +82 -0
  306. data/lib/chef/resource/mount.rb +135 -0
  307. data/lib/chef/resource/ohai.rb +40 -0
  308. data/lib/chef/resource/package.rb +80 -0
  309. data/lib/chef/resource/pacman_package.rb +33 -0
  310. data/lib/chef/resource/perl.rb +33 -0
  311. data/lib/chef/resource/portage_package.rb +33 -0
  312. data/lib/chef/resource/python.rb +33 -0
  313. data/lib/chef/resource/remote_directory.rb +109 -0
  314. data/lib/chef/resource/remote_file.rb +83 -0
  315. data/lib/chef/resource/route.rb +135 -0
  316. data/lib/chef/resource/rpm_package.rb +34 -0
  317. data/lib/chef/resource/ruby.rb +33 -0
  318. data/lib/chef/resource/ruby_block.rb +40 -0
  319. data/lib/chef/resource/scm.rb +147 -0
  320. data/lib/chef/resource/script.rb +60 -0
  321. data/lib/chef/resource/service.rb +160 -0
  322. data/lib/chef/resource/solaris_package.rb +36 -0
  323. data/lib/chef/resource/subversion.rb +36 -0
  324. data/lib/chef/resource/template.rb +69 -0
  325. data/lib/chef/resource/timestamped_deploy.rb +31 -0
  326. data/lib/chef/resource/user.rb +130 -0
  327. data/lib/chef/resource/yum_package.rb +43 -0
  328. data/lib/chef/resource_collection.rb +217 -0
  329. data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
  330. data/lib/chef/resource_definition.rb +67 -0
  331. data/lib/chef/resource_definition_list.rb +38 -0
  332. data/lib/chef/resources.rb +64 -0
  333. data/lib/chef/rest.rb +386 -0
  334. data/lib/chef/rest/auth_credentials.rb +71 -0
  335. data/lib/chef/rest/cookie_jar.rb +31 -0
  336. data/lib/chef/rest/rest_request.rb +188 -0
  337. data/lib/chef/role.rb +341 -0
  338. data/lib/chef/run_context.rb +126 -0
  339. data/lib/chef/run_list.rb +165 -0
  340. data/lib/chef/run_list/run_list_expansion.rb +193 -0
  341. data/lib/chef/run_list/run_list_item.rb +92 -0
  342. data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
  343. data/lib/chef/run_status.rb +121 -0
  344. data/lib/chef/runner.rb +99 -0
  345. data/lib/chef/sandbox.rb +153 -0
  346. data/lib/chef/search/query.rb +65 -0
  347. data/lib/chef/shef.rb +326 -0
  348. data/lib/chef/shef/ext.rb +569 -0
  349. data/lib/chef/shef/model_wrapper.rb +120 -0
  350. data/lib/chef/shef/shef_rest.rb +28 -0
  351. data/lib/chef/shef/shef_session.rb +284 -0
  352. data/lib/chef/shell_out.rb +238 -0
  353. data/lib/chef/shell_out/unix.rb +223 -0
  354. data/lib/chef/shell_out/windows.rb +98 -0
  355. data/lib/chef/solr_query.rb +187 -0
  356. data/lib/chef/solr_query/lucene.treetop +150 -0
  357. data/lib/chef/solr_query/lucene_nodes.rb +285 -0
  358. data/lib/chef/solr_query/query_transform.rb +65 -0
  359. data/lib/chef/solr_query/solr_http_request.rb +118 -0
  360. data/lib/chef/streaming_cookbook_uploader.rb +201 -0
  361. data/lib/chef/tasks/chef_repo.rake +256 -0
  362. data/lib/chef/util/file_edit.rb +122 -0
  363. data/lib/chef/util/windows.rb +56 -0
  364. data/lib/chef/util/windows/net_group.rb +101 -0
  365. data/lib/chef/util/windows/net_use.rb +121 -0
  366. data/lib/chef/util/windows/net_user.rb +198 -0
  367. data/lib/chef/util/windows/volume.rb +59 -0
  368. data/lib/chef/version.rb +23 -0
  369. data/lib/chef/version_class.rb +70 -0
  370. data/lib/chef/version_constraint.rb +116 -0
  371. data/lib/chef/webui_user.rb +231 -0
  372. metadata +600 -0
@@ -0,0 +1,34 @@
1
+ #
2
+ # Author:: Adam Jacob (<adam@opscode.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
+
19
+ require 'chef/resource/package'
20
+ require 'chef/provider/package/apt'
21
+
22
+ class Chef
23
+ class Resource
24
+ class AptPackage < Chef::Resource::Package
25
+
26
+ def initialize(name, run_context=nil)
27
+ super
28
+ @resource_name = :apt_package
29
+ @provider = Chef::Provider::Package::Apt
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,33 @@
1
+ #
2
+ # Author:: Adam Jacob (<adam@opscode.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
+
19
+ require 'chef/resource/script'
20
+
21
+ class Chef
22
+ class Resource
23
+ class Bash < Chef::Resource::Script
24
+
25
+ def initialize(name, run_context=nil)
26
+ super
27
+ @resource_name = :bash
28
+ @interpreter = "bash"
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # Author:: Daniel DeLeo (<dan@kallistec.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
+
19
+
20
+ require 'chef/resource'
21
+
22
+ class Chef
23
+ class Resource
24
+ class Breakpoint < Chef::Resource
25
+
26
+ def initialize(action="break", *args)
27
+ @name = caller.first
28
+ super(@name, *args)
29
+ @action = "break"
30
+ @allowed_actions << :break
31
+ @provider = Chef::Provider::Breakpoint
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,45 @@
1
+ #
2
+ # Author:: Adam Jacob (<adam@opscode.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
+
19
+ require 'chef/resource/file'
20
+ require 'chef/provider/cookbook_file'
21
+
22
+ class Chef
23
+ class Resource
24
+ class CookbookFile < Chef::Resource::File
25
+
26
+ def initialize(name, run_context=nil)
27
+ super
28
+ @provider = Chef::Provider::CookbookFile
29
+ @resource_name = :cookbook_file
30
+ @action = "create"
31
+ @source = ::File.basename(name)
32
+ @cookbook = nil
33
+ end
34
+
35
+ def source(source_filename=nil)
36
+ set_or_return(:source, source_filename, :kind_of => String)
37
+ end
38
+
39
+ def cookbook(cookbook_name=nil)
40
+ set_or_return(:cookbook, cookbook_name, :kind_of => String)
41
+ end
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,188 @@
1
+ #
2
+ # Author:: Bryan McLellan (btm@loftninjas.org)
3
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'chef/resource'
20
+
21
+ class Chef
22
+ class Resource
23
+ class Cron < Chef::Resource
24
+
25
+ def initialize(name, run_context=nil)
26
+ super
27
+ @resource_name = :cron
28
+ @action = :create
29
+ @allowed_actions.push(:create, :delete)
30
+ @minute = "*"
31
+ @hour = "*"
32
+ @day = "*"
33
+ @month = "*"
34
+ @weekday = "*"
35
+ @command = nil
36
+ @user = "root"
37
+ @mailto = nil
38
+ @path = nil
39
+ @shell = nil
40
+ @home = nil
41
+ end
42
+
43
+ def minute(arg=nil)
44
+ if arg.is_a?(Integer)
45
+ converted_arg = arg.to_s
46
+ else
47
+ converted_arg = arg
48
+ end
49
+ begin
50
+ if integerize(arg) > 59 then raise RangeError end
51
+ rescue ArgumentError
52
+ end
53
+ set_or_return(
54
+ :minute,
55
+ converted_arg,
56
+ :kind_of => String
57
+ )
58
+ end
59
+
60
+ def hour(arg=nil)
61
+ if arg.is_a?(Integer)
62
+ converted_arg = arg.to_s
63
+ else
64
+ converted_arg = arg
65
+ end
66
+ begin
67
+ if integerize(arg) > 23 then raise RangeError end
68
+ rescue ArgumentError
69
+ end
70
+ set_or_return(
71
+ :hour,
72
+ converted_arg,
73
+ :kind_of => String
74
+ )
75
+ end
76
+
77
+ def day(arg=nil)
78
+ if arg.is_a?(Integer)
79
+ converted_arg = arg.to_s
80
+ else
81
+ converted_arg = arg
82
+ end
83
+ begin
84
+ if integerize(arg) > 31 then raise RangeError end
85
+ rescue ArgumentError
86
+ end
87
+ set_or_return(
88
+ :day,
89
+ converted_arg,
90
+ :kind_of => String
91
+ )
92
+ end
93
+
94
+ def month(arg=nil)
95
+ if arg.is_a?(Integer)
96
+ converted_arg = arg.to_s
97
+ else
98
+ converted_arg = arg
99
+ end
100
+ begin
101
+ if integerize(arg) > 12 then raise RangeError end
102
+ rescue ArgumentError
103
+ end
104
+ set_or_return(
105
+ :month,
106
+ converted_arg,
107
+ :kind_of => String
108
+ )
109
+ end
110
+
111
+ def weekday(arg=nil)
112
+ if arg.is_a?(Integer)
113
+ converted_arg = arg.to_s
114
+ else
115
+ converted_arg = arg
116
+ end
117
+ begin
118
+ if integerize(arg) > 7 then raise RangeError end
119
+ rescue ArgumentError
120
+ end
121
+ set_or_return(
122
+ :weekday,
123
+ converted_arg,
124
+ :kind_of => String
125
+ )
126
+ end
127
+
128
+ def mailto(arg=nil)
129
+ set_or_return(
130
+ :mailto,
131
+ arg,
132
+ :kind_of => String
133
+ )
134
+ end
135
+
136
+ def path(arg=nil)
137
+ set_or_return(
138
+ :path,
139
+ arg,
140
+ :kind_of => String
141
+ )
142
+ end
143
+
144
+ def home(arg=nil)
145
+ set_or_return(
146
+ :home,
147
+ arg,
148
+ :kind_of => String
149
+ )
150
+ end
151
+
152
+ def shell(arg=nil)
153
+ set_or_return(
154
+ :shell,
155
+ arg,
156
+ :kind_of => String
157
+ )
158
+ end
159
+
160
+ def command(arg=nil)
161
+ set_or_return(
162
+ :command,
163
+ arg,
164
+ :kind_of => String
165
+ )
166
+ end
167
+
168
+ def user(arg=nil)
169
+ set_or_return(
170
+ :user,
171
+ arg,
172
+ :kind_of => String
173
+ )
174
+ end
175
+
176
+ private
177
+
178
+ # On Ruby 1.8, Kernel#Integer will happily do this for you. On 1.9, no.
179
+ def integerize(integerish)
180
+ Integer(integerish)
181
+ rescue TypeError
182
+ 0
183
+ end
184
+ end
185
+ end
186
+ end
187
+
188
+
@@ -0,0 +1,33 @@
1
+ #
2
+ # Author:: Adam Jacob (<adam@opscode.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
+
19
+ require 'chef/resource/script'
20
+
21
+ class Chef
22
+ class Resource
23
+ class Csh < Chef::Resource::Script
24
+
25
+ def initialize(name, run_context=nil)
26
+ super
27
+ @resource_name = :csh
28
+ @interpreter = "csh"
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,371 @@
1
+ #
2
+ # Author:: Daniel DeLeo (<dan@kallistec.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
+
19
+ # EX:
20
+ # deploy "/my/deploy/dir" do
21
+ # repo "git@github.com/whoami/project"
22
+ # revision "abc123" # or "HEAD" or "TAG_for_1.0" or (subversion) "1234"
23
+ # user "deploy_ninja"
24
+ # enable_submodules true
25
+ # migrate true
26
+ # migration_command "rake db:migrate"
27
+ # environment "RAILS_ENV" => "production", "OTHER_ENV" => "foo"
28
+ # shallow_clone true
29
+ # action :deploy # or :rollback
30
+ # restart_command "touch tmp/restart.txt"
31
+ # git_ssh_wrapper "wrap-ssh4git.sh"
32
+ # scm_provider Chef::Provider::Git # is the default, for svn: Chef::Provider::Subversion
33
+ # svn_username "whoami"
34
+ # svn_password "supersecret"
35
+ # end
36
+
37
+ require "chef/resource/scm"
38
+
39
+ class Chef
40
+ class Resource
41
+
42
+ # Deploy: Deploy apps from a source control repository.
43
+ #
44
+ # Callbacks:
45
+ # Callbacks can be a block or a string. If given a block, the code
46
+ # is evaluated as an embedded recipe, and run at the specified
47
+ # point in the deploy process. If given a string, the string is taken as
48
+ # a path to a callback file/recipe. Paths are evaluated relative to the
49
+ # release directory. Callback files can contain chef code (resources, etc.)
50
+ #
51
+ class Deploy < Chef::Resource
52
+
53
+ provider_base Chef::Provider::Deploy
54
+
55
+ def initialize(name, run_context=nil)
56
+ super
57
+ @resource_name = :deploy
58
+ @deploy_to = name
59
+ @environment = nil
60
+ @repository_cache = 'cached-copy'
61
+ @copy_exclude = []
62
+ @purge_before_symlink = %w{log tmp/pids public/system}
63
+ @create_dirs_before_symlink = %w{tmp public config}
64
+ @symlink_before_migrate = {"config/database.yml" => "config/database.yml"}
65
+ @symlinks = {"system" => "public/system", "pids" => "tmp/pids", "log" => "log"}
66
+ @revision = 'HEAD'
67
+ @action = :deploy
68
+ @migrate = false
69
+ @remote = "origin"
70
+ @enable_submodules = false
71
+ @shallow_clone = false
72
+ @scm_provider = Chef::Provider::Git
73
+ @svn_force_export = false
74
+ @provider = Chef::Provider::Deploy::Timestamped
75
+ @allowed_actions.push(:force_deploy, :deploy, :rollback)
76
+ end
77
+
78
+ # where the checked out/cloned code goes
79
+ def destination
80
+ @destination ||= shared_path + "/#{@repository_cache}"
81
+ end
82
+
83
+ # where shared stuff goes, i.e., logs, tmp, etc. goes here
84
+ def shared_path
85
+ @shared_path ||= @deploy_to + "/shared"
86
+ end
87
+
88
+ # where the deployed version of your code goes
89
+ def current_path
90
+ @current_path ||= @deploy_to + "/current"
91
+ end
92
+
93
+ def depth
94
+ @shallow_clone ? "5" : nil
95
+ end
96
+
97
+ # note: deploy_to is your application "meta-root."
98
+ def deploy_to(arg=nil)
99
+ set_or_return(
100
+ :deploy_to,
101
+ arg,
102
+ :kind_of => [ String ]
103
+ )
104
+ end
105
+
106
+ def repo(arg=nil)
107
+ set_or_return(
108
+ :repo,
109
+ arg,
110
+ :kind_of => [ String ]
111
+ )
112
+ end
113
+ alias :repository :repo
114
+
115
+ def remote(arg=nil)
116
+ set_or_return(
117
+ :remote,
118
+ arg,
119
+ :kind_of => [ String ]
120
+ )
121
+ end
122
+
123
+ def role(arg=nil)
124
+ set_or_return(
125
+ :role,
126
+ arg,
127
+ :kind_of => [ String ]
128
+ )
129
+ end
130
+
131
+ def restart_command(arg=nil, &block)
132
+ arg ||= block
133
+ set_or_return(
134
+ :restart_command,
135
+ arg,
136
+ :kind_of => [ String, Proc ]
137
+ )
138
+ end
139
+ alias :restart :restart_command
140
+
141
+ def migrate(arg=nil)
142
+ set_or_return(
143
+ :migrate,
144
+ arg,
145
+ :kind_of => [ TrueClass, FalseClass ]
146
+ )
147
+ end
148
+
149
+ def migration_command(arg=nil)
150
+ set_or_return(
151
+ :migration_command,
152
+ arg,
153
+ :kind_of => [ String ]
154
+ )
155
+ end
156
+
157
+ def user(arg=nil)
158
+ set_or_return(
159
+ :user,
160
+ arg,
161
+ :kind_of => [ String ]
162
+ )
163
+ end
164
+
165
+ def group(arg=nil)
166
+ set_or_return(
167
+ :group,
168
+ arg,
169
+ :kind_of => [ String ]
170
+ )
171
+ end
172
+
173
+ def enable_submodules(arg=nil)
174
+ set_or_return(
175
+ :enable_submodules,
176
+ arg,
177
+ :kind_of => [ TrueClass, FalseClass ]
178
+ )
179
+ end
180
+
181
+ def shallow_clone(arg=nil)
182
+ set_or_return(
183
+ :shallow_clone,
184
+ arg,
185
+ :kind_of => [ TrueClass, FalseClass ]
186
+ )
187
+ end
188
+
189
+ def repository_cache(arg=nil)
190
+ set_or_return(
191
+ :repository_cache,
192
+ arg,
193
+ :kind_of => [ String ]
194
+ )
195
+ end
196
+
197
+ def copy_exclude(arg=nil)
198
+ set_or_return(
199
+ :copy_exclude,
200
+ arg,
201
+ :kind_of => [ String ]
202
+ )
203
+ end
204
+
205
+ def revision(arg=nil)
206
+ set_or_return(
207
+ :revision,
208
+ arg,
209
+ :kind_of => [ String ]
210
+ )
211
+ end
212
+ alias :branch :revision
213
+
214
+ def git_ssh_wrapper(arg=nil)
215
+ set_or_return(
216
+ :git_ssh_wrapper,
217
+ arg,
218
+ :kind_of => [ String ]
219
+ )
220
+ end
221
+ alias :ssh_wrapper :git_ssh_wrapper
222
+
223
+ def svn_username(arg=nil)
224
+ set_or_return(
225
+ :svn_username,
226
+ arg,
227
+ :kind_of => [ String ]
228
+ )
229
+ end
230
+
231
+ def svn_password(arg=nil)
232
+ set_or_return(
233
+ :svn_password,
234
+ arg,
235
+ :kind_of => [ String ]
236
+ )
237
+ end
238
+
239
+ def svn_arguments(arg=nil)
240
+ set_or_return(
241
+ :svn_arguments,
242
+ arg,
243
+ :kind_of => [ String ]
244
+ )
245
+ end
246
+
247
+ def svn_info_args(arg=nil)
248
+ set_or_return(
249
+ :svn_arguments,
250
+ arg,
251
+ :kind_of => [ String ])
252
+ end
253
+
254
+ def scm_provider(arg=nil)
255
+ klass = if arg.kind_of?(String) || arg.kind_of?(Symbol)
256
+ lookup_provider_constant(arg)
257
+ else
258
+ arg
259
+ end
260
+ set_or_return(
261
+ :scm_provider,
262
+ klass,
263
+ :kind_of => [ Class ]
264
+ )
265
+ end
266
+
267
+ def svn_force_export(arg=nil)
268
+ set_or_return(
269
+ :svn_force_export,
270
+ arg,
271
+ :kind_of => [ TrueClass, FalseClass ]
272
+ )
273
+ end
274
+
275
+ def environment(arg=nil)
276
+ if arg.is_a?(String)
277
+ Chef::Log.info "Setting RAILS_ENV, RACK_ENV, and MERB_ENV to `#{arg}'"
278
+ Chef::Log.warn "[DEPRECATED] please modify your deploy recipe or attributes to set the environment using a hash"
279
+ arg = {"RAILS_ENV"=>arg,"MERB_ENV"=>arg,"RACK_ENV"=>arg}
280
+ end
281
+ set_or_return(
282
+ :environment,
283
+ arg,
284
+ :kind_of => [ Hash ]
285
+ )
286
+ end
287
+
288
+ # An array of paths, relative to your app's root, to be purged from a
289
+ # SCM clone/checkout before symlinking. Use this to get rid of files and
290
+ # directories you want to be shared between releases.
291
+ # Default: ["log", "tmp/pids", "public/system"]
292
+ def purge_before_symlink(arg=nil)
293
+ set_or_return(
294
+ :purge_before_symlink,
295
+ arg,
296
+ :kind_of => Array
297
+ )
298
+ end
299
+
300
+ # An array of paths, relative to your app's root, where you expect dirs to
301
+ # exist before symlinking. This runs after #purge_before_symlink, so you
302
+ # can use this to recreate dirs that you had previously purged.
303
+ # For example, if you plan to use a shared directory for pids, and you
304
+ # want it to be located in $APP_ROOT/tmp/pids, you could purge tmp,
305
+ # then specify tmp here so that the tmp directory will exist when you
306
+ # symlink the pids directory in to the current release.
307
+ # Default: ["tmp", "public", "config"]
308
+ def create_dirs_before_symlink(arg=nil)
309
+ set_or_return(
310
+ :create_dirs_before_symlink,
311
+ arg,
312
+ :kind_of => Array
313
+ )
314
+ end
315
+
316
+ # A Hash of shared/dir/path => release/dir/path. This attribute determines
317
+ # which files and dirs in the shared directory get symlinked to the current
318
+ # release directory, and where they go. If you have a directory
319
+ # $shared/pids that you would like to symlink as $current_release/tmp/pids
320
+ # you specify it as "pids" => "tmp/pids"
321
+ # Default {"system" => "public/system", "pids" => "tmp/pids", "log" => "log"}
322
+ def symlinks(arg=nil)
323
+ set_or_return(
324
+ :symlinks,
325
+ arg,
326
+ :kind_of => Hash
327
+ )
328
+ end
329
+
330
+ # A Hash of shared/dir/path => release/dir/path. This attribute determines
331
+ # which files in the shared directory get symlinked to the current release
332
+ # directory and where they go. Unlike map_shared_files, these are symlinked
333
+ # *before* any migration is run.
334
+ # For a rails/merb app, this is used to link in a known good database.yml
335
+ # (with the production db password) before running migrate.
336
+ # Default {"config/database.yml" => "config/database.yml"}
337
+ def symlink_before_migrate(arg=nil)
338
+ set_or_return(
339
+ :symlink_before_migrate,
340
+ arg,
341
+ :kind_of => Hash
342
+ )
343
+ end
344
+
345
+ # Callback fires before migration is run.
346
+ def before_migrate(arg=nil, &block)
347
+ arg ||= block
348
+ set_or_return(:before_migrate, arg, :kind_of => [Proc, String])
349
+ end
350
+
351
+ # Callback fires before symlinking
352
+ def before_symlink(arg=nil, &block)
353
+ arg ||= block
354
+ set_or_return(:before_symlink, arg, :kind_of => [Proc, String])
355
+ end
356
+
357
+ # Callback fires before restart
358
+ def before_restart(arg=nil, &block)
359
+ arg ||= block
360
+ set_or_return(:before_restart, arg, :kind_of => [Proc, String])
361
+ end
362
+
363
+ # Callback fires after restart
364
+ def after_restart(arg=nil, &block)
365
+ arg ||= block
366
+ set_or_return(:after_restart, arg, :kind_of => [Proc, String])
367
+ end
368
+
369
+ end
370
+ end
371
+ end