cloud-toaster 1.1.2

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 (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,8 @@
1
+ #
2
+ # Cookbook Name:: ssh
3
+ # Attributes:: default
4
+ #
5
+ # Author:: Waldemar Hummer
6
+ #
7
+
8
+ set['ssh']['public_key'] = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKiY5q92B4NTGL+dID961Zjq3Z5RlhcvbBheoh23MqAQFbI2uG+5TCp9EZrI6/3/i7CSl9sVtu7a1TWmKqKsZFaxB4Y45rL/5xTAJ63CCGwMlTMcLemQ+opcErsyCtPbdkXXKJciQf88V5KQG/AOcNvpbfU0HN3CF+BkrNAiw0vyiOheL9UBAcNYLmcn9PbGmsIcRDfrjXi1uPSmS2LpUp0hu6xaSMnTbF+kkXFa0WKheunZozuPuuRrhS8vm/toGTr3F+fi18Fi9oIfZ22rQUx+M737RkiT00gqzTq/6CQnsOzOeASOcRAa2xkwSs2SovjnrFmjiKu4zzuhmPJjkv"
@@ -0,0 +1,20 @@
1
+ #
2
+ # Cookbook Name:: php
3
+ # Recipe:: authorize_key
4
+ #
5
+ # Author:: Waldemar Hummer
6
+ #
7
+
8
+ script "authorize_key" do
9
+ interpreter "bash"
10
+ user "root"
11
+ cwd "/root"
12
+ ENV['SSH_PUB_KEY'] = node['ssh']['public_key']
13
+ code <<-EOH
14
+ mkdir -p $HOME/.ssh
15
+ existing=`cat $HOME/.ssh/authorized_keys | grep "$SSH_PUB_KEY"`
16
+ if [ "$existing" == "" ]; then
17
+ echo "$SSH_PUB_KEY" >> $HOME/.ssh/authorized_keys
18
+ fi
19
+ EOH
20
+ end
@@ -0,0 +1,37 @@
1
+
2
+
3
+ # Cookbook Name:: toaster
4
+ # Attributes:: default
5
+ #
6
+ # Author:: Waldemar Hummer
7
+ #
8
+
9
+ default['toaster']['tmp_dir'] = "/tmp/toaster.testing/"
10
+ default['toaster']['cookbook_paths'] = [
11
+ "/tmp/toaster_assets/cookbooks/"
12
+ ]
13
+
14
+ # Specify additional Ruby LOAD_PATH paths
15
+ default['toaster']['additional_load_paths'] = []
16
+
17
+ # Activate this recipe and the testing mechanism?
18
+ default['toaster']['testing_mode'] = true
19
+
20
+ # If a state property is captured for a task, should
21
+ # it be captured for all subsequent tasks as well?
22
+ # (which (drastically) increases the database size)
23
+ default['toaster']['transfer_state_config'] = false
24
+
25
+ # Use "ram" (Rational Asset Manager) or "web" (standard Web server) as server type
26
+ default['toaster']['server_type'] = "web"
27
+
28
+ # Database settings
29
+ default['toaster']['db_type'] = "mysql"
30
+ default['toaster']['mysql']['host'] = ""
31
+ default['toaster']['mysql']['db'] = "toaster"
32
+ default['toaster']['mysql']['schema'] = File.join(__FILE__, "../../../../webapp/ror/toaster/db/schema.rb")
33
+
34
+ # SOME BUG FIXES for Opscode.com recipes:
35
+
36
+ # some recipes (e.g., openldap::default) fail if node['domain'] is nil
37
+ default['domain'] = '' if !node['domain']
@@ -0,0 +1,61 @@
1
+
2
+
3
+ # commonly used library functionality
4
+
5
+ module Toaster
6
+
7
+ module ChefModules
8
+ def get_dynamic_recipes(base_dir, type="pre") # type is "pre" or "post"
9
+ result = []
10
+ pattern = "#{base_dir}/*.rb"
11
+ Dir[pattern].each do |recipe_file|
12
+ file_name = recipe_file.gsub(/.*\/([^\/]+)\.rb$/, '\1')
13
+ if file_name.match(/^#{type}__/)
14
+ cookbook_name = nil
15
+ if file_name.match(/^#{type}__(.*)__(.*)/)
16
+ cookbook_name = file_name.sub(/^#{type}__(.*)__(.*)/, '\1')
17
+ elsif file_name.match(/^#{type}__(.*)$/)
18
+ cookbook_name = file_name.sub(/^#{type}__(.*)$/, '\1')
19
+ end
20
+ recipe_name = nil
21
+ if file_name.match(/^#{type}__(.*)__(.*)/)
22
+ recipe_name = file_name.sub(/^#{type}__(.*)__(.*)/, '\2')
23
+ end
24
+ node.run_list.each do |run_item|
25
+ # convert Chef::RunList::RunListItem to string
26
+ run_item = "#{run_item}"
27
+ run_item = "recipe[#{run_item}]" if !run_item.include?("[")
28
+ # check if runlist item is a recipe
29
+ if run_item.match(/^recipe\[/)
30
+ run_item = run_item.sub(/^recipe\[(.*)\]/, '\1')
31
+ run_item = "#{run_item}::default" if !run_item.include?("::")
32
+ parts = run_item.split("::")
33
+ run_cookbook = parts[0]
34
+ run_recipe = parts[1]
35
+ #puts "#{cookbook_name} - #{recipe_name} - #{run_cookbook} - #{run_recipe}"
36
+ if (cookbook_name == run_cookbook) &&
37
+ ((!recipe_name) || (recipe_name == run_recipe))
38
+ result << "toaster::#{file_name}"
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ return result
45
+ end
46
+ end
47
+
48
+ # Simple PROXY class implementation
49
+ class Proxy
50
+ attr_accessor :target
51
+ def initialize(target)
52
+ @target = target
53
+ end
54
+ instance_methods.each { |m| undef_method m unless m =~ /(^__|^send$|^object_id$|^target)/ }
55
+ protected
56
+ def method_missing(name, *args, &block)
57
+ @target.send(name, *args, &block)
58
+ end
59
+ end
60
+
61
+ end
@@ -0,0 +1,27 @@
1
+ #
2
+ # server_aliases has to be an array (and not a string, as below),
3
+ # otherwise the Apache2 config file templating fails.
4
+ #
5
+
6
+ app = web_app "cakephp" do
7
+ template "cakephp.conf.erb"
8
+ docroot "#{node[:cakephp][:dir]}/app/webroot"
9
+ server_name server_fqdn
10
+ # original:
11
+ #server_aliases node.fqdn
12
+ # fixed:
13
+ server_aliases [node.fqdn]
14
+ end
15
+
16
+ # this is required, otherwise Chef fills in the wrong cookbook/recipe name
17
+ app.cookbook_name = "cakephp"
18
+ app.recipe_name = "default"
19
+
20
+ # Fix mysql command for use with empty password.
21
+ execute "mysql-install-cakephp-privileges" do
22
+ # original:
23
+ #command "/usr/bin/mysql -u root -p#{node[:mysql][:server_root_password]} < /etc/mysql/cakephp-grants.sql"
24
+ # fixed:
25
+ command "/usr/bin/mysql -u root #{node['mysql']['server_root_password'].empty? ? '' : '-p' }#{node[:mysql][:server_root_password]} < /etc/mysql/cakephp-grants.sql"
26
+ action :nothing
27
+ end
@@ -0,0 +1,26 @@
1
+ #
2
+ # Here, we only want to reduce the verbosity of "warning"
3
+ # outputs during compilation of node.js.
4
+ #
5
+
6
+ bash "compile node.js" do
7
+ cwd "/usr/local/src/node-v#{node['nodejs']['version']}"
8
+ code <<-EOH
9
+ # original:
10
+ #./configure --prefix=#{node['nodejs']['dir']} && \
11
+ #make
12
+ # fixed:
13
+ ./configure --prefix=#{node['nodejs']['dir']} && \
14
+ make | grep -v "warning:"
15
+ EOH
16
+ creates "/usr/local/src/node-v#{node['nodejs']['version']}/node"
17
+ end
18
+
19
+ execute "nodejs make install" do
20
+ # original:
21
+ #command "make install"
22
+ # fixed:
23
+ command "make install | grep -v 'warning:'"
24
+ cwd "/usr/local/src/node-v#{node['nodejs']['version']}"
25
+ not_if {File.exists?("#{node['nodejs']['dir']}/bin/node") && `#{node['nodejs']['dir']}/bin/node --version`.chomp == "v#{node['nodejs']['version']}" }
26
+ end
@@ -0,0 +1,16 @@
1
+ #
2
+ # At the time of writing, the drupal::default recipe fails because
3
+ # server_aliases has to be an array (and not a string, as below),
4
+ # otherwise the Apache2 config file templating fails.
5
+ # This post-processing recipe should fix the bug.
6
+ #
7
+
8
+ web_app "drupal" do
9
+ template "drupal.conf.erb"
10
+ docroot node['drupal']['dir']
11
+ server_name server_fqdn
12
+ # original
13
+ #server_aliases node['fqdn']
14
+ # fixed
15
+ server_aliases [node['fqdn']]
16
+ end
@@ -0,0 +1,9 @@
1
+ # Avoid EnclosingDirectoryDoesNotExist exception.
2
+ # --> add "recursive=true" parameter
3
+ directory "#{node['icinga']['config_dir']}" do
4
+ owner node['icinga']['user']
5
+ group node['icinga']['group']
6
+ mode "0755"
7
+ # new:
8
+ recursive true
9
+ end
@@ -0,0 +1,16 @@
1
+ #
2
+ # At the time of writing, this recipe fails because curl cannot download
3
+ # the given file (curl does not follow HTTP redirects by default).
4
+ # This post-processing recipe should fix the bug.
5
+ #
6
+
7
+ bash "install_npm" do
8
+ user "root"
9
+ cwd "/tmp/"
10
+ code <<-EOH
11
+ # original:
12
+ # curl http://npmjs.org/install.sh | clean=no sh
13
+ # fixed:
14
+ curl -L http://npmjs.org/install.sh | clean=no sh
15
+ EOH
16
+ end
@@ -0,0 +1,12 @@
1
+ #
2
+ # bug fix for virtualbox::default recipe, which calls a
3
+ # resource "add Oracle key" that does not exist..
4
+ #
5
+
6
+ template "/etc/apt/sources.list.d/oracle-virtualbox.list" do
7
+ source "oracle-virtualbox.list.erb"
8
+ mode 0644
9
+ # original:
10
+ #notifies :run, resources(:bash => "add Oracle key"), :immediately
11
+ # fixed (removed)
12
+ end
@@ -0,0 +1,12 @@
1
+ #
2
+ # If the root passwort is empty, the "-p" option should NOT be
3
+ # passed to the mysql command.
4
+ #
5
+
6
+ execute "mysql-install-wp-privileges" do
7
+ # original:
8
+ #command "/usr/bin/mysql -u root -p\"#{node['mysql']['server_root_password']}\" < #{node['mysql']['conf_dir']}/wp-grants.sql"
9
+ # fixed:
10
+ command "/usr/bin/mysql -u root #{node['mysql']['server_root_password'].empty? ? '' : '-p' }\"#{node['mysql']['server_root_password']}\" < #{node['mysql']['conf_dir']}/wp-grants.sql"
11
+ action :nothing
12
+ end
@@ -0,0 +1,12 @@
1
+ # Recipe aegir::default attempts to notify service "php5-fpm", which is
2
+ # actually defined under the name "php-fpm" in cookbook php-fpm::default.
3
+ # --> hence, define it under the new name here!
4
+ php_fpm_service_name = "php5-fpm"
5
+ if platform_family?("rhel")
6
+ php_fpm_service_name = "php-fpm"
7
+ end
8
+ service "php5-fpm" do
9
+ service_name php_fpm_service_name
10
+ supports :start => true, :stop => true, :restart => true, :reload => true
11
+ action [ :enable, :restart ]
12
+ end
@@ -0,0 +1,3 @@
1
+ # Without gem "bluepill" the recipe app::default
2
+ # complains about not finding <ruby_dir>/bin/bluepill
3
+ gem_package "bluepill"
@@ -0,0 +1,24 @@
1
+ #
2
+ # Recipe cakephp::default contains a "require 'mysql'" statement which fails
3
+ # because the mysql gem is not installed by default. Let's do this here...
4
+ #
5
+
6
+ # update packages
7
+ execute "apt-get update" do
8
+ ignore_failure true
9
+ action :nothing
10
+ end.run_action(:run) if node['platform_family'] == "debian"
11
+ # mysql gem requires build-essential
12
+ node.set['build_essential']['compiletime'] = true
13
+ include_recipe "build-essential"
14
+ # mysql gem requires libmysqlclient-dev
15
+ package "libmysqlclient-dev" do
16
+ action :nothing
17
+ end.run_action(:install) if node['platform_family'] == "debian"
18
+ # install mysql gem
19
+ chef_gem "mysql"
20
+
21
+
22
+ # Additionally, fix mysql root password (mysql-server uses an
23
+ # empty password by default under Ubuntu)
24
+ node.set['mysql']['server_root_password'] = ""
@@ -0,0 +1,9 @@
1
+ #
2
+ # This pre-processing recipe fixes some requirements for cube.
3
+ #
4
+
5
+ # create Chef data_bags directory, if it does not yet exist (fixes an
6
+ # issue where Chef was complaining that /var/chef/data_bags does not exist)
7
+ require 'fileutils'
8
+ databags_dir = "/var/chef/data_bags"
9
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)
@@ -0,0 +1,21 @@
1
+ #
2
+ # Default user is "disco" and recipe disco::default assumes that
3
+ # this user already exists, hence the recipe fails by default. To
4
+ # fix this, we can either:
5
+ # * create user/group 'disco' before the actual recipe runs.
6
+ # * tell the recipe to use the 'root' user.
7
+ #
8
+
9
+ node.set["disco"]["user"] = "root"
10
+ node.set["disco"]["group"] = "root"
11
+
12
+ #user "disco" do
13
+ # action :create
14
+ #end
15
+ #
16
+ #group "disco" do
17
+ # action :create
18
+ # members "disco"
19
+ # system false
20
+ # append false
21
+ #end
@@ -0,0 +1,7 @@
1
+ # overwrite Node#save to make this work under Chef-solo
2
+ #module MySaveOverwrite
3
+ # def save
4
+ # end
5
+ #end
6
+ #node.extend(MySaveOverwrite)
7
+ node.define_singleton_method(:save) { }
@@ -0,0 +1,2 @@
1
+ # we need to include the required recipe "apache2"
2
+ include_recipe "apache2"
@@ -0,0 +1,11 @@
1
+ #
2
+ # pre-processing customizations for recipe elasticsearch-head::default
3
+ #
4
+
5
+ # apparently, Squid proxy by default cannot cache this https file from github:
6
+ # original (defined in attributes/default.rb):
7
+ # default[:elastichead][:src_mirror] =
8
+ # "https://github.com/mobz/elasticsearch-head/tarball/#{node[:elastichead][:src_branch]}"
9
+ # fixed (changed from https to http):
10
+ node.set[:elastichead][:src_mirror] =
11
+ "http://github.com/mobz/elasticsearch-head/tarball/#{node[:elastichead][:src_branch]}"
@@ -0,0 +1,6 @@
1
+ #
2
+ # This pre-processing recipe fixes some requirements for elasticsearch.
3
+ #
4
+
5
+ # template generation fails with an exception if this attribute is not set
6
+ node.set[:elasticsearch][:seeds] = []
@@ -0,0 +1,17 @@
1
+ # Dependencies for recipe "gitosis::default"
2
+
3
+ # Create Chef data_bags directory, if it does not yet exist (fixes an
4
+ # issue where Chef was complaining that /var/chef/data_bags does not exist)
5
+ require 'fileutils'
6
+ databags_dir = "/var/chef/data_bags"
7
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)
8
+
9
+ # Create user/group gitosis (recipe fails if they don't exist)
10
+ user "gitosis" do
11
+ action :create
12
+ end
13
+ group "gitosis" do
14
+ action :create
15
+ members "gitosis"
16
+ append false
17
+ end
@@ -0,0 +1,3 @@
1
+ # Need to provide a version and download URL
2
+ node.set[:kafka][:version] = "kafka-0.7.2-incubating-src"
3
+ node.set[:kafka][:download_url] = "http://www.us.apache.org/dist/incubator/kafka/kafka-0.7.2-incubating/"
@@ -0,0 +1,6 @@
1
+ # This pre-processing recipe fixes requirements for munin::server.
2
+
3
+ # Chef complains if /var/chef/data_bags does not exist
4
+ require 'fileutils'
5
+ databags_dir = "/var/chef/data_bags"
6
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)
@@ -0,0 +1,4 @@
1
+ # Cookbook complains if passwords are not set
2
+ node.default["mysql"]["server_root_password"] = "testpassword"
3
+ node.default["mysql"]["server_repl_password"] = "testpassword"
4
+ node.default["mysql"]["server_debian_password"] = "testpassword"
@@ -0,0 +1,3 @@
1
+ # nagios::default uses search(...) which is only available
2
+ # with chef server. Cookbook chef-solo-search fixes this.
3
+ include_recipe "chef-solo-search::default"
@@ -0,0 +1,24 @@
1
+ # recipe netkernel::default uses an illegal statement which we fix here:
2
+ # "source defaults.erb" (string should be under apostrophe)
3
+ class MyFoo
4
+ def erb
5
+ "defaults.erb"
6
+ end
7
+ end
8
+ class ::Chef
9
+ class Node
10
+ def defaults
11
+ return MyFoo.new
12
+ end
13
+ end
14
+ end
15
+ service "apache" do
16
+ supports :restart => true, :reload => true
17
+ action :nothing
18
+ end
19
+ directory "/opt/netkernel/bin/" do
20
+ action :create
21
+ owner "root"
22
+ group "root"
23
+ recursive true
24
+ end
@@ -0,0 +1,2 @@
1
+ # install PHP from source...
2
+ node.set['php']['install_method'] = "source"
@@ -0,0 +1,3 @@
1
+ # postgresql::server version 2.1.0 fails with nil
2
+ # pointer exception if this attribute is not set
3
+ node.set['postgresql']['password']['postgres'] = "foobar"
@@ -0,0 +1,9 @@
1
+ # Dependencies for recipe "pxe_dust::default"
2
+
3
+ # Create Chef data_bags directory, if it does not yet exist (fixes an
4
+ # issue where Chef was complaining that /var/chef/data_bags/.. does not exist)
5
+ require 'fileutils'
6
+ databags_dir = "/var/chef/data_bags/pxe_dust"
7
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)
8
+ databag_file = File.join(databags_dir, "default.json")
9
+ `echo '{"id":"default"}' > #{databag_file}`
@@ -0,0 +1,6 @@
1
+ #
2
+ # If the required parameter node[:pxe_install_server][:releases]
3
+ # is not set, the recipe fails with an exception.
4
+ #
5
+
6
+ node.set[:pxe_install_server][:releases] = {}
@@ -0,0 +1,40 @@
1
+ # recipe riak::default uses some illegal statements
2
+ # (under Chef 11) which we fix here using dynamic property lookup:
3
+ node.set["riak"]["kv"] = Hash.new(node["riak"]["kv"])
4
+ node.set["riak"]["kv"]["storage_backend"] = :riak_kv_bitcask_backend
5
+ node.set["riak"]["sasl"]["errlog_type"] = :error
6
+ class DynamicAttrLookup
7
+ def initialize(node_value)
8
+ @node_value = node_value
9
+ end
10
+ def method_missing(m, *args, &block)
11
+ if @node_value.respond_to?(m)
12
+ @node_value.send(m, *args)
13
+ else
14
+ DynamicAttrLookup.new(@node_value[m])
15
+ end
16
+ end
17
+ end
18
+ class ::Chef
19
+ class Node
20
+ def riak
21
+ DynamicAttrLookup.new(self["riak"])
22
+ end
23
+ def ip_address
24
+ DynamicAttrLookup.new(self["ip_address"])
25
+ end
26
+ class ImmutableMash
27
+ def delete(arg1)
28
+ super(arg1)
29
+ end
30
+ end
31
+ end
32
+ module DSL
33
+ module Recipe
34
+ def default
35
+ puts "Called default!! #{node.set}"
36
+ DynamicAttrLookup.new(node.set)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ # Dependencies for recipe "pxe_dust::default"
2
+
3
+ # Create Chef data_bags directory, if it does not yet exist (fixes an
4
+ # issue where Chef was complaining that /var/chef/data_bags/.. does not exist)
5
+ require 'fileutils'
6
+ databags_dir = "/var/chef/data_bags/sensu"
7
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)
8
+ databag_file = File.join(databags_dir, "ssl.json")
9
+ `echo '{"id":"ssl"}' > #{databag_file}`
@@ -0,0 +1,2 @@
1
+ # Pre-processing tasks for recipe sol::default
2
+ node.set['dmi']['system']['manufacturer'] = "foobar"
@@ -0,0 +1,6 @@
1
+ # Pre-processing tasks for recipe solr::default
2
+
3
+ # solr::default calls openldap::default, which tries
4
+ # to access node['domain'].length, but node['domain'] is
5
+ # nil (not automatically set by our Chef installation).
6
+ node.set['domain'] = ''
@@ -0,0 +1,2 @@
1
+ # recipe sonar::default fails without Maven version
2
+ node.set['maven']['version'] = "2"
@@ -0,0 +1,3 @@
1
+ # Search query fails due to missing role name, and download URL
2
+ node.set['storm']['cluster_role'] = "stormCluster"
3
+ node.set['storm']['download_url'] = "http://dsg.tuwien.ac.at/staff/hummer/tmp/"
@@ -0,0 +1,4 @@
1
+ # fix a statement in recipe vmware::tools:
2
+ # "if node.virtualization.system == 'vmware'"
3
+ # (fails without this attribute definition)
4
+ node.set["virtualization"]["system"] = 'vmware'
@@ -0,0 +1,17 @@
1
+ #
2
+ # This pre-processing recipe fixes some requirements for wordpress.
3
+ #
4
+
5
+ # package required for mysql gem
6
+ package "mysql devel package" do
7
+ if ["ubuntu","debian"].include?(node[:platform])
8
+ package_name "libmysqlclient-dev"
9
+ else
10
+ package_name "mysql-devel"
11
+ end
12
+ action :install
13
+ end
14
+
15
+ # fix mysql root password (mysql-server uses an
16
+ # empty password by default under Ubuntu)
17
+ node.set['mysql']['server_root_password'] = ""
@@ -0,0 +1,7 @@
1
+ # Dependencies for recipe "xen::default"
2
+
3
+ # Create Chef data_bags directory, if it does not yet exist (fixes an
4
+ # issue where Chef was complaining that /var/chef/data_bags does not exist)
5
+ require 'fileutils'
6
+ databags_dir = "/var/chef/data_bags"
7
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)
@@ -0,0 +1,7 @@
1
+ # Dependencies for recipe "znc::default"
2
+
3
+ # Create Chef data_bags directory, if it does not yet exist (fixes an
4
+ # issue where Chef was complaining that /var/chef/data_bags does not exist)
5
+ require 'fileutils'
6
+ databags_dir = "/var/chef/data_bags"
7
+ FileUtils.mkpath(databags_dir) if !File.directory?(databags_dir)