fluentd 1.17.0-x86-mingw32 → 1.17.1-x86-mingw32

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 (259) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -0
  3. data/README.md +1 -0
  4. data/SECURITY.md +2 -2
  5. data/fluent.conf +14 -14
  6. data/lib/fluent/command/cap_ctl.rb +4 -4
  7. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  8. data/lib/fluent/compat/propagate_default.rb +4 -4
  9. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  10. data/lib/fluent/log/console_adapter.rb +4 -2
  11. data/lib/fluent/plugin/in_exec.rb +14 -2
  12. data/lib/fluent/plugin/in_http.rb +1 -1
  13. data/lib/fluent/plugin/in_sample.rb +13 -7
  14. data/lib/fluent/plugin/in_tail.rb +65 -23
  15. data/lib/fluent/plugin/out_copy.rb +1 -1
  16. data/lib/fluent/plugin/out_file.rb +8 -0
  17. data/lib/fluent/plugin/out_http.rb +12 -0
  18. data/lib/fluent/plugin/parser_json.rb +4 -12
  19. data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
  20. data/lib/fluent/version.rb +1 -1
  21. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  22. metadata +25 -472
  23. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
  24. data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
  25. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  26. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  27. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  28. data/.github/ISSUE_TEMPLATE.md +0 -17
  29. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  30. data/.github/workflows/stale-actions.yml +0 -24
  31. data/.github/workflows/test-ruby-head.yml +0 -31
  32. data/.github/workflows/test.yml +0 -32
  33. data/.gitignore +0 -30
  34. data/Gemfile +0 -9
  35. data/fluentd.gemspec +0 -62
  36. data/test/command/test_binlog_reader.rb +0 -362
  37. data/test/command/test_ca_generate.rb +0 -70
  38. data/test/command/test_cap_ctl.rb +0 -100
  39. data/test/command/test_cat.rb +0 -128
  40. data/test/command/test_ctl.rb +0 -56
  41. data/test/command/test_fluentd.rb +0 -1291
  42. data/test/command/test_plugin_config_formatter.rb +0 -397
  43. data/test/command/test_plugin_generator.rb +0 -109
  44. data/test/compat/test_calls_super.rb +0 -166
  45. data/test/compat/test_parser.rb +0 -92
  46. data/test/config/assertions.rb +0 -42
  47. data/test/config/test_config_parser.rb +0 -551
  48. data/test/config/test_configurable.rb +0 -1784
  49. data/test/config/test_configure_proxy.rb +0 -604
  50. data/test/config/test_dsl.rb +0 -415
  51. data/test/config/test_element.rb +0 -518
  52. data/test/config/test_literal_parser.rb +0 -309
  53. data/test/config/test_plugin_configuration.rb +0 -56
  54. data/test/config/test_section.rb +0 -191
  55. data/test/config/test_system_config.rb +0 -195
  56. data/test/config/test_types.rb +0 -408
  57. data/test/counter/test_client.rb +0 -563
  58. data/test/counter/test_error.rb +0 -44
  59. data/test/counter/test_mutex_hash.rb +0 -179
  60. data/test/counter/test_server.rb +0 -589
  61. data/test/counter/test_store.rb +0 -258
  62. data/test/counter/test_validator.rb +0 -137
  63. data/test/helper.rb +0 -155
  64. data/test/helpers/fuzzy_assert.rb +0 -89
  65. data/test/helpers/process_extenstion.rb +0 -33
  66. data/test/log/test_console_adapter.rb +0 -117
  67. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  68. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  69. data/test/plugin/data/2010/01/20100102.log +0 -0
  70. data/test/plugin/data/log/bar +0 -0
  71. data/test/plugin/data/log/foo/bar.log +0 -0
  72. data/test/plugin/data/log/foo/bar2 +0 -0
  73. data/test/plugin/data/log/test.log +0 -0
  74. data/test/plugin/data/log_numeric/01.log +0 -0
  75. data/test/plugin/data/log_numeric/02.log +0 -0
  76. data/test/plugin/data/log_numeric/12.log +0 -0
  77. data/test/plugin/data/log_numeric/14.log +0 -0
  78. data/test/plugin/data/sd_file/config +0 -11
  79. data/test/plugin/data/sd_file/config.json +0 -17
  80. data/test/plugin/data/sd_file/config.yaml +0 -11
  81. data/test/plugin/data/sd_file/config.yml +0 -11
  82. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  83. data/test/plugin/in_tail/test_fifo.rb +0 -121
  84. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  85. data/test/plugin/in_tail/test_position_file.rb +0 -346
  86. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  87. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  88. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  89. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  90. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  91. data/test/plugin/test_bare_output.rb +0 -131
  92. data/test/plugin/test_base.rb +0 -247
  93. data/test/plugin/test_buf_file.rb +0 -1314
  94. data/test/plugin/test_buf_file_single.rb +0 -898
  95. data/test/plugin/test_buf_memory.rb +0 -42
  96. data/test/plugin/test_buffer.rb +0 -1493
  97. data/test/plugin/test_buffer_chunk.rb +0 -209
  98. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  99. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  100. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  101. data/test/plugin/test_compressable.rb +0 -87
  102. data/test/plugin/test_file_util.rb +0 -96
  103. data/test/plugin/test_filter.rb +0 -368
  104. data/test/plugin/test_filter_grep.rb +0 -697
  105. data/test/plugin/test_filter_parser.rb +0 -731
  106. data/test/plugin/test_filter_record_transformer.rb +0 -577
  107. data/test/plugin/test_filter_stdout.rb +0 -207
  108. data/test/plugin/test_formatter_csv.rb +0 -136
  109. data/test/plugin/test_formatter_hash.rb +0 -38
  110. data/test/plugin/test_formatter_json.rb +0 -61
  111. data/test/plugin/test_formatter_ltsv.rb +0 -70
  112. data/test/plugin/test_formatter_msgpack.rb +0 -28
  113. data/test/plugin/test_formatter_out_file.rb +0 -116
  114. data/test/plugin/test_formatter_single_value.rb +0 -44
  115. data/test/plugin/test_formatter_tsv.rb +0 -76
  116. data/test/plugin/test_in_debug_agent.rb +0 -49
  117. data/test/plugin/test_in_exec.rb +0 -261
  118. data/test/plugin/test_in_forward.rb +0 -1178
  119. data/test/plugin/test_in_gc_stat.rb +0 -62
  120. data/test/plugin/test_in_http.rb +0 -1124
  121. data/test/plugin/test_in_monitor_agent.rb +0 -922
  122. data/test/plugin/test_in_object_space.rb +0 -66
  123. data/test/plugin/test_in_sample.rb +0 -190
  124. data/test/plugin/test_in_syslog.rb +0 -505
  125. data/test/plugin/test_in_tail.rb +0 -3429
  126. data/test/plugin/test_in_tcp.rb +0 -328
  127. data/test/plugin/test_in_udp.rb +0 -296
  128. data/test/plugin/test_in_unix.rb +0 -181
  129. data/test/plugin/test_input.rb +0 -137
  130. data/test/plugin/test_metadata.rb +0 -89
  131. data/test/plugin/test_metrics.rb +0 -294
  132. data/test/plugin/test_metrics_local.rb +0 -96
  133. data/test/plugin/test_multi_output.rb +0 -204
  134. data/test/plugin/test_out_copy.rb +0 -308
  135. data/test/plugin/test_out_exec.rb +0 -312
  136. data/test/plugin/test_out_exec_filter.rb +0 -606
  137. data/test/plugin/test_out_file.rb +0 -1038
  138. data/test/plugin/test_out_forward.rb +0 -1349
  139. data/test/plugin/test_out_http.rb +0 -557
  140. data/test/plugin/test_out_null.rb +0 -105
  141. data/test/plugin/test_out_relabel.rb +0 -28
  142. data/test/plugin/test_out_roundrobin.rb +0 -146
  143. data/test/plugin/test_out_secondary_file.rb +0 -458
  144. data/test/plugin/test_out_stdout.rb +0 -205
  145. data/test/plugin/test_out_stream.rb +0 -103
  146. data/test/plugin/test_output.rb +0 -1334
  147. data/test/plugin/test_output_as_buffered.rb +0 -2024
  148. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  149. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  150. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  151. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  152. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  153. data/test/plugin/test_output_as_standard.rb +0 -374
  154. data/test/plugin/test_owned_by.rb +0 -34
  155. data/test/plugin/test_parser.rb +0 -399
  156. data/test/plugin/test_parser_apache.rb +0 -42
  157. data/test/plugin/test_parser_apache2.rb +0 -47
  158. data/test/plugin/test_parser_apache_error.rb +0 -45
  159. data/test/plugin/test_parser_csv.rb +0 -200
  160. data/test/plugin/test_parser_json.rb +0 -244
  161. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  162. data/test/plugin/test_parser_msgpack.rb +0 -127
  163. data/test/plugin/test_parser_multiline.rb +0 -111
  164. data/test/plugin/test_parser_nginx.rb +0 -88
  165. data/test/plugin/test_parser_none.rb +0 -52
  166. data/test/plugin/test_parser_regexp.rb +0 -284
  167. data/test/plugin/test_parser_syslog.rb +0 -650
  168. data/test/plugin/test_parser_tsv.rb +0 -122
  169. data/test/plugin/test_sd_file.rb +0 -228
  170. data/test/plugin/test_sd_srv.rb +0 -230
  171. data/test/plugin/test_storage.rb +0 -166
  172. data/test/plugin/test_storage_local.rb +0 -335
  173. data/test/plugin/test_string_util.rb +0 -26
  174. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  175. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  176. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  177. data/test/plugin_helper/data/cert/cert.pem +0 -19
  178. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  179. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  180. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  181. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  182. data/test/plugin_helper/data/cert/empty.pem +0 -0
  183. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  184. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  185. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  186. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  187. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  188. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  189. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  190. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  191. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  192. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  193. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  194. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  195. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  196. data/test/plugin_helper/http_server/test_app.rb +0 -65
  197. data/test/plugin_helper/http_server/test_route.rb +0 -32
  198. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  199. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  200. data/test/plugin_helper/test_cert_option.rb +0 -25
  201. data/test/plugin_helper/test_child_process.rb +0 -862
  202. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  203. data/test/plugin_helper/test_event_emitter.rb +0 -80
  204. data/test/plugin_helper/test_event_loop.rb +0 -52
  205. data/test/plugin_helper/test_extract.rb +0 -194
  206. data/test/plugin_helper/test_formatter.rb +0 -255
  207. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  208. data/test/plugin_helper/test_inject.rb +0 -561
  209. data/test/plugin_helper/test_metrics.rb +0 -137
  210. data/test/plugin_helper/test_parser.rb +0 -264
  211. data/test/plugin_helper/test_record_accessor.rb +0 -238
  212. data/test/plugin_helper/test_retry_state.rb +0 -1006
  213. data/test/plugin_helper/test_server.rb +0 -1895
  214. data/test/plugin_helper/test_service_discovery.rb +0 -165
  215. data/test/plugin_helper/test_socket.rb +0 -146
  216. data/test/plugin_helper/test_storage.rb +0 -542
  217. data/test/plugin_helper/test_thread.rb +0 -164
  218. data/test/plugin_helper/test_timer.rb +0 -130
  219. data/test/scripts/exec_script.rb +0 -32
  220. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  221. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  222. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  223. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  224. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  225. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  226. data/test/test_capability.rb +0 -74
  227. data/test/test_clock.rb +0 -164
  228. data/test/test_config.rb +0 -369
  229. data/test/test_configdsl.rb +0 -148
  230. data/test/test_daemonizer.rb +0 -91
  231. data/test/test_engine.rb +0 -203
  232. data/test/test_event.rb +0 -531
  233. data/test/test_event_router.rb +0 -348
  234. data/test/test_event_time.rb +0 -199
  235. data/test/test_file_wrapper.rb +0 -53
  236. data/test/test_filter.rb +0 -121
  237. data/test/test_fluent_log_event_router.rb +0 -99
  238. data/test/test_formatter.rb +0 -369
  239. data/test/test_input.rb +0 -31
  240. data/test/test_log.rb +0 -1076
  241. data/test/test_match.rb +0 -148
  242. data/test/test_mixin.rb +0 -351
  243. data/test/test_msgpack_factory.rb +0 -50
  244. data/test/test_oj_options.rb +0 -55
  245. data/test/test_output.rb +0 -278
  246. data/test/test_plugin.rb +0 -251
  247. data/test/test_plugin_classes.rb +0 -370
  248. data/test/test_plugin_helper.rb +0 -81
  249. data/test/test_plugin_id.rb +0 -119
  250. data/test/test_process.rb +0 -14
  251. data/test/test_root_agent.rb +0 -951
  252. data/test/test_static_config_analysis.rb +0 -177
  253. data/test/test_supervisor.rb +0 -821
  254. data/test/test_test_drivers.rb +0 -136
  255. data/test/test_time_formatter.rb +0 -301
  256. data/test/test_time_parser.rb +0 -362
  257. data/test/test_tls.rb +0 -65
  258. data/test/test_unique_id.rb +0 -47
  259. data/test/test_variable_store.rb +0 -65
@@ -1,166 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/plugin/storage'
3
- require 'fluent/plugin/base'
4
-
5
- class DummyPlugin < Fluent::Plugin::TestBase
6
- end
7
-
8
- class BareStorage < Fluent::Plugin::Storage
9
- Fluent::Plugin.register_storage('bare', self)
10
- end
11
-
12
- class BasicStorage < Fluent::Plugin::Storage
13
- Fluent::Plugin.register_storage('example', self)
14
-
15
- attr_reader :data, :saved
16
-
17
- def initialize
18
- super
19
- @data = @saved = nil
20
- end
21
- def load
22
- @data = {}
23
- end
24
- def save
25
- @saved = @data.dup
26
- end
27
- def get(key)
28
- @data[key]
29
- end
30
- def fetch(key, defval)
31
- @data.fetch(key, defval)
32
- end
33
- def put(key, value)
34
- @data[key] = value
35
- end
36
- def delete(key)
37
- @data.delete(key)
38
- end
39
- def update(key, &block)
40
- @data[key] = block.call(@data[key])
41
- end
42
- def close
43
- @data = {}
44
- super
45
- end
46
- def terminate
47
- @saved = {}
48
- super
49
- end
50
- end
51
-
52
- class StorageTest < Test::Unit::TestCase
53
- sub_test_case 'BareStorage' do
54
- setup do
55
- plugin = DummyPlugin.new
56
- @s = BareStorage.new
57
- @s.configure(config_element())
58
- @s.owner = plugin
59
- end
60
-
61
- test 'is configured with plugin information and system config' do
62
- plugin = DummyPlugin.new
63
- plugin.system_config_override({'process_name' => 'mytest'})
64
- plugin.configure(config_element('ROOT', '', {'@id' => '1'}))
65
- s = BareStorage.new
66
- s.configure(config_element())
67
- s.owner = plugin
68
-
69
- assert_equal 'mytest', s.owner.system_config.process_name
70
- assert_equal '1', s.instance_eval{ @_plugin_id }
71
- end
72
-
73
- test 'does NOT have features for high-performance/high-consistent storages' do
74
- assert_equal false, @s.persistent_always?
75
- assert_equal false, @s.synchronized?
76
- end
77
-
78
- test 'does have default values which is conservative for almost all users' do
79
- assert_equal false, @s.persistent
80
- assert_equal true, @s.autosave
81
- assert_equal 10, @s.autosave_interval
82
- assert_equal true, @s.save_at_shutdown
83
- end
84
-
85
- test 'load/save doesn NOT anything: just as memory storage' do
86
- assert_nothing_raised{ @s.load }
87
- assert_nothing_raised{ @s.save }
88
- end
89
-
90
- test 'all operations are not defined yet' do
91
- assert_raise NotImplementedError do
92
- @s.get('key')
93
- end
94
- assert_raise NotImplementedError do
95
- @s.fetch('key', 'value')
96
- end
97
- assert_raise NotImplementedError do
98
- @s.put('key', 'value')
99
- end
100
- assert_raise NotImplementedError do
101
- @s.delete('key')
102
- end
103
- assert_raise NotImplementedError do
104
- @s.update('key'){ |v| v + '2' }
105
- end
106
- end
107
- end
108
-
109
- sub_test_case 'ExampleStorage' do
110
- setup do
111
- plugin = DummyPlugin.new
112
- plugin.configure(config_element('ROOT', '', {'@id' => '1'}))
113
- @s = BasicStorage.new
114
- @s.configure(config_element())
115
- @s.owner = plugin
116
- end
117
-
118
- test 'load/save works well as plugin internal state operations' do
119
- plugin = DummyPlugin.new
120
- plugin.configure(config_element('ROOT', '', {'@id' => '0'}))
121
- s = BasicStorage.new
122
- s.owner = plugin
123
-
124
- assert_nothing_raised{ s.load }
125
- assert s.data
126
- assert_nil s.saved
127
-
128
- assert_nothing_raised{ s.save }
129
- assert s.saved
130
- assert{ s.data == s.saved }
131
- assert{ s.data.object_id != s.saved.object_id }
132
- end
133
-
134
- test 'all operations work well' do
135
- @s.load
136
-
137
- assert_nil @s.get('key')
138
- assert_equal 'value', @s.fetch('key', 'value')
139
- assert_nil @s.get('key')
140
-
141
- assert_equal 'value', @s.put('key', 'value')
142
- assert_equal 'value', @s.get('key')
143
-
144
- assert_equal 'valuevalue', @s.update('key'){|v| v * 2 }
145
-
146
- assert_equal 'valuevalue', @s.delete('key')
147
- end
148
-
149
- test 'close and terminate work to operate internal states' do
150
- @s.load
151
- @s.put('k1', 'v1')
152
- @s.put('k2', 'v2')
153
- assert_equal 2, @s.data.size
154
- @s.save
155
- assert_equal @s.data.size, @s.saved.size
156
-
157
- assert_nothing_raised{ @s.close }
158
- assert @s.data.empty?
159
- assert !@s.saved.empty?
160
-
161
- assert_nothing_raised{ @s.terminate }
162
- assert @s.data.empty?
163
- assert @s.saved.empty?
164
- end
165
- end
166
- end
@@ -1,335 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/plugin/storage_local'
3
- require 'fluent/plugin/input'
4
- require 'fluent/system_config'
5
- require 'fileutils'
6
-
7
- class LocalStorageTest < Test::Unit::TestCase
8
- TMP_DIR = File.expand_path(File.dirname(__FILE__) + "/tmp/storage_local#{ENV['TEST_ENV_NUMBER']}")
9
-
10
- class MyInput < Fluent::Plugin::Input
11
- helpers :storage
12
- config_section :storage do
13
- config_set_default :@type, 'local'
14
- end
15
- end
16
-
17
- setup do
18
- FileUtils.rm_rf(TMP_DIR)
19
- FileUtils.mkdir_p(TMP_DIR)
20
- Fluent::Test.setup
21
- @d = MyInput.new
22
- end
23
-
24
- teardown do
25
- @d.stop unless @d.stopped?
26
- @d.before_shutdown unless @d.before_shutdown?
27
- @d.shutdown unless @d.shutdown?
28
- @d.after_shutdown unless @d.after_shutdown?
29
- @d.close unless @d.closed?
30
- @d.terminate unless @d.terminated?
31
- end
32
-
33
- sub_test_case 'without any configuration' do
34
- test 'works as on-memory storage' do
35
- conf = config_element()
36
-
37
- @d.configure(conf)
38
- @d.start
39
- @p = @d.storage_create()
40
-
41
- assert_nil @p.path
42
- assert @p.store.empty?
43
-
44
- assert_nil @p.get('key1')
45
- assert_equal 'EMPTY', @p.fetch('key1', 'EMPTY')
46
-
47
- @p.put('key1', '1')
48
- assert_equal '1', @p.get('key1')
49
-
50
- @p.update('key1') do |v|
51
- (v.to_i * 2).to_s
52
- end
53
- assert_equal '2', @p.get('key1')
54
-
55
- @p.save # on-memory storage does nothing...
56
-
57
- @d.stop; @d.before_shutdown; @d.shutdown; @d.after_shutdown; @d.close; @d.terminate
58
-
59
- # re-create to reload storage contents
60
- @d = MyInput.new
61
- @d.configure(conf)
62
- @d.start
63
- @p = @d.storage_create()
64
-
65
- assert @p.store.empty?
66
- end
67
-
68
- test 'warns about on-memory storage if autosave is true' do
69
- @d.configure(config_element())
70
- @d.start
71
- @p = @d.storage_create()
72
-
73
- logs = @d.log.out.logs
74
- assert{ logs.any?{|log| log.include?("[warn]: both of Plugin @id and path for <storage> are not specified. Using on-memory store.") } }
75
- end
76
-
77
- test 'show info log about on-memory storage if autosave is false' do
78
- @d.configure(config_element('ROOT', '', {}, [config_element('storage', '', {'autosave' => 'false'})]))
79
- @d.start
80
- @p = @d.storage_create()
81
-
82
- logs = @d.log.out.logs
83
- assert{ logs.any?{|log| log.include?("[info]: both of Plugin @id and path for <storage> are not specified. Using on-memory store.") } }
84
- end
85
- end
86
-
87
- sub_test_case 'configured with file path' do
88
- test 'works as storage which stores data on disk' do
89
- storage_path = File.join(TMP_DIR, 'my_store.json')
90
- conf = config_element('ROOT', '', {}, [config_element('storage', '', {'path' => storage_path})])
91
- @d.configure(conf)
92
- @d.start
93
- @p = @d.storage_create()
94
-
95
- assert_equal storage_path, @p.path
96
- assert @p.store.empty?
97
-
98
- assert_nil @p.get('key1')
99
- assert_equal 'EMPTY', @p.fetch('key1', 'EMPTY')
100
-
101
- @p.put('key1', '1')
102
- assert_equal '1', @p.get('key1')
103
-
104
- @p.update('key1') do |v|
105
- (v.to_i * 2).to_s
106
- end
107
- assert_equal '2', @p.get('key1')
108
-
109
- @p.save # stores all data into file
110
-
111
- assert File.exist?(storage_path)
112
-
113
- @p.put('key2', 4)
114
-
115
- @d.stop; @d.before_shutdown; @d.shutdown; @d.after_shutdown; @d.close; @d.terminate
116
-
117
- assert_equal({'key1' => '2', 'key2' => 4}, File.open(storage_path){|f| JSON.parse(f.read) })
118
-
119
- # re-create to reload storage contents
120
- @d = MyInput.new
121
- @d.configure(conf)
122
- @d.start
123
- @p = @d.storage_create()
124
-
125
- assert_false @p.store.empty?
126
-
127
- assert_equal '2', @p.get('key1')
128
- assert_equal 4, @p.get('key2')
129
- end
130
-
131
- test 'raise configuration error if a file specified with multi worker configuration' do
132
- storage_path = File.join(TMP_DIR, 'my_store.json')
133
- conf = config_element('ROOT', '', {}, [config_element('storage', '', {'path' => storage_path})])
134
- @d.system_config_override('workers' => 3)
135
- assert_raise Fluent::ConfigError.new("Plugin 'local' does not support multi workers configuration (Fluent::Plugin::LocalStorage)") do
136
- @d.configure(conf)
137
- end
138
- end
139
- end
140
-
141
- sub_test_case 'configured with root-dir and plugin id' do
142
- test 'works as storage which stores data under root dir' do
143
- root_dir = File.join(TMP_DIR, 'root')
144
- expected_storage_path = File.join(root_dir, 'worker0', 'local_storage_test', 'storage.json')
145
- conf = config_element('ROOT', '', {'@id' => 'local_storage_test'})
146
- Fluent::SystemConfig.overwrite_system_config('root_dir' => root_dir) do
147
- @d.configure(conf)
148
- end
149
- @d.start
150
- @p = @d.storage_create()
151
-
152
- assert_equal expected_storage_path, @p.path
153
- assert @p.store.empty?
154
-
155
- assert_nil @p.get('key1')
156
- assert_equal 'EMPTY', @p.fetch('key1', 'EMPTY')
157
-
158
- @p.put('key1', '1')
159
- assert_equal '1', @p.get('key1')
160
-
161
- @p.update('key1') do |v|
162
- (v.to_i * 2).to_s
163
- end
164
- assert_equal '2', @p.get('key1')
165
-
166
- @p.save # stores all data into file
167
-
168
- assert File.exist?(expected_storage_path)
169
-
170
- @p.put('key2', 4)
171
-
172
- @d.stop; @d.before_shutdown; @d.shutdown; @d.after_shutdown; @d.close; @d.terminate
173
-
174
- assert_equal({'key1' => '2', 'key2' => 4}, File.open(expected_storage_path){|f| JSON.parse(f.read) })
175
-
176
- # re-create to reload storage contents
177
- @d = MyInput.new
178
- Fluent::SystemConfig.overwrite_system_config('root_dir' => root_dir) do
179
- @d.configure(conf)
180
- end
181
- @d.start
182
- @p = @d.storage_create()
183
-
184
- assert_false @p.store.empty?
185
-
186
- assert_equal '2', @p.get('key1')
187
- assert_equal 4, @p.get('key2')
188
- end
189
-
190
- test 'works with customized path by specified usage' do
191
- root_dir = File.join(TMP_DIR, 'root')
192
- expected_storage_path = File.join(root_dir, 'worker0', 'local_storage_test', 'storage.usage.json')
193
- conf = config_element('ROOT', 'usage', {'@id' => 'local_storage_test'})
194
- Fluent::SystemConfig.overwrite_system_config('root_dir' => root_dir) do
195
- @d.configure(conf)
196
- end
197
- @d.start
198
- @p = @d.storage_create(usage: 'usage', type: 'local')
199
-
200
- assert_equal expected_storage_path, @p.path
201
- assert @p.store.empty?
202
- end
203
- end
204
-
205
- sub_test_case 'configured with root-dir and plugin id, and multi workers' do
206
- test 'works as storage which stores data under root dir, also in workers' do
207
- root_dir = File.join(TMP_DIR, 'root')
208
- expected_storage_path = File.join(root_dir, 'worker1', 'local_storage_test', 'storage.json')
209
- conf = config_element('ROOT', '', {'@id' => 'local_storage_test'})
210
- with_worker_config(root_dir: root_dir, workers: 2, worker_id: 1) do
211
- @d.configure(conf)
212
- end
213
- @d.start
214
- @p = @d.storage_create()
215
-
216
- assert_equal expected_storage_path, @p.path
217
- assert @p.store.empty?
218
- end
219
- end
220
-
221
- sub_test_case 'persistent specified' do
222
- test 'works well with path' do
223
- omit "It's hard to test on Windows" if Fluent.windows?
224
-
225
- storage_path = File.join(TMP_DIR, 'my_store.json')
226
- conf = config_element('ROOT', '', {}, [config_element('storage', '', {'path' => storage_path, 'persistent' => 'true'})])
227
- @d.configure(conf)
228
- @d.start
229
- @p = @d.storage_create()
230
-
231
- assert_equal storage_path, @p.path
232
- assert @p.store.empty?
233
-
234
- assert_nil @p.get('key1')
235
- assert_equal 'EMPTY', @p.fetch('key1', 'EMPTY')
236
-
237
- @p.put('key1', '1')
238
- assert_equal({'key1' => '1'}, File.open(storage_path){|f| JSON.parse(f.read) })
239
-
240
- @p.update('key1') do |v|
241
- (v.to_i * 2).to_s
242
- end
243
- assert_equal({'key1' => '2'}, File.open(storage_path){|f| JSON.parse(f.read) })
244
- end
245
-
246
- test 'works well with root-dir and plugin id' do
247
- omit "It's hard to test on Windows" if Fluent.windows?
248
-
249
- root_dir = File.join(TMP_DIR, 'root')
250
- expected_storage_path = File.join(root_dir, 'worker0', 'local_storage_test', 'storage.json')
251
- conf = config_element('ROOT', '', {'@id' => 'local_storage_test'}, [config_element('storage', '', {'persistent' => 'true'})])
252
- Fluent::SystemConfig.overwrite_system_config('root_dir' => root_dir) do
253
- @d.configure(conf)
254
- end
255
- @d.start
256
- @p = @d.storage_create()
257
-
258
- assert_equal expected_storage_path, @p.path
259
- assert @p.store.empty?
260
-
261
- assert_nil @p.get('key1')
262
- assert_equal 'EMPTY', @p.fetch('key1', 'EMPTY')
263
-
264
- @p.put('key1', '1')
265
- assert_equal({'key1' => '1'}, File.open(expected_storage_path){|f| JSON.parse(f.read) })
266
-
267
- @p.update('key1') do |v|
268
- (v.to_i * 2).to_s
269
- end
270
- assert_equal({'key1' => '2'}, File.open(expected_storage_path){|f| JSON.parse(f.read) })
271
- end
272
-
273
- test 'raises error if it is configured to use on-memory storage' do
274
- assert_raise Fluent::ConfigError.new("Plugin @id or path for <storage> required when 'persistent' is true") do
275
- @d.configure(config_element('ROOT', '', {}, [config_element('storage', '', {'persistent' => 'true'})]))
276
- end
277
- end
278
- end
279
-
280
- sub_test_case 'with various configurations' do
281
- test 'mode and dir_mode controls permissions of stored data' do
282
- omit "NTFS doesn't support UNIX like permissions" if Fluent.windows?
283
-
284
- storage_path = File.join(TMP_DIR, 'dir', 'my_store.json')
285
- storage_conf = {
286
- 'path' => storage_path,
287
- 'mode' => '0600',
288
- 'dir_mode' => '0777',
289
- }
290
- conf = config_element('ROOT', '', {}, [config_element('storage', '', storage_conf)])
291
- @d.configure(conf)
292
- @d.start
293
- @p = @d.storage_create()
294
-
295
- assert_equal storage_path, @p.path
296
- assert @p.store.empty?
297
-
298
- @p.put('key1', '1')
299
- assert_equal '1', @p.get('key1')
300
-
301
- @p.save # stores all data into file
302
-
303
- assert File.exist?(storage_path)
304
- assert_equal 0600, (File.stat(storage_path).mode % 01000)
305
- assert_equal 0777, (File.stat(File.dirname(storage_path)).mode % 01000)
306
- end
307
-
308
- test 'pretty_print controls to write data in files as human-easy-to-read' do
309
- storage_path = File.join(TMP_DIR, 'dir', 'my_store.json')
310
- storage_conf = {
311
- 'path' => storage_path,
312
- 'pretty_print' => 'true',
313
- }
314
- conf = config_element('ROOT', '', {}, [config_element('storage', '', storage_conf)])
315
- @d.configure(conf)
316
- @d.start
317
- @p = @d.storage_create()
318
-
319
- assert_equal storage_path, @p.path
320
- assert @p.store.empty?
321
-
322
- @p.put('key1', '1')
323
- assert_equal '1', @p.get('key1')
324
-
325
- @p.save # stores all data into file
326
-
327
- expected_pp_json = <<JSON.chomp
328
- {
329
- "key1": "1"
330
- }
331
- JSON
332
- assert_equal expected_pp_json, File.read(storage_path)
333
- end
334
- end
335
- end
@@ -1,26 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/plugin/string_util'
3
-
4
- class StringUtilTest < Test::Unit::TestCase
5
- def setup
6
- @null_value_pattern = Regexp.new("^(-|null|NULL)$")
7
- end
8
-
9
- sub_test_case 'valid string' do
10
- test 'null string' do
11
- assert_equal Fluent::StringUtil.match_regexp(@null_value_pattern, "null").to_s, "null"
12
- assert_equal Fluent::StringUtil.match_regexp(@null_value_pattern, "NULL").to_s, "NULL"
13
- assert_equal Fluent::StringUtil.match_regexp(@null_value_pattern, "-").to_s, "-"
14
- end
15
-
16
- test 'normal string' do
17
- assert_equal Fluent::StringUtil.match_regexp(@null_value_pattern, "fluentd"), nil
18
- end
19
- end
20
-
21
- sub_test_case 'invalid string' do
22
- test 'normal string' do
23
- assert_equal Fluent::StringUtil.match_regexp(@null_value_pattern, "\xff"), nil
24
- end
25
- end
26
- end
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpQIBAAKCAQEArbUTk5n5RruIQGhK1T8g/emKonlfWNMSj/J/f/U9NJ14ugIx
3
- yHBMqx4WaTyA4zjT2VJO5tRBe385zlIUf8i+x7Ovt/MgsjiwXyKv7qdsE5KHLq+V
4
- XJfA+s5vAAyzBHY/BA7xxh/QqCI8a/a1OyHyaQ9pFRFXtQBlTH7Fc1qSw5Yg0EXo
5
- fa6YIBQuDjfqa7FRPj+bEWDO5PUqOMzH5XKBUPS9GLHOqia0CnzF2a51TArC0Dl1
6
- oNFa7myVmjBuNtkG88Fkd7YNzGa+sNBJPmuGvFXuU3XPEnrtARO/SG4g9/MQUvfM
7
- I3jFFOJAMmEKd8QXxO5FgIuEnaNOhVRVH/e9wwIDAQABAoIBAQCcYYAWSW/Y9ctb
8
- 8IguIn8ZF77vNkVYOe1kGfQexjErxPiCvKcEw9TB2HxkkUuXQ/m0lBzkQgIRpB/u
9
- VoaN47OdJW70M7UjvVVK0HeCascpd6irpvbYPOZG5MGZUdV4Ftv0U1/l9Y5rTycG
10
- KzxM1+rcGjuH8+z5zjlj/FzV1Jx75pgH2vwE7tBC9hMIefKJVxsnj+1I2BWwT3Ra
11
- tFayaKW80UYvGQeQjMHyWzEAHAAco5EVTNU9q4xkeKubZx/dod8b05S0Oral0SHY
12
- AFzXJCp6k29w0m3saEtVQBTImwNut8scJ4KoryGRp9fj9a/dBb1RHe/6EXZ8kDRe
13
- zhB2/XWBAoGBANpaAPdcIXFyke4DRB07JGin4NU+yzIZy+RwsHme1OIwu9jUYQ1j
14
- SzcrnJ9adkjgHl4z2psXyeSz/lSUGj7ZjcMVaDu49JSYMPP3heXGkHdtlVyB7KFR
15
- OBt1rgNdXYfOLOBg6j7mf5G5fXUIATM8fNw5nDYIivD7U3cl9TdUe3OJAoGBAMuo
16
- e/pmRMEaaDmXuNkDGv/ZoOC4j9tO1fGheSdna9gZWoOyY+MUTFNBQuz/8aw6VsKS
17
- c7RXY0QI6NsgdLD1OGVgH9AXhDqvgfOBXDWdr/DNJa0wDFNaWRrMFeNQLm7Xhxuf
18
- OBQycq6vUiWJ6XTqcdk+xErcWRbsQPsGozCEcHfrAoGBAI+sl2QsMClI/PLDHWeq
19
- ict/Y3aNigCebsYSzFxKgcOP05raLD417sEPplBIovpS1kigECDrJ0KgmSIoDZj7
20
- Z8dM57gcfHrmJZfycB2AaYDcD2K+bui625Nd/LFkFu4MYQUHYDshSiGmDwIZ0UhY
21
- bcQu+DWpq1rj1Mjaph7RLSYZAoGBAMAJNiZt6qT/ZonwA/A1mm7oYmekAJo2I0y+
22
- CwTZ43oYph4Kx19nU3Up05aw3MyfEhJUkF/cCxErKY7+cqouAKiu1DCfDCNePTZE
23
- o5M3BqEUgFNnPCgYyG6ZRIZco/wGpTKplvKMg1EuplIZUhbZvtKv+d3xGtyfl8Jc
24
- huKH75lTAoGAHQ3Sy56zgQEJ3QFrIw4puztf/KXpSgLA+aSDh6Ti4IY7L+CwZmuW
25
- JyVbgF33CwSIKEhacmALs1ZZsDc1ZXov1HWwePxe4/m7smoqZDtrRXQsbRB5COzA
26
- U30iEMW/rwI3WmHhiIWZYje85+VJZqBc5QS8guv4/XrS/FE7C8Suksc=
27
- -----END RSA PRIVATE KEY-----
@@ -1,19 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDLDCCAhSgAwIBAgIIEJHFsHrKBGYwDQYJKoZIhvcNAQELBQAwJjEQMA4GA1UE
3
- ChMHRmx1ZW50ZDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTE5MDYxOTA1MTM0NVoX
4
- DTE5MDkxODExMTg0NVowJjEQMA4GA1UEChMHRmx1ZW50ZDESMBAGA1UEAxMJbG9j
5
- YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArbUTk5n5RruI
6
- QGhK1T8g/emKonlfWNMSj/J/f/U9NJ14ugIxyHBMqx4WaTyA4zjT2VJO5tRBe385
7
- zlIUf8i+x7Ovt/MgsjiwXyKv7qdsE5KHLq+VXJfA+s5vAAyzBHY/BA7xxh/QqCI8
8
- a/a1OyHyaQ9pFRFXtQBlTH7Fc1qSw5Yg0EXofa6YIBQuDjfqa7FRPj+bEWDO5PUq
9
- OMzH5XKBUPS9GLHOqia0CnzF2a51TArC0Dl1oNFa7myVmjBuNtkG88Fkd7YNzGa+
10
- sNBJPmuGvFXuU3XPEnrtARO/SG4g9/MQUvfMI3jFFOJAMmEKd8QXxO5FgIuEnaNO
11
- hVRVH/e9wwIDAQABo14wXDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
12
- BQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFPLdOVnVWuuB
13
- 7Pnvpgte4BHitzFYMA0GCSqGSIb3DQEBCwUAA4IBAQBp8LAzjWIJapwTBnnivwZk
14
- D6Lr028mZIacbBZKsmmPi0VvDFqCvUAbHN8ytPlRBWnvvkihDkZs1TwcDCXGsWYs
15
- dNNwsYGpk3mQxsHQ9atvy0mQGLDlfaSs/329bfVCw1cPFo9n+MeivSBoE6asdIbH
16
- tOW3kk1XtJZ2qQJJRvexFImZc0z8c2cG0+eR5hQxQd9bLnAczi/8mZ8VzaU/O3UU
17
- OJoVuyp0AA8f2f0f1QDaeH9stWZtJQj3ZX1DWHRE3OmVkoBdlt8EHYGggtvQaLIF
18
- XbHigLHzYztMjmDt4fmRczu/Fu6M4xNro8jLgjiIjqlLBjDZiKrSbOwgyebwFDlv
19
- -----END CERTIFICATE-----
@@ -1,19 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDLDCCAhSgAwIBAgIIEJHFsHrKBGYwDQYJKoZIhvcNAQELBQAwJjEQMA4GA1UE
3
- ChMHRmx1ZW50ZDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTE5MDYxOTA1MTM0NVoX
4
- DTE5MDkxODExMTg0NVowJjEQMA4GA1UEChMHRmx1ZW50ZDESMBAGA1UEAxMJbG9j
5
- YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArbUTk5n5RruI
6
- QGhK1T8g/emKonlfWNMSj/J/f/U9NJ14ugIxyHBMqx4WaTyA4zjT2VJO5tRBe385
7
- zlIUf8i+x7Ovt/MgsjiwXyKv7qdsE5KHLq+VXJfA+s5vAAyzBHY/BA7xxh/QqCI8
8
- a/a1OyHyaQ9pFRFXtQBlTH7Fc1qSw5Yg0EXofa6YIBQuDjfqa7FRPj+bEWDO5PUq
9
- OMzH5XKBUPS9GLHOqia0CnzF2a51TArC0Dl1oNFa7myVmjBuNtkG88Fkd7YNzGa+
10
- sNBJPmuGvFXuU3XPEnrtARO/SG4g9/MQUvfMI3jFFOJAMmEKd8QXxO5FgIuEnaNO
11
- hVRVH/e9wwIDAQABo14wXDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
12
- BQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFPLdOVnVWuuB
13
- 7Pnvpgte4BHitzFYMA0GCSqGSIb3DQEBCwUAA4IBAQBp8LAzjWIJapwTBnnivwZk
14
- D6Lr028mZIacbBZKsmmPi0VvDFqCvUAbHN8ytPlRBWnvvkihDkZs1TwcDCXGsWYs
15
- dNNwsYGpk3mQxsHQ9atvy0mQGLDlfaSs/329bfVCw1cPFo9n+MeivSBoE6asdIbH
16
- tOW3kk1XtJZ2qQJJRvexFImZc0z8c2cG0+eR5hQxQd9bLnAczi/8mZ8VzaU/O3UU
17
- OJoVuyp0AA8f2f0f1QDaeH9stWZtJQj3ZX1DWHRE3OmVkoBdlt8EHYGggtvQaLIF
18
- XbHigLHzYztMjmDt4fmRczu/Fu6M4xNro8jLgjiIjqlLBjDZiKrSbOwgyebwFDlv
19
- -----END CERTIFICATE-----
@@ -1,19 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDLDCCAhSgAwIBAgIIEJHFsHrKBGYwDQYJKoZIhvcNAQELBQAwJjEQMA4GA1UE
3
- ChMHRmx1ZW50ZDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTE5MDYxOTA1MTM0NVoX
4
- DTE5MDkxODExMTg0NVowJjEQMA4GA1UEChMHRmx1ZW50ZDESMBAGA1UEAxMJbG9j
5
- YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArbUTk5n5RruI
6
- QGhK1T8g/emKonlfWNMSj/J/f/U9NJ14ugIxyHBMqx4WaTyA4zjT2VJO5tRBe385
7
- zlIUf8i+x7Ovt/MgsjiwXyKv7qdsE5KHLq+VXJfA+s5vAAyzBHY/BA7xxh/QqCI8
8
- a/a1OyHyaQ9pFRFXtQBlTH7Fc1qSw5Yg0EXofa6YIBQuDjfqa7FRPj+bEWDO5PUq
9
- OMzH5XKBUPS9GLHOqia0CnzF2a51TArC0Dl1oNFa7myVmjBuNtkG88Fkd7YNzGa+
10
- sNBJPmuGvFXuU3XPEnrtARO/SG4g9/MQUvfMI3jFFOJAMmEKd8QXxO5FgIuEnaNO
11
- hVRVH/e9wwIDAQABo14wXDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
12
- BQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFPLdOVnVWuuB
13
- 7Pnvpgte4BHitzFYMA0GCSqGSIb3DQEBCwUAA4IBAQBp8LAzjWIJapwTBnnivwZk
14
- D6Lr028mZIacbBZKsmmPi0VvDFqCvUAbHN8ytPlRBWnvvkihDkZs1TwcDCXGsWYs
15
- dNNwsYGpk3mQxsHQ9atvy0mQGLDlfaSs/329bfVCw1cPFo9n+MeivSBoE6asdIbH
16
- tOW3kk1XtJZ2qQJJRvexFImZc0z8c2cG0+eR5hQxQd9bLnAczi/8mZ8VzaU/O3UU
17
- OJoVuyp0AA8f2f0f1QDaeH9stWZtJQj3ZX1DWHRE3OmVkoBdlt8EHYGggtvQaLIF
18
- XbHigLHzYztMjmDt4fmRczu/Fu6M4xNro8jLgjiIjqlLBjDZiKrSbOwgyebwFDlv
19
- -----END CERTIFICATE-----
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpAIBAAKCAQEA21in8qRqBrfYlRHr1N6eGq3d4CnKe+lTt0sGbab1670s0+h1
3
- lGtjWny6gLSnt5PBY36CUoFB8MtRciVG2zUhB+dAZe4Mst5dzJO6cONT/l/USbCV
4
- rQ/x8m3YzeJNj89fCZ7/7po8CpEfn16BMAd6TMXZZ8O+DCgv3SliEyxpi9CLg2PK
5
- wAV4lwktbGenYadWLFWjv5a+QElFGH/tu5jUDhggoisoQGyZCls2Vmbr6RH+uiy8
6
- js3gxy+5YgbuwkrQtjbfwxe5yEsd6RgzO8oLqlowCwCrn4CNaXFwaZa/vqcWzY4L
7
- qiEWLfmFpFcSZdoWjr1WHsJS/PM3AyJea8nAnQIDAQABAoIBAGkMpaqsmWbMR7rl
8
- EVgqoffPCzMfcK01ivV+xf5f9ulG+aAndaB2aefdUojvfF+MMRNQdGPFKeqDxWbw
9
- eWXkpQQe+ZWXk5darfubSLBl/0UVahs8qgJvX4WmnC3GUzUrsK1v68y/K0A4TrfJ
10
- z/9LpYP9QWjTs0IpQPsfpavfGlFt1TJvPxmomn7D+n0N6zzD3kFlGdeCSYwtPURR
11
- dJ7ifX2vU4E8UtSm7gLrXlmAl1O7bJjFvL3+QlzKDM4M1WJpA9MkmM2icKxdYpew
12
- biRmIiUHdV4soad2Aq58v4q5UgdMqGI8f+fWPO9qgXN7AKbT9NkXr1w/pziOt5rq
13
- /77lbKECgYEA9bmOSA1LfRRclJCaoWWu4PiaXdvMHvsNC9r8NUGuwmiosEMKHFEJ
14
- z8wvzVXprziXAwDTwqkPJmKseNPC8WCq2GfNu7lqJ1V1wHxpzHKhiAWhs7rE7skW
15
- mF2xn2Tocba/L3Nb+K0tXhOZ7daduz94YXFhmRtsutZ9JvFv3G+QmHkCgYEA5IS4
16
- +cOFyha486U9jXyLcPmZXZY9ql4ILuKuQ5pHA7CBO/zU2behuwcainW6P0WzbhKs
17
- CP8xR5W/otqcaHZxy6hg9/nUFVVZIR/0jgKyxCqJA1W49jt23gykmU6q0vj7haZJ
18
- QMhcAbleHBC7YvYoMTpTMe7tZP4YsFNysBn76EUCgYBqtFAn07YjM7NcREsRqSE+
19
- ylXmSisijOxGaKq6ybIE9APEvufmEf7LwKRFa3hVwaI6CKLsVhOhHJo+wd5WiR7H
20
- aJQ7X7HMMN04YA5lXKXudluYu5MHCkWIlq8qQ1x4/N2a0mJu42ze/G4MjPTjuhUh
21
- Y2X5YaJepAOm5JMpyzykKQKBgQDj9eaU+dBgLdSo8UD7ALAVrlio/HRdnNoq82SF
22
- +cQ30P7KucgXvFDxQv/d+d0mu0BoYOYPP4uIbsEyE0SODQIt+LVrCmTgNzjni3op
23
- pFVyzT/K/Nu7fsxwbEpSySAtv8UhqSVQI89sxN81vhdAfHDR0u4lVMSqx7QXSdeS
24
- Bwm9xQKBgQDSeoHoXbmiqRBss9Em69JPwWRZOc9eLns+fFJ1x/WkhY4bnnVXTYkZ
25
- LzRN4ICq18xHy8egbl93uxDcjkMxi3Wj64QZcygI9gWmDBW2hdMpEArR/grsM/FH
26
- DYu9KUMhm5T1KtXtV3izSVCprthdGjbKSbmR6hGw3n9Z1uP6V1rnXQ==
27
- -----END RSA PRIVATE KEY-----
@@ -1,20 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDPTCCAiWgAwIBAgILAJJ76Kpa6DYtsncwDQYJKoZIhvcNAQELBQAwUzELMAkG
3
- A1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MR8w
4
- HQYDVQQDDBZjYS50ZXN0aW5nLmZsdWVudGQub3JnMCAXDTcwMDEwMTAwMDAwMFoY
5
- DzIxMTgxMDI3MDgwNjU3WjBTMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFjAU
6
- BgNVBAcMDU1vdW50YWluIFZpZXcxHzAdBgNVBAMMFmNhLnRlc3RpbmcuZmx1ZW50
7
- ZC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDbWKfypGoGt9iV
8
- EevU3p4ard3gKcp76VO3SwZtpvXrvSzT6HWUa2NafLqAtKe3k8FjfoJSgUHwy1Fy
9
- JUbbNSEH50Bl7gyy3l3Mk7pw41P+X9RJsJWtD/HybdjN4k2Pz18Jnv/umjwKkR+f
10
- XoEwB3pMxdlnw74MKC/dKWITLGmL0IuDY8rABXiXCS1sZ6dhp1YsVaO/lr5ASUUY
11
- f+27mNQOGCCiKyhAbJkKWzZWZuvpEf66LLyOzeDHL7liBu7CStC2Nt/DF7nISx3p
12
- GDM7yguqWjALAKufgI1pcXBplr++pxbNjguqIRYt+YWkVxJl2haOvVYewlL88zcD
13
- Il5rycCdAgMBAAGjEDAOMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
14
- AGPhEAc+vb9PHyet9t5gKJTZF7S4x207hKZ0zLqCQCLM7VjrTVBh/TUFT+saiPsv
15
- 4k2TYSZKInYXh6tkSzdGlRyzk166hF1eOTOae/92Da5PEQMT0AC+SDRDHXrNTyD8
16
- ZxP2xOl0j+FNeKQDdNL+PCU56PYehY40dYZ/EjRyu4VjKaSCMHcVx7eMTyxU3wtB
17
- HbOa8UJdUXEjn4h7icz4aca22aqLedXNaDr6YX+mo25t1jsTO7cEMfr4Ce7GvxdA
18
- msey/b5jnsKcpL7/2uYz5+owD39JZQBRQt+1YAzIU+BNiz8yzdXJO4aQpGWTflIB
19
- jO31o7x4loEvaBTQbX3iP2g=
20
- -----END CERTIFICATE-----