fluentd-ui 0.4.5 → 1.0.0.alpha.1

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 (243) hide show
  1. checksums.yaml +5 -5
  2. data/.babelrc +18 -0
  3. data/.editorconfig +11 -0
  4. data/.gitignore +7 -0
  5. data/.postcssrc.yml +3 -0
  6. data/.travis.yml +20 -4
  7. data/ChangeLog.md +7 -2
  8. data/Gemfile +8 -6
  9. data/Gemfile.lock +177 -178
  10. data/README.md +15 -10
  11. data/app/assets/stylesheets/application.css +6 -5
  12. data/app/controllers/concerns/setting_history_concern.rb +1 -1
  13. data/app/controllers/fluentd/agents_controller.rb +5 -0
  14. data/app/controllers/misc_controller.rb +2 -2
  15. data/app/controllers/plugins_controller.rb +4 -4
  16. data/app/helpers/application_helper.rb +8 -2
  17. data/app/helpers/settings_helper.rb +2 -2
  18. data/app/javascript/packs/application.js +31 -0
  19. data/app/{assets/javascripts/codemirror_fluentd.js → javascript/packs/codemirror.js} +32 -1
  20. data/app/javascript/packs/fluent_log.js +63 -0
  21. data/app/javascript/packs/in_tail_format.js +174 -0
  22. data/app/javascript/packs/nested_settings.js +40 -0
  23. data/app/javascript/packs/notification.js +60 -0
  24. data/app/javascript/packs/settings.js +122 -0
  25. data/app/javascript/packs/treeview.js +99 -0
  26. data/{vendor/assets/javascripts/.keep → app/javascript/stylesheets/application.scss} +0 -0
  27. data/app/jobs/all_plugin_check_update_job.rb +10 -0
  28. data/app/jobs/application_job.rb +2 -0
  29. data/app/{workers/fluentd_ui_restart.rb → jobs/fluentd_ui_restart_job.rb} +4 -4
  30. data/app/jobs/fluentd_ui_update_check_job.rb +11 -0
  31. data/app/{workers/gem_installer.rb → jobs/gem_installer_job.rb} +4 -5
  32. data/app/jobs/gem_uninstaller_job.rb +14 -0
  33. data/app/jobs/gem_update_check_job.rb +9 -0
  34. data/app/models/fluentd/agent.rb +9 -5
  35. data/app/models/fluentd/agent/common.rb +10 -6
  36. data/app/models/fluentd/agent/fluentd_gem.rb +2 -3
  37. data/app/models/fluentd/agent/td_agent/unix.rb +7 -5
  38. data/app/models/fluentd/setting/in_tail.rb +2 -2
  39. data/app/views/fluentd/_form.html.haml +1 -1
  40. data/app/views/fluentd/errors.html.haml +5 -6
  41. data/app/views/fluentd/log.html.haml +4 -5
  42. data/app/views/fluentd/settings/edit.html.haml +2 -1
  43. data/app/views/fluentd/settings/histories/_list.html.haml +1 -1
  44. data/app/views/fluentd/settings/histories/show.html.haml +6 -6
  45. data/app/views/fluentd/settings/in_tail/after_file_choose.html.haml +4 -3
  46. data/app/views/fluentd/settings/in_tail/after_format.html.haml +2 -2
  47. data/app/views/fluentd/settings/in_tail/confirm.html.haml +3 -3
  48. data/app/views/fluentd/settings/running_backup/show.html.haml +5 -5
  49. data/app/views/fluentd/settings/show.html.haml +7 -7
  50. data/app/views/fluentd/settings/source_and_output.html.haml +31 -18
  51. data/app/views/fluentd/show.html.haml +16 -15
  52. data/app/views/layouts/application.html.erb +31 -46
  53. data/app/views/layouts/sign_in.html.erb +9 -16
  54. data/app/views/misc/information.html.haml +13 -13
  55. data/app/views/misc/update_fluentd_ui.html.haml +3 -3
  56. data/app/views/plugins/installed.html.haml +8 -8
  57. data/app/views/plugins/recommended.html.haml +5 -5
  58. data/app/views/plugins/updated.html.haml +5 -5
  59. data/app/views/sessions/new.html.haml +5 -6
  60. data/app/views/shared/_global_nav.html.erb +9 -9
  61. data/app/views/shared/_initial_setup.html.haml +3 -3
  62. data/app/views/shared/_modal.html.erb +1 -1
  63. data/app/views/shared/settings/_form.html.haml +9 -8
  64. data/app/views/shared/settings/show.html.haml +4 -2
  65. data/app/views/shared/vue/_fluent_log.html.erb +6 -6
  66. data/app/views/shared/vue/_in_tail_format.html.erb +31 -29
  67. data/app/views/shared/vue/_notification.html.erb +5 -9
  68. data/app/views/shared/vue/_setting.html.erb +12 -10
  69. data/app/views/shared/vue/_treeview.html.erb +13 -10
  70. data/app/views/tutorials/chapter1.html.erb +3 -4
  71. data/app/views/tutorials/chapter2.html.haml +2 -2
  72. data/app/views/tutorials/chapter3.html.haml +2 -2
  73. data/app/views/tutorials/chapter4.html.haml +2 -2
  74. data/app/views/users/show.html.haml +1 -1
  75. data/bin/bundle +1 -1
  76. data/bin/fluentd-ui +1 -0
  77. data/bin/rails +1 -1
  78. data/bin/setup +16 -17
  79. data/bin/update +28 -0
  80. data/bin/webpack +15 -0
  81. data/bin/webpack-dev-server +15 -0
  82. data/bin/yarn +11 -0
  83. data/config/application.rb +18 -5
  84. data/config/boot.rb +2 -1
  85. data/config/environment.rb +1 -1
  86. data/config/environments/development.rb +27 -5
  87. data/config/environments/production.rb +34 -23
  88. data/config/environments/test.rb +7 -3
  89. data/config/initializers/application_controller_renderer.rb +8 -0
  90. data/config/initializers/assets.rb +14 -0
  91. data/config/initializers/content_security_policy.rb +25 -0
  92. data/config/initializers/cookies_serializer.rb +2 -0
  93. data/config/initializers/fluentd_ui_update_check.rb +2 -1
  94. data/config/initializers/new_framework_defaults_5_2.rb +35 -0
  95. data/config/initializers/prefetch_gem_updates.rb +4 -1
  96. data/config/initializers/wrap_parameters.rb +1 -6
  97. data/config/locales/ja.yml +61 -57
  98. data/config/routes.rb +1 -0
  99. data/config/spring.rb +6 -0
  100. data/config/webpack/development.js +5 -0
  101. data/config/webpack/environment.js +20 -0
  102. data/config/webpack/loaders/vue.js +13 -0
  103. data/config/webpack/production.js +5 -0
  104. data/config/webpack/test.js +5 -0
  105. data/config/webpacker.yml +69 -0
  106. data/fluentd-ui.gemspec +16 -6
  107. data/lib/fluentd-ui/version.rb +1 -1
  108. data/lib/regexp_preview/single_line.rb +5 -5
  109. data/package.json +19 -0
  110. data/spec/controllers/application_controller_spec.rb +2 -6
  111. data/spec/controllers/fluentd/agents_controller_spec.rb +12 -0
  112. data/spec/controllers/polling_controller_spec.rb +1 -1
  113. data/spec/factories/fluentd.rb +1 -1
  114. data/spec/factories/plugins.rb +2 -2
  115. data/spec/factories/user.rb +1 -1
  116. data/spec/features/fluentd/setting/histories_spec.rb +7 -6
  117. data/spec/features/fluentd/setting/running_backup_spec.rb +4 -3
  118. data/spec/features/setting_spec.rb +1 -0
  119. data/spec/features/source_and_output_spec.rb +16 -16
  120. data/spec/lib/regexp_preview/single_line_spec.rb +1 -1
  121. data/spec/models/fluentd_spec.rb +4 -4
  122. data/spec/spec_helper.rb +16 -4
  123. data/yarn.lock +6225 -0
  124. metadata +120 -154
  125. data/.bowerrc +0 -3
  126. data/app/assets/javascripts/application.js +0 -24
  127. data/app/assets/javascripts/codemirror.js +0 -29
  128. data/app/assets/javascripts/enable_bootstrap_tooltip.js +0 -3
  129. data/app/assets/javascripts/nested_setting.js +0 -41
  130. data/app/assets/javascripts/vue/fluent_log.js +0 -64
  131. data/app/assets/javascripts/vue/in_tail_format.js +0 -177
  132. data/app/assets/javascripts/vue/notification.js +0 -65
  133. data/app/assets/javascripts/vue/settings.js +0 -121
  134. data/app/assets/javascripts/vue/treeview.js +0 -97
  135. data/app/assets/javascripts/vue_common.js +0 -4
  136. data/app/workers/all_plugin_check_update.rb +0 -14
  137. data/app/workers/fluentd_ui_update_check.rb +0 -15
  138. data/app/workers/gem_uninstaller.rb +0 -15
  139. data/app/workers/gem_update_check.rb +0 -10
  140. data/bower.json +0 -11
  141. data/vendor/assets/javascripts/bower/.gitignore +0 -10
  142. data/vendor/assets/javascripts/bower/codemirror/.bower.json +0 -29
  143. data/vendor/assets/javascripts/bower/codemirror/bower.json +0 -16
  144. data/vendor/assets/javascripts/bower/codemirror/lib/codemirror.css +0 -309
  145. data/vendor/assets/javascripts/bower/codemirror/lib/codemirror.js +0 -8029
  146. data/vendor/assets/javascripts/bower/codemirror/theme/3024-day.css +0 -38
  147. data/vendor/assets/javascripts/bower/codemirror/theme/3024-night.css +0 -37
  148. data/vendor/assets/javascripts/bower/codemirror/theme/ambiance-mobile.css +0 -5
  149. data/vendor/assets/javascripts/bower/codemirror/theme/ambiance.css +0 -77
  150. data/vendor/assets/javascripts/bower/codemirror/theme/base16-dark.css +0 -36
  151. data/vendor/assets/javascripts/bower/codemirror/theme/base16-light.css +0 -36
  152. data/vendor/assets/javascripts/bower/codemirror/theme/blackboard.css +0 -30
  153. data/vendor/assets/javascripts/bower/codemirror/theme/cobalt.css +0 -23
  154. data/vendor/assets/javascripts/bower/codemirror/theme/eclipse.css +0 -23
  155. data/vendor/assets/javascripts/bower/codemirror/theme/elegant.css +0 -13
  156. data/vendor/assets/javascripts/bower/codemirror/theme/erlang-dark.css +0 -32
  157. data/vendor/assets/javascripts/bower/codemirror/theme/lesser-dark.css +0 -45
  158. data/vendor/assets/javascripts/bower/codemirror/theme/mbo.css +0 -35
  159. data/vendor/assets/javascripts/bower/codemirror/theme/mdn-like.css +0 -44
  160. data/vendor/assets/javascripts/bower/codemirror/theme/midnight.css +0 -45
  161. data/vendor/assets/javascripts/bower/codemirror/theme/monokai.css +0 -31
  162. data/vendor/assets/javascripts/bower/codemirror/theme/neat.css +0 -12
  163. data/vendor/assets/javascripts/bower/codemirror/theme/neo.css +0 -43
  164. data/vendor/assets/javascripts/bower/codemirror/theme/night.css +0 -26
  165. data/vendor/assets/javascripts/bower/codemirror/theme/paraiso-dark.css +0 -36
  166. data/vendor/assets/javascripts/bower/codemirror/theme/paraiso-light.css +0 -36
  167. data/vendor/assets/javascripts/bower/codemirror/theme/pastel-on-dark.css +0 -50
  168. data/vendor/assets/javascripts/bower/codemirror/theme/rubyblue.css +0 -23
  169. data/vendor/assets/javascripts/bower/codemirror/theme/solarized.css +0 -165
  170. data/vendor/assets/javascripts/bower/codemirror/theme/the-matrix.css +0 -28
  171. data/vendor/assets/javascripts/bower/codemirror/theme/tomorrow-night-bright.css +0 -35
  172. data/vendor/assets/javascripts/bower/codemirror/theme/tomorrow-night-eighties.css +0 -36
  173. data/vendor/assets/javascripts/bower/codemirror/theme/twilight.css +0 -30
  174. data/vendor/assets/javascripts/bower/codemirror/theme/vibrant-ink.css +0 -32
  175. data/vendor/assets/javascripts/bower/codemirror/theme/xq-dark.css +0 -51
  176. data/vendor/assets/javascripts/bower/codemirror/theme/xq-light.css +0 -43
  177. data/vendor/assets/javascripts/bower/codemirror/theme/zenburn.css +0 -37
  178. data/vendor/assets/javascripts/bower/es6-promise/.bower.json +0 -15
  179. data/vendor/assets/javascripts/bower/es6-promise/bower.json +0 -5
  180. data/vendor/assets/javascripts/bower/es6-promise/promise.js +0 -684
  181. data/vendor/assets/javascripts/bower/es6-promise/promise.min.js +0 -1
  182. data/vendor/assets/javascripts/bower/lodash/.bower.json +0 -33
  183. data/vendor/assets/javascripts/bower/lodash/LICENSE.txt +0 -22
  184. data/vendor/assets/javascripts/bower/lodash/bower.json +0 -23
  185. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.js +0 -7157
  186. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.min.js +0 -61
  187. data/vendor/assets/javascripts/bower/lodash/dist/lodash.js +0 -6785
  188. data/vendor/assets/javascripts/bower/lodash/dist/lodash.min.js +0 -56
  189. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.js +0 -4979
  190. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.min.js +0 -39
  191. data/vendor/assets/javascripts/bower/vue/.bower.json +0 -29
  192. data/vendor/assets/javascripts/bower/vue/bower.json +0 -17
  193. data/vendor/assets/javascripts/bower/vue/dist/vue.js +0 -7977
  194. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +0 -7
  195. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.js +0 -1951
  196. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.min.js +0 -6
  197. data/vendor/assets/javascripts/sb-admin-v2/demo/dashboard-demo.js +0 -117
  198. data/vendor/assets/javascripts/sb-admin-v2/demo/flot-demo.js +0 -1242
  199. data/vendor/assets/javascripts/sb-admin-v2/demo/morris-demo.js +0 -155
  200. data/vendor/assets/javascripts/sb-admin-v2/jquery-1.10.2.js +0 -6
  201. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.js +0 -245
  202. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/jquery.dataTables.js +0 -14013
  203. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/excanvas.min.js +0 -1
  204. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.js +0 -2599
  205. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.pie.js +0 -750
  206. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.resize.js +0 -60
  207. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.tooltip.min.js +0 -12
  208. data/vendor/assets/javascripts/sb-admin-v2/plugins/metisMenu/jquery.metisMenu.js +0 -45
  209. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/morris.js +0 -1888
  210. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/raphael-2.1.0.min.js +0 -10
  211. data/vendor/assets/javascripts/sb-admin-v2/sb-admin.js +0 -18
  212. data/vendor/assets/stylesheets/.keep +0 -0
  213. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.css +0 -5830
  214. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.min.css +0 -7
  215. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.css +0 -1338
  216. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.min.css +0 -4
  217. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/FontAwesome.otf +0 -0
  218. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  219. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.svg +0 -414
  220. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  221. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  222. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_bordered-pulled.scss +0 -16
  223. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_core.scss +0 -12
  224. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_fixed-width.scss +0 -6
  225. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_icons.scss +0 -412
  226. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_larger.scss +0 -13
  227. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_list.scss +0 -19
  228. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_mixins.scss +0 -20
  229. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_path.scss +0 -14
  230. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_rotated-flipped.scss +0 -9
  231. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_spinning.scss +0 -30
  232. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_stacked.scss +0 -20
  233. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_variables.scss +0 -381
  234. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/font-awesome.scss +0 -17
  235. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.eot +0 -0
  236. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.svg +0 -229
  237. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.ttf +0 -0
  238. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.woff +0 -0
  239. data/vendor/assets/stylesheets/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.css +0 -233
  240. data/vendor/assets/stylesheets/sb-admin-v2/plugins/morris/morris-0.4.3.min.css +0 -2
  241. data/vendor/assets/stylesheets/sb-admin-v2/plugins/social-buttons/social-buttons.css +0 -68
  242. data/vendor/assets/stylesheets/sb-admin-v2/plugins/timeline/timeline.css +0 -144
  243. data/vendor/assets/stylesheets/sb-admin-v2/sb-admin.css +0 -329
data/config/routes.rb CHANGED
@@ -11,6 +11,7 @@ Rails.application.routes.draw do
11
11
  put "start"
12
12
  put "stop"
13
13
  put "restart"
14
+ put "reload"
14
15
  get "log_tail"
15
16
  end
16
17
 
data/config/spring.rb ADDED
@@ -0,0 +1,6 @@
1
+ %w[
2
+ .ruby-version
3
+ .rbenv-vars
4
+ tmp/restart.txt
5
+ tmp/caching-dev.txt
6
+ ].each { |path| Spring.watch(path) }
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,20 @@
1
+ const { environment } = require('@rails/webpacker')
2
+ const vue = require('./loaders/vue')
3
+ const webpack = require('webpack');
4
+
5
+ // Get a pre-configured plugin
6
+ const manifestPlugin = environment.plugins.get('Manifest')
7
+ manifestPlugin.opts.writeToFileEmit = false
8
+
9
+ // Add an additional plugin of your choosing : ProvidePlugin
10
+ environment.plugins.prepend(
11
+ 'Provide',
12
+ new webpack.ProvidePlugin({
13
+ $: 'jquery/dist/jquery',
14
+ jQuery: 'jquery/dist/jquery',
15
+ Popper: 'popper.js/dist/popper'
16
+ })
17
+ );
18
+
19
+ environment.loaders.append('vue', vue)
20
+ module.exports = environment
@@ -0,0 +1,13 @@
1
+ const { dev_server: devServer } = require('@rails/webpacker').config
2
+
3
+ const isProduction = process.env.NODE_ENV === 'production'
4
+ const inDevServer = process.argv.find(v => v.includes('webpack-dev-server'))
5
+ const extractCSS = !(inDevServer && (devServer && devServer.hmr)) || isProduction
6
+
7
+ module.exports = {
8
+ test: /\.vue(\.erb)?$/,
9
+ use: [{
10
+ loader: 'vue-loader',
11
+ options: { extractCSS }
12
+ }]
13
+ }
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'production'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,69 @@
1
+ # Note: You must restart bin/webpack-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ source_path: app/javascript
5
+ source_entry_path: packs
6
+ public_output_path: packs
7
+ cache_path: tmp/cache/webpacker
8
+
9
+ # Additional paths webpack should lookup modules
10
+ # ['app/assets', 'engine/foo/app/assets']
11
+ resolved_paths: []
12
+
13
+ # Reload manifest.json on all requests so we reload latest compiled packs
14
+ cache_manifest: false
15
+
16
+ extensions:
17
+ - .vue
18
+ - .js
19
+ - .sass
20
+ - .scss
21
+ - .css
22
+ - .module.sass
23
+ - .module.scss
24
+ - .module.css
25
+ - .png
26
+ - .svg
27
+ - .gif
28
+ - .jpeg
29
+ - .jpg
30
+
31
+ development:
32
+ <<: *default
33
+ compile: true
34
+
35
+ # Reference: https://webpack.js.org/configuration/dev-server/
36
+ dev_server:
37
+ https: false
38
+ host: localhost
39
+ port: 3035
40
+ public: localhost:3035
41
+ hmr: false
42
+ # Inline should be set to true if using HMR
43
+ inline: true
44
+ overlay: true
45
+ compress: true
46
+ disable_host_check: true
47
+ use_local_ip: false
48
+ quiet: false
49
+ headers:
50
+ 'Access-Control-Allow-Origin': '*'
51
+ watch_options:
52
+ ignored: /node_modules/
53
+
54
+
55
+ test:
56
+ <<: *default
57
+ compile: true
58
+
59
+ # Compile test packs to a separate directory
60
+ public_output_path: packs-test
61
+
62
+ production:
63
+ <<: *default
64
+
65
+ # Production depends on precompilation of packs prior to booting for performance.
66
+ compile: false
67
+
68
+ # Cache manifest.json for performance
69
+ cache_manifest: true
data/fluentd-ui.gemspec CHANGED
@@ -19,21 +19,30 @@ Gem::Specification.new do |spec|
19
19
  # And spec.files required for building a .gem only.
20
20
  # Thus git ls-files only invoked with `rake build` command
21
21
  spec.files = `git ls-files`.split($/)
22
+ # Add pre-compiled assets
23
+ Dir.chdir(__dir__) do
24
+ Dir.glob("public/assets/.sprockets-manifest-*.json") do |file|
25
+ spec.files << file
26
+ end
27
+ Dir.glob("public/{assets,packs}/*") do |file|
28
+ spec.files << file
29
+ end
30
+ end
22
31
  end
23
32
  spec.executables = ["fluentd-ui"]
24
33
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
25
34
  spec.require_paths = ["lib"]
26
35
 
27
- spec.add_dependency "fluentd", [">= 0.10.56", "< 0.14"]
28
- spec.add_dependency 'rails', '~> 4.2.0'
29
- spec.add_dependency 'sucker_punch', "~> 1.6.0"
36
+ spec.add_dependency "fluentd", [">= 1.0.0", "< 2"]
37
+ spec.add_dependency 'rails', '~> 5.2.0'
38
+ spec.add_dependency "bootsnap", ">= 1.1.0"
39
+ spec.add_dependency 'sucker_punch', "~> 2.0.4"
30
40
  spec.add_dependency 'addressable'
31
41
  spec.add_dependency "font-awesome-rails"
32
- spec.add_dependency 'sass-rails', '~> 4.0.3'
42
+ spec.add_dependency 'sass-rails', '~> 5.0.7'
33
43
  spec.add_dependency "haml-rails", "~> 1.0"
34
- spec.add_dependency 'jquery-rails', "~> 4.3.1"
35
44
  spec.add_dependency 'jbuilder', '~> 2.0'
36
- spec.add_dependency "draper", '~> 2.1'
45
+ spec.add_dependency "draper", '~> 3.0'
37
46
  spec.add_dependency "bundler"
38
47
  spec.add_dependency "httpclient", "~> 2.5" # same as td-agent
39
48
  spec.add_dependency "settingslogic"
@@ -43,4 +52,5 @@ Gem::Specification.new do |spec|
43
52
  spec.add_dependency "kramdown-haml"
44
53
  spec.add_dependency "rubyzip", "~> 1.1" # API changed as Zip::ZipFile -> Zip::File since v1.0.0
45
54
  spec.add_dependency "diff-lcs"
55
+ spec.add_dependency "webpacker"
46
56
  end
@@ -1,3 +1,3 @@
1
1
  module FluentdUI
2
- VERSION = "0.4.5"
2
+ VERSION = "1.0.0.alpha.1"
3
3
  end
@@ -16,11 +16,11 @@ module RegexpPreview
16
16
  @regexp = nil
17
17
  @time_format = nil
18
18
  else # apache, nginx, etc
19
- definition = Fluent::TextParser::TEMPLATE_REGISTRY.lookup(format).call
20
- raise "Unknown format '#{format}'" unless definition
21
- definition.configure(Fluent::Config::Element.new('ROOT', '', {}, [])) # NOTE: SyslogParser define @regexp in configure method so call it to grab Regexp object
22
- @regexp = definition.patterns["format"]
23
- @time_format = definition.patterns["time_format"]
19
+ parser_plugin = Fluent::Plugin.new_parser(format)
20
+ raise "Unknown format '#{format}'" unless parser_plugin
21
+ parser_plugin.configure(Fluent::Config::Element.new('ROOT', '', {}, [])) # NOTE: SyslogParser define @regexp in configure method so call it to grab Regexp object
22
+ @regexp = parser_plugin.instance_variable_get(:@regexp)
23
+ @time_format = parser_plugin.time_format
24
24
  end
25
25
  end
26
26
 
data/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "fluentd-ui",
3
+ "private": true,
4
+ "dependencies": {
5
+ "@rails/webpacker": "3.5",
6
+ "codemirror": "^5.37.0",
7
+ "es6-promise": "^4.2.4",
8
+ "jquery": "^3.3.1",
9
+ "lodash": "^4.17.10",
10
+ "popper.js": "^1.14.3",
11
+ "startbootstrap-sb-admin": "^4.0.0",
12
+ "vue": "^2.5.16",
13
+ "vue-loader": "14.2.2",
14
+ "vue-template-compiler": "^2.5.16"
15
+ },
16
+ "devDependencies": {
17
+ "webpack-dev-server": "2.11.2"
18
+ }
19
+ }
@@ -6,24 +6,20 @@ describe DummyController do
6
6
  controller DummyController do
7
7
  skip_before_action :login_required
8
8
  def index
9
- render :text => "Hello World"
9
+ render plain: "Hello World"
10
10
  end
11
11
  end
12
12
 
13
13
  describe '#set_locale' do
14
14
  let!(:default_locale) { :en }
15
- let!(:available_locales) { [:en, :ja] }
16
15
 
17
16
  before do
18
- I18n.stub(:default_locale).and_return(default_locale)
19
- I18n.stub(:available_locales).and_return(available_locales)
20
-
21
17
  I18n.locale = I18n.default_locale #initialize
22
18
  end
23
19
 
24
20
  context 'with params[:lang]' do
25
21
  before do
26
- get 'index', lang: param_lang
22
+ get 'index', params: { lang: param_lang }
27
23
  end
28
24
 
29
25
  context 'and in available_locales' do
@@ -24,6 +24,11 @@ describe Fluentd::AgentsController do
24
24
  expect(@agent).to receive(:restart).and_return true
25
25
  put :restart
26
26
  end
27
+
28
+ it "reaload" do
29
+ expect(@agent).to receive(:reload).and_return true
30
+ put :reload
31
+ end
27
32
  end
28
33
 
29
34
  describe "when the action does not succeed" do
@@ -45,5 +50,12 @@ describe Fluentd::AgentsController do
45
50
  expect(log).to receive(:tail).with(1)
46
51
  put :restart
47
52
  end
53
+
54
+ it "reload" do
55
+ expect(@agent).to receive(:reload).and_return false
56
+ expect(@agent).to receive(:log).and_return(log)
57
+ expect(log).to receive(:tail).with(1)
58
+ put :reload
59
+ end
48
60
  end
49
61
  end
@@ -7,7 +7,7 @@ describe PollingController do
7
7
  end
8
8
 
9
9
  after do
10
- response.should be_success
10
+ response.should be_successful
11
11
  end
12
12
 
13
13
  it 'may find nothing' do
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :fluentd do
3
3
  dir = Rails.root.join("tmp/fluentd-test").to_s
4
4
  FileUtils.mkdir_p(dir)
@@ -1,6 +1,6 @@
1
- # Read about factories at https://github.com/thoughtbot/factory_girl
1
+ # Read about factories at https://github.com/thoughtbot/factory_bot
2
2
 
3
- FactoryGirl.define do
3
+ FactoryBot.define do
4
4
  factory :plugin do
5
5
  gem_name "fluent-plugin-dummy"
6
6
  version "1.2.3"
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :user do
3
3
  name "admin"
4
4
  password "changeme"
@@ -35,16 +35,17 @@ describe "histories", stub: :daemon do
35
35
 
36
36
  it 'show histories#show' do
37
37
  page.should have_css('h1', text: I18n.t('fluentd.settings.histories.show.page_title'))
38
- page.should have_text(last_backup_file.content)
38
+
39
+ page.should has_text?(last_backup_file.content)
39
40
  end
40
41
 
41
42
  describe 'diff' do
42
43
  context 'has diff' do
43
44
  it 'shows diff between current and target' do
44
- page.should have_text("- type http")
45
- page.should have_text("+ type forward")
46
- page.should have_text("- port 8899")
47
- page.should have_text("+ port 24224")
45
+ page.should has_text?("- type http")
46
+ page.should has_text?("+ type forward")
47
+ page.should has_text?("- port 8899")
48
+ page.should has_text?("+ port 24224")
48
49
  end
49
50
  end
50
51
 
@@ -64,7 +65,7 @@ describe "histories", stub: :daemon do
64
65
 
65
66
  page.should have_css('h1', text: I18n.t('fluentd.settings.show.page_title'))
66
67
  page.should have_text(I18n.t('messages.config_successfully_copied', brand: 'fluentd') )
67
- page.should have_text(last_backup_file.content)
68
+ page.should has_text?(last_backup_file.content)
68
69
  end
69
70
 
70
71
  describe "configtest" do
@@ -39,9 +39,10 @@ describe "running_backup", stub: :daemon do
39
39
  describe 'diff' do
40
40
  context 'has diff' do
41
41
  it 'shows diff between current and running' do
42
- expect(page).to have_text("- type http")
43
- expect(page).to have_text("- port 8899")
44
- expect(page).to have_text("+ Running backup file content")
42
+ diff = page.first(".diff pre").native.inner_text
43
+ expect(diff).to include("- type http")
44
+ expect(diff).to include("- port 8899")
45
+ expect(diff).to include("+ Running backup file content")
45
46
  end
46
47
  end
47
48
 
@@ -50,6 +50,7 @@ describe 'setting', stub: :daemon do
50
50
 
51
51
  describe "config" do
52
52
  before do
53
+ Fluentd::Agent::TdAgent.any_instance.stub(:dryrun).with(an_instance_of(String)).and_return(true)
53
54
  daemon.agent.config_write conf
54
55
  click_link I18n.t('terms.edit')
55
56
  end
@@ -54,17 +54,17 @@ describe "source_and_output", js: true, stub: :daemon do
54
54
  it do
55
55
  page.should_not have_content(I18n.t("fluentd.settings.source_and_output.setting_empty"))
56
56
 
57
- page.should have_css('.input .panel .panel-heading')
58
- page.should have_css('.output .panel .panel-heading')
57
+ page.should have_css('.input .card .card-header')
58
+ page.should have_css('.output .card .card-header')
59
59
  end
60
60
 
61
- it ".panel-body is hidden by default and click .panel-heading for display" do
62
- page.should_not have_css('.input .panel .panel-body')
63
- page.should_not have_css('.output .panel .panel-body')
64
- all(".input .panel .panel-heading").first.click
65
- page.should have_css('.input .panel .panel-body')
66
- all(".output .panel .panel-heading").first.click
67
- page.should have_css('.output .panel .panel-body')
61
+ it ".card-body is hidden by default and click .card-header for display" do
62
+ page.should_not have_css('.input .card .card-body')
63
+ page.should_not have_css('.output .card .card-body')
64
+ all(".input .card .card-header").first.click
65
+ page.should have_css('.input .card .card-body')
66
+ all(".output .card .card-header").first.click
67
+ page.should have_css('.output .card .card-body')
68
68
  end
69
69
 
70
70
  it "display plugin name" do
@@ -94,7 +94,7 @@ describe "source_and_output", js: true, stub: :daemon do
94
94
  CONF
95
95
 
96
96
  before do
97
- all(".input .panel .panel-heading").first.click
97
+ all(".input .card .card-header").first.click
98
98
  end
99
99
 
100
100
  it "click edit button transform textarea, then click cancel button to be reset" do
@@ -136,20 +136,20 @@ describe "source_and_output", js: true, stub: :daemon do
136
136
  end
137
137
 
138
138
  it "click delete button transform textarea" do
139
- page.should have_css('.input .panel-body')
140
- confirm_dialog(true) do
139
+ page.should have_css('.input .card-body')
140
+ accept_confirm do
141
141
  find(".btn", text: I18n.t('terms.destroy')).click
142
142
  end
143
- page.should_not have_css('.input .panel-body')
143
+ page.should_not have_css('.input .card-body')
144
144
  daemon.agent.config.strip.should == ""
145
145
  end
146
146
 
147
147
  it "click delete button then cancel it" do
148
- page.should have_css('.input .panel-body')
149
- confirm_dialog(false) do
148
+ page.should have_css('.input .card-body')
149
+ dismiss_confirm do
150
150
  find(".btn", text: I18n.t('terms.destroy')).click
151
151
  end
152
- page.should have_css('.input .panel-body')
152
+ page.should have_css('.input .card-body')
153
153
  daemon.agent.config.strip.should == config_contents.strip
154
154
  end
155
155
  end
@@ -88,7 +88,7 @@ describe RegexpPreview::SingleLine do
88
88
 
89
89
  include_examples "should set regexp and time_format from selected format" do
90
90
  let(:regexp) do
91
- /^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$/
91
+ /^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)"(?:\s+(?<http_x_forwarded_for>[^ ]+))?)?$/
92
92
  end
93
93
  let(:time_format) { "%d/%b/%Y:%H:%M:%S %z" }
94
94
  end