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,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe PollingController do
4
+
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe SessionsController do
4
+
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe TutorialsController, :type => :controller do
4
+
5
+ end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :fluentd do
3
+ dir = Rails.root.join("tmp/fluentd-test").to_s
4
+ FileUtils.mkdir_p(dir)
5
+
6
+ variant "fluentd_gem"
7
+ log_file dir + "/fluentd.log"
8
+ pid_file dir + "/fluentd.pid"
9
+ config_file dir + "/fluentd.conf"
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ # Read about factories at https://github.com/thoughtbot/factory_girl
2
+
3
+ FactoryGirl.define do
4
+ factory :plugin do
5
+ gem_name "fluent-plugin-dummy"
6
+ version "1.2.3"
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :user do
3
+ name "admin"
4
+ password "changeme"
5
+ end
6
+ end
@@ -0,0 +1,45 @@
1
+ require "spec_helper"
2
+
3
+ describe "out_forward" do
4
+ let(:exists_user) { build(:user) }
5
+ let(:daemon) { build(:fluentd, variant: "td-agent") }
6
+ let(:match) { "test.out_forward.#{Time.now.to_i}.*" }
7
+
8
+ before do
9
+ Fluentd.stub(:instance).and_return(daemon)
10
+ Fluentd::Agent::TdAgent.any_instance.stub(:detached_command).and_return(true)
11
+ daemon.agent.config_write ""
12
+
13
+ visit '/sessions/new'
14
+ within("form") do
15
+ fill_in 'session_name', :with => exists_user.name
16
+ fill_in 'session_password', :with => exists_user.password
17
+ end
18
+ click_button I18n.t("terms.sign_in")
19
+ end
20
+
21
+ it "Shown form" do
22
+ visit daemon_setting_out_forward_path
23
+ page.should have_css('input[name="fluentd_setting_out_forward[match]"]')
24
+ end
25
+
26
+ it "Appendable server setting", js: true do
27
+ visit daemon_setting_out_forward_path
28
+ all('.js-nested-column .js-append', visible: false).length.should == 1
29
+ all('.js-append').first.click
30
+ all('.js-nested-column .js-append', visible: false).length.should == 2
31
+ end
32
+
33
+ it "Updated config after submit", js: true do
34
+ daemon.agent.config.should_not include(match)
35
+ visit daemon_setting_out_forward_path
36
+ within('#new_fluentd_setting_out_forward') do
37
+ fill_in "Match", with: match
38
+ fill_in "fluentd_setting_out_forward_server_0__host", with: "foobar"
39
+ fill_in "fluentd_setting_out_forward_server_0__port", with: "9999"
40
+ fill_in "Path", with: "/tmp/foo"
41
+ end
42
+ click_button I18n.t("fluentd.common.finish")
43
+ daemon.agent.config.should include(match)
44
+ end
45
+ end
@@ -0,0 +1,35 @@
1
+ require "spec_helper"
2
+
3
+ describe "out_td" do
4
+ let(:exists_user) { build(:user) }
5
+ let(:daemon) { build(:fluentd, variant: "td-agent") }
6
+ let(:api_key) { "dummydummy" }
7
+
8
+ before do
9
+ Fluentd.stub(:instance).and_return(daemon)
10
+ Fluentd::Agent::TdAgent.any_instance.stub(:detached_command).and_return(true)
11
+ daemon.agent.config_write ""
12
+
13
+ visit '/sessions/new'
14
+ within("form") do
15
+ fill_in 'session_name', :with => exists_user.name
16
+ fill_in 'session_password', :with => exists_user.password
17
+ end
18
+ click_button I18n.t("terms.sign_in")
19
+ end
20
+
21
+ it "Shown form with filled in td.*.* on match" do
22
+ visit daemon_setting_out_td_path
23
+ page.should have_css('input[name="fluentd_setting_out_td[match]"]')
24
+ end
25
+
26
+ it "Updated config after submit" do
27
+ daemon.agent.config.should_not include(api_key)
28
+ visit daemon_setting_out_td_path
29
+ within('#new_fluentd_setting_out_td') do
30
+ fill_in "Apikey", with: api_key
31
+ end
32
+ click_button I18n.t("fluentd.common.finish")
33
+ daemon.agent.config.should include(api_key)
34
+ end
35
+ end
@@ -0,0 +1,55 @@
1
+ describe "sessions" do
2
+ let(:exists_user) { build(:user) }
3
+
4
+ describe "the sign in process" do
5
+ let(:submit_label) { I18n.t("terms.sign_in") }
6
+ before do
7
+ visit '/sessions/new'
8
+ within("form") do
9
+ fill_in 'session_name', :with => user.name
10
+ fill_in 'session_password', :with => user.password
11
+ end
12
+ click_button submit_label
13
+ end
14
+
15
+ context "sign in with exists user" do
16
+ let(:user) { exists_user }
17
+ it "login success, then redirect to root_path, and redirect_to daemon_path from root_path" do
18
+ current_path.should == daemon_path
19
+ end
20
+ end
21
+
22
+ context "sign in with non-exists user" do
23
+ let(:user) { build(:user, password: "passw0rd") }
24
+
25
+ it "current location is not root_path" do
26
+ current_path.should_not == root_path
27
+ end
28
+
29
+ it "display form for retry" do
30
+ page.body.should have_css('form')
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "sign out process" do
36
+ let(:submit_label) { I18n.t("terms.sign_in") }
37
+ before do
38
+ visit '/sessions/new'
39
+ within("form") do
40
+ fill_in 'session_name', :with => exists_user.name
41
+ fill_in 'session_password', :with => exists_user.password
42
+ end
43
+ click_button submit_label
44
+ end
45
+
46
+ before do
47
+ visit root_path
48
+ click_link I18n.t("terms.sign_out")
49
+ end
50
+
51
+ it "at sign in page after sign out" do
52
+ current_path.should == new_sessions_path
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,4 @@
1
+ shared_examples_for "login required" do
2
+ before { visit url }
3
+ it { current_path.should == new_sessions_path }
4
+ end
@@ -0,0 +1,9 @@
1
+ describe "users" do
2
+ let(:exists_user) { create(:user) }
3
+
4
+ describe "edit" do
5
+ let(:url) { user_path }
6
+ it_should_behave_like "login required"
7
+ end
8
+
9
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ describe GrokConverter do
4
+ describe "#convert_to_regexp" do
5
+ let(:grok) { GrokConverter.new }
6
+
7
+ subject { grok.convert_to_regexp(pattern) }
8
+
9
+ context "load" do
10
+ before { grok.load_patterns(Rails.root + "vendor/patterns/") }
11
+
12
+ context "basic key" do
13
+ let(:pattern) { "%{USER:username} is a user" }
14
+
15
+ it do
16
+ subject.names.should == ["username"]
17
+ end
18
+
19
+ it do
20
+ subject.match("foobar is a user").should be_truthy
21
+ end
22
+ end
23
+
24
+ context "without name" do
25
+ let(:pattern) { "%{USER} is a user" }
26
+
27
+ it do
28
+ subject.names.should == []
29
+ end
30
+
31
+ it do
32
+ subject.match("foobar2 is a user").should be_truthy
33
+ end
34
+ end
35
+
36
+ context "not exists key" do
37
+ let(:pattern) { "%{USER:username} %{USER} %{NOT_EXISTS_KEY:key} foo bar" }
38
+
39
+ it do
40
+ subject.names.should == ["username", "key"]
41
+ end
42
+
43
+ it do
44
+ subject.match("someuser user2 foo bar").should be_truthy
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+
@@ -0,0 +1,73 @@
1
+ require "enumerator"
2
+ require 'spec_helper'
3
+
4
+ describe FileReverseReader do
5
+ let(:instance) { FileReverseReader.new(io) }
6
+ let(:io) { File.open(logfile) }
7
+
8
+ describe "#each_line" do
9
+ let(:instance) { FileReverseReader.new(io, step) }
10
+ subject { instance.enum_for(:each_line) }
11
+ let(:logfile) { File.expand_path("./spec/support/fixtures/error0.log", Rails.root) }
12
+
13
+ context "read at once" do
14
+
15
+ context "small file (read at once)" do
16
+ let(:step) { File.size(logfile) }
17
+
18
+ it { subject.count.should == File.open(logfile).each_line.count }
19
+ it "reverse order" do
20
+ subject.to_a.should == File.open(logfile).each_line.to_a.map(&:strip).reverse
21
+ end
22
+ end
23
+
24
+ context "large file" do
25
+ let(:step) { 2 }
26
+
27
+ it { subject.count.should == File.open(logfile).each_line.count }
28
+ it "reverse order" do
29
+ subject.to_a.should == File.open(logfile).each_line.to_a.map(&:strip).reverse
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "#binary_file?" do
36
+ let(:logfile) { File.expand_path("./tmp/log.log", Rails.root) }
37
+ before { File.open(logfile, "wb"){|f| f.write content} }
38
+ subject { instance.binary_file? }
39
+
40
+ context "contain ascii only" do
41
+ let(:content) { "ABCDE" }
42
+ it { should be_false }
43
+ end
44
+
45
+ context "contain non-ascii" do
46
+ let(:content) { "\x89NG" }
47
+ it { should be_true }
48
+ end
49
+ end
50
+
51
+ describe "#tail" do
52
+ let(:logfile) { File.expand_path("./tmp/log.log", Rails.root) }
53
+ let(:log_lines) { 100 }
54
+ before { File.open(logfile, "w"){|f| f.write("foo\n" * log_lines) } }
55
+ subject { instance.tail(count) }
56
+
57
+ context "2" do
58
+ let(:count) { 2 }
59
+ it { subject.to_a.size.should == count }
60
+ end
61
+
62
+ context "50" do
63
+ let(:count) { 50 }
64
+ it { subject.to_a.size.should == count }
65
+ end
66
+
67
+ context "over log lines" do
68
+ let(:count) { log_lines + 100 }
69
+ it { subject.to_a.size.should == log_lines }
70
+ end
71
+ end
72
+ end
73
+
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe FluentdUI do
4
+ describe ".update_available?" do
5
+ let(:current_version) { ::FluentdUI::VERSION }
6
+ before { FluentdUI.latest_version = latest_version }
7
+ subject { FluentdUI.update_available? }
8
+
9
+ context "nothing" do
10
+ let(:latest_version) { current_version }
11
+ it { should be_falsey }
12
+ end
13
+
14
+ context "available" do
15
+ let(:latest_version) { current_version.succ }
16
+ it { should be_truthy }
17
+ end
18
+ end
19
+
20
+ describe ".fluentd_version" do
21
+ before { Fluentd.stub(:instance).and_return(target) }
22
+ subject { FluentdUI.fluentd_version }
23
+
24
+ context "not setup yet" do
25
+ let(:target) { nil }
26
+ it { should be_nil }
27
+ end
28
+
29
+ context "did setup" do
30
+ let(:target) { build(:fluentd) }
31
+ let(:version) { "1.1.1" }
32
+ it { should == target.agent.version }
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fluentd::Agent do
4
+ let(:instance) { described_class.new(options) }
5
+ let(:options) { {} }
6
+
7
+ describe "FluentdGem" do
8
+ let(:described_class) { Fluentd::Agent::FluentdGem } # override nested described_class behavior as https://github.com/rspec/rspec-core/issues/1114
9
+
10
+ it_should_behave_like "Fluentd::Agent has common behavior"
11
+
12
+ describe "#options_to_argv" do
13
+ subject { instance.send(:options_to_argv) }
14
+ it { should include("-c #{instance.config_file}") }
15
+ it { should include("-d #{instance.pid_file}") }
16
+ it { should include("-o #{instance.log_file}") }
17
+ it { should include("--use-v1-config") }
18
+ end
19
+
20
+ describe "#start" do
21
+ before { instance.stub(:running?).and_return(running) }
22
+
23
+ context "running" do
24
+ let(:running) { true }
25
+
26
+ subject { instance.start }
27
+
28
+ it { should be_truthy }
29
+ end
30
+
31
+ context "not running" do
32
+ let(:running) { false }
33
+
34
+ subject { instance.start }
35
+
36
+ before do
37
+ instance.stub(:actual_start).and_return(start_result)
38
+ end
39
+
40
+ context "actual start success" do
41
+ let(:start_result) { true }
42
+ it { should be_truthy }
43
+ end
44
+
45
+ context "actual start failed" do
46
+ let(:start_result) { false }
47
+ it { should be_falsy }
48
+ end
49
+ end
50
+ end
51
+
52
+ describe "#stop" do
53
+ before { instance.stub(:running?).and_return(running) }
54
+
55
+ subject { instance.stop }
56
+
57
+ context "running" do
58
+ let(:running) { true }
59
+
60
+ before { instance.stub(:actual_stop).and_return(stop_result) }
61
+
62
+ context "actual stop success" do
63
+ let(:stop_result) { true }
64
+ it { should be_truthy }
65
+ end
66
+
67
+ context "actual stop failed" do
68
+ let(:stop_result) { false }
69
+ it { should be_falsy }
70
+ end
71
+ end
72
+
73
+ context "not running" do
74
+ let(:running) { false }
75
+
76
+ it { should be_truthy }
77
+ end
78
+ end
79
+
80
+ describe "#restart" do
81
+ it_should_behave_like "Restart strategy"
82
+ end
83
+ end
84
+
85
+ describe "TdAgent" do
86
+ let(:described_class) { Fluentd::Agent::TdAgent } # override nested described_class behavior as https://github.com/rspec/rspec-core/issues/1114
87
+
88
+ it_should_behave_like "Fluentd::Agent has common behavior"
89
+ end
90
+ end
91
+