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,80 @@
1
+ #
2
+ # Author:: Doug MacEachern (<dougm@vmware.com>)
3
+ # Copyright:: Copyright (c) 2010 VMware, 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/provider/mount'
20
+ if RUBY_PLATFORM =~ /mswin|mingw32|windows/
21
+ require 'chef/util/windows/net_use'
22
+ require 'chef/util/windows/volume'
23
+ end
24
+
25
+ class Chef
26
+ class Provider
27
+ class Mount
28
+ class Windows < Chef::Provider::Mount
29
+
30
+ def is_volume(name)
31
+ name =~ /^\\\\\?\\Volume\{[\w-]+\}\\$/ ? true : false
32
+ end
33
+
34
+ def initialize(new_resource, run_context)
35
+ super
36
+ @mount = nil
37
+ end
38
+
39
+ def load_current_resource
40
+ if is_volume(@new_resource.device)
41
+ @mount = Chef::Util::Windows::Volume.new(@new_resource.name)
42
+ else #assume network drive
43
+ @mount = Chef::Util::Windows::NetUse.new(@new_resource.name)
44
+ end
45
+
46
+ @current_resource = Chef::Resource::Mount.new(@new_resource.name)
47
+ @current_resource.mount_point(@new_resource.mount_point)
48
+ Chef::Log.debug("Checking for mount point #{@current_resource.mount_point}")
49
+
50
+ begin
51
+ @current_resource.device(@mount.device)
52
+ Chef::Log.debug("#{@current_resource.device} mounted on #{@new_resource.mount_point}")
53
+ @current_resource.mounted(true)
54
+ rescue ArgumentError => e
55
+ @current_resource.mounted(false)
56
+ Chef::Log.debug("#{@new_resource.mount_point} is not mounted: #{e.message}")
57
+ end
58
+ end
59
+
60
+ def mount_fs
61
+ unless @current_resource.mounted
62
+ @mount.add(@new_resource.device)
63
+ else
64
+ Chef::Log.debug("#{@new_resource.mount_point} is already mounted.")
65
+ end
66
+ end
67
+
68
+ def umount_fs
69
+ if @current_resource.mounted
70
+ @mount.delete
71
+ Chef::Log.info("Unmounted #{@new_resource.mount_point}")
72
+ else
73
+ Chef::Log.debug("#{@new_resource.mount_point} is not mounted.")
74
+ end
75
+ end
76
+
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,41 @@
1
+ #
2
+ # Author:: Michael Leianrtas (<mleinartas@gmail.com>)
3
+ # Copyright:: Copyright (c) 2010 Michael Leinartas
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 'ohai'
20
+
21
+ class Chef
22
+ class Provider
23
+ class Ohai < Chef::Provider
24
+
25
+ def load_current_resource
26
+ true
27
+ end
28
+
29
+ def action_reload
30
+ ohai = ::Ohai::System.new
31
+ if @new_resource.plugin
32
+ ohai.require_plugin @new_resource.plugin
33
+ else
34
+ ohai.all_plugins
35
+ end
36
+
37
+ node.automatic_attrs.merge! ohai.data
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,160 @@
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/mixin/command'
20
+ require 'chef/log'
21
+ require 'chef/file_cache'
22
+ require 'chef/resource/remote_file'
23
+ require 'chef/platform'
24
+
25
+ class Chef
26
+ class Provider
27
+ class Package < Chef::Provider
28
+
29
+ include Chef::Mixin::Command
30
+
31
+ attr_accessor :candidate_version
32
+
33
+ def initialize(new_resource, run_context)
34
+ super
35
+ @candidate_version = nil
36
+ end
37
+
38
+ def action_install
39
+ # If we specified a version, and it's not the current version, move to the specified version
40
+ if @new_resource.version != nil && @new_resource.version != @current_resource.version
41
+ install_version = @new_resource.version
42
+ # If it's not installed at all, install it
43
+ elsif @current_resource.version == nil
44
+ install_version = candidate_version
45
+ else
46
+ return
47
+ end
48
+
49
+ unless install_version
50
+ raise(Chef::Exceptions::Package, "No version specified, and no candidate version available for #{@new_resource.package_name}")
51
+ end
52
+
53
+ Chef::Log.info("Installing #{@new_resource} version #{install_version}")
54
+
55
+ # We need to make sure we handle the preseed file
56
+ if @new_resource.response_file
57
+ preseed_package(@new_resource.package_name, install_version)
58
+ end
59
+
60
+ status = install_package(@new_resource.package_name, install_version)
61
+ if status
62
+ @new_resource.updated_by_last_action(true)
63
+ end
64
+ end
65
+
66
+ def action_upgrade
67
+ if @current_resource.version != candidate_version
68
+ orig_version = @current_resource.version || "uninstalled"
69
+ Chef::Log.info("Upgrading #{@new_resource} version from #{orig_version} to #{candidate_version}")
70
+ status = upgrade_package(@new_resource.package_name, candidate_version)
71
+ if status
72
+ @new_resource.updated_by_last_action(true)
73
+ end
74
+ end
75
+ end
76
+
77
+ def action_remove
78
+ if removing_package?
79
+ Chef::Log.info("Removing #{@new_resource}")
80
+ remove_package(@current_resource.package_name, @new_resource.version)
81
+ @new_resource.updated_by_last_action(true)
82
+ else
83
+ end
84
+ end
85
+
86
+ def removing_package?
87
+ if @current_resource.version.nil?
88
+ false # nothing to remove
89
+ elsif @new_resource.version.nil?
90
+ true # remove any version of a package
91
+ elsif @new_resource.version == @current_resource.version
92
+ true # remove the version we have
93
+ else
94
+ false # we don't have the version we want to remove
95
+ end
96
+ end
97
+
98
+ def action_purge
99
+ if removing_package?
100
+ Chef::Log.info("Purging #{@new_resource}")
101
+ purge_package(@current_resource.package_name, @new_resource.version)
102
+ @new_resource.updated_by_last_action(true)
103
+ end
104
+ end
105
+
106
+ def install_package(name, version)
107
+ raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :install"
108
+ end
109
+
110
+ def upgrade_package(name, version)
111
+ raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :upgrade"
112
+ end
113
+
114
+ def remove_package(name, version)
115
+ raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :remove"
116
+ end
117
+
118
+ def purge_package(name, version)
119
+ raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :purge"
120
+ end
121
+
122
+ def preseed_package(name, version)
123
+ raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support pre-seeding package install/upgrade instructions - don't ask it to!"
124
+ end
125
+
126
+ def get_preseed_file(name, version)
127
+ resource = preseed_resource(name, version)
128
+ Chef::Log.debug("Fetching preseed file to #{resource.path}")
129
+ resource.run_action('create')
130
+
131
+ if resource.updated_by_last_action?
132
+ resource.path
133
+ else
134
+ false
135
+ end
136
+ end
137
+
138
+ def preseed_resource(name, version)
139
+ # A directory in our cache to store this cookbook's preseed files in
140
+ file_cache_dir = Chef::FileCache.create_cache_path("preseed/#{@new_resource.cookbook_name}")
141
+ # The full path where the preseed file will be stored
142
+ cache_seed_to = "#{file_cache_dir}/#{name}-#{version}.seed"
143
+
144
+ Chef::Log.debug("Fetching preseed file to #{cache_seed_to}")
145
+
146
+ remote_file = Chef::Resource::CookbookFile.new(cache_seed_to, run_context)
147
+ remote_file.cookbook_name = @new_resource.cookbook_name
148
+ remote_file.source(@new_resource.response_file)
149
+ remote_file.backup(false)
150
+
151
+ remote_file
152
+ end
153
+
154
+ def expand_options(options)
155
+ options ? " #{options}" : ""
156
+ end
157
+
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,110 @@
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/provider/package'
20
+ require 'chef/mixin/command'
21
+ require 'chef/resource/package'
22
+
23
+ class Chef
24
+ class Provider
25
+ class Package
26
+ class Apt < Chef::Provider::Package
27
+
28
+ def load_current_resource
29
+ @current_resource = Chef::Resource::Package.new(@new_resource.name)
30
+ @current_resource.package_name(@new_resource.package_name)
31
+
32
+ Chef::Log.debug("Checking apt-cache policy for #{@new_resource.package_name}")
33
+ status = popen4("apt-cache policy #{@new_resource.package_name}") do |pid, stdin, stdout, stderr|
34
+ stdout.each do |line|
35
+ case line
36
+ when /^\s{2}Installed: (.+)$/
37
+ installed_version = $1
38
+ if installed_version == '(none)'
39
+ Chef::Log.debug("Current version is nil")
40
+ @current_resource.version(nil)
41
+ else
42
+ Chef::Log.debug("Current version is #{installed_version}")
43
+ @current_resource.version(installed_version)
44
+ end
45
+ when /^\s{2}Candidate: (.+)$/
46
+ Chef::Log.debug("Candidate version is #{$1}")
47
+ @candidate_version = $1
48
+ end
49
+ end
50
+ end
51
+
52
+ unless status.exitstatus == 0
53
+ raise Chef::Exceptions::Package, "apt-cache failed - #{status.inspect}!"
54
+ end
55
+
56
+ if @candidate_version == "(none)"
57
+ raise Chef::Exceptions::Package, "apt does not have a version of package #{@new_resource.package_name}"
58
+ end
59
+
60
+ @current_resource
61
+ end
62
+
63
+ def install_package(name, version)
64
+ run_command_with_systems_locale(
65
+ :command => "apt-get -q -y#{expand_options(@new_resource.options)} install #{name}=#{version}",
66
+ :environment => {
67
+ "DEBIAN_FRONTEND" => "noninteractive"
68
+ }
69
+ )
70
+ end
71
+
72
+ def upgrade_package(name, version)
73
+ install_package(name, version)
74
+ end
75
+
76
+ def remove_package(name, version)
77
+ run_command_with_systems_locale(
78
+ :command => "apt-get -q -y#{expand_options(@new_resource.options)} remove #{@new_resource.package_name}",
79
+ :environment => {
80
+ "DEBIAN_FRONTEND" => "noninteractive"
81
+ }
82
+ )
83
+ end
84
+
85
+ def purge_package(name, version)
86
+ run_command_with_systems_locale(
87
+ :command => "apt-get -q -y#{expand_options(@new_resource.options)} purge #{@new_resource.package_name}",
88
+ :environment => {
89
+ "DEBIAN_FRONTEND" => "noninteractive"
90
+ }
91
+ )
92
+ end
93
+
94
+ def preseed_package(name, version)
95
+ preseed_file = get_preseed_file(name, version)
96
+ if preseed_file
97
+ Chef::Log.info("Pre-seeding #{@new_resource} with package installation instructions.")
98
+ run_command_with_systems_locale(
99
+ :command => "debconf-set-selections #{preseed_file}",
100
+ :environment => {
101
+ "DEBIAN_FRONTEND" => "noninteractive"
102
+ }
103
+ )
104
+ end
105
+ end
106
+
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,112 @@
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/provider/package'
20
+ require 'chef/mixin/command'
21
+ require 'chef/resource/package'
22
+
23
+ class Chef
24
+ class Provider
25
+ class Package
26
+ class Dpkg < Chef::Provider::Package::Apt
27
+ DPKG_INFO = /([a-z\d\-\+]+)\t([\w\d.-]+)/
28
+ DPKG_INSTALLED = /^Status: install ok installed/
29
+ DPKG_VERSION = /^Version: (.+)$/
30
+
31
+ def load_current_resource
32
+ @current_resource = Chef::Resource::Package.new(@new_resource.name)
33
+ @current_resource.package_name(@new_resource.package_name)
34
+ @new_resource.version(nil)
35
+
36
+ # if the source was not set, and we're installing, fail
37
+ if Array(@new_resource.action).include?(:install) && @new_resource.source.nil?
38
+ raise Chef::Exceptions::Package, "Source for package #{@new_resource.name} required for action install"
39
+ end
40
+
41
+ # We only -need- source for action install
42
+ if @new_resource.source
43
+ unless ::File.exists?(@new_resource.source)
44
+ raise Chef::Exceptions::Package, "Package #{@new_resource.name} not found: #{@new_resource.source}"
45
+ end
46
+
47
+ # Get information from the package if supplied
48
+ Chef::Log.debug("Checking dpkg status for #{@new_resource.package_name}")
49
+ status = popen4("dpkg-deb -W #{@new_resource.source}") do |pid, stdin, stdout, stderr|
50
+ stdout.each_line do |line|
51
+ if pkginfo = DPKG_INFO.match(line)
52
+ @current_resource.package_name(pkginfo[1])
53
+ @new_resource.version(pkginfo[2])
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ # Check to see if it is installed
60
+ package_installed = nil
61
+ Chef::Log.debug("Checking install state for #{@current_resource.package_name}")
62
+ status = popen4("dpkg -s #{@current_resource.package_name}") do |pid, stdin, stdout, stderr|
63
+ stdout.each_line do |line|
64
+ case line
65
+ when DPKG_INSTALLED
66
+ package_installed = true
67
+ when DPKG_VERSION
68
+ if package_installed
69
+ Chef::Log.debug("Current version is #{$1}")
70
+ @current_resource.version($1)
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ unless status.exitstatus == 0 || status.exitstatus == 1
77
+ raise Chef::Exceptions::Package, "dpkg failed - #{status.inspect}!"
78
+ end
79
+
80
+ @current_resource
81
+ end
82
+
83
+ def install_package(name, version)
84
+ run_command_with_systems_locale(
85
+ :command => "dpkg -i#{expand_options(@new_resource.options)} #{@new_resource.source}",
86
+ :environment => {
87
+ "DEBIAN_FRONTEND" => "noninteractive"
88
+ }
89
+ )
90
+ end
91
+
92
+ def remove_package(name, version)
93
+ run_command_with_systems_locale(
94
+ :command => "dpkg -r#{expand_options(@new_resource.options)} #{@new_resource.package_name}",
95
+ :environment => {
96
+ "DEBIAN_FRONTEND" => "noninteractive"
97
+ }
98
+ )
99
+ end
100
+
101
+ def purge_package(name, version)
102
+ run_command_with_systems_locale(
103
+ :command => "dpkg -P#{expand_options(@new_resource.options)} #{@new_resource.package_name}",
104
+ :environment => {
105
+ "DEBIAN_FRONTEND" => "noninteractive"
106
+ }
107
+ )
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end