fluentd-ui 0.1.0

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.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (320) hide show
  1. checksums.yaml +7 -0
  2. data/.bowerrc +3 -0
  3. data/.gitignore +31 -0
  4. data/.rspec +1 -0
  5. data/ChangeLog +3 -0
  6. data/Gemfile +21 -0
  7. data/Gemfile.lock +247 -0
  8. data/Gemfile.production +3 -0
  9. data/README.md +53 -0
  10. data/Rakefile +8 -0
  11. data/app/assets/images/.keep +0 -0
  12. data/app/assets/javascripts/alert.js +51 -0
  13. data/app/assets/javascripts/application.js +22 -0
  14. data/app/assets/javascripts/nested_setting.js +41 -0
  15. data/app/assets/javascripts/setting_format.js +15 -0
  16. data/app/assets/javascripts/tutorial.js +58 -0
  17. data/app/assets/javascripts/vue/fluent_log.js +64 -0
  18. data/app/assets/javascripts/vue/in_tail_format.js +153 -0
  19. data/app/assets/javascripts/vue/treeview.js +97 -0
  20. data/app/assets/javascripts/vue_common.js +4 -0
  21. data/app/assets/stylesheets/application.css +18 -0
  22. data/app/assets/stylesheets/common.css.scss +152 -0
  23. data/app/controllers/api_controller.rb +37 -0
  24. data/app/controllers/application_controller.rb +110 -0
  25. data/app/controllers/concerns/.keep +0 -0
  26. data/app/controllers/fluentd/agents_controller.rb +35 -0
  27. data/app/controllers/fluentd/settings/in_syslog_controller.rb +34 -0
  28. data/app/controllers/fluentd/settings/in_tail_controller.rb +57 -0
  29. data/app/controllers/fluentd/settings/out_forward_controller.rb +42 -0
  30. data/app/controllers/fluentd/settings/out_mongo_controller.rb +36 -0
  31. data/app/controllers/fluentd/settings/out_s3_controller.rb +36 -0
  32. data/app/controllers/fluentd/settings/out_td_controller.rb +36 -0
  33. data/app/controllers/fluentd/settings_controller.rb +18 -0
  34. data/app/controllers/fluentd_controller.rb +62 -0
  35. data/app/controllers/misc_controller.rb +69 -0
  36. data/app/controllers/plugins_controller.rb +44 -0
  37. data/app/controllers/polling_controller.rb +20 -0
  38. data/app/controllers/sessions_controller.rb +45 -0
  39. data/app/controllers/tutorials_controller.rb +40 -0
  40. data/app/controllers/users_controller.rb +28 -0
  41. data/app/controllers/welcome_controller.rb +5 -0
  42. data/app/helpers/application_helper.rb +55 -0
  43. data/app/helpers/fluentd/settings_helper.rb +2 -0
  44. data/app/helpers/miscs_helper.rb +2 -0
  45. data/app/helpers/settings_helper.rb +43 -0
  46. data/app/mailers/.keep +0 -0
  47. data/app/models/.keep +0 -0
  48. data/app/models/concerns/.keep +0 -0
  49. data/app/models/fluentd.rb +178 -0
  50. data/app/models/fluentd/agent.rb +28 -0
  51. data/app/models/fluentd/agent/common.rb +76 -0
  52. data/app/models/fluentd/agent/configuration.rb +35 -0
  53. data/app/models/fluentd/agent/fluentd_gem.rb +104 -0
  54. data/app/models/fluentd/agent/local_common.rb +101 -0
  55. data/app/models/fluentd/agent/remote.rb +7 -0
  56. data/app/models/fluentd/agent/td_agent.rb +44 -0
  57. data/app/models/fluentd/api.rb +6 -0
  58. data/app/models/fluentd/api/http.rb +26 -0
  59. data/app/models/fluentd/setting.rb +4 -0
  60. data/app/models/fluentd/setting/common.rb +185 -0
  61. data/app/models/fluentd/setting/in_syslog.rb +16 -0
  62. data/app/models/fluentd/setting/in_tail.rb +107 -0
  63. data/app/models/fluentd/setting/out_forward.rb +70 -0
  64. data/app/models/fluentd/setting/out_mongo.rb +35 -0
  65. data/app/models/fluentd/setting/out_s3.rb +29 -0
  66. data/app/models/fluentd/setting/out_td.rb +26 -0
  67. data/app/models/plugin.rb +193 -0
  68. data/app/models/settings.rb +4 -0
  69. data/app/models/user.rb +52 -0
  70. data/app/views/fluentd/_form.html.haml +31 -0
  71. data/app/views/fluentd/edit.html.haml +3 -0
  72. data/app/views/fluentd/errors.html.haml +19 -0
  73. data/app/views/fluentd/log.html.haml +9 -0
  74. data/app/views/fluentd/new.html.haml +3 -0
  75. data/app/views/fluentd/settings/_form.html.haml +43 -0
  76. data/app/views/fluentd/settings/edit.html.haml +7 -0
  77. data/app/views/fluentd/settings/in_syslog/_form.html.haml +9 -0
  78. data/app/views/fluentd/settings/in_syslog/show.html.haml +6 -0
  79. data/app/views/fluentd/settings/in_tail/_form.html.haml +42 -0
  80. data/app/views/fluentd/settings/in_tail/after_file_choose.html.haml +19 -0
  81. data/app/views/fluentd/settings/in_tail/after_format.html.haml +10 -0
  82. data/app/views/fluentd/settings/in_tail/confirm.html.haml +13 -0
  83. data/app/views/fluentd/settings/in_tail/show.html.haml +5 -0
  84. data/app/views/fluentd/settings/out_forward/_form.html.haml +22 -0
  85. data/app/views/fluentd/settings/out_forward/show.html.haml +6 -0
  86. data/app/views/fluentd/settings/out_mongo/_form.html.haml +30 -0
  87. data/app/views/fluentd/settings/out_mongo/finish.html.haml +4 -0
  88. data/app/views/fluentd/settings/out_mongo/show.html.haml +6 -0
  89. data/app/views/fluentd/settings/out_s3/_form.html.haml +39 -0
  90. data/app/views/fluentd/settings/out_s3/show.html.haml +6 -0
  91. data/app/views/fluentd/settings/out_td/_form.html.haml +18 -0
  92. data/app/views/fluentd/settings/out_td/show.html.haml +6 -0
  93. data/app/views/fluentd/settings/show.html.haml +10 -0
  94. data/app/views/fluentd/settings/source_and_output.html.haml +45 -0
  95. data/app/views/fluentd/show.html.haml +60 -0
  96. data/app/views/layouts/application.html.erb +102 -0
  97. data/app/views/layouts/sign_in.html.erb +28 -0
  98. data/app/views/misc/information.html.haml +75 -0
  99. data/app/views/misc/update_fluentd_ui.html.haml +45 -0
  100. data/app/views/plugins/installed.html.haml +67 -0
  101. data/app/views/plugins/recommended.html.haml +59 -0
  102. data/app/views/plugins/updated.html.haml +29 -0
  103. data/app/views/sessions/new.html.haml +13 -0
  104. data/app/views/shared/_error.html.haml +3 -0
  105. data/app/views/shared/_flash.html.haml +10 -0
  106. data/app/views/shared/_fluentd_nav.html.haml +12 -0
  107. data/app/views/shared/_global_nav.html.erb +80 -0
  108. data/app/views/shared/_initial_setup.html.haml +13 -0
  109. data/app/views/shared/_modal.html.erb +25 -0
  110. data/app/views/shared/_setting_errors.html.haml +5 -0
  111. data/app/views/shared/vue/_fluent_log.html.erb +25 -0
  112. data/app/views/shared/vue/_in_tail_format.html.erb +53 -0
  113. data/app/views/shared/vue/_treeview.html.erb +30 -0
  114. data/app/views/tutorials/chapter1.html.erb +31 -0
  115. data/app/views/tutorials/chapter2.html.haml +12 -0
  116. data/app/views/tutorials/chapter3.html.haml +12 -0
  117. data/app/views/tutorials/chapter4.html.haml +12 -0
  118. data/app/views/tutorials/chapter5.html.haml +10 -0
  119. data/app/views/tutorials/index.html.haml +26 -0
  120. data/app/views/users/show.html.haml +22 -0
  121. data/app/workers/all_plugin_check_update.rb +14 -0
  122. data/app/workers/fluentd_ui_restart.rb +41 -0
  123. data/app/workers/fluentd_ui_update_check.rb +15 -0
  124. data/app/workers/gem_installer.rb +17 -0
  125. data/app/workers/gem_uninstaller.rb +15 -0
  126. data/app/workers/gem_update_check.rb +10 -0
  127. data/bin/bundle +3 -0
  128. data/bin/fluentd-ui +13 -0
  129. data/bin/fluentd-ui-restart +12 -0
  130. data/bin/rails +8 -0
  131. data/bin/rake +8 -0
  132. data/bin/spring +18 -0
  133. data/bower.json +10 -0
  134. data/circle.yml +8 -0
  135. data/config.ru +4 -0
  136. data/config/application.rb +48 -0
  137. data/config/application.yml +211 -0
  138. data/config/boot.rb +4 -0
  139. data/config/environment.rb +5 -0
  140. data/config/environments/development.rb +36 -0
  141. data/config/environments/production.rb +69 -0
  142. data/config/environments/test.rb +40 -0
  143. data/config/initializers/backtrace_silencers.rb +7 -0
  144. data/config/initializers/cookies_serializer.rb +3 -0
  145. data/config/initializers/filter_parameter_logging.rb +4 -0
  146. data/config/initializers/inflections.rb +16 -0
  147. data/config/initializers/mime_types.rb +4 -0
  148. data/config/initializers/prefetch_gem_updates.rb +1 -0
  149. data/config/initializers/session_store.rb +3 -0
  150. data/config/initializers/wrap_parameters.rb +14 -0
  151. data/config/locales/en.yml +204 -0
  152. data/config/locales/ja.yml +194 -0
  153. data/config/locales/translation_en.yml +255 -0
  154. data/config/locales/translation_ja.yml +255 -0
  155. data/config/locales/tutorial_en.yml +117 -0
  156. data/config/locales/tutorial_ja.yml +120 -0
  157. data/config/routes.rb +93 -0
  158. data/config/secrets.yml +22 -0
  159. data/db/schema.rb +0 -0
  160. data/db/seeds.rb +11 -0
  161. data/fluentd-ui-ss01.png +0 -0
  162. data/fluentd-ui-ss02.png +0 -0
  163. data/fluentd-ui-ss03.png +0 -0
  164. data/fluentd-ui-ss04.png +0 -0
  165. data/fluentd-ui-ss05.png +0 -0
  166. data/fluentd-ui.gemspec +46 -0
  167. data/lib/assets/.keep +0 -0
  168. data/lib/file_reverse_reader.rb +56 -0
  169. data/lib/fluentd-ui.rb +22 -0
  170. data/lib/fluentd-ui/command.rb +52 -0
  171. data/lib/fluentd-ui/version.rb +3 -0
  172. data/lib/grok_converter.rb +39 -0
  173. data/lib/regexp_preview.rb +48 -0
  174. data/lib/tasks/.keep +0 -0
  175. data/lib/treeview.rb +45 -0
  176. data/log/.keep +0 -0
  177. data/public/404.html +67 -0
  178. data/public/422.html +67 -0
  179. data/public/500.html +66 -0
  180. data/public/favicon.ico +0 -0
  181. data/public/fluentd-logo-right-text.png +0 -0
  182. data/public/fluentd-logo.png +0 -0
  183. data/public/fluentd.png +0 -0
  184. data/public/robots.txt +5 -0
  185. data/spec/controllers/plugins_controller_spec.rb +5 -0
  186. data/spec/controllers/polling_controller_spec.rb +5 -0
  187. data/spec/controllers/sessions_controller_spec.rb +5 -0
  188. data/spec/controllers/tutorials_controller_spec.rb +5 -0
  189. data/spec/factories/fluentd.rb +11 -0
  190. data/spec/factories/plugins.rb +8 -0
  191. data/spec/factories/user.rb +6 -0
  192. data/spec/features/fluentd/setting/out_forward_spec.rb +45 -0
  193. data/spec/features/fluentd/setting/out_td_spec.rb +35 -0
  194. data/spec/features/sessions_spec.rb +55 -0
  195. data/spec/features/shared_examples/login_required.rb +4 -0
  196. data/spec/features/users_spec.rb +9 -0
  197. data/spec/grok_converter_spec.rb +50 -0
  198. data/spec/lib/file_reverse_reader_spec.rb +73 -0
  199. data/spec/lib/fluentd-ui_spec.rb +35 -0
  200. data/spec/models/fluentd/agent_spec.rb +91 -0
  201. data/spec/models/fluentd/setting/common_spec.rb +178 -0
  202. data/spec/models/fluentd/setting/in_syslog_spec.rb +35 -0
  203. data/spec/models/fluentd/setting/out_mongo_spec.rb +40 -0
  204. data/spec/models/fluentd/setting/out_td_spec.rb +38 -0
  205. data/spec/models/fluentd_spec.rb +166 -0
  206. data/spec/models/plugin_spec.rb +191 -0
  207. data/spec/models/user_spec.rb +15 -0
  208. data/spec/spec_helper.rb +58 -0
  209. data/spec/support/fixtures/error0.log +12 -0
  210. data/spec/support/fixtures/error2.log +130 -0
  211. data/spec/support/fluentd_agent_common_behavior.rb +114 -0
  212. data/spec/support/fluentd_agent_restart_strategy.rb +94 -0
  213. data/tmp/.gitkeep +0 -0
  214. data/vendor/assets/javascripts/.keep +0 -0
  215. data/vendor/assets/javascripts/bower/es6-promise/.bower.json +15 -0
  216. data/vendor/assets/javascripts/bower/es6-promise/bower.json +5 -0
  217. data/vendor/assets/javascripts/bower/es6-promise/promise.js +684 -0
  218. data/vendor/assets/javascripts/bower/es6-promise/promise.min.js +1 -0
  219. data/vendor/assets/javascripts/bower/lodash/.bower.json +33 -0
  220. data/vendor/assets/javascripts/bower/lodash/LICENSE.txt +22 -0
  221. data/vendor/assets/javascripts/bower/lodash/bower.json +23 -0
  222. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.js +7157 -0
  223. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.min.js +61 -0
  224. data/vendor/assets/javascripts/bower/lodash/dist/lodash.js +6785 -0
  225. data/vendor/assets/javascripts/bower/lodash/dist/lodash.min.js +56 -0
  226. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.js +4979 -0
  227. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.min.js +39 -0
  228. data/vendor/assets/javascripts/bower/vue/.bower.json +29 -0
  229. data/vendor/assets/javascripts/bower/vue/LICENSE +21 -0
  230. data/vendor/assets/javascripts/bower/vue/dist/vue.js +4713 -0
  231. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +7 -0
  232. data/vendor/assets/javascripts/bower/vue/src/batcher.js +45 -0
  233. data/vendor/assets/javascripts/bower/vue/src/binding.js +103 -0
  234. data/vendor/assets/javascripts/bower/vue/src/compiler.js +1037 -0
  235. data/vendor/assets/javascripts/bower/vue/src/config.js +19 -0
  236. data/vendor/assets/javascripts/bower/vue/src/deps-parser.js +65 -0
  237. data/vendor/assets/javascripts/bower/vue/src/directive.js +258 -0
  238. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +41 -0
  239. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +56 -0
  240. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +129 -0
  241. data/vendor/assets/javascripts/bower/vue/src/directives/model.js +174 -0
  242. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +56 -0
  243. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +50 -0
  244. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +246 -0
  245. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +40 -0
  246. data/vendor/assets/javascripts/bower/vue/src/directives/view.js +56 -0
  247. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +50 -0
  248. data/vendor/assets/javascripts/bower/vue/src/emitter.js +97 -0
  249. data/vendor/assets/javascripts/bower/vue/src/exp-parser.js +190 -0
  250. data/vendor/assets/javascripts/bower/vue/src/filters.js +190 -0
  251. data/vendor/assets/javascripts/bower/vue/src/fragment.js +84 -0
  252. data/vendor/assets/javascripts/bower/vue/src/main.js +186 -0
  253. data/vendor/assets/javascripts/bower/vue/src/observer.js +446 -0
  254. data/vendor/assets/javascripts/bower/vue/src/text-parser.js +96 -0
  255. data/vendor/assets/javascripts/bower/vue/src/transition.js +228 -0
  256. data/vendor/assets/javascripts/bower/vue/src/utils.js +321 -0
  257. data/vendor/assets/javascripts/bower/vue/src/viewmodel.js +180 -0
  258. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.js +1951 -0
  259. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.min.js +6 -0
  260. data/vendor/assets/javascripts/sb-admin-v2/demo/dashboard-demo.js +117 -0
  261. data/vendor/assets/javascripts/sb-admin-v2/demo/flot-demo.js +1242 -0
  262. data/vendor/assets/javascripts/sb-admin-v2/demo/morris-demo.js +155 -0
  263. data/vendor/assets/javascripts/sb-admin-v2/jquery-1.10.2.js +6 -0
  264. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.js +245 -0
  265. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/jquery.dataTables.js +14013 -0
  266. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/excanvas.min.js +1 -0
  267. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.js +2599 -0
  268. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.pie.js +750 -0
  269. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.resize.js +60 -0
  270. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.tooltip.min.js +12 -0
  271. data/vendor/assets/javascripts/sb-admin-v2/plugins/metisMenu/jquery.metisMenu.js +45 -0
  272. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/morris.js +1888 -0
  273. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/raphael-2.1.0.min.js +10 -0
  274. data/vendor/assets/javascripts/sb-admin-v2/sb-admin.js +18 -0
  275. data/vendor/assets/stylesheets/.keep +0 -0
  276. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.css +5830 -0
  277. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.min.css +7 -0
  278. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.css +1338 -0
  279. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.min.css +4 -0
  280. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/FontAwesome.otf +0 -0
  281. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  282. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.svg +414 -0
  283. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  284. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  285. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_bordered-pulled.scss +16 -0
  286. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_core.scss +12 -0
  287. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_fixed-width.scss +6 -0
  288. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_icons.scss +412 -0
  289. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_larger.scss +13 -0
  290. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_list.scss +19 -0
  291. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_mixins.scss +20 -0
  292. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_path.scss +14 -0
  293. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_rotated-flipped.scss +9 -0
  294. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_spinning.scss +30 -0
  295. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_stacked.scss +20 -0
  296. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_variables.scss +381 -0
  297. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/font-awesome.scss +17 -0
  298. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.eot +0 -0
  299. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.svg +229 -0
  300. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.ttf +0 -0
  301. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.woff +0 -0
  302. data/vendor/assets/stylesheets/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.css +233 -0
  303. data/vendor/assets/stylesheets/sb-admin-v2/plugins/morris/morris-0.4.3.min.css +2 -0
  304. data/vendor/assets/stylesheets/sb-admin-v2/plugins/social-buttons/social-buttons.css +68 -0
  305. data/vendor/assets/stylesheets/sb-admin-v2/plugins/timeline/timeline.css +144 -0
  306. data/vendor/assets/stylesheets/sb-admin-v2/sb-admin.css +329 -0
  307. data/vendor/patterns/firewalls +60 -0
  308. data/vendor/patterns/grok-patterns +94 -0
  309. data/vendor/patterns/haproxy +37 -0
  310. data/vendor/patterns/java +3 -0
  311. data/vendor/patterns/junos +9 -0
  312. data/vendor/patterns/linux-syslog +16 -0
  313. data/vendor/patterns/mcollective +1 -0
  314. data/vendor/patterns/mcollective-patterns +4 -0
  315. data/vendor/patterns/mongodb +4 -0
  316. data/vendor/patterns/nagios +108 -0
  317. data/vendor/patterns/postgresql +3 -0
  318. data/vendor/patterns/redis +3 -0
  319. data/vendor/patterns/ruby +2 -0
  320. metadata +659 -0
@@ -0,0 +1,36 @@
1
+ class Fluentd::Settings::OutMongoController < ApplicationController
2
+ before_action :login_required
3
+ before_action :find_fluentd
4
+
5
+ def show
6
+ @setting = Fluentd::Setting::OutMongo.new({
7
+ host: "127.0.0.1",
8
+ port: 27017,
9
+ capped: true,
10
+ capped_size: "100m",
11
+ })
12
+ end
13
+
14
+ def finish
15
+ @setting = Fluentd::Setting::OutMongo.new(setting_params)
16
+ unless @setting.valid?
17
+ return render "show"
18
+ end
19
+
20
+ @fluentd.agent.config_append @setting.to_config
21
+ if @fluentd.agent.running?
22
+ unless @fluentd.agent.restart
23
+ @setting.errors.add(:base, @fluentd.agent.log_tail(1).first)
24
+ return render "show"
25
+ end
26
+ end
27
+ redirect_to daemon_setting_path(@fluentd)
28
+ end
29
+
30
+ private
31
+
32
+ def setting_params
33
+ params.require(:fluentd_setting_out_mongo).permit(*Fluentd::Setting::OutMongo::KEYS)
34
+ end
35
+
36
+ end
@@ -0,0 +1,36 @@
1
+ class Fluentd::Settings::OutS3Controller < ApplicationController
2
+ before_action :login_required
3
+ before_action :find_fluentd
4
+
5
+ def show
6
+ @setting = Fluentd::Setting::OutS3.new({
7
+ s3_endpoint: "s3-us-west-1.amazonaws.com",
8
+ output_tag: true,
9
+ output_time: true,
10
+ use_ssl: true,
11
+ })
12
+ end
13
+
14
+ def finish
15
+ @setting = Fluentd::Setting::OutS3.new(setting_params)
16
+ unless @setting.valid?
17
+ return render "show"
18
+ end
19
+
20
+ @fluentd.agent.config_append @setting.to_config
21
+ if @fluentd.agent.running?
22
+ unless @fluentd.agent.restart
23
+ @setting.errors.add(:base, @fluentd.agent.log_tail(1).first)
24
+ return render "show"
25
+ end
26
+ end
27
+ redirect_to daemon_setting_path(@fluentd)
28
+ end
29
+
30
+ private
31
+
32
+ def setting_params
33
+ params.require(:fluentd_setting_out_s3).permit(*Fluentd::Setting::OutS3::KEYS)
34
+ end
35
+
36
+ end
@@ -0,0 +1,36 @@
1
+ class Fluentd::Settings::OutTdController < ApplicationController
2
+ before_action :login_required
3
+ before_action :find_fluentd
4
+
5
+ def show
6
+ @setting = Fluentd::Setting::OutTd.new({
7
+ buffer_type: "file",
8
+ buffer_path: "/var/log/td-agent/buffer/td",
9
+ auto_create_table: true,
10
+ match: "td.*.*",
11
+ })
12
+ end
13
+
14
+ def finish
15
+ @setting = Fluentd::Setting::OutTd.new(setting_params)
16
+ unless @setting.valid?
17
+ return render "show"
18
+ end
19
+
20
+ @fluentd.agent.config_append @setting.to_config
21
+ if @fluentd.agent.running?
22
+ unless @fluentd.agent.restart
23
+ @setting.errors.add(:base, @fluentd.agent.log_tail(1).first)
24
+ return render "show"
25
+ end
26
+ end
27
+ redirect_to daemon_setting_path(@fluentd)
28
+ end
29
+
30
+ private
31
+
32
+ def setting_params
33
+ params.require(:fluentd_setting_out_td).permit(*Fluentd::Setting::OutTd::KEYS)
34
+ end
35
+
36
+ end
@@ -0,0 +1,18 @@
1
+ class Fluentd::SettingsController < ApplicationController
2
+ before_action :login_required
3
+ before_action :find_fluentd
4
+
5
+ def show
6
+ @config = @fluentd.agent.config
7
+ end
8
+
9
+ def edit
10
+ @config = @fluentd.agent.config
11
+ end
12
+
13
+ def update
14
+ @fluentd.agent.config_write params[:config]
15
+ @fluentd.agent.restart if @fluentd.agent.running?
16
+ redirect_to daemon_setting_path(@fluentd)
17
+ end
18
+ end
@@ -0,0 +1,62 @@
1
+ class FluentdController < ApplicationController
2
+ before_action :find_fluentd, only: [:show, :edit, :update, :destroy, :log, :raw_log, :errors]
3
+ before_action :check_fluentd_exists, only: [:edit, :log, :raw_log, :errors]
4
+
5
+ def show
6
+ end
7
+
8
+ def new
9
+ @fluentd = Fluentd.new(variant: params[:variant] || "fluentd")
10
+ @fluentd.load_settings_from_agent_default
11
+ end
12
+
13
+ def create
14
+ @fluentd = Fluentd.new(fluentd_params)
15
+ unless @fluentd.save
16
+ return render :new
17
+ end
18
+ redirect_to daemon_path
19
+ end
20
+
21
+ def edit
22
+ end
23
+
24
+ def update
25
+ # TODO: should restart if changed file path? or just do "dirty" flagged?
26
+ @fluentd.update_attributes(fluentd_params)
27
+ unless @fluentd.save
28
+ return render :edit
29
+ end
30
+ redirect_to daemon_path
31
+ end
32
+
33
+ def destroy
34
+ @fluentd.agent.stop if @fluentd.agent.running?
35
+ @fluentd.destroy
36
+ redirect_to root_path, flash: {success: t('messages.destroy_succeed_fluentd_setting', brand: fluentd_ui_brand)}
37
+ end
38
+
39
+ def log
40
+ end
41
+
42
+ def errors
43
+ @error_duration_days = 5
44
+ @errors = @fluentd.agent.errors_since(@error_duration_days.days.ago)
45
+ end
46
+
47
+ def raw_log
48
+ send_data @fluentd.agent.log, type: "application/octet-stream", filename: File.basename(@fluentd.log_file)
49
+ end
50
+
51
+ private
52
+
53
+ def fluentd_params
54
+ params.require(:fluentd).permit(:log_file, :pid_file, :config_file, :variant, :api_endpoint)
55
+ end
56
+
57
+ def check_fluentd_exists
58
+ unless fluentd_exists?
59
+ redirect_to root_path
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,69 @@
1
+ require "fluent/version"
2
+ require "zip"
3
+
4
+ class MiscController < ApplicationController
5
+ after_action :update!, only: [:update_fluentd_ui]
6
+
7
+ def show
8
+ redirect_to misc_information_path
9
+ end
10
+
11
+ def information
12
+ @env = ENV
13
+ @plugins = Plugin.installed
14
+ end
15
+
16
+ def update_fluentd_ui
17
+ @current_pid = $$
18
+ render "update_fluentd_ui", layout: "sign_in"
19
+ end
20
+
21
+ def upgrading_status
22
+ if FluentdUiRestart::LOCK.present?
23
+ return render text: "updating"
24
+ end
25
+
26
+ if $$.to_s == params[:old_pid]
27
+ # restarting fluentd-ui is finished, but PID doesn't changed.
28
+ # maybe error occured at FluentdUiRestart#perform
29
+ render text: "failed"
30
+ else
31
+ render text: "finished"
32
+ end
33
+ end
34
+
35
+ def download_info
36
+ fluentd = Fluentd.instance
37
+ path = Rails.root.join("tmp/system_info.zip")
38
+ File.unlink(path) if File.exists?(path)
39
+
40
+ Zip::File.open(path, Zip::File::CREATE) do |zip|
41
+ zip.get_output_stream('fluentd.log') {|f| f.puts fluentd.agent.log }
42
+ if ENV["FLUENTD_UI_LOG_PATH"].present?
43
+ zip.add("fluentd-ui.log", ENV["FLUENTD_UI_LOG_PATH"])
44
+ else
45
+ zip.add("fluentd-ui.log", Rails.root.join("log/#{Rails.env}.log"))
46
+ end
47
+ zip.get_output_stream('env.txt') do |f|
48
+ ENV.to_a.each do |(key, value)|
49
+ f.puts "#{key}=#{value}"
50
+ end
51
+ end
52
+ zip.get_output_stream('versions.txt') do |f|
53
+ f.puts "ruby: #{RUBY_DESCRIPTION}"
54
+ f.puts "fluentd: #{FluentdUI.fluentd_version}"
55
+ f.puts "fluentd-ui: #{FluentdUI::VERSION}"
56
+ f.puts
57
+ f.puts "# OS Information"
58
+ f.puts "uname -a: #{`uname -a`.strip}"
59
+ end
60
+ end
61
+ send_file path
62
+ end
63
+
64
+ private
65
+
66
+ def update!
67
+ FluentdUiRestart.new.async.perform
68
+ end
69
+ end
@@ -0,0 +1,44 @@
1
+ class PluginsController < ApplicationController
2
+ def index
3
+ redirect_to installed_plugins_path
4
+ end
5
+
6
+ def installed
7
+ @plugins = Plugin.installed
8
+ end
9
+
10
+ def recommended
11
+ @plugins = Plugin.recommended
12
+ end
13
+
14
+ def updated
15
+ @plugins = Plugin.installed.reject{|plugin| plugin.latest_version? }
16
+ end
17
+
18
+ def install
19
+ params[:plugins].each do |gem_name|
20
+ GemInstaller.new.async.perform(gem_name)
21
+ end
22
+ redirect_to plugins_path
23
+ end
24
+
25
+ def uninstall
26
+ params[:plugins].each do |gem_name|
27
+ GemUninstaller.new.async.perform(gem_name)
28
+ end
29
+ redirect_to plugins_path
30
+ end
31
+
32
+ def upgrade
33
+ GemInstaller.new.async.perform(params[:plugins][:name], params[:plugins][:version])
34
+ redirect_to plugins_path
35
+ end
36
+
37
+ def bulk_upgrade
38
+ params[:plugins].each do |gem_name|
39
+ pl = Plugin.new(gem_name: gem_name)
40
+ GemInstaller.new.async.perform(gem_name, pl.latest_version)
41
+ end
42
+ redirect_to plugins_path
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ class PollingController < ApplicationController
2
+ def alerts
3
+ alerts = []
4
+ installing_gems.each do |plugin|
5
+ target = plugin.gem_name.dup
6
+ target << "(#{plugin.version})" if plugin.version
7
+ alerts << {
8
+ text: I18n.t('terms.installing', target: target)
9
+ }
10
+ end
11
+ uninstalling_gems.each do |plugin|
12
+ target = plugin.gem_name.dup
13
+ target << "(#{plugin.version})" if plugin.version
14
+ alerts << {
15
+ text: I18n.t('terms.uninstalling', target: target)
16
+ }
17
+ end
18
+ render json: alerts
19
+ end
20
+ end
@@ -0,0 +1,45 @@
1
+ class SessionsController < ApplicationController
2
+ layout "sign_in"
3
+ skip_before_action :login_required, only: [:new, :create]
4
+ before_action :set_user
5
+
6
+ def create
7
+ if session_params[:name] != "admin" # NOTE: Application user is "admin" only, other user name is invalid for now.
8
+ flash.now[:notice] = I18n.t("messages.login_failed")
9
+ return render :new
10
+ end
11
+
12
+ unless @user.authenticate(session_params[:password])
13
+ flash.now[:notice] = I18n.t("messages.login_failed")
14
+ return render :new
15
+ end
16
+ sign_in @user
17
+ if session_params[:password] == Settings.default_password
18
+ flash[:warning] = t('terms.changeme_password')
19
+ end
20
+ redirect_to root_path
21
+ end
22
+
23
+ def destroy
24
+ session.delete :succeed_password
25
+ redirect_to new_sessions_path
26
+ end
27
+
28
+ private
29
+
30
+ def set_user
31
+ @user = User.new(name: "admin")
32
+ end
33
+
34
+ def session_params
35
+ params.require(:session).permit(:name, :password)
36
+ end
37
+
38
+ def sign_in(user)
39
+ # NOTE: Cookie will encrypt by Rails, but store raw password into session is a bad practice.
40
+ # If we use some DB in the future, change this to store token with expire limitation (not password).
41
+ #
42
+ # Currently, only store to session if default password is used.
43
+ session[:succeed_password] = session_params[:password] if session_params[:password] == Settings.default_password
44
+ end
45
+ end
@@ -0,0 +1,40 @@
1
+ class TutorialsController < ApplicationController
2
+ before_action :find_fluentd
3
+ before_action :check_ready, only: [:chapter1, :chapter2]
4
+ before_action :set_in_http, only: [:chapter1, :chapter2, :request_fluentd]
5
+ helper_method :tutorial_ready?
6
+
7
+ def index
8
+ @log = @fluentd.agent.log_tail.reverse if @fluentd
9
+ end
10
+
11
+ def chapter1
12
+ end
13
+
14
+ def chapter2
15
+ @default_conf = Fluentd::DEFAULT_CONF
16
+ end
17
+
18
+ def request_fluentd
19
+ HTTPClient.post("http://localhost:#{@in_http["port"]}#{params[:path]}", json: params[:data].to_json)
20
+ render nothing: true, status: 204
21
+ end
22
+
23
+ private
24
+
25
+ def set_in_http
26
+ @in_http = @fluentd.agent.configuration.sources.find{|directive| directive["type"] == "http"}
27
+ end
28
+
29
+ def find_fluentd
30
+ @fluentd = Fluentd.instance
31
+ end
32
+
33
+ def check_ready
34
+ redirect_to tutorials_url unless tutorial_ready?
35
+ end
36
+
37
+ def tutorial_ready?
38
+ @fluentd && @fluentd.agent.running?
39
+ end
40
+ end
@@ -0,0 +1,28 @@
1
+ class UsersController < ApplicationController
2
+ before_action :find_user
3
+
4
+ def show
5
+ end
6
+
7
+ def update
8
+ unless @user.authenticate(user_params[:current_password])
9
+ @user.errors.add(:current_password, :wrong_password)
10
+ return render :show
11
+ end
12
+ unless @user.update_attributes(user_params)
13
+ return render :show
14
+ end
15
+ session[:succeed_password] = user_params[:password]
16
+ redirect_to user_path
17
+ end
18
+
19
+ private
20
+
21
+ def find_user
22
+ @user = User.new(name: "admin") # user is only "admin"
23
+ end
24
+
25
+ def user_params
26
+ params.require(:user).permit(:current_password, :password, :password_confirmation)
27
+ end
28
+ end