fluentd-ui 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (287) hide show
  1. data/ChangeLog +9 -0
  2. data/Gemfile.lock +47 -44
  3. data/README.md +4 -4
  4. data/app/assets/javascripts/vue/in_tail_format.js +7 -2
  5. data/app/assets/stylesheets/common.css.scss +16 -0
  6. data/app/controllers/concerns/setting_history_concern.rb +6 -0
  7. data/app/controllers/fluentd/settings_controller.rb +37 -8
  8. data/app/models/fluent_gem.rb +6 -3
  9. data/app/models/fluentd/agent.rb +1 -0
  10. data/app/models/fluentd/agent/common.rb +4 -0
  11. data/app/models/fluentd/agent/fluentd_gem.rb +9 -13
  12. data/app/models/fluentd/agent/local_common.rb +23 -0
  13. data/app/models/fluentd/agent/td_agent.rb +4 -0
  14. data/app/models/fluentd/agent/td_agent/macosx.rb +0 -4
  15. data/app/models/fluentd/agent/td_agent/unix.rb +0 -4
  16. data/app/views/fluentd/settings/edit.html.haml +1 -3
  17. data/app/views/fluentd/settings/histories/show.html.haml +10 -0
  18. data/app/views/fluentd/settings/running_backup/show.html.haml +11 -0
  19. data/app/views/shared/settings/_diff.html.erb +21 -0
  20. data/circle.yml +5 -0
  21. data/config/application.rb +1 -0
  22. data/config/locales/translation_en.yml +7 -0
  23. data/config/locales/translation_ja.yml +7 -0
  24. data/fluentd-ui.gemspec +1 -0
  25. data/lib/fluentd-ui.rb +5 -1
  26. data/lib/fluentd-ui/version.rb +1 -1
  27. data/spec/features/fluentd/setting/histories_spec.rb +23 -1
  28. data/spec/features/fluentd/setting/running_backup_spec.rb +22 -1
  29. data/spec/models/fluentd/agent/local_common_spec.rb +4 -2
  30. data/spec/models/fluentd/agent_spec.rb +1 -48
  31. data/spec/models/plugin_spec.rb +2 -2
  32. data/spec/spec_helper.rb +10 -0
  33. data/spec/support/fluentd_agent_common_behavior.rb +53 -0
  34. data/vendor/assets/javascripts/bower/.gitignore +10 -0
  35. data/vendor/assets/javascripts/bower/vue/.bower.json +4 -4
  36. data/vendor/assets/javascripts/bower/vue/bower.json +17 -0
  37. data/vendor/assets/javascripts/bower/vue/dist/vue.js +329 -198
  38. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +3 -3
  39. metadata +107 -291
  40. checksums.yaml +0 -7
  41. data/vendor/assets/javascripts/bower/codemirror/AUTHORS +0 -423
  42. data/vendor/assets/javascripts/bower/codemirror/CONTRIBUTING.md +0 -76
  43. data/vendor/assets/javascripts/bower/codemirror/LICENSE +0 -19
  44. data/vendor/assets/javascripts/bower/codemirror/README.md +0 -11
  45. data/vendor/assets/javascripts/bower/codemirror/addon/comment/comment.js +0 -183
  46. data/vendor/assets/javascripts/bower/codemirror/addon/comment/continuecomment.js +0 -85
  47. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.css +0 -32
  48. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.js +0 -155
  49. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.css +0 -6
  50. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.js +0 -41
  51. data/vendor/assets/javascripts/bower/codemirror/addon/display/panel.js +0 -94
  52. data/vendor/assets/javascripts/bower/codemirror/addon/display/placeholder.js +0 -58
  53. data/vendor/assets/javascripts/bower/codemirror/addon/display/rulers.js +0 -64
  54. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closebrackets.js +0 -159
  55. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closetag.js +0 -159
  56. data/vendor/assets/javascripts/bower/codemirror/addon/edit/continuelist.js +0 -51
  57. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchbrackets.js +0 -120
  58. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchtags.js +0 -66
  59. data/vendor/assets/javascripts/bower/codemirror/addon/edit/trailingspace.js +0 -27
  60. data/vendor/assets/javascripts/bower/codemirror/addon/fold/brace-fold.js +0 -105
  61. data/vendor/assets/javascripts/bower/codemirror/addon/fold/comment-fold.js +0 -57
  62. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldcode.js +0 -145
  63. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.css +0 -20
  64. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.js +0 -134
  65. data/vendor/assets/javascripts/bower/codemirror/addon/fold/indent-fold.js +0 -44
  66. data/vendor/assets/javascripts/bower/codemirror/addon/fold/markdown-fold.js +0 -49
  67. data/vendor/assets/javascripts/bower/codemirror/addon/fold/xml-fold.js +0 -182
  68. data/vendor/assets/javascripts/bower/codemirror/addon/hint/anyword-hint.js +0 -41
  69. data/vendor/assets/javascripts/bower/codemirror/addon/hint/css-hint.js +0 -56
  70. data/vendor/assets/javascripts/bower/codemirror/addon/hint/html-hint.js +0 -348
  71. data/vendor/assets/javascripts/bower/codemirror/addon/hint/javascript-hint.js +0 -146
  72. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.css +0 -38
  73. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.js +0 -389
  74. data/vendor/assets/javascripts/bower/codemirror/addon/hint/sql-hint.js +0 -197
  75. data/vendor/assets/javascripts/bower/codemirror/addon/hint/xml-hint.js +0 -110
  76. data/vendor/assets/javascripts/bower/codemirror/addon/lint/coffeescript-lint.js +0 -41
  77. data/vendor/assets/javascripts/bower/codemirror/addon/lint/css-lint.js +0 -35
  78. data/vendor/assets/javascripts/bower/codemirror/addon/lint/javascript-lint.js +0 -136
  79. data/vendor/assets/javascripts/bower/codemirror/addon/lint/json-lint.js +0 -31
  80. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.css +0 -73
  81. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.js +0 -204
  82. data/vendor/assets/javascripts/bower/codemirror/addon/lint/yaml-lint.js +0 -28
  83. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.css +0 -112
  84. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.js +0 -643
  85. data/vendor/assets/javascripts/bower/codemirror/addon/mode/loadmode.js +0 -64
  86. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex.js +0 -118
  87. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex_test.js +0 -33
  88. data/vendor/assets/javascripts/bower/codemirror/addon/mode/overlay.js +0 -85
  89. data/vendor/assets/javascripts/bower/codemirror/addon/mode/simple.js +0 -213
  90. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/colorize.js +0 -40
  91. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode-standalone.js +0 -157
  92. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.js +0 -72
  93. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.node.js +0 -120
  94. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/annotatescrollbar.js +0 -76
  95. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/scrollpastend.js +0 -46
  96. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.css +0 -66
  97. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.js +0 -139
  98. data/vendor/assets/javascripts/bower/codemirror/addon/search/match-highlighter.js +0 -128
  99. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.css +0 -8
  100. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.js +0 -90
  101. data/vendor/assets/javascripts/bower/codemirror/addon/search/search.js +0 -164
  102. data/vendor/assets/javascripts/bower/codemirror/addon/search/searchcursor.js +0 -189
  103. data/vendor/assets/javascripts/bower/codemirror/addon/selection/active-line.js +0 -71
  104. data/vendor/assets/javascripts/bower/codemirror/addon/selection/mark-selection.js +0 -118
  105. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.css +0 -86
  106. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.js +0 -670
  107. data/vendor/assets/javascripts/bower/codemirror/addon/tern/worker.js +0 -44
  108. data/vendor/assets/javascripts/bower/codemirror/addon/wrap/hardwrap.js +0 -139
  109. data/vendor/assets/javascripts/bower/codemirror/keymap/emacs.js +0 -411
  110. data/vendor/assets/javascripts/bower/codemirror/keymap/sublime.js +0 -540
  111. data/vendor/assets/javascripts/bower/codemirror/keymap/vim.js +0 -4901
  112. data/vendor/assets/javascripts/bower/codemirror/mode/apl/apl.js +0 -175
  113. data/vendor/assets/javascripts/bower/codemirror/mode/asterisk/asterisk.js +0 -198
  114. data/vendor/assets/javascripts/bower/codemirror/mode/clike/clike.js +0 -489
  115. data/vendor/assets/javascripts/bower/codemirror/mode/clike/scala.html +0 -767
  116. data/vendor/assets/javascripts/bower/codemirror/mode/clojure/clojure.js +0 -243
  117. data/vendor/assets/javascripts/bower/codemirror/mode/cobol/cobol.js +0 -255
  118. data/vendor/assets/javascripts/bower/codemirror/mode/coffeescript/coffeescript.js +0 -369
  119. data/vendor/assets/javascripts/bower/codemirror/mode/commonlisp/commonlisp.js +0 -122
  120. data/vendor/assets/javascripts/bower/codemirror/mode/css/css.js +0 -717
  121. data/vendor/assets/javascripts/bower/codemirror/mode/css/less.html +0 -152
  122. data/vendor/assets/javascripts/bower/codemirror/mode/css/less_test.js +0 -51
  123. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss.html +0 -157
  124. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss_test.js +0 -110
  125. data/vendor/assets/javascripts/bower/codemirror/mode/css/test.js +0 -135
  126. data/vendor/assets/javascripts/bower/codemirror/mode/cypher/cypher.js +0 -146
  127. data/vendor/assets/javascripts/bower/codemirror/mode/d/d.js +0 -218
  128. data/vendor/assets/javascripts/bower/codemirror/mode/dart/dart.js +0 -50
  129. data/vendor/assets/javascripts/bower/codemirror/mode/diff/diff.js +0 -47
  130. data/vendor/assets/javascripts/bower/codemirror/mode/django/django.js +0 -67
  131. data/vendor/assets/javascripts/bower/codemirror/mode/dockerfile/dockerfile.js +0 -76
  132. data/vendor/assets/javascripts/bower/codemirror/mode/dtd/dtd.js +0 -142
  133. data/vendor/assets/javascripts/bower/codemirror/mode/dylan/dylan.js +0 -299
  134. data/vendor/assets/javascripts/bower/codemirror/mode/ebnf/ebnf.js +0 -195
  135. data/vendor/assets/javascripts/bower/codemirror/mode/ecl/ecl.js +0 -207
  136. data/vendor/assets/javascripts/bower/codemirror/mode/eiffel/eiffel.js +0 -162
  137. data/vendor/assets/javascripts/bower/codemirror/mode/erlang/erlang.js +0 -622
  138. data/vendor/assets/javascripts/bower/codemirror/mode/fortran/fortran.js +0 -188
  139. data/vendor/assets/javascripts/bower/codemirror/mode/gas/gas.js +0 -345
  140. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/gfm.js +0 -123
  141. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/test.js +0 -213
  142. data/vendor/assets/javascripts/bower/codemirror/mode/gherkin/gherkin.js +0 -178
  143. data/vendor/assets/javascripts/bower/codemirror/mode/go/go.js +0 -184
  144. data/vendor/assets/javascripts/bower/codemirror/mode/groovy/groovy.js +0 -226
  145. data/vendor/assets/javascripts/bower/codemirror/mode/haml/haml.js +0 -159
  146. data/vendor/assets/javascripts/bower/codemirror/mode/haml/test.js +0 -97
  147. data/vendor/assets/javascripts/bower/codemirror/mode/haskell/haskell.js +0 -267
  148. data/vendor/assets/javascripts/bower/codemirror/mode/haxe/haxe.js +0 -518
  149. data/vendor/assets/javascripts/bower/codemirror/mode/htmlembedded/htmlembedded.js +0 -86
  150. data/vendor/assets/javascripts/bower/codemirror/mode/htmlmixed/htmlmixed.js +0 -121
  151. data/vendor/assets/javascripts/bower/codemirror/mode/http/http.js +0 -113
  152. data/vendor/assets/javascripts/bower/codemirror/mode/idl/idl.js +0 -290
  153. data/vendor/assets/javascripts/bower/codemirror/mode/jade/jade.js +0 -590
  154. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/javascript.js +0 -686
  155. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/json-ld.html +0 -72
  156. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/test.js +0 -200
  157. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/typescript.html +0 -61
  158. data/vendor/assets/javascripts/bower/codemirror/mode/jinja2/jinja2.js +0 -142
  159. data/vendor/assets/javascripts/bower/codemirror/mode/julia/julia.js +0 -301
  160. data/vendor/assets/javascripts/bower/codemirror/mode/kotlin/kotlin.js +0 -280
  161. data/vendor/assets/javascripts/bower/codemirror/mode/livescript/livescript.js +0 -280
  162. data/vendor/assets/javascripts/bower/codemirror/mode/lua/lua.js +0 -159
  163. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/markdown.js +0 -765
  164. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/test.js +0 -754
  165. data/vendor/assets/javascripts/bower/codemirror/mode/meta.js +0 -165
  166. data/vendor/assets/javascripts/bower/codemirror/mode/mirc/mirc.js +0 -193
  167. data/vendor/assets/javascripts/bower/codemirror/mode/mllike/mllike.js +0 -205
  168. data/vendor/assets/javascripts/bower/codemirror/mode/modelica/modelica.js +0 -245
  169. data/vendor/assets/javascripts/bower/codemirror/mode/nginx/nginx.js +0 -178
  170. data/vendor/assets/javascripts/bower/codemirror/mode/ntriples/ntriples.js +0 -186
  171. data/vendor/assets/javascripts/bower/codemirror/mode/octave/octave.js +0 -135
  172. data/vendor/assets/javascripts/bower/codemirror/mode/pascal/pascal.js +0 -109
  173. data/vendor/assets/javascripts/bower/codemirror/mode/pegjs/pegjs.js +0 -114
  174. data/vendor/assets/javascripts/bower/codemirror/mode/perl/perl.js +0 -832
  175. data/vendor/assets/javascripts/bower/codemirror/mode/php/php.js +0 -226
  176. data/vendor/assets/javascripts/bower/codemirror/mode/php/test.js +0 -154
  177. data/vendor/assets/javascripts/bower/codemirror/mode/pig/pig.js +0 -188
  178. data/vendor/assets/javascripts/bower/codemirror/mode/properties/properties.js +0 -78
  179. data/vendor/assets/javascripts/bower/codemirror/mode/puppet/puppet.js +0 -220
  180. data/vendor/assets/javascripts/bower/codemirror/mode/python/python.js +0 -359
  181. data/vendor/assets/javascripts/bower/codemirror/mode/q/q.js +0 -139
  182. data/vendor/assets/javascripts/bower/codemirror/mode/r/r.js +0 -162
  183. data/vendor/assets/javascripts/bower/codemirror/mode/rpm/rpm.js +0 -101
  184. data/vendor/assets/javascripts/bower/codemirror/mode/rst/rst.js +0 -557
  185. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/ruby.js +0 -285
  186. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/test.js +0 -14
  187. data/vendor/assets/javascripts/bower/codemirror/mode/rust/rust.js +0 -451
  188. data/vendor/assets/javascripts/bower/codemirror/mode/sass/sass.js +0 -327
  189. data/vendor/assets/javascripts/bower/codemirror/mode/scheme/scheme.js +0 -248
  190. data/vendor/assets/javascripts/bower/codemirror/mode/shell/shell.js +0 -139
  191. data/vendor/assets/javascripts/bower/codemirror/mode/shell/test.js +0 -58
  192. data/vendor/assets/javascripts/bower/codemirror/mode/sieve/sieve.js +0 -193
  193. data/vendor/assets/javascripts/bower/codemirror/mode/slim/slim.js +0 -575
  194. data/vendor/assets/javascripts/bower/codemirror/mode/slim/test.js +0 -96
  195. data/vendor/assets/javascripts/bower/codemirror/mode/smalltalk/smalltalk.js +0 -168
  196. data/vendor/assets/javascripts/bower/codemirror/mode/smarty/smarty.js +0 -221
  197. data/vendor/assets/javascripts/bower/codemirror/mode/smartymixed/smartymixed.js +0 -197
  198. data/vendor/assets/javascripts/bower/codemirror/mode/solr/solr.js +0 -104
  199. data/vendor/assets/javascripts/bower/codemirror/mode/soy/soy.js +0 -198
  200. data/vendor/assets/javascripts/bower/codemirror/mode/sparql/sparql.js +0 -174
  201. data/vendor/assets/javascripts/bower/codemirror/mode/spreadsheet/spreadsheet.js +0 -109
  202. data/vendor/assets/javascripts/bower/codemirror/mode/sql/sql.js +0 -391
  203. data/vendor/assets/javascripts/bower/codemirror/mode/stex/stex.js +0 -251
  204. data/vendor/assets/javascripts/bower/codemirror/mode/stex/test.js +0 -123
  205. data/vendor/assets/javascripts/bower/codemirror/mode/tcl/tcl.js +0 -147
  206. data/vendor/assets/javascripts/bower/codemirror/mode/textile/test.js +0 -417
  207. data/vendor/assets/javascripts/bower/codemirror/mode/textile/textile.js +0 -469
  208. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  209. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -369
  210. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.css +0 -26
  211. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.js +0 -323
  212. data/vendor/assets/javascripts/bower/codemirror/mode/toml/toml.js +0 -88
  213. data/vendor/assets/javascripts/bower/codemirror/mode/tornado/tornado.js +0 -68
  214. data/vendor/assets/javascripts/bower/codemirror/mode/turtle/turtle.js +0 -162
  215. data/vendor/assets/javascripts/bower/codemirror/mode/vb/vb.js +0 -274
  216. data/vendor/assets/javascripts/bower/codemirror/mode/vbscript/vbscript.js +0 -350
  217. data/vendor/assets/javascripts/bower/codemirror/mode/velocity/velocity.js +0 -201
  218. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/test.js +0 -273
  219. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/verilog.js +0 -364
  220. data/vendor/assets/javascripts/bower/codemirror/mode/xml/test.js +0 -51
  221. data/vendor/assets/javascripts/bower/codemirror/mode/xml/xml.js +0 -384
  222. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/test.js +0 -67
  223. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/xquery.js +0 -447
  224. data/vendor/assets/javascripts/bower/codemirror/mode/yaml/yaml.js +0 -117
  225. data/vendor/assets/javascripts/bower/codemirror/mode/z80/z80.js +0 -100
  226. data/vendor/assets/javascripts/bower/vue/LICENSE +0 -21
  227. data/vendor/assets/javascripts/bower/vue/src/api/child.js +0 -53
  228. data/vendor/assets/javascripts/bower/vue/src/api/data.js +0 -161
  229. data/vendor/assets/javascripts/bower/vue/src/api/dom.js +0 -211
  230. data/vendor/assets/javascripts/bower/vue/src/api/events.js +0 -176
  231. data/vendor/assets/javascripts/bower/vue/src/api/global.js +0 -146
  232. data/vendor/assets/javascripts/bower/vue/src/api/lifecycle.js +0 -72
  233. data/vendor/assets/javascripts/bower/vue/src/batcher.js +0 -65
  234. data/vendor/assets/javascripts/bower/vue/src/cache.js +0 -112
  235. data/vendor/assets/javascripts/bower/vue/src/compiler/compile.js +0 -549
  236. data/vendor/assets/javascripts/bower/vue/src/compiler/transclude.js +0 -146
  237. data/vendor/assets/javascripts/bower/vue/src/config.js +0 -79
  238. data/vendor/assets/javascripts/bower/vue/src/directive.js +0 -219
  239. data/vendor/assets/javascripts/bower/vue/src/directives/attr.js +0 -32
  240. data/vendor/assets/javascripts/bower/vue/src/directives/class.js +0 -18
  241. data/vendor/assets/javascripts/bower/vue/src/directives/cloak.js +0 -12
  242. data/vendor/assets/javascripts/bower/vue/src/directives/component.js +0 -196
  243. data/vendor/assets/javascripts/bower/vue/src/directives/el.js +0 -13
  244. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +0 -38
  245. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +0 -87
  246. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +0 -22
  247. data/vendor/assets/javascripts/bower/vue/src/directives/model/checkbox.js +0 -25
  248. data/vendor/assets/javascripts/bower/vue/src/directives/model/default.js +0 -123
  249. data/vendor/assets/javascripts/bower/vue/src/directives/model/index.js +0 -56
  250. data/vendor/assets/javascripts/bower/vue/src/directives/model/radio.js +0 -26
  251. data/vendor/assets/javascripts/bower/vue/src/directives/model/select.js +0 -166
  252. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +0 -59
  253. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +0 -44
  254. data/vendor/assets/javascripts/bower/vue/src/directives/ref.js +0 -24
  255. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +0 -503
  256. data/vendor/assets/javascripts/bower/vue/src/directives/show.js +0 -8
  257. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +0 -58
  258. data/vendor/assets/javascripts/bower/vue/src/directives/text.js +0 -15
  259. data/vendor/assets/javascripts/bower/vue/src/directives/transition.js +0 -12
  260. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +0 -47
  261. data/vendor/assets/javascripts/bower/vue/src/filters/array-filters.js +0 -87
  262. data/vendor/assets/javascripts/bower/vue/src/filters/index.js +0 -135
  263. data/vendor/assets/javascripts/bower/vue/src/instance/compile.js +0 -179
  264. data/vendor/assets/javascripts/bower/vue/src/instance/events.js +0 -122
  265. data/vendor/assets/javascripts/bower/vue/src/instance/init.js +0 -76
  266. data/vendor/assets/javascripts/bower/vue/src/instance/scope.js +0 -217
  267. data/vendor/assets/javascripts/bower/vue/src/observer/array.js +0 -90
  268. data/vendor/assets/javascripts/bower/vue/src/observer/dep.js +0 -50
  269. data/vendor/assets/javascripts/bower/vue/src/observer/index.js +0 -235
  270. data/vendor/assets/javascripts/bower/vue/src/observer/object.js +0 -66
  271. data/vendor/assets/javascripts/bower/vue/src/parsers/directive.js +0 -159
  272. data/vendor/assets/javascripts/bower/vue/src/parsers/expression.js +0 -226
  273. data/vendor/assets/javascripts/bower/vue/src/parsers/path.js +0 -300
  274. data/vendor/assets/javascripts/bower/vue/src/parsers/template.js +0 -248
  275. data/vendor/assets/javascripts/bower/vue/src/parsers/text.js +0 -178
  276. data/vendor/assets/javascripts/bower/vue/src/transition/css.js +0 -189
  277. data/vendor/assets/javascripts/bower/vue/src/transition/index.js +0 -151
  278. data/vendor/assets/javascripts/bower/vue/src/transition/js.js +0 -43
  279. data/vendor/assets/javascripts/bower/vue/src/util/debug.js +0 -50
  280. data/vendor/assets/javascripts/bower/vue/src/util/dom.js +0 -197
  281. data/vendor/assets/javascripts/bower/vue/src/util/env.js +0 -74
  282. data/vendor/assets/javascripts/bower/vue/src/util/filter.js +0 -72
  283. data/vendor/assets/javascripts/bower/vue/src/util/index.js +0 -8
  284. data/vendor/assets/javascripts/bower/vue/src/util/lang.js +0 -175
  285. data/vendor/assets/javascripts/bower/vue/src/util/merge-option.js +0 -255
  286. data/vendor/assets/javascripts/bower/vue/src/vue.js +0 -84
  287. data/vendor/assets/javascripts/bower/vue/src/watcher.js +0 -240
@@ -16,6 +16,10 @@ class Fluentd
16
16
  `/usr/sbin/td-agent --version`.strip
17
17
  end
18
18
 
19
+ def dryrun!(file_path = nil)
20
+ exec_dryrun("/usr/sbin/td-agent", file_path)
21
+ end
22
+
19
23
  case FluentdUI.platform
20
24
  when :macosx
21
25
  include Macosx
@@ -16,10 +16,6 @@ class Fluentd
16
16
  dryrun && stop && start
17
17
  end
18
18
 
19
- def dryrun
20
- detached_command("/usr/sbin/td-agent --dry-run -q --use-v1-config -c #{config_file}")
21
- end
22
-
23
19
  private
24
20
 
25
21
  def plist
@@ -17,10 +17,6 @@ class Fluentd
17
17
  # https://github.com/treasure-data/td-agent/blob/master/debian/td-agent.init#L156
18
18
  detached_command('/etc/init.d/td-agent restart')
19
19
  end
20
-
21
- def dryrun
22
- detached_command('/etc/init.d/td-agent configtest')
23
- end
24
20
  end
25
21
  end
26
22
  end
@@ -1,10 +1,8 @@
1
1
  - page_title t('.page_title', label: @fluentd.label)
2
2
 
3
- - if @error
4
- %pre.alert.alert-danger= @error
5
-
6
3
  = form_tag(daemon_setting_path(@fluentd), method: :patch) do
7
4
  .form-group
8
5
  = text_area_tag "config", @config, class: "form-control", rows: 40, class: "js-fluentd-config-editor"
9
6
  %p.text.text-danger= t('terms.notice_restart_for_config_edit', brand: fluentd_ui_brand)
10
7
  = submit_tag t("terms.update"), class: "btn btn-primary"
8
+ = submit_tag t("terms.configtest"), class: "btn btn-default", name: "dryrun"
@@ -15,7 +15,17 @@
15
15
 
16
16
  .row
17
17
  .col-xs-12
18
+ %h2
19
+ ="#{t('.target_config')}(#{params[:id]})"
18
20
  %pre
19
21
  = preserve do
20
22
  = @backup_file.content
21
23
 
24
+ .col-xs-12.diff
25
+ %h2
26
+ Diff:
27
+ %div
28
+ = t(".diff_description", file_name: params[:id] )
29
+ .pull-right
30
+ = link_to t(".show_current"), daemon_setting_path(@fluentd)
31
+ = preserve render "/shared/settings/diff"
@@ -12,9 +12,20 @@
12
12
  .row
13
13
  .col-xs-12
14
14
  - if @backup_file.content
15
+ %h2
16
+ = t('.page_title')
15
17
  %pre
16
18
  = preserve do
17
19
  = @backup_file.content
18
20
  - else
19
21
  %p
20
22
  =t('fluentd.common.never_started_yet', brand: fluentd_ui_brand)
23
+ - if @backup_file.content
24
+ .col-xs-12.diff
25
+ %h2
26
+ Diff:
27
+ %div
28
+ = t(".diff_description")
29
+ .pull-right
30
+ = link_to t(".show_current"), daemon_setting_path(@fluentd)
31
+ = preserve render "/shared/settings/diff"
@@ -0,0 +1,21 @@
1
+ <% if @changed %>
2
+ <pre>
3
+ <% @sdiff.each do |diff| %>
4
+ <% case diff.action %>
5
+ <% when "=" %>
6
+ <span class="stay"><%= diff.new_element %></span>
7
+ <% when "!" %>
8
+ <span class="deleted">- <%= diff.old_element %></span>
9
+ <span class="added">+ <%= diff.new_element %></span>
10
+ <% when "-" %>
11
+ <span class="deleted">- <%= diff.old_element %></span>
12
+ <% when "+" %>
13
+ <span class="added">+ <%= diff.new_element %></span>
14
+ <% end %>
15
+ <% end %>
16
+ </pre>
17
+ <% else %>
18
+ <div class="frame-corner-radius">
19
+ <%= t('messages.no_diff') %>
20
+ </div>
21
+ <% end %>
data/circle.yml CHANGED
@@ -6,3 +6,8 @@ checkout:
6
6
  post:
7
7
  - mkdir -p tmp
8
8
  - sync
9
+
10
+ dependencies:
11
+ pre:
12
+ - wget http://packages.treasuredata.com.s3.amazonaws.com/2/ubuntu/precise/pool/contrib/t/td-agent/td-agent_2.1.3-0_amd64.deb
13
+ - sudo dpkg -i td-agent_2.1.3-0_amd64.deb
@@ -20,6 +20,7 @@ require "sucker_punch"
20
20
  require "settingslogic"
21
21
  require "kramdown-haml"
22
22
  require "jbuilder"
23
+ require "diff/lcs"
23
24
 
24
25
  module FluentdUi
25
26
  class Application < Rails::Application
@@ -14,6 +14,7 @@ en:
14
14
  config_successfully_copied: "Config has been copied successfully. Please restart %{brand} to use the new config"
15
15
  note_updating_success: "Note successfully updated."
16
16
  dryrun_is_passed: config test passed
17
+ no_diff: There is no difference in files.
17
18
 
18
19
  terms: &terms
19
20
  name: Name
@@ -261,10 +262,16 @@ en:
261
262
  page_title: "Setting Histories"
262
263
  show:
263
264
  page_title: "Reuse Setting History"
265
+ target_config: "Target Config"
266
+ current_config: "Current Config"
267
+ diff_description: "diff between current config and target config(%{file_name}) (showing with '+' and '-' if any)"
268
+ show_current: "> see current config"
264
269
  running_backup:
265
270
  title: "Running Config"
266
271
  show:
267
272
  page_title: "Running Config"
273
+ diff_description: "diff between config and running config (showing with '+' and '-' if any)"
274
+ show_current: "> see current config"
268
275
 
269
276
  misc:
270
277
  information:
@@ -14,6 +14,7 @@ ja:
14
14
  config_successfully_copied: "設定をコピーしました。反映させるには、 %{brand}を再起動してください。"
15
15
  note_updating_success: "メモを更新しました。"
16
16
  dryrun_is_passed: この設定でのdry-runが成功しました
17
+ no_diff: ファイル間の差異はありません。
17
18
 
18
19
  terms: &terms
19
20
  name: アカウント名
@@ -266,10 +267,16 @@ ja:
266
267
  page_title: "設定履歴 | 一覧"
267
268
  show:
268
269
  page_title: "設定履歴 | 詳細"
270
+ target_config: "対象設定"
271
+ current_config: "現在の設定"
272
+ diff_description: "現在の設定と対象設定(%{file_name})の差分(+-で表示)"
273
+ show_current: "> 現在の設定を見る"
269
274
  running_backup:
270
275
  title: "使用中の設定"
271
276
  show:
272
277
  page_title: "使用中の設定"
278
+ diff_description: "現在の設定と使用中の設定の差分(+-で表示)"
279
+ show_current: "> 現在の設定を見る"
273
280
 
274
281
  misc:
275
282
  information:
data/fluentd-ui.gemspec CHANGED
@@ -42,4 +42,5 @@ Gem::Specification.new do |spec|
42
42
  spec.add_dependency "kramdown", "> 1.0.0"
43
43
  spec.add_dependency "kramdown-haml"
44
44
  spec.add_dependency "rubyzip", "~> 1.1" # API changed as Zip::ZipFile -> Zip::File since v1.0.0
45
+ spec.add_dependency "diff-lcs"
45
46
  end
data/lib/fluentd-ui.rb CHANGED
@@ -21,7 +21,11 @@ module FluentdUI
21
21
  end
22
22
 
23
23
  def self.data_dir
24
- dir = ENV["FLUENTD_UI_DATA_DIR"].presence || ENV["HOME"] + "/.fluentd-ui/core_data"
24
+ if Rails.env.test?
25
+ dir = Rails.root.join("tmp", "core_data").to_s
26
+ else
27
+ dir = ENV["FLUENTD_UI_DATA_DIR"].presence || ENV["HOME"] + "/.fluentd-ui/core_data"
28
+ end
25
29
  FileUtils.mkdir_p(dir) # ensure directory exists
26
30
  dir
27
31
  end
@@ -1,3 +1,3 @@
1
1
  module FluentdUI
2
- VERSION = "0.3.13"
2
+ VERSION = "0.3.14"
3
3
  end
@@ -26,7 +26,8 @@ describe "histories", stub: :daemon do
26
26
  end
27
27
 
28
28
  describe 'show' do
29
- let(:last_backup_file) { Fluentd::SettingArchive::BackupFile.new(daemon.agent.backup_files_in_new_order.first) }
29
+ let!(:last_backup_file) { Fluentd::SettingArchive::BackupFile.new(daemon.agent.backup_files_in_new_order.first) }
30
+ let!(:new_file) { Fluentd::SettingArchive::BackupFile.new(daemon.agent.backup_files_in_new_order[1]) }
30
31
 
31
32
  before do
32
33
  visit "/daemon/setting/histories/#{last_backup_file.file_id}"
@@ -37,6 +38,27 @@ describe "histories", stub: :daemon do
37
38
  page.should have_text(last_backup_file.content)
38
39
  end
39
40
 
41
+ describe 'diff' do
42
+ context 'has diff' do
43
+ 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")
48
+ end
49
+ end
50
+
51
+ context 'has no diff' do
52
+ before do
53
+ visit "/daemon/setting/histories/#{new_file.file_id}"
54
+ end
55
+
56
+ it 'shows no diff message' do
57
+ page.should have_text(I18n.t('messages.no_diff'))
58
+ end
59
+ end
60
+ end
61
+
40
62
  it 'update config and redirect to setting#show' do
41
63
  click_link I18n.t("terms.reuse")
42
64
 
@@ -8,7 +8,7 @@ describe "running_backup", stub: :daemon do
8
8
  login_with exists_user
9
9
  end
10
10
 
11
- context 'has running backup file' do
11
+ context 'has no running backup file' do
12
12
  before do
13
13
  visit '/daemon/setting/running_backup'
14
14
  end
@@ -36,6 +36,27 @@ describe "running_backup", stub: :daemon do
36
36
  expect(page).to have_text(I18n.t("terms.reuse"))
37
37
  end
38
38
 
39
+ describe 'diff' do
40
+ context 'has diff' do
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")
45
+ end
46
+ end
47
+
48
+ context 'has no diff' do
49
+ before do
50
+ daemon.agent.config_write backup_content
51
+ visit '/daemon/setting/running_backup'
52
+ end
53
+
54
+ it 'shows no diff message' do
55
+ page.should have_text(I18n.t('messages.no_diff'))
56
+ end
57
+ end
58
+ end
59
+
39
60
  it 'update config and redirect to setting#show' do
40
61
  click_link I18n.t("terms.reuse")
41
62
 
@@ -47,9 +47,11 @@ describe 'Fluentd::Agent::LocalCommon' do
47
47
  CONF
48
48
 
49
49
  before do
50
+ # other specs could be write in this dir, so clean that in `before`
51
+ FileUtils.rm_r daemon.agent.config_backup_dir, force: true
50
52
  ::Settings.max_backup_files_count.times do |i|
51
- backpued_time = now - (i + 1).hours
52
- FileUtils.touch File.join(daemon.agent.config_backup_dir , "#{backpued_time.strftime('%Y%m%d_%H%M%S')}.conf")
53
+ backuped_time = now - (i + 1).hours
54
+ FileUtils.touch File.join(daemon.agent.config_backup_dir , "#{backuped_time.strftime('%Y%m%d_%H%M%S')}.conf")
53
55
  end
54
56
 
55
57
  daemon.agent.config_write config_contents #add before conf
@@ -96,32 +96,9 @@ describe Fluentd::Agent do
96
96
  describe "#restart" do
97
97
  it_should_behave_like "Restart strategy"
98
98
  end
99
-
100
- describe "#dryrun" do
101
- subject { instance.dryrun }
102
-
103
- describe "valid/invalid" do
104
- before { instance.stub(:system).and_return(ret) }
105
-
106
- context "valid config" do
107
- let(:ret) { true }
108
- it { should be_truthy }
109
- end
110
-
111
- context "invalid config" do
112
- let(:ret) { false }
113
- it { should be_falsy }
114
- end
115
- end
116
-
117
- it "invoke #system" do
118
- instance.should_receive(:system).with(/--dry-run/)
119
- subject
120
- end
121
- end
122
99
  end
123
100
 
124
- describe "TdAgent" do
101
+ describe "TdAgent", td_agent_required: true do
125
102
  let(:described_class) { Fluentd::Agent::TdAgent } # override nested described_class behavior as https://github.com/rspec/rspec-core/issues/1114
126
103
 
127
104
  it_should_behave_like "Fluentd::Agent has common behavior"
@@ -153,30 +130,6 @@ describe Fluentd::Agent do
153
130
  expect(File.read(backup_file)).to eq File.read(instance.config_file)
154
131
  end
155
132
  end
156
-
157
- describe "#dryrun" do
158
- subject { instance.dryrun }
159
-
160
- describe "valid/invalid" do
161
- before { instance.stub(:detached_command).and_return(ret) }
162
-
163
- context "valid config" do
164
- let(:ret) { true }
165
- it { should be_truthy }
166
- end
167
-
168
- context "invalid config" do
169
- let(:ret) { false }
170
- it { should be_falsy }
171
- end
172
- end
173
-
174
- it "invoke #system" do
175
- # --dry-run check on Mac, configtest for Unix
176
- instance.should_receive(:detached_command).with(/(--dry-run|configtest)/)
177
- subject
178
- end
179
- end
180
133
  end
181
134
  end
182
135
 
@@ -38,7 +38,7 @@ describe Plugin do
38
38
  it { should_not be_valid }
39
39
  end
40
40
 
41
- context "somthing filled is valid" do
41
+ context "something filled is valid" do
42
42
  let(:gem_name) { "foobar" }
43
43
  it { should be_valid }
44
44
  end
@@ -53,7 +53,7 @@ describe Plugin do
53
53
  it { should_not be_valid }
54
54
  end
55
55
 
56
- context "somthing filled is valid" do
56
+ context "something filled is valid" do
57
57
  let(:version) { "0.0.1" }
58
58
  it { should be_valid }
59
59
  end
data/spec/spec_helper.rb CHANGED
@@ -61,4 +61,14 @@ RSpec.configure do |config|
61
61
 
62
62
  # rspec 2.99
63
63
  config.infer_spec_type_from_file_location!
64
+
65
+ unless File.directory?("/opt/td-agent")
66
+ # including td-agent specific tests, so some tests will fail if the system has no td-agent
67
+ warn "\n\nSkipping td-agent specific tests (system has no td-agent)\n\n"
68
+ config.filter_run_excluding :td_agent_required => true
69
+ end
70
+
71
+ config.after(:suite) do
72
+ FileUtils.rm_rf FluentdUI.data_dir
73
+ end
64
74
  end
@@ -124,5 +124,58 @@ shared_examples_for "Fluentd::Agent has common behavior" do |klass|
124
124
  end
125
125
  end
126
126
  end
127
+
128
+ describe "#dryrun" do
129
+ let(:root) { FluentdUI.data_dir + "/tmp/agentspec/" }
130
+ let(:dummy_log_file) { root + "dummy.log" }
131
+ let(:dummy_pid_file) { root + "dummy.pid" }
132
+
133
+ before do
134
+ FileUtils.mkdir_p root
135
+ instance.stub(:log_file).and_return(dummy_log_file)
136
+ instance.stub(:pid_file).and_return(dummy_pid_file)
137
+ end
138
+
139
+ describe "valid/invalid" do
140
+ let(:config_path) { Rails.root.join("tmp", "fluent-test.conf").to_s }
141
+ before { File.write(config_path, config) }
142
+ after { File.unlink(config_path) }
143
+
144
+ context "valid config" do
145
+ let(:config) { <<-CONF.strip_heredoc }
146
+ <source>
147
+ type forward
148
+ </source>
149
+ CONF
150
+
151
+ context "with `!`" do
152
+ subject { instance.dryrun!(config_path) }
153
+ it { expect { subject }.to_not raise_error }
154
+ end
155
+
156
+ context "without `!`" do
157
+ subject { instance.dryrun(config_path) }
158
+ it { should be_truthy }
159
+ end
160
+ end
161
+
162
+ context "invalid config" do
163
+ let(:config) { <<-CONF.strip_heredoc }
164
+ <source>
165
+ type forward
166
+ CONF
167
+
168
+ context "with `!`" do
169
+ subject { instance.dryrun!(config_path) }
170
+ it { expect { subject }.to raise_error(Fluentd::Agent::ConfigError) }
171
+ end
172
+
173
+ context "without `!`" do
174
+ subject { instance.dryrun(config_path) }
175
+ it { should be_falsy }
176
+ end
177
+ end
178
+ end
179
+ end
127
180
  end
128
181