fluentd-ui 0.3.13 → 0.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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