cloud-toaster 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (515) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE +202 -0
  3. data/README.md +54 -0
  4. data/Rakefile +51 -0
  5. data/VERSION +1 -0
  6. data/bin/strace-4.8_patched/strace-i686 +0 -0
  7. data/bin/strace-4.8_patched/strace-x86_64 +0 -0
  8. data/bin/toaster +74 -0
  9. data/chef/cookbooks/chef-solo-search/CHANGELOG +16 -0
  10. data/chef/cookbooks/chef-solo-search/Gemfile +8 -0
  11. data/chef/cookbooks/chef-solo-search/LICENSE +202 -0
  12. data/chef/cookbooks/chef-solo-search/NOTICE +18 -0
  13. data/chef/cookbooks/chef-solo-search/README.md +143 -0
  14. data/chef/cookbooks/chef-solo-search/Rakefile +10 -0
  15. data/chef/cookbooks/chef-solo-search/libraries/search/overrides.rb +100 -0
  16. data/chef/cookbooks/chef-solo-search/libraries/search/parser.rb +222 -0
  17. data/chef/cookbooks/chef-solo-search/libraries/search.rb +75 -0
  18. data/chef/cookbooks/chef-solo-search/libraries/vendor/chef/solr_query/lucene.treetop +150 -0
  19. data/chef/cookbooks/chef-solo-search/libraries/vendor/chef/solr_query/lucene_nodes.rb +285 -0
  20. data/chef/cookbooks/chef-solo-search/libraries/vendor/chef/solr_query/query_transform.rb +65 -0
  21. data/chef/cookbooks/chef-solo-search/metadata.rb +11 -0
  22. data/chef/cookbooks/chef-solo-search/recipes/default.rb +3 -0
  23. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/node/alpha.json +10 -0
  24. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/node/beta.json +10 -0
  25. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/node/without_json_class.json +7 -0
  26. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/users/jerry.json +8 -0
  27. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/users/lea.json +10 -0
  28. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/users/mike.json +13 -0
  29. data/chef/cookbooks/chef-solo-search/tests/data/data_bags/users/tom.json +10 -0
  30. data/chef/cookbooks/chef-solo-search/tests/gemfiles/Gemfile.10 +4 -0
  31. data/chef/cookbooks/chef-solo-search/tests/gemfiles/Gemfile.11 +5 -0
  32. data/chef/cookbooks/chef-solo-search/tests/test_data_bags.rb +45 -0
  33. data/chef/cookbooks/chef-solo-search/tests/test_search.rb +244 -0
  34. data/chef/cookbooks/lxc/attributes/create_lxc.rb +8 -0
  35. data/chef/cookbooks/lxc/attributes/general.rb +15 -0
  36. data/chef/cookbooks/lxc/attributes/init_bare_os.rb +15 -0
  37. data/chef/cookbooks/lxc/attributes/init_proto.rb +18 -0
  38. data/chef/cookbooks/lxc/attributes/install_ruby.rb +51 -0
  39. data/chef/cookbooks/lxc/attributes/mount_volume.rb +11 -0
  40. data/chef/cookbooks/lxc/attributes/setup_host.rb +9 -0
  41. data/chef/cookbooks/lxc/attributes/setup_proxy.rb +3 -0
  42. data/chef/cookbooks/lxc/attributes/start_lxc.rb +11 -0
  43. data/chef/cookbooks/lxc/attributes/stop_lxc.rb +3 -0
  44. data/chef/cookbooks/lxc/files/install.chef.sh +78 -0
  45. data/chef/cookbooks/lxc/metadata.json +6 -0
  46. data/chef/cookbooks/lxc/recipes/create_lxc.rb +106 -0
  47. data/chef/cookbooks/lxc/recipes/init_bare_os.rb +82 -0
  48. data/chef/cookbooks/lxc/recipes/init_proto.rb +417 -0
  49. data/chef/cookbooks/lxc/recipes/install_docker.rb +61 -0
  50. data/chef/cookbooks/lxc/recipes/install_ruby.rb +28 -0
  51. data/chef/cookbooks/lxc/recipes/mount_volume.rb +63 -0
  52. data/chef/cookbooks/lxc/recipes/setup_database.rb +22 -0
  53. data/chef/cookbooks/lxc/recipes/setup_host.rb +179 -0
  54. data/chef/cookbooks/lxc/recipes/setup_proxy.rb +157 -0
  55. data/chef/cookbooks/lxc/recipes/start_lxc.rb +180 -0
  56. data/chef/cookbooks/lxc/recipes/stop_lxc.rb +86 -0
  57. data/chef/cookbooks/mysql/CHANGELOG.md +391 -0
  58. data/chef/cookbooks/mysql/README.md +211 -0
  59. data/chef/cookbooks/mysql/attributes/default.rb +22 -0
  60. data/chef/cookbooks/mysql/libraries/helpers.rb +277 -0
  61. data/chef/cookbooks/mysql/libraries/matchers.rb +17 -0
  62. data/chef/cookbooks/mysql/libraries/provider_mysql_client.rb +10 -0
  63. data/chef/cookbooks/mysql/libraries/provider_mysql_client_debian.rb +37 -0
  64. data/chef/cookbooks/mysql/libraries/provider_mysql_client_fedora.rb +38 -0
  65. data/chef/cookbooks/mysql/libraries/provider_mysql_client_freebsd.rb +33 -0
  66. data/chef/cookbooks/mysql/libraries/provider_mysql_client_omnios.rb +41 -0
  67. data/chef/cookbooks/mysql/libraries/provider_mysql_client_rhel.rb +42 -0
  68. data/chef/cookbooks/mysql/libraries/provider_mysql_client_smartos.rb +33 -0
  69. data/chef/cookbooks/mysql/libraries/provider_mysql_client_suse.rb +37 -0
  70. data/chef/cookbooks/mysql/libraries/provider_mysql_client_ubuntu.rb +37 -0
  71. data/chef/cookbooks/mysql/libraries/provider_mysql_service.rb +10 -0
  72. data/chef/cookbooks/mysql/libraries/provider_mysql_service_debian.rb +193 -0
  73. data/chef/cookbooks/mysql/libraries/provider_mysql_service_fedora.rb +157 -0
  74. data/chef/cookbooks/mysql/libraries/provider_mysql_service_freebsd.rb +151 -0
  75. data/chef/cookbooks/mysql/libraries/provider_mysql_service_omnios.rb +232 -0
  76. data/chef/cookbooks/mysql/libraries/provider_mysql_service_rhel.rb +318 -0
  77. data/chef/cookbooks/mysql/libraries/provider_mysql_service_smartos.rb +216 -0
  78. data/chef/cookbooks/mysql/libraries/provider_mysql_service_suse.rb +170 -0
  79. data/chef/cookbooks/mysql/libraries/provider_mysql_service_ubuntu.rb +218 -0
  80. data/chef/cookbooks/mysql/libraries/resource_mysql_client.rb +11 -0
  81. data/chef/cookbooks/mysql/libraries/resource_mysql_service.rb +194 -0
  82. data/chef/cookbooks/mysql/metadata.json +40 -0
  83. data/chef/cookbooks/mysql/metadata.rb +20 -0
  84. data/chef/cookbooks/mysql/recipes/client.rb +22 -0
  85. data/chef/cookbooks/mysql/recipes/server.rb +33 -0
  86. data/chef/cookbooks/mysql/recipes/server_deprecated.rb +23 -0
  87. data/chef/cookbooks/mysql/templates/default/5.0/my.cnf.erb +38 -0
  88. data/chef/cookbooks/mysql/templates/default/5.1/my.cnf.erb +38 -0
  89. data/chef/cookbooks/mysql/templates/default/5.5/my.cnf.erb +38 -0
  90. data/chef/cookbooks/mysql/templates/default/5.6/my.cnf.erb +39 -0
  91. data/chef/cookbooks/mysql/templates/default/apparmor/usr.sbin.mysqld.erb +40 -0
  92. data/chef/cookbooks/mysql/templates/default/debian/debian.cnf.erb +12 -0
  93. data/chef/cookbooks/mysql/templates/default/debian/mysql-server.seed.erb +10 -0
  94. data/chef/cookbooks/mysql/templates/default/deprecated/my.cnf.erb +374 -0
  95. data/chef/cookbooks/mysql/templates/default/grants/grants.sql.erb +27 -0
  96. data/chef/cookbooks/mysql/templates/default/omnios/mysql.xml.erb +26 -0
  97. data/chef/cookbooks/mysql/templates/default/omnios/svc.method.mysqld.erb +29 -0
  98. data/chef/cookbooks/mysql/templates/default/smartos/mysql.xml.erb +32 -0
  99. data/chef/cookbooks/mysql/templates/default/smartos/svc.method.mysqld.erb +29 -0
  100. data/chef/cookbooks/openssl/README.md +37 -0
  101. data/chef/cookbooks/openssl/libraries/secure_password.rb +37 -0
  102. data/chef/cookbooks/openssl/metadata.json +30 -0
  103. data/chef/cookbooks/openssl/metadata.rb +8 -0
  104. data/chef/cookbooks/openssl/recipes/default.rb +19 -0
  105. data/chef/cookbooks/ssh/attributes/default.rb +8 -0
  106. data/chef/cookbooks/ssh/recipes/authorize_key.rb +20 -0
  107. data/chef/cookbooks/toaster/attributes/testing.rb +37 -0
  108. data/chef/cookbooks/toaster/libraries/default.rb +61 -0
  109. data/chef/cookbooks/toaster/recipes/post__cakephp__default.rb +27 -0
  110. data/chef/cookbooks/toaster/recipes/post__cube__default.rb +26 -0
  111. data/chef/cookbooks/toaster/recipes/post__drupal__default.rb +16 -0
  112. data/chef/cookbooks/toaster/recipes/post__icinga__default.rb +9 -0
  113. data/chef/cookbooks/toaster/recipes/post__node__default.rb +16 -0
  114. data/chef/cookbooks/toaster/recipes/post__virtualbox__default.rb +12 -0
  115. data/chef/cookbooks/toaster/recipes/post__wordpress__default.rb +12 -0
  116. data/chef/cookbooks/toaster/recipes/pre__aegir__default.rb +12 -0
  117. data/chef/cookbooks/toaster/recipes/pre__app__default.rb +3 -0
  118. data/chef/cookbooks/toaster/recipes/pre__cakephp__default.rb +24 -0
  119. data/chef/cookbooks/toaster/recipes/pre__cube__default.rb +9 -0
  120. data/chef/cookbooks/toaster/recipes/pre__disco__default.rb +21 -0
  121. data/chef/cookbooks/toaster/recipes/pre__drbd__default.rb +7 -0
  122. data/chef/cookbooks/toaster/recipes/pre__eaccelerator__default.rb +2 -0
  123. data/chef/cookbooks/toaster/recipes/pre__elasticsearch-head__default.rb +11 -0
  124. data/chef/cookbooks/toaster/recipes/pre__elasticsearch__default.rb +6 -0
  125. data/chef/cookbooks/toaster/recipes/pre__gitosis__default.rb +17 -0
  126. data/chef/cookbooks/toaster/recipes/pre__kafka__default.rb +3 -0
  127. data/chef/cookbooks/toaster/recipes/pre__munin__server.rb +6 -0
  128. data/chef/cookbooks/toaster/recipes/pre__mysql__server.rb +4 -0
  129. data/chef/cookbooks/toaster/recipes/pre__nagios__default.rb +3 -0
  130. data/chef/cookbooks/toaster/recipes/pre__netkernel__default.rb +24 -0
  131. data/chef/cookbooks/toaster/recipes/pre__php__default.rb +2 -0
  132. data/chef/cookbooks/toaster/recipes/pre__postgresql__server.rb +3 -0
  133. data/chef/cookbooks/toaster/recipes/pre__pxe_dust__default.rb +9 -0
  134. data/chef/cookbooks/toaster/recipes/pre__pxe_install_server__default.rb +6 -0
  135. data/chef/cookbooks/toaster/recipes/pre__riak__default.rb +40 -0
  136. data/chef/cookbooks/toaster/recipes/pre__sensu__default.rb +9 -0
  137. data/chef/cookbooks/toaster/recipes/pre__sol__default.rb +2 -0
  138. data/chef/cookbooks/toaster/recipes/pre__solr__default.rb +6 -0
  139. data/chef/cookbooks/toaster/recipes/pre__sonar__default.rb +2 -0
  140. data/chef/cookbooks/toaster/recipes/pre__storm__default.rb +3 -0
  141. data/chef/cookbooks/toaster/recipes/pre__vmware__tools.rb +4 -0
  142. data/chef/cookbooks/toaster/recipes/pre__wordpress__default.rb +17 -0
  143. data/chef/cookbooks/toaster/recipes/pre__xen__default.rb +7 -0
  144. data/chef/cookbooks/toaster/recipes/pre__znc__default.rb +7 -0
  145. data/chef/cookbooks/toaster/recipes/testing.rb +241 -0
  146. data/chef/cookbooks/toaster/recipes/testing_post.rb +36 -0
  147. data/chef/cookbooks/yum/CHANGELOG.md +212 -0
  148. data/chef/cookbooks/yum/README.md +268 -0
  149. data/chef/cookbooks/yum/attributes/main.rb +97 -0
  150. data/chef/cookbooks/yum/libraries/matchers.rb +27 -0
  151. data/chef/cookbooks/yum/metadata.json +34 -0
  152. data/chef/cookbooks/yum/metadata.rb +13 -0
  153. data/chef/cookbooks/yum/providers/globalconfig.rb +37 -0
  154. data/chef/cookbooks/yum/providers/repository.rb +85 -0
  155. data/chef/cookbooks/yum/recipes/default.rb +34 -0
  156. data/chef/cookbooks/yum/resources/globalconfig.rb +105 -0
  157. data/chef/cookbooks/yum/resources/repository.rb +63 -0
  158. data/chef/cookbooks/yum/templates/default/main.erb +251 -0
  159. data/chef/cookbooks/yum/templates/default/repo.erb +109 -0
  160. data/chef/cookbooks/yum-mysql-community/CHANGELOG.md +67 -0
  161. data/chef/cookbooks/yum-mysql-community/README.md +137 -0
  162. data/chef/cookbooks/yum-mysql-community/attributes/mysql-connectors-community.rb +31 -0
  163. data/chef/cookbooks/yum-mysql-community/attributes/mysql55-community.rb +29 -0
  164. data/chef/cookbooks/yum-mysql-community/attributes/mysql56-community.rb +31 -0
  165. data/chef/cookbooks/yum-mysql-community/files/default/mysql_pubkey.asc +33 -0
  166. data/chef/cookbooks/yum-mysql-community/metadata.json +30 -0
  167. data/chef/cookbooks/yum-mysql-community/metadata.rb +8 -0
  168. data/chef/cookbooks/yum-mysql-community/recipes/connectors.rb +48 -0
  169. data/chef/cookbooks/yum-mysql-community/recipes/mysql55.rb +48 -0
  170. data/chef/cookbooks/yum-mysql-community/recipes/mysql56.rb +48 -0
  171. data/config.json +34 -0
  172. data/lib/toaster/api.rb +447 -0
  173. data/lib/toaster/chef/chef_listener.rb +514 -0
  174. data/lib/toaster/chef/chef_node_inspector.rb +165 -0
  175. data/lib/toaster/chef/chef_util.rb +865 -0
  176. data/lib/toaster/chef/failsafe_resource_parser.rb +140 -0
  177. data/lib/toaster/chef/resource_inspector.rb +536 -0
  178. data/lib/toaster/db/cache.rb +98 -0
  179. data/lib/toaster/db/cached_db.rb +53 -0
  180. data/lib/toaster/db/cgi_session_cache.rb +209 -0
  181. data/lib/toaster/db/db.rb +98 -0
  182. data/lib/toaster/db/mysql.rb +18 -0
  183. data/lib/toaster/db/ram_cache.rb +203 -0
  184. data/lib/toaster/markup/jdom-1.1.jar +0 -0
  185. data/lib/toaster/markup/jdom-b7.jar +0 -0
  186. data/lib/toaster/markup/markup_util.rb +437 -0
  187. data/lib/toaster/markup/vmtools-utils-0.5.jar +0 -0
  188. data/lib/toaster/markup/xmldiff.sh +5 -0
  189. data/lib/toaster/model/additional_property.rb +11 -0
  190. data/lib/toaster/model/automation.rb +218 -0
  191. data/lib/toaster/model/automation_attribute.rb +13 -0
  192. data/lib/toaster/model/automation_run.rb +104 -0
  193. data/lib/toaster/model/ignore_property.rb +11 -0
  194. data/lib/toaster/model/key_value_pair.rb +59 -0
  195. data/lib/toaster/model/run_attribute.rb +17 -0
  196. data/lib/toaster/model/state.rb +17 -0
  197. data/lib/toaster/model/state_change.rb +79 -0
  198. data/lib/toaster/model/task.rb +292 -0
  199. data/lib/toaster/model/task_execution.rb +76 -0
  200. data/lib/toaster/model/task_parameter.rb +66 -0
  201. data/lib/toaster/model/user.rb +32 -0
  202. data/lib/toaster/ohai/_disabled_/network_ports.rb +81 -0
  203. data/lib/toaster/ohai/apache/apache.rb +48 -0
  204. data/lib/toaster/ohai/cron/cron.rb +32 -0
  205. data/lib/toaster/ohai/files/_meta.rb +30 -0
  206. data/lib/toaster/ohai/files/files.rb +20 -0
  207. data/lib/toaster/ohai/gems/gems.rb +19 -0
  208. data/lib/toaster/ohai/groups/groups.rb +20 -0
  209. data/lib/toaster/ohai/iptables/iptables.rb +48 -0
  210. data/lib/toaster/ohai/mounts/mounts.rb +26 -0
  211. data/lib/toaster/ohai/mysql/mysql.rb +31 -0
  212. data/lib/toaster/ohai/packages/_meta.rb +86 -0
  213. data/lib/toaster/ohai/packages/packages.rb +33 -0
  214. data/lib/toaster/ohai/ports/ports.rb +21 -0
  215. data/lib/toaster/ohai/routes/routes.rb +25 -0
  216. data/lib/toaster/ohai/services/services.rb +42 -0
  217. data/lib/toaster/ohai/users/users.rb +17 -0
  218. data/lib/toaster/state/convergence.rb +197 -0
  219. data/lib/toaster/state/idempotence.rb +192 -0
  220. data/lib/toaster/state/ptrace_util.rb +48 -0
  221. data/lib/toaster/state/state_node.rb +105 -0
  222. data/lib/toaster/state/state_transition.rb +38 -0
  223. data/lib/toaster/state/state_transition_graph.rb +701 -0
  224. data/lib/toaster/state/syscall_tracer.rb +317 -0
  225. data/lib/toaster/state/system_state.rb +349 -0
  226. data/lib/toaster/state/transition_edge.rb +65 -0
  227. data/lib/toaster/test/test_attribute.rb +19 -0
  228. data/lib/toaster/test/test_case.rb +175 -0
  229. data/lib/toaster/test/test_coverage.rb +147 -0
  230. data/lib/toaster/test/test_coverage_goal.rb +108 -0
  231. data/lib/toaster/test/test_generator.rb +246 -0
  232. data/lib/toaster/test/test_orchestrator.rb +165 -0
  233. data/lib/toaster/test/test_result.rb +73 -0
  234. data/lib/toaster/test/test_runner.rb +394 -0
  235. data/lib/toaster/test/test_suite.rb +151 -0
  236. data/lib/toaster/test_manager.rb +281 -0
  237. data/lib/toaster/toaster_app_service.rb +141 -0
  238. data/lib/toaster/util/blocking_map.rb +80 -0
  239. data/lib/toaster/util/combinatorial.rb +58 -0
  240. data/lib/toaster/util/config.rb +103 -0
  241. data/lib/toaster/util/docker.rb +71 -0
  242. data/lib/toaster/util/logging.rb +19 -0
  243. data/lib/toaster/util/lxc.rb +383 -0
  244. data/lib/toaster/util/mem_dump.rb +38 -0
  245. data/lib/toaster/util/proxy.rb +23 -0
  246. data/lib/toaster/util/timestamp.rb +131 -0
  247. data/lib/toaster/util/util.rb +437 -0
  248. data/lib/toaster/web_ui.rb +7 -0
  249. data/webapp/Gemfile +46 -0
  250. data/webapp/Gemfile.lock +237 -0
  251. data/webapp/Rakefile +6 -0
  252. data/webapp/app/assets/fonts/font.woff +0 -0
  253. data/webapp/app/assets/images/final_state.gif +0 -0
  254. data/webapp/app/assets/images/initial_state.gif +0 -0
  255. data/webapp/app/assets/images/loading.gif +0 -0
  256. data/webapp/app/assets/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  257. data/webapp/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  258. data/webapp/app/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  259. data/webapp/app/assets/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  260. data/webapp/app/assets/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  261. data/webapp/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  262. data/webapp/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  263. data/webapp/app/assets/images/ui-icons_222222_256x240.png +0 -0
  264. data/webapp/app/assets/javascripts/analysis.js.coffee +3 -0
  265. data/webapp/app/assets/javascripts/application.js +16 -0
  266. data/webapp/app/assets/javascripts/execs.js.coffee +3 -0
  267. data/webapp/app/assets/javascripts/graph.js +441 -0
  268. data/webapp/app/assets/javascripts/jquery-1.7.2.js +9404 -0
  269. data/webapp/app/assets/javascripts/jquery-ui-1.8.22.js +11529 -0
  270. data/webapp/app/assets/javascripts/jquery.cookie.js +96 -0
  271. data/webapp/app/assets/javascripts/jquery.hotkeys.js +99 -0
  272. data/webapp/app/assets/javascripts/jquery.jstree.js +4551 -0
  273. data/webapp/app/assets/javascripts/jsPlumb/jquery.jsPlumb-1.3.14-all-min.js +1 -0
  274. data/webapp/app/assets/javascripts/jstree.util.js +53 -0
  275. data/webapp/app/assets/javascripts/scripts.js.coffee +3 -0
  276. data/webapp/app/assets/javascripts/settings.js.coffee +3 -0
  277. data/webapp/app/assets/javascripts/test.js.coffee +3 -0
  278. data/webapp/app/assets/javascripts/util.js.coffee +3 -0
  279. data/webapp/app/assets/stylesheets/analysis.css.scss +3 -0
  280. data/webapp/app/assets/stylesheets/application.css +49 -0
  281. data/webapp/app/assets/stylesheets/execs.css.scss +3 -0
  282. data/webapp/app/assets/stylesheets/graph.css +159 -0
  283. data/webapp/app/assets/stylesheets/jquery-ui-1.8.6.custom.css +572 -0
  284. data/webapp/app/assets/stylesheets/layout.css +151 -0
  285. data/webapp/app/assets/stylesheets/menu.css +186 -0
  286. data/webapp/app/assets/stylesheets/reset.css +41 -0
  287. data/webapp/app/assets/stylesheets/scripts.css.scss +3 -0
  288. data/webapp/app/assets/stylesheets/settings.css.scss +3 -0
  289. data/webapp/app/assets/stylesheets/test.css.scss +3 -0
  290. data/webapp/app/assets/stylesheets/util.css.scss +3 -0
  291. data/webapp/app/assets/stylesheets/websymbols/websymbols-regular-webfont.eot +0 -0
  292. data/webapp/app/assets/stylesheets/websymbols/websymbols-regular-webfont.svg +1 -0
  293. data/webapp/app/assets/stylesheets/websymbols/websymbols-regular-webfont.ttf +0 -0
  294. data/webapp/app/assets/stylesheets/websymbols/websymbols-regular-webfont.woff +0 -0
  295. data/webapp/app/controllers/analysis_controller.rb +7 -0
  296. data/webapp/app/controllers/application_controller.rb +14 -0
  297. data/webapp/app/controllers/base_controller.rb +91 -0
  298. data/webapp/app/controllers/execs_controller.rb +59 -0
  299. data/webapp/app/controllers/graph_controller.rb +17 -0
  300. data/webapp/app/controllers/scripts_controller.rb +166 -0
  301. data/webapp/app/controllers/settings_controller.rb +10 -0
  302. data/webapp/app/controllers/test_controller.rb +127 -0
  303. data/webapp/app/controllers/util_controller.rb +6 -0
  304. data/webapp/app/helpers/analysis_helper.rb +2 -0
  305. data/webapp/app/helpers/application_helper.rb +2 -0
  306. data/webapp/app/helpers/automations_helper.rb +2 -0
  307. data/webapp/app/helpers/execs_helper.rb +2 -0
  308. data/webapp/app/helpers/scripts_helper.rb +2 -0
  309. data/webapp/app/helpers/settings_helper.rb +2 -0
  310. data/webapp/app/helpers/test_helper.rb +2 -0
  311. data/webapp/app/helpers/util_helper.rb +2 -0
  312. data/webapp/app/views/analysis/convergence.html.erb +156 -0
  313. data/webapp/app/views/analysis/idempotence.html.erb +2 -0
  314. data/webapp/app/views/execs/automation_runs.html.erb +98 -0
  315. data/webapp/app/views/execs/task_executions.html.erb +154 -0
  316. data/webapp/app/views/graph/graph_frame.html +101 -0
  317. data/webapp/app/views/layouts/application.html.erb +114 -0
  318. data/webapp/app/views/scripts/edit.html.erb +58 -0
  319. data/webapp/app/views/scripts/graph.html.erb +75 -0
  320. data/webapp/app/views/scripts/import_chef.html.erb +104 -0
  321. data/webapp/app/views/scripts/scripts.html.erb +116 -0
  322. data/webapp/app/views/scripts/tasks.html.erb +139 -0
  323. data/webapp/app/views/settings/containers.html.erb +161 -0
  324. data/webapp/app/views/settings/index.html.erb +51 -0
  325. data/webapp/app/views/test/cases.html.erb +2 -0
  326. data/webapp/app/views/test/gen.html.erb +229 -0
  327. data/webapp/app/views/test/suites.html.erb +205 -0
  328. data/webapp/app/views/util/chef.html.erb +53 -0
  329. data/webapp/bin/bundle +3 -0
  330. data/webapp/bin/rails +4 -0
  331. data/webapp/bin/rake +4 -0
  332. data/webapp/config/application.rb +28 -0
  333. data/webapp/config/boot.rb +18 -0
  334. data/webapp/config/database.yml +42 -0
  335. data/webapp/config/environment.rb +5 -0
  336. data/webapp/config/environments/development.rb +35 -0
  337. data/webapp/config/environments/production.rb +80 -0
  338. data/webapp/config/environments/test.rb +36 -0
  339. data/webapp/config/initializers/backtrace_silencers.rb +7 -0
  340. data/webapp/config/initializers/devise.rb +256 -0
  341. data/webapp/config/initializers/filter_parameter_logging.rb +4 -0
  342. data/webapp/config/initializers/inflections.rb +16 -0
  343. data/webapp/config/initializers/mime_types.rb +5 -0
  344. data/webapp/config/initializers/patches.rb +13 -0
  345. data/webapp/config/initializers/secret_token.rb +12 -0
  346. data/webapp/config/initializers/session_store.rb +6 -0
  347. data/webapp/config/initializers/wrap_parameters.rb +16 -0
  348. data/webapp/config/locales/devise.en.yml +59 -0
  349. data/webapp/config/locales/en.yml +23 -0
  350. data/webapp/config/routes.rb +113 -0
  351. data/webapp/config.ru +4 -0
  352. data/webapp/db/development.sqlite3 +0 -0
  353. data/webapp/db/migrate/20140624002037_devise_create_users.rb +42 -0
  354. data/webapp/db/migrate/20140628002058_create_all_tables.rb +159 -0
  355. data/webapp/db/schema.rb +162 -0
  356. data/webapp/db/seeds.rb +7 -0
  357. data/webapp/log/development.log +167823 -0
  358. data/webapp/public/404.html +58 -0
  359. data/webapp/public/422.html +58 -0
  360. data/webapp/public/500.html +57 -0
  361. data/webapp/public/favicon.ico +0 -0
  362. data/webapp/public/robots.txt +5 -0
  363. data/webapp/test/controllers/analysis_controller_test.rb +14 -0
  364. data/webapp/test/controllers/automations_controller_test.rb +49 -0
  365. data/webapp/test/controllers/execs_controller_test.rb +9 -0
  366. data/webapp/test/controllers/executions_controller_test.rb +9 -0
  367. data/webapp/test/controllers/runs_controller_test.rb +7 -0
  368. data/webapp/test/controllers/scripts_controller_test.rb +9 -0
  369. data/webapp/test/controllers/settings_controller_test.rb +9 -0
  370. data/webapp/test/controllers/test_controller_test.rb +14 -0
  371. data/webapp/test/controllers/util_controller_test.rb +9 -0
  372. data/webapp/test/fixtures/users.yml +11 -0
  373. data/webapp/test/helpers/analysis_helper_test.rb +4 -0
  374. data/webapp/test/helpers/automations_helper_test.rb +4 -0
  375. data/webapp/test/helpers/execs_helper_test.rb +4 -0
  376. data/webapp/test/helpers/executions_helper_test.rb +4 -0
  377. data/webapp/test/helpers/runs_helper_test.rb +4 -0
  378. data/webapp/test/helpers/scripts_helper_test.rb +4 -0
  379. data/webapp/test/helpers/settings_helper_test.rb +4 -0
  380. data/webapp/test/helpers/test_helper_test.rb +4 -0
  381. data/webapp/test/helpers/util_helper_test.rb +4 -0
  382. data/webapp/test/models/user_test.rb +7 -0
  383. data/webapp/test/test_helper.rb +15 -0
  384. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/analysis.css.scssc +0 -0
  385. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/automations.css.scssc +0 -0
  386. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/execs.css.scssc +0 -0
  387. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/executions.css.scssc +0 -0
  388. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/scripts.css.scssc +0 -0
  389. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/settings.css.scssc +0 -0
  390. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/test.css.scssc +0 -0
  391. data/webapp/tmp/cache/assets/development/sass/1330a34c6b24ed44c0f194c03246f627289a985a/util.css.scssc +0 -0
  392. data/webapp/tmp/cache/assets/development/sprockets/06a1cdb3d5472dd126cffc18f548c342 +0 -0
  393. data/webapp/tmp/cache/assets/development/sprockets/0dc0562647e703ca0535da3b9fcad796 +0 -0
  394. data/webapp/tmp/cache/assets/development/sprockets/113f1c71cb0f2a786729477989122982 +0 -0
  395. data/webapp/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  396. data/webapp/tmp/cache/assets/development/sprockets/151a1c6b128721d8923ba0c380a2af17 +0 -0
  397. data/webapp/tmp/cache/assets/development/sprockets/1722fb8a6daad566c8a6d5ef31969459 +0 -0
  398. data/webapp/tmp/cache/assets/development/sprockets/1a05555c46560c6b246aa0a996679bc6 +0 -0
  399. data/webapp/tmp/cache/assets/development/sprockets/1cb7fb6aa8bd1c2b7df8f7c52442e345 +0 -0
  400. data/webapp/tmp/cache/assets/development/sprockets/1d76f803b0a83adc5ea7e7c848657967 +0 -0
  401. data/webapp/tmp/cache/assets/development/sprockets/200152f95fc464d69c425ed8fdc2fbcc +0 -0
  402. data/webapp/tmp/cache/assets/development/sprockets/2049c8927ebd046c8a3291f81041d5f1 +0 -0
  403. data/webapp/tmp/cache/assets/development/sprockets/207907100aabd08a6767e39a95b364e3 +0 -0
  404. data/webapp/tmp/cache/assets/development/sprockets/249e2d4db815922fc72419c4a1407caf +0 -0
  405. data/webapp/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  406. data/webapp/tmp/cache/assets/development/sprockets/3034e4c334b1ebed9433e33050555f18 +0 -0
  407. data/webapp/tmp/cache/assets/development/sprockets/316c88d859cc3666044e51b1dd89e872 +0 -0
  408. data/webapp/tmp/cache/assets/development/sprockets/347f43d816178c8ba11a28a771696924 +0 -0
  409. data/webapp/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  410. data/webapp/tmp/cache/assets/development/sprockets/36ab92a3b8d527ed1eff0944b5f1263d +0 -0
  411. data/webapp/tmp/cache/assets/development/sprockets/3893b852ff196f05ff6ca8e38bb2237f +0 -0
  412. data/webapp/tmp/cache/assets/development/sprockets/3c358bd5fa32d151c7aa44971dd9b96f +0 -0
  413. data/webapp/tmp/cache/assets/development/sprockets/3ce88fad85146e0bed233f5419c24d29 +0 -0
  414. data/webapp/tmp/cache/assets/development/sprockets/3dabcb7c89677292e1e019a9bac446e5 +0 -0
  415. data/webapp/tmp/cache/assets/development/sprockets/4116fac01e6d379ede37af725a592477 +0 -0
  416. data/webapp/tmp/cache/assets/development/sprockets/42628e032b8f0b16a5ba01a1fcc7b6d7 +0 -0
  417. data/webapp/tmp/cache/assets/development/sprockets/437b258a98e8fe2c87fa8e24b7ce9abf +0 -0
  418. data/webapp/tmp/cache/assets/development/sprockets/43e98ed206f05738ae305e7e1b09a840 +0 -0
  419. data/webapp/tmp/cache/assets/development/sprockets/468da8933ba442b88b2f4b0e40c2ac30 +0 -0
  420. data/webapp/tmp/cache/assets/development/sprockets/48ef3fa68e9084c7cfa84e525decc318 +0 -0
  421. data/webapp/tmp/cache/assets/development/sprockets/4b68dcc030691297629a7156361018dc +0 -0
  422. data/webapp/tmp/cache/assets/development/sprockets/50368b1bd77c9130d821cbad89ab83ac +0 -0
  423. data/webapp/tmp/cache/assets/development/sprockets/511a980807b8d16fc3fb839991041865 +0 -0
  424. data/webapp/tmp/cache/assets/development/sprockets/516a0973874a73d0d15feec9448f7466 +0 -0
  425. data/webapp/tmp/cache/assets/development/sprockets/569e21b0ca1a230c7880f8d7a8b1febf +0 -0
  426. data/webapp/tmp/cache/assets/development/sprockets/5b5543d2ed5bed100f1739fc12ebf2c5 +0 -0
  427. data/webapp/tmp/cache/assets/development/sprockets/5c10dbffb918651dc0498579ba9a6853 +0 -0
  428. data/webapp/tmp/cache/assets/development/sprockets/5c366b5370316b3e9c03d1a58cb5eb44 +0 -0
  429. data/webapp/tmp/cache/assets/development/sprockets/5fcb9466e0d5cb0e31b35957fe2d3901 +0 -0
  430. data/webapp/tmp/cache/assets/development/sprockets/61da396fb86c5ecd844a2d83ac759b4b +0 -0
  431. data/webapp/tmp/cache/assets/development/sprockets/624ba87170059068845a4651b3cd2c7c +0 -0
  432. data/webapp/tmp/cache/assets/development/sprockets/6391f61b6121feda70da6d0a22520fdd +0 -0
  433. data/webapp/tmp/cache/assets/development/sprockets/653a981829c12a52bd57b7918168a148 +0 -0
  434. data/webapp/tmp/cache/assets/development/sprockets/66479793d9e5683d9f7fa67522d1962d +0 -0
  435. data/webapp/tmp/cache/assets/development/sprockets/69c589bd224ee0df5ab02e4568e0ab39 +0 -0
  436. data/webapp/tmp/cache/assets/development/sprockets/6dd7c564897b7e66eecbb180baeef2c6 +0 -0
  437. data/webapp/tmp/cache/assets/development/sprockets/6e2b92a4e6966cb78e63207bc7888391 +0 -0
  438. data/webapp/tmp/cache/assets/development/sprockets/70adb410f59a0edc5aea8c2b2ef8a441 +0 -0
  439. data/webapp/tmp/cache/assets/development/sprockets/72cbfd5bf33945bcce154f7a4feaf04d +0 -0
  440. data/webapp/tmp/cache/assets/development/sprockets/740ee9d355ada8cf5e9beb620f2cd5cc +0 -0
  441. data/webapp/tmp/cache/assets/development/sprockets/74770a22b5d1b0b3bc3527da83706f96 +0 -0
  442. data/webapp/tmp/cache/assets/development/sprockets/759bf97655af50852816720db7b59fcb +0 -0
  443. data/webapp/tmp/cache/assets/development/sprockets/76e9c19246c684413a02af695fa2b0bc +0 -0
  444. data/webapp/tmp/cache/assets/development/sprockets/7728beeace48ca12e336d2bce0158871 +0 -0
  445. data/webapp/tmp/cache/assets/development/sprockets/77f49730c7b689f75a2e174fbd3ace2a +0 -0
  446. data/webapp/tmp/cache/assets/development/sprockets/78021a57030fd36cf82699aad9910b26 +0 -0
  447. data/webapp/tmp/cache/assets/development/sprockets/796b349b06da691fe5f069f9e3947fcb +0 -0
  448. data/webapp/tmp/cache/assets/development/sprockets/79e7505c70697cc7d34d4a8351c3b840 +0 -0
  449. data/webapp/tmp/cache/assets/development/sprockets/7b2b7d9034fc7b77daf5da1436667e6f +0 -0
  450. data/webapp/tmp/cache/assets/development/sprockets/7c2ea2ca2cdd89b062bf23f44e8f599c +0 -0
  451. data/webapp/tmp/cache/assets/development/sprockets/7ea112af55e6df12cdff377052b71420 +0 -0
  452. data/webapp/tmp/cache/assets/development/sprockets/7f27632588dd316836b009a621c0176c +0 -0
  453. data/webapp/tmp/cache/assets/development/sprockets/7fcef9f644290dea8d0e4bf13f6bb8e9 +0 -0
  454. data/webapp/tmp/cache/assets/development/sprockets/81c6bf67419a29257ed79f442c24907d +0 -0
  455. data/webapp/tmp/cache/assets/development/sprockets/83656ce9260eb473c1654420e0180167 +0 -0
  456. data/webapp/tmp/cache/assets/development/sprockets/83e8bdddefc2dce069b56e6650135397 +0 -0
  457. data/webapp/tmp/cache/assets/development/sprockets/880c796f41e5d67ae68ed239acfc91e3 +0 -0
  458. data/webapp/tmp/cache/assets/development/sprockets/8c1c39dd537d2c9990fe9c70a5646b06 +0 -0
  459. data/webapp/tmp/cache/assets/development/sprockets/8d763042da5254015767385ce324b348 +0 -0
  460. data/webapp/tmp/cache/assets/development/sprockets/91e1ccbf65ff4d9b0f42b1159796bcf2 +0 -0
  461. data/webapp/tmp/cache/assets/development/sprockets/92cdfac7698b6bb68983cf317c1cedef +0 -0
  462. data/webapp/tmp/cache/assets/development/sprockets/94cab8cbc120e152ce4c444492a3fc1d +0 -0
  463. data/webapp/tmp/cache/assets/development/sprockets/96b918c3c041b6a089c8adc870fa3aaa +0 -0
  464. data/webapp/tmp/cache/assets/development/sprockets/97cbe306627b432ab3bfb52416690d1d +0 -0
  465. data/webapp/tmp/cache/assets/development/sprockets/98da83d396c0c00eb03937ecbc2e6bfa +0 -0
  466. data/webapp/tmp/cache/assets/development/sprockets/9db04db20ec9c4a0f84ed01caa5e6e2b +0 -0
  467. data/webapp/tmp/cache/assets/development/sprockets/9dc1c251f50c828fae95d6107619c53e +0 -0
  468. data/webapp/tmp/cache/assets/development/sprockets/9e91711ab34bbf89ad1cfb4351027d36 +0 -0
  469. data/webapp/tmp/cache/assets/development/sprockets/9f587881f98b328b656e6456178418b5 +0 -0
  470. data/webapp/tmp/cache/assets/development/sprockets/9fc981560caba00621bb95d0974ad076 +0 -0
  471. data/webapp/tmp/cache/assets/development/sprockets/9fd4385f8fda99f3ddd3f133a89231d1 +0 -0
  472. data/webapp/tmp/cache/assets/development/sprockets/a32ab71649e3db15eca95bcc3a7588da +0 -0
  473. data/webapp/tmp/cache/assets/development/sprockets/a497c976969bdbb1f69875358d39d3b5 +0 -0
  474. data/webapp/tmp/cache/assets/development/sprockets/b06058d455770c1d9db6b6670bc4bf4d +0 -0
  475. data/webapp/tmp/cache/assets/development/sprockets/b3da405f1e68470ad6146a1322f2438c +0 -0
  476. data/webapp/tmp/cache/assets/development/sprockets/b4ba5853663f6721d15942ce08dd76bf +0 -0
  477. data/webapp/tmp/cache/assets/development/sprockets/b6f1534bcdbff92a16c85487f363235a +0 -0
  478. data/webapp/tmp/cache/assets/development/sprockets/b9c57b9750f8af3551b1a5d9e27f0a92 +0 -0
  479. data/webapp/tmp/cache/assets/development/sprockets/bb5be6a0ee889a15214e2442aee8c6e1 +0 -0
  480. data/webapp/tmp/cache/assets/development/sprockets/bc80a81b2d67b5ad40f3c7a2bb6e6f22 +0 -0
  481. data/webapp/tmp/cache/assets/development/sprockets/bfaba27d5ce71d292f453659b0755511 +0 -0
  482. data/webapp/tmp/cache/assets/development/sprockets/bfac6cd2984fbd5e0d762389e3c37164 +0 -0
  483. data/webapp/tmp/cache/assets/development/sprockets/c17bec9e3b5db6d8385c3d6eb362e628 +0 -0
  484. data/webapp/tmp/cache/assets/development/sprockets/c1a9eceddc0a1e41eb2992e9204f71e6 +0 -0
  485. data/webapp/tmp/cache/assets/development/sprockets/c50cd87be040044504b5c3fde1047e24 +0 -0
  486. data/webapp/tmp/cache/assets/development/sprockets/c5907cfd07b24ad19b8c80e8af618a57 +0 -0
  487. data/webapp/tmp/cache/assets/development/sprockets/c8da5594caf845a183dd1c6cd45c5433 +0 -0
  488. data/webapp/tmp/cache/assets/development/sprockets/cbc6968ed49fa14db439a64dd0a46abc +0 -0
  489. data/webapp/tmp/cache/assets/development/sprockets/cedf710ee090647b81c08675583eca62 +0 -0
  490. data/webapp/tmp/cache/assets/development/sprockets/cf1e3cebfad43293c3c470a5e437ebc9 +0 -0
  491. data/webapp/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  492. data/webapp/tmp/cache/assets/development/sprockets/d5a14f86bb4b422fdd8eb4722d966c9a +0 -0
  493. data/webapp/tmp/cache/assets/development/sprockets/d66b9cdd3230f9e5354e495e17097c49 +0 -0
  494. data/webapp/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  495. data/webapp/tmp/cache/assets/development/sprockets/dfa0ed87d851222fe58ada385e3f037d +0 -0
  496. data/webapp/tmp/cache/assets/development/sprockets/e1aa402390382db4d97b27cb094485fa +0 -0
  497. data/webapp/tmp/cache/assets/development/sprockets/e4f1db35ef9d9fbbf53252a44e381eb8 +0 -0
  498. data/webapp/tmp/cache/assets/development/sprockets/e57eb6c1ad51fd8c13afc0e719a259b5 +0 -0
  499. data/webapp/tmp/cache/assets/development/sprockets/e7c37b542e914e392ec326190cea1aa2 +0 -0
  500. data/webapp/tmp/cache/assets/development/sprockets/e923d7e19c216d4a924831f3896e007a +0 -0
  501. data/webapp/tmp/cache/assets/development/sprockets/e96a414a621483bbc89e73f11be5e7b4 +0 -0
  502. data/webapp/tmp/cache/assets/development/sprockets/eafcfc3d2561c18743c1b32f0f710c68 +0 -0
  503. data/webapp/tmp/cache/assets/development/sprockets/ecdd630f5466d45a2afa7515aaa5fc3b +0 -0
  504. data/webapp/tmp/cache/assets/development/sprockets/ee60a0a35d60cff425373970547694bd +0 -0
  505. data/webapp/tmp/cache/assets/development/sprockets/eee2c36b75709b0c3797c2a151fdd5d3 +0 -0
  506. data/webapp/tmp/cache/assets/development/sprockets/f104b66c0f89b453d0c8c73980fbab18 +0 -0
  507. data/webapp/tmp/cache/assets/development/sprockets/f26d1bc86590415685e9836ad75d1774 +0 -0
  508. data/webapp/tmp/cache/assets/development/sprockets/f4081e868eb565527099dba2c9d8c4de +0 -0
  509. data/webapp/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  510. data/webapp/tmp/cache/assets/development/sprockets/f813030b97e30415ad276bbd1f7e1fb4 +0 -0
  511. data/webapp/tmp/cache/assets/development/sprockets/f8e3e28bc9640c25da58aea46c3ac4b3 +0 -0
  512. data/webapp/tmp/cache/assets/development/sprockets/f9169d0a8b70eaf95de52b3c6ad51105 +0 -0
  513. data/webapp/tmp/cache/assets/development/sprockets/f939450f7a481e3fbeb158b81b39c624 +0 -0
  514. data/webapp/tmp/cache/assets/development/sprockets/fce73296b8298ac4c74b3e95cde4dfdb +0 -0
  515. metadata +941 -0
@@ -0,0 +1,268 @@
1
+ yum Cookbook
2
+ ============
3
+
4
+ The Yum cookbook exposes the `yum_globalconfig` and `yum_repository`
5
+ resources that allows a user to both control global behavior and make
6
+ individual Yum repositories available for use. These resources aim to
7
+ allow the user to configure all options listed in the `yum.conf` man
8
+ page, found at http://linux.die.net/man/5/yum.conf
9
+
10
+ NOTES
11
+ -----
12
+ WARNING: Yum cookbook version 3.0.0 and above contain non-backwards
13
+ compatible breaking changes and will not work with cookbooks written
14
+ against the 2.x and 1.x series. Changes have been made to the
15
+ yum_repository resource, and the yum_key resource has been eliminated
16
+ entirely. Recipes have been eliminated and moved into their own
17
+ cookbooks. Please lock yum to the 2.x series in your Chef environments
18
+ until all dependent cookbooks have been ported.
19
+
20
+ Requirements
21
+ ------------
22
+ * Chef 11 or higher
23
+ * Ruby 1.9 (preferably from the Chef full-stack installer)
24
+ * RHEL5, RHEL6, or other platforms within the family
25
+
26
+ Resources/Providers
27
+ -------------------
28
+ ### yum_repository
29
+ This resource manages a yum repository configuration file at
30
+ /etc/yum.repos.d/`repositoryid`.repo. When the file needs to be
31
+ repaired, it calls yum-makecache so packages in the repo become
32
+ available to the next resource.
33
+
34
+ #### Example
35
+ ``` ruby
36
+ # add the Zenoss repository
37
+ yum_repository 'zenoss' do
38
+ description "Zenoss Stable repo"
39
+ baseurl "http://dev.zenoss.com/yum/stable/"
40
+ gpgkey 'http://dev.zenoss.com/yum/RPM-GPG-KEY-zenoss'
41
+ action :create
42
+ end
43
+
44
+ # add the EPEL repo
45
+ yum_repository 'epel' do
46
+ description 'Extra Packages for Enterprise Linux'
47
+ mirrorlist 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch'
48
+ gpgkey 'http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6'
49
+ action :create
50
+ end
51
+ ```
52
+
53
+ ``` ruby
54
+ # delete CentOS-Media repo
55
+ yum_repository 'CentOS-Media' do
56
+ action :delete
57
+ end
58
+ ```
59
+
60
+ #### Actions
61
+ - `:create` - creates a repository file and builds the repository listing
62
+ - `:delete` - deletes the repository file
63
+
64
+ #### Parameters
65
+ * `baseurl` - Must be a URL to the directory where the yum repository's
66
+ 'repodata' directory lives. Can be an http://, ftp:// or file://
67
+ URL. You can specify multiple URLs in one baseurl statement.
68
+ * `cost` - relative cost of accessing this repository. Useful for
69
+ weighing one repo's packages as greater/less than any other.
70
+ defaults to 1000
71
+ * `description` - Maps to the 'name' parameter in a repository .conf.
72
+ Descriptive name for the repository channel. This directive must be
73
+ specified.
74
+ * `enabled` - Either `true` or `false`. This tells yum whether or not use this repository.
75
+ * `enablegroups` - Either `true` or `false`. Determines whether yum
76
+ will allow the use of package groups for this repository. Default is
77
+ `true` (package groups are allowed).
78
+ * `exclude` - List of packages to exclude from updates or installs. This
79
+ should be a space separated list in a single string. Shell globs using wildcards (eg. *
80
+ and ?) are allowed.
81
+ * `failovermethod` - Either 'roundrobin' or 'priority'.
82
+ * `fastestmirror_enabled` - Either `true` or `false`
83
+ * `gpgcheck` - Either `true` or `false`. This tells yum whether or not
84
+ it should perform a GPG signature check on packages. When this is
85
+ set in the [main] section it sets the default for all repositories.
86
+ The default is `true`.
87
+ * `gpgkey` - A URL pointing to the ASCII-armored GPG key file for the
88
+ repository. This option is used if yum needs a public key to verify
89
+ a package and the required key hasn't been imported into the RPM
90
+ database. If this option is set, yum will automatically import the
91
+ key from the specified URL.
92
+ * `http_caching` - Either 'all', 'packages', or 'none'. Determines how
93
+ upstream HTTP caches are instructed to handle any HTTP downloads
94
+ that Yum does. Defaults to 'all'
95
+ * `includepkgs` - Inverse of exclude. This is a list of packages you
96
+ want to use from a repository. If this option lists only one package
97
+ then that is all yum will ever see from the repository. Defaults to
98
+ an empty list.
99
+ * `keepalive` - Either `true` or `false`. This tells yum whether or not
100
+ HTTP/1.1 keepalive should be used with this repository.
101
+ * `max_retries` - Set the number of times any attempt to retrieve a file
102
+ should retry before returning an error. Setting this to '0' makes
103
+ yum try forever. Default is '10'.
104
+ * `metadata_expire` - Time (in seconds) after which the metadata will
105
+ expire. So that if the current metadata downloaded is less than this
106
+ many seconds old then yum will not update the metadata against the
107
+ repository. If you find that yum is not downloading information on
108
+ updates as often as you would like lower the value of this option.
109
+ You can also change from the default of using seconds to using days,
110
+ hours or minutes by appending a d, h or m respectively. The default
111
+ is 6 hours, to compliment yum-updatesd running once an hour. It's
112
+ also possible to use the word "never", meaning that the metadata
113
+ will never expire. Note that when using a metalink file the metalink
114
+ must always be newer than the metadata for the repository, due to
115
+ the validation, so this timeout also applies to the metalink file.
116
+ * `mirrorlist` - Specifies a URL to a file containing a list of
117
+ baseurls. This can be used instead of or with the baseurl option.
118
+ Substitution variables, described below, can be used with this
119
+ option. As a special hack is the mirrorlist URL contains the word
120
+ "metalink" then the value of mirrorlist is copied to metalink (if
121
+ metalink is not set)
122
+ * `mirror_expire` - Time (in seconds) after which the mirrorlist locally
123
+ cached will expire. If the current mirrorlist is less than this many
124
+ seconds old then yum will not download another copy of the
125
+ mirrorlist, it has the same extra format as metadata_expire. If you
126
+ find that yum is not downloading the mirrorlists as often as you
127
+ would like lower the value of this option.
128
+ * `mirrorlist_expire` - alias for mirror_expire
129
+ * `priority` - When the yum-priorities plug-in is enabled, you set
130
+ priorities on repository entries, where N is an integer from 1 to 99. The
131
+ default priority for repositories is 99.
132
+ * `proxy` - URL to the proxy server that yum should use.
133
+ * `proxy_username` - username to use for proxy
134
+ * `proxy_password` - password for this proxy
135
+ * `report_instanceid` - Report instance ID when using Amazon Linux AMIs
136
+ and repositories
137
+ * `repositoryid` - Must be a unique name for each repository, one word.
138
+ Defaults to name attribute.
139
+ * `source` - Use a custom template source instead of the default one
140
+ in the yum cookbook
141
+ * `sslcacert` - Path to the directory containing the databases of the
142
+ certificate authorities yum should use to verify SSL certificates.
143
+ Defaults to none - uses system default
144
+ * `sslclientcert` - Path to the SSL client certificate yum should use to
145
+ connect to repos/remote sites Defaults to none.
146
+ * `sslclientkey` - Path to the SSL client key yum should use to connect
147
+ to repos/remote sites Defaults to none.
148
+ * `sslverify` - Either `true` or `false`. Determines if yum will verify SSL certificates/hosts. Defaults to `true`
149
+ * `timeout` - Number of seconds to wait for a connection before timing
150
+ out. Defaults to 30 seconds. This may be too short of a time for
151
+ extremely overloaded sites.
152
+
153
+ ### yum_globalconfig
154
+ This renders a template with global yum configuration parameters. The
155
+ default recipe uses it to render `/etc/yum.conf`. It is flexible
156
+ enough to be used in other scenarios, such as building RPMs in
157
+ isolation by modifying `installroot`.
158
+
159
+ #### Example
160
+ ``` ruby
161
+ yum_globalconfig '/my/chroot/etc/yum.conf' do
162
+ cachedir '/my/chroot/etc/yum.conf'
163
+ keepcache 'yes'
164
+ debuglevel '2'
165
+ installroot '/my/chroot'
166
+ action :create
167
+ end
168
+ ```
169
+
170
+ #### Parameters
171
+ `yum_globalconfig` can take most of the same parameters as a
172
+ `yum_repository`, plus more, too numerous to describe here. Below are
173
+ a few of the more commonly used ones. For a complete list, please
174
+ consult the `yum.conf` man page, found here:
175
+ http://linux.die.net/man/5/yum.conf
176
+
177
+ * `cachedir` - Directory where yum should store its cache and db
178
+ files. The default is '/var/cache/yum'.
179
+ * `keepcache` - Either `true` or `false`. Determines whether or not
180
+ yum keeps the cache of headers and packages after successful
181
+ installation. Default is `true` (keep files)
182
+ * `debuglevel` - Debug message output level. Practical range is 0-10.
183
+ Default is '2'.
184
+ * `exclude` - List of packages to exclude from updates or installs.
185
+ This should be a space separated list. Shell globs using wildcards
186
+ (eg. * and ?) are allowed.
187
+ * `installonlypkgs` = List of package provides that should only ever
188
+ be installed, never updated. Kernels in particular fall into this
189
+ category. Defaults to kernel, kernel-bigmem, kernel-enterprise,
190
+ kernel-smp, kernel-debug, kernel-unsupported, kernel-source,
191
+ kernel-devel, kernel-PAE, kernel-PAE-debug.
192
+ * `logfile` - Full directory and file name for where yum should write
193
+ its log file.
194
+ * `exactarch` - Either `true` or `false`. Set to `true` to make 'yum update' only
195
+ update the architectures of packages that you have installed. ie:
196
+ with this enabled yum will not install an i686 package to update an
197
+ x86_64 package. Default is `true`
198
+ * `gpgcheck` - Either `true` or `false`. This tells yum whether or not
199
+ it should perform a GPG signature check on the packages gotten from
200
+ this repository.
201
+
202
+ Recipes
203
+ -------
204
+ * `default` - Configures `yum_globalconfig[/etc/yum.conf]` with values
205
+ found in node attributes at `node['yum']['main']`
206
+
207
+ Attributes
208
+ ----------
209
+ The following attributes are set by default
210
+
211
+ ``` ruby
212
+ default['yum']['main']['cachedir'] = '/var/cache/yum/$basearch/$releasever'
213
+ default['yum']['main']['keepcache'] = false
214
+ default['yum']['main']['debuglevel'] = nil
215
+ default['yum']['main']['exclude'] = nil
216
+ default['yum']['main']['logfile'] = '/var/log/yum.log'
217
+ default['yum']['main']['exactarch'] = nil
218
+ default['yum']['main']['obsoletes'] = nil
219
+ default['yum']['main']['installonly_limit'] = nil
220
+ default['yum']['main']['installonlypkgs'] = nil
221
+ default['yum']['main']['installroot'] = nil
222
+ ```
223
+
224
+ Related Cookbooks
225
+ -----------------
226
+ Recipes from older versions of this cookbook have been moved
227
+ individual cookbooks. Recipes for managing platform yum configurations
228
+ and installing specific repositories can be found in one (or more!) of
229
+ the following cookbook.
230
+
231
+ * yum-centos
232
+ * yum-fedora
233
+ * yum-amazon
234
+ * yum-epel
235
+ * yum-elrepo
236
+ * yum-repoforge
237
+ * yum-ius
238
+ * yum-percona
239
+ * yum-pgdg
240
+
241
+ Usage
242
+ -----
243
+ Put `depends 'yum'` in your metadata.rb to gain access to the
244
+ yum_repository resource.
245
+
246
+ License & Authors
247
+ -----------------
248
+ - Author:: Eric G. Wolfe
249
+ - Author:: Matt Ray (<matt@getchef.com>)
250
+ - Author:: Joshua Timberman (<joshua@getchef.com>)
251
+ - Author:: Sean OMeara (<someara@getchef.com>)
252
+
253
+ ```text
254
+ Copyright:: 2011 Eric G. Wolfe
255
+ Copyright:: 2013 Chef
256
+
257
+ Licensed under the Apache License, Version 2.0 (the "License");
258
+ you may not use this file except in compliance with the License.
259
+ You may obtain a copy of the License at
260
+
261
+ http://www.apache.org/licenses/LICENSE-2.0
262
+
263
+ Unless required by applicable law or agreed to in writing, software
264
+ distributed under the License is distributed on an "AS IS" BASIS,
265
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
266
+ See the License for the specific language governing permissions and
267
+ limitations under the License.
268
+ ```
@@ -0,0 +1,97 @@
1
+ # http://linux.die.net/man/5/yum.conf
2
+ case node['platform_version'].to_i
3
+ when 5
4
+ default['yum']['main']['cachedir'] = '/var/cache/yum'
5
+ else
6
+ default['yum']['main']['cachedir'] = '/var/cache/yum/$basearch/$releasever'
7
+ end
8
+
9
+ case node['platform']
10
+ when 'amazon'
11
+ default['yum']['main']['distroverpkg'] = 'system-release'
12
+ when 'scientific'
13
+ default['yum']['main']['distroverpkg'] = 'sl-release'
14
+ else
15
+ default['yum']['main']['distroverpkg'] = "#{node['platform']}-release"
16
+ end
17
+
18
+ default['yum']['main']['alwaysprompt'] = nil # [TrueClass, FalseClass]
19
+ default['yum']['main']['assumeyes'] = nil # [TrueClass, FalseClass]
20
+ default['yum']['main']['bandwidth'] = nil # /^\d+$/
21
+ default['yum']['main']['bugtracker_url'] = nil # /.*/
22
+ default['yum']['main']['clean_requirements_on_remove'] = nil # [TrueClass, FalseClass]
23
+ default['yum']['main']['color'] = nil # %w{ always never }
24
+ default['yum']['main']['color_list_available_downgrade'] = nil # /.*/
25
+ default['yum']['main']['color_list_available_install'] = nil # /.*/
26
+ default['yum']['main']['color_list_available_reinstall'] = nil # /.*/
27
+ default['yum']['main']['color_list_available_upgrade'] = nil # /.*/
28
+ default['yum']['main']['color_list_installed_extra'] = nil # /.*/
29
+ default['yum']['main']['color_list_installed_newer'] = nil # /.*/
30
+ default['yum']['main']['color_list_installed_older'] = nil # /.*/
31
+ default['yum']['main']['color_list_installed_reinstall'] = nil # /.*/
32
+ default['yum']['main']['color_search_match'] = nil # /.*/
33
+ default['yum']['main']['color_update_installed'] = nil # /.*/
34
+ default['yum']['main']['color_update_local'] = nil # /.*/
35
+ default['yum']['main']['color_update_remote'] = nil # /.*/
36
+ default['yum']['main']['commands'] = nil # /.*/
37
+ default['yum']['main']['debuglevel'] = nil # /^\d+$/
38
+ default['yum']['main']['diskspacecheck'] = nil # [TrueClass, FalseClass]
39
+ default['yum']['main']['enable_group_conditionals'] = nil # [TrueClass, FalseClass]
40
+ default['yum']['main']['errorlevel'] = nil # /^\d+$/
41
+ default['yum']['main']['exactarch'] = nil # [TrueClass, FalseClass]
42
+ default['yum']['main']['exclude'] = nil # /.*/
43
+ default['yum']['main']['gpgcheck'] = true # [TrueClass, FalseClass]
44
+ default['yum']['main']['group_package_types'] = nil # /.*/
45
+ default['yum']['main']['groupremove_leaf_only'] = nil # [TrueClass, FalseClass]
46
+ default['yum']['main']['history_list_view'] = nil # /.*/
47
+ default['yum']['main']['history_record'] = nil # [TrueClass, FalseClass]
48
+ default['yum']['main']['history_record_packages'] = nil # /.*/
49
+ default['yum']['main']['http_caching'] = nil # %w{ packages all none }
50
+ default['yum']['main']['installonly_limit'] = nil # /\d+/, /keep/
51
+ default['yum']['main']['installonlypkgs'] = nil # /.*/
52
+ default['yum']['main']['installroot'] = nil # /.*/
53
+ default['yum']['main']['keepalive'] = nil # [TrueClass, FalseClass]
54
+ default['yum']['main']['keepcache'] = false # [TrueClass, FalseClass]
55
+ default['yum']['main']['kernelpkgnames'] = nil # /.*/
56
+ default['yum']['main']['localpkg_gpgcheck'] = nil # [TrueClass,# FalseClass]
57
+ default['yum']['main']['logfile'] = '/var/log/yum.log' # /.*/
58
+ default['yum']['main']['max_retries'] = nil # /^\d+$/
59
+ default['yum']['main']['mdpolicy'] = nil # %w{ packages all none }
60
+ default['yum']['main']['metadata_expire'] = nil # /^\d+$/
61
+ default['yum']['main']['mirrorlist_expire'] = nil # /^\d+$/
62
+ default['yum']['main']['multilib_policy'] = nil # %w{ all best }
63
+ default['yum']['main']['obsoletes'] = nil # [TrueClass, FalseClass]
64
+ default['yum']['main']['overwrite_groups'] = nil # [TrueClass, FalseClass]
65
+ default['yum']['main']['password'] = nil # /.*/
66
+ default['yum']['main']['path'] = '/etc/yum.conf' # /.*/
67
+ default['yum']['main']['persistdir'] = nil # /.*/
68
+ default['yum']['main']['pluginconfpath'] = nil # /.*/
69
+ default['yum']['main']['pluginpath'] = nil # /.*/
70
+ default['yum']['main']['plugins'] = nil # [TrueClass, FalseClass]
71
+ default['yum']['main']['protected_multilib'] = nil # /.*/
72
+ default['yum']['main']['protected_packages'] = nil # /.*/
73
+ default['yum']['main']['proxy'] = nil # /.*/
74
+ default['yum']['main']['proxy_password'] = nil # /.*/
75
+ default['yum']['main']['proxy_username'] = nil # /.*/
76
+ default['yum']['main']['username'] = nil # /.*/
77
+ default['yum']['main']['password'] = nil # /.*/
78
+ default['yum']['main']['recent'] = nil # /^\d+$/
79
+ default['yum']['main']['releasever'] = nil # /.*/
80
+ default['yum']['main']['repo_gpgcheck'] = nil # [TrueClass, FalseClass]
81
+ default['yum']['main']['reset_nice'] = nil # [TrueClass, FalseClass]
82
+ default['yum']['main']['rpmverbosity'] = nil # %w{ info critical# emergency error warn debug }
83
+ default['yum']['main']['showdupesfromrepos'] = nil # [TrueClass, FalseClass]
84
+ default['yum']['main']['skip_broken'] = nil # [TrueClass, FalseClass]
85
+ default['yum']['main']['ssl_check_cert_permissions'] = nil # [TrueClass, FalseClass]
86
+ default['yum']['main']['sslcacert'] = nil # /.*/
87
+ default['yum']['main']['sslclientcert'] = nil # /.*/
88
+ default['yum']['main']['sslclientkey'] = nil # /.*/
89
+ default['yum']['main']['sslverify'] = nil # [TrueClass, FalseClass]
90
+ default['yum']['main']['syslog_device'] = nil # /.*/
91
+ default['yum']['main']['syslog_facility'] = nil # /.*/
92
+ default['yum']['main']['syslog_ident'] = nil # /.*/
93
+ default['yum']['main']['throttle'] = nil # [/\d+k/, /\d+M/, /\d+G/]
94
+ default['yum']['main']['timeout'] = nil # /\d+/
95
+ default['yum']['main']['tolerant'] = false
96
+ default['yum']['main']['tsflags'] = nil # /.*/
97
+ default['yum']['main']['username'] = nil # /.*/
@@ -0,0 +1,27 @@
1
+ # Matchers for chefspec 3
2
+
3
+ if defined?(ChefSpec)
4
+ def create_yum_repository(resource_name)
5
+ ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :create, resource_name)
6
+ end
7
+
8
+ def add_yum_repository(resource_name)
9
+ ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :add, resource_name)
10
+ end
11
+
12
+ def delete_yum_repository(resource_name)
13
+ ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :delete, resource_name)
14
+ end
15
+
16
+ def remove_yum_repository(resource_name)
17
+ ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :remove, resource_name)
18
+ end
19
+
20
+ def create_yum_globalconfig(resource_name)
21
+ ChefSpec::Matchers::ResourceMatcher.new(:yum_globalconfig, :create, resource_name)
22
+ end
23
+
24
+ def delete_yum_globalconfig(resource_name)
25
+ ChefSpec::Matchers::ResourceMatcher.new(:yum_globalconfig, :delete, resource_name)
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "yum",
3
+ "version": "3.2.2",
4
+ "description": "Configures various yum components on Red Hat-like systems",
5
+ "long_description": "yum Cookbook\n============\n\nThe Yum cookbook exposes the `yum_globalconfig` and `yum_repository`\nresources that allows a user to both control global behavior and make\nindividual Yum repositories available for use. These resources aim to\nallow the user to configure all options listed in the `yum.conf` man\npage, found at http://linux.die.net/man/5/yum.conf\n\nNOTES\n-----\nWARNING: Yum cookbook version 3.0.0 and above contain non-backwards\ncompatible breaking changes and will not work with cookbooks written\nagainst the 2.x and 1.x series. Changes have been made to the\nyum_repository resource, and the yum_key resource has been eliminated\nentirely. Recipes have been eliminated and moved into their own\ncookbooks. Please lock yum to the 2.x series in your Chef environments\nuntil all dependent cookbooks have been ported.\n\nRequirements\n------------\n* Chef 11 or higher\n* Ruby 1.9 (preferably from the Chef full-stack installer)\n* RHEL5, RHEL6, or other platforms within the family\n\nResources/Providers\n-------------------\n### yum_repository\nThis resource manages a yum repository configuration file at\n/etc/yum.repos.d/`repositoryid`.repo. When the file needs to be\nrepaired, it calls yum-makecache so packages in the repo become\navailable to the next resource.\n\n#### Example\n``` ruby\n# add the Zenoss repository\nyum_repository 'zenoss' do\n description \"Zenoss Stable repo\"\n baseurl \"http://dev.zenoss.com/yum/stable/\"\n gpgkey 'http://dev.zenoss.com/yum/RPM-GPG-KEY-zenoss'\n action :create\nend\n\n# add the EPEL repo\nyum_repository 'epel' do\n description 'Extra Packages for Enterprise Linux'\n mirrorlist 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch'\n gpgkey 'http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6'\n action :create\nend\n```\n\n``` ruby\n# delete CentOS-Media repo\nyum_repository 'CentOS-Media' do\n action :delete\nend\n```\n\n#### Actions\n- `:create` - creates a repository file and builds the repository listing\n- `:delete` - deletes the repository file\n\n#### Parameters\n* `baseurl` - Must be a URL to the directory where the yum repository's\n 'repodata' directory lives. Can be an http://, ftp:// or file://\n URL. You can specify multiple URLs in one baseurl statement.\n* `cost` - relative cost of accessing this repository. Useful for\n weighing one repo's packages as greater/less than any other.\n defaults to 1000\n* `description` - Maps to the 'name' parameter in a repository .conf.\n Descriptive name for the repository channel. This directive must be\n specified.\n* `enabled` - Either `true` or `false`. This tells yum whether or not use this repository.\n* `enablegroups` - Either `true` or `false`. Determines whether yum\n will allow the use of package groups for this repository. Default is\n `true` (package groups are allowed).\n* `exclude` - List of packages to exclude from updates or installs. This\n should be a space separated list in a single string. Shell globs using wildcards (eg. *\n and ?) are allowed.\n* `failovermethod` - Either 'roundrobin' or 'priority'.\n* `fastestmirror_enabled` - Either `true` or `false`\n* `gpgcheck` - Either `true` or `false`. This tells yum whether or not\n it should perform a GPG signature check on packages. When this is\n set in the [main] section it sets the default for all repositories.\n The default is `true`.\n* `gpgkey` - A URL pointing to the ASCII-armored GPG key file for the\n repository. This option is used if yum needs a public key to verify\n a package and the required key hasn't been imported into the RPM\n database. If this option is set, yum will automatically import the\n key from the specified URL.\n* `http_caching` - Either 'all', 'packages', or 'none'. Determines how\n upstream HTTP caches are instructed to handle any HTTP downloads\n that Yum does. Defaults to 'all'\n* `includepkgs` - Inverse of exclude. This is a list of packages you\n want to use from a repository. If this option lists only one package\n then that is all yum will ever see from the repository. Defaults to\n an empty list.\n* `keepalive` - Either `true` or `false`. This tells yum whether or not\n HTTP/1.1 keepalive should be used with this repository. \n* `max_retries` - Set the number of times any attempt to retrieve a file\n should retry before returning an error. Setting this to '0' makes\n yum try forever. Default is '10'.\n* `metadata_expire` - Time (in seconds) after which the metadata will\n expire. So that if the current metadata downloaded is less than this\n many seconds old then yum will not update the metadata against the\n repository. If you find that yum is not downloading information on\n updates as often as you would like lower the value of this option.\n You can also change from the default of using seconds to using days,\n hours or minutes by appending a d, h or m respectively. The default\n is 6 hours, to compliment yum-updatesd running once an hour. It's\n also possible to use the word \"never\", meaning that the metadata\n will never expire. Note that when using a metalink file the metalink\n must always be newer than the metadata for the repository, due to\n the validation, so this timeout also applies to the metalink file.\n* `mirrorlist` - Specifies a URL to a file containing a list of\n baseurls. This can be used instead of or with the baseurl option.\n Substitution variables, described below, can be used with this\n option. As a special hack is the mirrorlist URL contains the word\n \"metalink\" then the value of mirrorlist is copied to metalink (if\n metalink is not set)\n* `mirror_expire` - Time (in seconds) after which the mirrorlist locally\n cached will expire. If the current mirrorlist is less than this many\n seconds old then yum will not download another copy of the\n mirrorlist, it has the same extra format as metadata_expire. If you\n find that yum is not downloading the mirrorlists as often as you\n would like lower the value of this option.\n* `mirrorlist_expire` - alias for mirror_expire\n* `priority` - When the yum-priorities plug-in is enabled, you set\n priorities on repository entries, where N is an integer from 1 to 99. The\n default priority for repositories is 99.\n* `proxy` - URL to the proxy server that yum should use.\n* `proxy_username` - username to use for proxy\n* `proxy_password` - password for this proxy\n* `report_instanceid` - Report instance ID when using Amazon Linux AMIs\n and repositories\n* `repositoryid` - Must be a unique name for each repository, one word.\n Defaults to name attribute.\n* `source` - Use a custom template source instead of the default one\n in the yum cookbook\n* `sslcacert` - Path to the directory containing the databases of the\n certificate authorities yum should use to verify SSL certificates.\n Defaults to none - uses system default\n* `sslclientcert` - Path to the SSL client certificate yum should use to\n connect to repos/remote sites Defaults to none. \n* `sslclientkey` - Path to the SSL client key yum should use to connect\n to repos/remote sites Defaults to none.\n* `sslverify` - Either `true` or `false`. Determines if yum will verify SSL certificates/hosts. Defaults to `true`\n* `timeout` - Number of seconds to wait for a connection before timing\n out. Defaults to 30 seconds. This may be too short of a time for\n extremely overloaded sites.\n\n### yum_globalconfig\nThis renders a template with global yum configuration parameters. The\ndefault recipe uses it to render `/etc/yum.conf`. It is flexible\nenough to be used in other scenarios, such as building RPMs in\nisolation by modifying `installroot`. \n\n#### Example\n``` ruby\nyum_globalconfig '/my/chroot/etc/yum.conf' do\n cachedir '/my/chroot/etc/yum.conf'\n keepcache 'yes'\n debuglevel '2'\n installroot '/my/chroot'\n action :create\nend\n```\n\n#### Parameters\n`yum_globalconfig` can take most of the same parameters as a\n`yum_repository`, plus more, too numerous to describe here. Below are\na few of the more commonly used ones. For a complete list, please\nconsult the `yum.conf` man page, found here:\nhttp://linux.die.net/man/5/yum.conf\n\n* `cachedir` - Directory where yum should store its cache and db\n files. The default is '/var/cache/yum'. \n* `keepcache` - Either `true` or `false`. Determines whether or not\n yum keeps the cache of headers and packages after successful\n installation. Default is `true` (keep files)\n* `debuglevel` - Debug message output level. Practical range is 0-10.\n Default is '2'. \n* `exclude` - List of packages to exclude from updates or installs.\n This should be a space separated list. Shell globs using wildcards\n (eg. * and ?) are allowed. \n* `installonlypkgs` = List of package provides that should only ever\n be installed, never updated. Kernels in particular fall into this\n category. Defaults to kernel, kernel-bigmem, kernel-enterprise,\n kernel-smp, kernel-debug, kernel-unsupported, kernel-source,\n kernel-devel, kernel-PAE, kernel-PAE-debug.\n* `logfile` - Full directory and file name for where yum should write\n its log file.\n* `exactarch` - Either `true` or `false`. Set to `true` to make 'yum update' only\n update the architectures of packages that you have installed. ie:\n with this enabled yum will not install an i686 package to update an\n x86_64 package. Default is `true`\n* `gpgcheck` - Either `true` or `false`. This tells yum whether or not\n it should perform a GPG signature check on the packages gotten from\n this repository.\n \nRecipes\n-------\n* `default` - Configures `yum_globalconfig[/etc/yum.conf]` with values\n found in node attributes at `node['yum']['main']`\n\nAttributes\n----------\nThe following attributes are set by default\n\n``` ruby\ndefault['yum']['main']['cachedir'] = '/var/cache/yum/$basearch/$releasever'\ndefault['yum']['main']['keepcache'] = false\ndefault['yum']['main']['debuglevel'] = nil\ndefault['yum']['main']['exclude'] = nil\ndefault['yum']['main']['logfile'] = '/var/log/yum.log'\ndefault['yum']['main']['exactarch'] = nil\ndefault['yum']['main']['obsoletes'] = nil\ndefault['yum']['main']['installonly_limit'] = nil\ndefault['yum']['main']['installonlypkgs'] = nil\ndefault['yum']['main']['installroot'] = nil\n```\n\nRelated Cookbooks\n-----------------\nRecipes from older versions of this cookbook have been moved\nindividual cookbooks. Recipes for managing platform yum configurations\nand installing specific repositories can be found in one (or more!) of\nthe following cookbook.\n\n* yum-centos\n* yum-fedora\n* yum-amazon\n* yum-epel\n* yum-elrepo\n* yum-repoforge\n* yum-ius\n* yum-percona\n* yum-pgdg\n\nUsage\n-----\nPut `depends 'yum'` in your metadata.rb to gain access to the\nyum_repository resource.\n\nLicense & Authors\n-----------------\n- Author:: Eric G. Wolfe\n- Author:: Matt Ray (<matt@getchef.com>)\n- Author:: Joshua Timberman (<joshua@getchef.com>)\n- Author:: Sean OMeara (<someara@getchef.com>)\n\n```text\nCopyright:: 2011 Eric G. Wolfe\nCopyright:: 2013 Chef\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n",
6
+ "maintainer": "Chef",
7
+ "maintainer_email": "cookbooks@getchef.com",
8
+ "license": "Apache 2.0",
9
+ "platforms": {
10
+ "redhat": ">= 0.0.0",
11
+ "centos": ">= 0.0.0",
12
+ "scientific": ">= 0.0.0",
13
+ "amazon": ">= 0.0.0",
14
+ "fedora": ">= 0.0.0"
15
+ },
16
+ "dependencies": {
17
+ },
18
+ "recommendations": {
19
+ },
20
+ "suggestions": {
21
+ },
22
+ "conflicting": {
23
+ },
24
+ "providing": {
25
+ },
26
+ "replacing": {
27
+ },
28
+ "attributes": {
29
+ },
30
+ "groupings": {
31
+ },
32
+ "recipes": {
33
+ }
34
+ }
@@ -0,0 +1,13 @@
1
+ name 'yum'
2
+ maintainer 'Chef'
3
+ maintainer_email 'cookbooks@getchef.com'
4
+ license 'Apache 2.0'
5
+ description 'Configures various yum components on Red Hat-like systems'
6
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7
+ version '3.2.2'
8
+
9
+ supports 'redhat'
10
+ supports 'centos'
11
+ supports 'scientific'
12
+ supports 'amazon'
13
+ supports 'fedora'
@@ -0,0 +1,37 @@
1
+ #
2
+ # Cookbook Name:: yum
3
+ # Provider:: repository
4
+ #
5
+ # Author:: Sean OMeara <someara@getchef.com>
6
+ # Copyright 2013, Chef
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
+
21
+ # Allow for Chef 10 support
22
+ use_inline_resources if defined?(use_inline_resources)
23
+
24
+ action :create do
25
+ template new_resource.path do
26
+ source 'main.erb'
27
+ cookbook 'yum'
28
+ mode '0644'
29
+ variables(:config => new_resource)
30
+ end
31
+ end
32
+
33
+ action :delete do
34
+ file new_resource.path do
35
+ action :delete
36
+ end
37
+ end
@@ -0,0 +1,85 @@
1
+ #
2
+ # Cookbook Name:: yum
3
+ # Provider:: repository
4
+ #
5
+ # Author:: Sean OMeara <someara@getchef.com>
6
+ # Copyright 2013, Chef
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
+
21
+ # In Chef 11 and above, calling the use_inline_resources method will
22
+ # make Chef create a new "run_context". When an action is called, any
23
+ # nested resources are compiled and converged in isolation from the
24
+ # recipe that calls it.
25
+
26
+ # Allow for Chef 10 support
27
+ use_inline_resources if defined?(use_inline_resources)
28
+
29
+ def whyrun_supported?
30
+ true
31
+ end
32
+
33
+ action :create do
34
+ # Hack around the lack of "use_inline_resources" before Chef 11 by
35
+ # uniquely naming the execute[yum-makecache] resources. Set the
36
+ # notifies timing to :immediately for the same reasons. Remove both
37
+ # of these when dropping Chef 10 support.
38
+
39
+ template "/etc/yum.repos.d/#{new_resource.repositoryid}.repo" do
40
+ if new_resource.source.nil?
41
+ source 'repo.erb'
42
+ cookbook 'yum'
43
+ else
44
+ source new_resource.source
45
+ end
46
+ mode '0644'
47
+ variables(:config => new_resource)
48
+ notifies :run, "execute[yum-makecache-#{new_resource.repositoryid}]", :immediately
49
+ notifies :create, "ruby_block[yum-cache-reload-#{new_resource.repositoryid}]", :immediately
50
+ end
51
+
52
+ # get the metadata for this repo only
53
+ execute "yum-makecache-#{new_resource.repositoryid}" do
54
+ command "yum -q makecache --disablerepo=* --enablerepo=#{new_resource.repositoryid}"
55
+ action :nothing
56
+ end
57
+
58
+ # reload internal Chef yum cache
59
+ ruby_block "yum-cache-reload-#{new_resource.repositoryid}" do
60
+ block { Chef::Provider::Package::Yum::YumCache.instance.reload }
61
+ action :nothing
62
+ end
63
+ end
64
+
65
+ action :delete do
66
+ file "/etc/yum.repos.d/#{new_resource.repositoryid}.repo" do
67
+ action :delete
68
+ notifies :run, "execute[yum clean #{new_resource.repositoryid}]", :immediately
69
+ notifies :create, "ruby_block[yum-cache-reload-#{new_resource.repositoryid}]", :immediately
70
+ end
71
+
72
+ execute "yum clean #{new_resource.repositoryid}" do
73
+ command "yum clean all --disablerepo=* --enablerepo=#{new_resource.repositoryid}"
74
+ only_if "yum repolist | grep -P '^#{new_resource.repositoryid}([ \t]|$)'"
75
+ action :nothing
76
+ end
77
+
78
+ ruby_block "yum-cache-reload-#{new_resource.repositoryid}" do
79
+ block { Chef::Provider::Package::Yum::YumCache.instance.reload }
80
+ action :nothing
81
+ end
82
+ end
83
+
84
+ alias_method :action_add, :action_create
85
+ alias_method :action_remove, :action_delete
@@ -0,0 +1,34 @@
1
+ #
2
+ # Author:: Sean OMeara (<someara@getchef.com>)
3
+ # Recipe:: yum::default
4
+ #
5
+ # Copyright 2013, Chef
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
+ yum_globalconfig '/etc/yum.conf' do
20
+ cachedir node['yum']['main']['cachedir']
21
+ keepcache node['yum']['main']['keepcache']
22
+ debuglevel node['yum']['main']['debuglevel']
23
+ exclude node['yum']['main']['exclude']
24
+ logfile node['yum']['main']['logfile']
25
+ exactarch node['yum']['main']['exactarch']
26
+ obsoletes node['yum']['main']['obsoletes']
27
+ proxy node['yum']['main']['proxy']
28
+ installonly_limit node['yum']['main']['installonly_limit']
29
+ installonlypkgs node['yum']['main']['installonlypkgs']
30
+ installroot node['yum']['main']['installroot']
31
+ distroverpkg node['yum']['main']['distroverpkg']
32
+ releasever node['yum']['main']['releasever']
33
+ action :create
34
+ end