logstash-output-monasca_log_api 0.5.3 → 1.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5df0dbf50bde2d5a8eae8fe152b83d9cd0a78d50
4
- data.tar.gz: 2544365725d47ed28be3690a958f7999132c5e3f
3
+ metadata.gz: 07b3468037fe7a8b0bc78971454e0731fd6ef707
4
+ data.tar.gz: 79dd7e9bcf0e8279687a7a2f87aba0dd7fbbd214
5
5
  SHA512:
6
- metadata.gz: ca09177f7af22a0f51bb7db44a87b182127d50d690e813da093c34d8984f01ce16cb02f45015ed6e756f8b753c7c9461ecd2bbdaa805f41e2d123ebedb7d6b00
7
- data.tar.gz: 32bdf7c16d6362b385d536798e70cf88c34ae3909d04a99cecf144115b6d2082cbbad36ab0880b16537faf028193f4b4c0bbba7aaed536420f4ed5865c624101
6
+ metadata.gz: 1c90a198dfe9592c870d5dfd65e9efb785febdcf2c883064d8d459ad52d610782a2901a4a0191aef743cc012a52343385877547c988e714a7e8d2275c92a6921
7
+ data.tar.gz: 9703a5aac084c490bac8d1457e839f5d831a22a335f9eb8b68e8ac005b02e9968142b94721cd9cdfe24a996ca6ae7722281d522469c1512de4c554fa36e3dc55
data/Gemfile CHANGED
@@ -1,2 +1,11 @@
1
1
  source 'https://rubygems.org'
2
+
2
3
  gemspec
4
+
5
+ logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
6
+ use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
7
+
8
+ if Dir.exist?(logstash_path) && use_logstash_source
9
+ gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
10
+ gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
11
+ end
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
- # Logstash Output Monasca-Log-Api Plugin
1
+ # logstash-output-monasca_log_api
2
+
3
+ [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-output-monasca_log_api.svg)](https://travis-ci.org/logstash-plugins/logstash-output-monasca_log_api)
4
+
2
5
  This module is a logstash-output-plugin for the Monasca Log Api.
3
6
 
7
+ Compatible logstash version: [Logstash 2.3.4](https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz)
8
+
4
9
  ## Get latest stable version
5
10
  https://rubygems.org/gems/logstash-output-monasca_log_api
6
11
 
@@ -31,23 +36,23 @@ source /home/vagrant/.rvm/scripts/rvm
31
36
  rvm install jruby
32
37
  ```
33
38
 
34
- ### Clone project
39
+ #### Clone project
35
40
 
36
41
  ```bash
37
- git clone https://github.com/FujitsuEnablingSoftwareTechnologyGmbH/logstash-output-monasca_api.git
42
+ git clone https://github.com/logstash-plugins/logstash-output-monasca_log_api.git
38
43
  ```
39
44
 
40
- ### Use jruby
45
+ #### Use jruby
41
46
  ```bash
42
47
  rvm use jruby
43
48
  ```
44
49
 
45
- ### Install bundler
50
+ #### Install bundler
46
51
  ```bash
47
52
  gem install bundler
48
53
  ```
49
54
 
50
- ### Fetch dependencies
55
+ #### Fetch dependencies
51
56
  ```bash
52
57
  bundle install
53
58
  ```
@@ -92,20 +97,12 @@ gem build logstash-output-monasca_log_api.gemspec
92
97
 
93
98
  ### Deploy Gemfile to logstash
94
99
 
95
- * [Download logstash](https://download.elastic.co/logstash/logstash/logstash-2.2.2.tar.gz) (>=2.2.0)
100
+ * [Download logstash](https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz) (>=2.3.4)
96
101
  * Extract logstash and navigate into the folder
97
- * Add this line to the Gemfile
98
-
99
- ```bash
100
- gem "logstash-output-monasca_log_api", :path => "/vagrant_home/cloudmonitor/logstash-output-monasca_log_api"
101
- ```
102
-
103
- * __logstash-output-monasca_log_api__ = name of the gem
104
- * __/vagrant_home/cloudmonitor/logstash-output-monasca_log_api__ = Path to git workspace
105
102
 
106
103
  Run this command from logstash folder to install the plugin
107
104
  ```bash
108
- bin/plugin install --no-verify
105
+ bin/logstash-plugin install /my/logstash/plugins/logstash-output-monasca_log_api-1.0.0.gem
109
106
  ```
110
107
 
111
108
  Verify installed plugins:
@@ -208,6 +205,25 @@ input {
208
205
  }
209
206
  ```
210
207
 
208
+ #### Cross tenant functionality
209
+
210
+ The output plugin is able to post data on behalf of another tenant to the monasca-log-api.
211
+ For example you can use a user of tenant X to send logs to the monasca-log-api for another tenant Y. The logs will be stored in the index of tenant Y.
212
+
213
+ To use this functionality you need to pass through another field called ```cross_tenant``` to each incoming event. This can be done by using the ```add_field``` for file [input plugin](https://www.elastic.co/guide/en/logstash/2.4/plugins-inputs-file.html). Example configuration:
214
+
215
+ ```bash
216
+ input {
217
+ file {
218
+ add_field => { "dimensions" => { "service" => "neutron" "component" => "firewall" }}
219
+ add_field => { "cross_tenant" => "903ac629d8424dc39ae928a5fff338e7" }
220
+ path => "/var/log/neutron/firewall.log"
221
+ }
222
+ }
223
+ ```
224
+
225
+ **Important:** The user which is sending the data on behalf of other tenants requires a specific role. This role is defined in the configuration file of the monasca-log-api as ```delegate_roles```.
226
+
211
227
  ## Open tasks
212
228
  * Language translations (Replace hardcoded String messages with a configuration/language file)
213
229
  * Exception handling (monasca-api requests)
@@ -0,0 +1,179 @@
1
+ :plugin: monasca_log_api
2
+ :type: output
3
+
4
+ ///////////////////////////////////////////
5
+ START - GENERATED VARIABLES, DO NOT EDIT!
6
+ ///////////////////////////////////////////
7
+ :version: %VERSION%
8
+ :release_date: %RELEASE_DATE%
9
+ :changelog_url: %CHANGELOG_URL%
10
+ :include_path: ../../../../logstash/docs/include
11
+ ///////////////////////////////////////////
12
+ END - GENERATED VARIABLES, DO NOT EDIT!
13
+ ///////////////////////////////////////////
14
+
15
+ [id="plugins-{type}s-{plugin}"]
16
+
17
+ === Monasca_log_api output plugin
18
+
19
+ include::{include_path}/plugin_header.asciidoc[]
20
+
21
+ ==== Description
22
+
23
+ relative requirements
24
+ This Logstash Output plugin, sends events to monasca-api.
25
+ It authenticates against keystone and gets a token.
26
+ The token is used to authenticate against the monasca-api and send log events.
27
+
28
+ [id="plugins-{type}s-{plugin}-options"]
29
+ ==== Monasca_log_api Output Configuration Options
30
+
31
+ This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
32
+
33
+ [cols="<,<,<",options="header",]
34
+ |=======================================================================
35
+ |Setting |Input type|Required
36
+ | <<plugins-{type}s-{plugin}-delay>> |<<number,number>>|No
37
+ | <<plugins-{type}s-{plugin}-dimensions>> |<<array,array>>|No
38
+ | <<plugins-{type}s-{plugin}-elapsed_time_sec>> |<<number,number>>|No
39
+ | <<plugins-{type}s-{plugin}-keystone_api_insecure>> |<<boolean,boolean>>|No
40
+ | <<plugins-{type}s-{plugin}-keystone_api_url>> |<<string,string>>|Yes
41
+ | <<plugins-{type}s-{plugin}-max_data_size_kb>> |<<number,number>>|No
42
+ | <<plugins-{type}s-{plugin}-monasca_log_api_insecure>> |<<boolean,boolean>>|No
43
+ | <<plugins-{type}s-{plugin}-monasca_log_api_url>> |<<string,string>>|Yes
44
+ | <<plugins-{type}s-{plugin}-num_of_logs>> |<<number,number>>|No
45
+ | <<plugins-{type}s-{plugin}-password>> |<<string,string>>|Yes
46
+ | <<plugins-{type}s-{plugin}-project_domain_name>> |<<string,string>>|Yes
47
+ | <<plugins-{type}s-{plugin}-project_name>> |<<string,string>>|Yes
48
+ | <<plugins-{type}s-{plugin}-user_domain_name>> |<<string,string>>|Yes
49
+ | <<plugins-{type}s-{plugin}-username>> |<<string,string>>|Yes
50
+ |=======================================================================
51
+
52
+ Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
53
+ output plugins.
54
+
55
+ &nbsp;
56
+
57
+ [id="plugins-{type}s-{plugin}-delay"]
58
+ ===== `delay`
59
+
60
+ * Value type is <<number,number>>
61
+ * Default value is `10`
62
+
63
+
64
+
65
+ [id="plugins-{type}s-{plugin}-dimensions"]
66
+ ===== `dimensions`
67
+
68
+ * Value type is <<array,array>>
69
+ * There is no default value for this setting.
70
+
71
+ global dimensions
72
+
73
+ [id="plugins-{type}s-{plugin}-elapsed_time_sec"]
74
+ ===== `elapsed_time_sec`
75
+
76
+ * Value type is <<number,number>>
77
+ * Default value is `30`
78
+
79
+
80
+
81
+ [id="plugins-{type}s-{plugin}-keystone_api_insecure"]
82
+ ===== `keystone_api_insecure`
83
+
84
+ * Value type is <<boolean,boolean>>
85
+ * Default value is `false`
86
+
87
+
88
+
89
+ [id="plugins-{type}s-{plugin}-keystone_api_url"]
90
+ ===== `keystone_api_url`
91
+
92
+ * This is a required setting.
93
+ * Value type is <<string,string>>
94
+ * There is no default value for this setting.
95
+
96
+ keystone configuration
97
+
98
+ [id="plugins-{type}s-{plugin}-max_data_size_kb"]
99
+ ===== `max_data_size_kb`
100
+
101
+ * Value type is <<number,number>>
102
+ * Default value is `5120`
103
+
104
+
105
+
106
+ [id="plugins-{type}s-{plugin}-monasca_log_api_insecure"]
107
+ ===== `monasca_log_api_insecure`
108
+
109
+ * Value type is <<boolean,boolean>>
110
+ * Default value is `false`
111
+
112
+
113
+
114
+ [id="plugins-{type}s-{plugin}-monasca_log_api_url"]
115
+ ===== `monasca_log_api_url`
116
+
117
+ * This is a required setting.
118
+ * Value type is <<string,string>>
119
+ * There is no default value for this setting.
120
+
121
+ monasca-log-api configuration
122
+
123
+ [id="plugins-{type}s-{plugin}-num_of_logs"]
124
+ ===== `num_of_logs`
125
+
126
+ * Value type is <<number,number>>
127
+ * Default value is `125`
128
+
129
+
130
+
131
+ [id="plugins-{type}s-{plugin}-password"]
132
+ ===== `password`
133
+
134
+ * This is a required setting.
135
+ * Value type is <<string,string>>
136
+ * There is no default value for this setting.
137
+
138
+
139
+
140
+ [id="plugins-{type}s-{plugin}-project_domain_name"]
141
+ ===== `project_domain_name`
142
+
143
+ * This is a required setting.
144
+ * Value type is <<string,string>>
145
+ * There is no default value for this setting.
146
+
147
+
148
+
149
+ [id="plugins-{type}s-{plugin}-project_name"]
150
+ ===== `project_name`
151
+
152
+ * This is a required setting.
153
+ * Value type is <<string,string>>
154
+ * There is no default value for this setting.
155
+
156
+
157
+
158
+ [id="plugins-{type}s-{plugin}-user_domain_name"]
159
+ ===== `user_domain_name`
160
+
161
+ * This is a required setting.
162
+ * Value type is <<string,string>>
163
+ * There is no default value for this setting.
164
+
165
+
166
+
167
+ [id="plugins-{type}s-{plugin}-username"]
168
+ ===== `username`
169
+
170
+ * This is a required setting.
171
+ * Value type is <<string,string>>
172
+ * There is no default value for this setting.
173
+
174
+
175
+
176
+
177
+
178
+ [id="plugins-{type}s-{plugin}-common-options"]
179
+ include::{include_path}/{type}.asciidoc[]
@@ -33,20 +33,28 @@ module LogStash::Outputs
33
33
  end
34
34
  end
35
35
 
36
- def send_logs(logs, auth_token)
36
+ def send_logs(logs, auth_token, cross_tenant)
37
37
  post_header = {
38
38
  'X-Auth-Token' => auth_token,
39
39
  'Content-Type' => 'application/json',
40
40
  }
41
- response = request('/logs', post_header, logs.to_json)
41
+ params = Hash.new
42
+ if !cross_tenant.nil?
43
+ params[:tenant_id] = cross_tenant
44
+ end
45
+ response = request('/logs', post_header, logs.to_json, params)
42
46
  handle_response(response)
43
47
  end
44
48
 
45
49
  private
46
50
 
47
- def request(path, header, body)
51
+ def request(path, header, body, params)
48
52
  @logger.debug('Sending data to ', :url => @uri.to_s)
49
- post_request = Net::HTTP::Post.new(@uri.request_uri + path, header)
53
+ uri = URI::HTTP.build( :path => @uri.path + path)
54
+ if !params.empty?
55
+ uri.query = URI.encode_www_form(params)
56
+ end
57
+ post_request = Net::HTTP::Post.new(uri.request_uri, header)
50
58
  post_request.body = body
51
59
  @http.request(post_request)
52
60
  end
@@ -70,6 +70,7 @@ class LogStash::Outputs::MonascaLogApi < LogStash::Outputs::Base
70
70
  .new monasca_log_api_url, monasca_log_api_insecure
71
71
  @logs = Hash.new
72
72
  @start_time = nil
73
+ @cross_tenant = nil
73
74
  init_token
74
75
  initialize_logs_object
75
76
  start_time_check
@@ -95,46 +96,62 @@ class LogStash::Outputs::MonascaLogApi < LogStash::Outputs::Base
95
96
  end
96
97
 
97
98
  def encode(event)
98
- log = generate_log_from_event(event)
99
+ log, cross_tenant = generate_log_from_event(event)
99
100
  log_bytesize = bytesize_of(log)
100
101
  logs_bytesize = bytesize_of(@logs)
101
102
 
102
- # if new log would exceed the bytesize then send logs without the new log
103
- if @logs[JSON_LOGS] and (logs_bytesize + log_bytesize) > max_data_size_kb
104
- @logger.debug('bytesize reached. Sending logs')
105
- @mutex.synchronize do
106
- send_logs
107
- add_log log
108
- end
109
- return
110
-
111
- # if the new log would reach the maximum bytesize or the maximum allowed
112
- # number of sendable logs is reached
113
- elsif @logs[JSON_LOGS] and (@logs[JSON_LOGS].size + 1 >= num_of_logs)
114
- @logger.debug('bytesize or maximum number of logs reached. Sending logs')
115
- @mutex.synchronize do
116
- add_log log
117
- send_logs
103
+ if @logs[JSON_LOGS]
104
+ # if new cross_tenant appears request has to be sent
105
+ if @cross_tenant != cross_tenant
106
+ @logger.debug('new cross_tenant. Sending logs.')
107
+ @mutex.synchronize do
108
+ send_logs
109
+ add_log log, cross_tenant
110
+ end
111
+ return
112
+
113
+ # if new log would exceed the bytesize then send logs without the new log
114
+ elsif (logs_bytesize + log_bytesize) > max_data_size_kb
115
+ @logger.debug('bytesize reached. Sending logs')
116
+ @mutex.synchronize do
117
+ send_logs
118
+ add_log log, cross_tenant
119
+ end
120
+ return
121
+
122
+ # if the new log would reach the maximum bytesize or the maximum allowed
123
+ # number of sendable logs is reached
124
+ elsif (@logs[JSON_LOGS].size + 1 >= num_of_logs)
125
+ @logger.debug('bytesize or maximum number of logs reached. Sending logs')
126
+ @mutex.synchronize do
127
+ add_log log, cross_tenant
128
+ send_logs
129
+ end
130
+ return
118
131
  end
119
- return
132
+ end
120
133
 
121
134
  # still free space to collect logs
122
- else
123
- @mutex.synchronize do
124
- add_log log
125
- end
126
- return
135
+ @mutex.synchronize do
136
+ add_log log, cross_tenant
127
137
  end
138
+ return
128
139
  end
129
140
 
130
141
  def generate_log_from_event(event)
131
142
  message = event.to_hash['message']
132
- path = event.to_hash['path']
143
+ path = event.to_hash['path'] if event.to_hash['path']
144
+ stream = event.to_hash['stream'] if event.to_hash['stream']
133
145
  local_dims = JSON.parse(event.to_hash['dimensions'].to_s) if
134
146
  event.to_hash['dimensions']
135
147
  type = event.to_hash['type'] if event.to_hash['type']
148
+ cross_tenant = event.to_hash['cross_tenant'] if
149
+ event.to_hash['cross_tenant']
150
+
151
+ log = { 'message' => message, 'dimensions' => {} }
152
+ path && log['dimensions']['path'] = path
153
+ stream && log['dimensions']['stream'] = stream
136
154
 
137
- log = { 'message' => message, 'dimensions' => { 'path' => path }}
138
155
  log[JSON_DIMS]['type'] = type if type
139
156
  if local_dims
140
157
  begin
@@ -147,7 +164,7 @@ class LogStash::Outputs::MonascaLogApi < LogStash::Outputs::Base
147
164
  log[JSON_DIMS][local_dims[0].strip] = local_dims[1].strip
148
165
  end
149
166
  end
150
- log
167
+ return log, cross_tenant
151
168
  end
152
169
 
153
170
  def initialize_logs_object
@@ -159,6 +176,7 @@ class LogStash::Outputs::MonascaLogApi < LogStash::Outputs::Base
159
176
  @logs = {}
160
177
  @logs[JSON_DIMS] = global_dims unless global_dims.empty?
161
178
  @logs[JSON_LOGS] = []
179
+ @cross_tenant = nil
162
180
  end
163
181
  end
164
182
 
@@ -206,7 +224,7 @@ class LogStash::Outputs::MonascaLogApi < LogStash::Outputs::Base
206
224
  retry_tries = 5
207
225
  begin
208
226
  tries ||= retry_tries
209
- @monasca_log_api_client.send_logs(@logs, token.id)
227
+ @monasca_log_api_client.send_logs(@logs, token.id, @cross_tenant)
210
228
  rescue LogStash::Outputs::Monasca::MonascaLogApiClient::InvalidTokenError => e
211
229
  tries -= 1
212
230
  if tries > 0
@@ -229,11 +247,12 @@ class LogStash::Outputs::MonascaLogApi < LogStash::Outputs::Base
229
247
  end
230
248
  end
231
249
 
232
- def add_log(log)
250
+ def add_log(log, cross_tenant)
233
251
  @logs[JSON_LOGS].push(log)
234
252
  if @logs[JSON_LOGS].size == 1
235
253
  @start_time = Time.now
236
254
  end
255
+ @cross_tenant = cross_tenant
237
256
  end
238
257
 
239
258
  def check_config
@@ -1,16 +1,16 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-monasca_log_api'
3
- s.version = '0.5.3'
3
+ s.version = '1.0.2'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = 'This gem is a logstash output plugin to connect via http to monasca-log-api.'
6
6
  s.description = 'This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program'
7
7
  s.authors = ['Fujitsu Enabling Software Technology GmbH']
8
- s.email = 'kamil.choroba@est.fujitsu.com,tomasz.trebski@ts.fujitsu.com'
8
+ s.email = 'kamil.choroba@est.fujitsu.com,witold.bedyk@est.fujitsu.com'
9
9
  s.require_paths = ['lib']
10
- s.homepage = 'https://github.com/FujitsuEnablingSoftwareTechnologyGmbH/logstash-output-monasca_api'
10
+ s.homepage = 'https://github.com/logstash-plugins/logstash-output-monasca_log_api'
11
11
 
12
12
  # Files
13
- s.files = Dir["lib/**/*", "spec/**/*", "*.gemspec", "*.md", "Gemfile", "LICENSE"]
13
+ s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
14
14
 
15
15
  # Tests
16
16
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
@@ -24,6 +24,8 @@ Gem::Specification.new do |s|
24
24
  s.add_runtime_dependency 'logstash-codec-json', '~> 2.0'
25
25
  s.add_development_dependency 'logstash-devutils', '~> 0.0.14'
26
26
  s.add_development_dependency 'simplecov', '~> 0.10'
27
+ s.add_development_dependency 'simplecov-rcov', '~> 0.2.0'
28
+ s.add_development_dependency 'rspec_junit_formatter', '~> 0.2.3'
27
29
  s.add_development_dependency 'rubocop', '~> 0.37.2'
28
30
  s.add_development_dependency 'webmock', '~> 2.0'
29
31
  end
@@ -23,6 +23,9 @@ describe LogStash::Outputs::Monasca::MonascaLogApiClient do
23
23
  let (:monasca_log_api_url_https) { 'https://monasca-log-api:5607/v3.0' }
24
24
  let (:monasca_log_api_url_post) { monasca_log_api_url + "/logs" }
25
25
  let (:token) { "f8cdafb7dce94444ad781a53ddaff693" }
26
+ let (:cross_tenant) { "396ffadd35a187da44449ecd7bfadc8f" }
27
+ let (:monasca_log_api_url_post_with_tenant) { monasca_log_api_url_post +
28
+ "?tenant_id=" + cross_tenant}
26
29
  let (:logs) {
27
30
  {
28
31
  "dimensions" =>
@@ -75,7 +78,27 @@ describe LogStash::Outputs::Monasca::MonascaLogApiClient do
75
78
  client = LogStash::Outputs::Monasca::MonascaLogApiClient
76
79
  .new(monasca_log_api_url)
77
80
 
78
- client.send_logs(logs, token)
81
+ client.send_logs(logs, token, nil)
82
+ end
83
+ end
84
+
85
+ context 'when requesting to monasca-log-api with cross_tenant' do
86
+ it 'sends x-auth-token and content-type in header, logs in body,'\
87
+ ' and tenant_id in query parameter' do
88
+ expect_any_instance_of(Cabin::Channel).to_not receive(:error)
89
+
90
+ stub_request(:post, monasca_log_api_url_post_with_tenant)
91
+ .with(:headers => {
92
+ 'Accept'=>'*/*',
93
+ 'Content-Type'=>'application/json',
94
+ 'User-Agent'=>'Ruby',
95
+ 'X-Auth-Token'=>'f8cdafb7dce94444ad781a53ddaff693'})
96
+ .to_return(:status => 204)
97
+
98
+ client = LogStash::Outputs::Monasca::MonascaLogApiClient
99
+ .new(monasca_log_api_url)
100
+
101
+ client.send_logs(logs, token, cross_tenant)
79
102
  end
80
103
  end
81
104
 
@@ -114,7 +137,7 @@ describe LogStash::Outputs::Monasca::MonascaLogApiClient do
114
137
  client = LogStash::Outputs::Monasca::MonascaLogApiClient
115
138
  .new(monasca_log_api_url)
116
139
 
117
- client.send_logs(logs, token)
140
+ client.send_logs(logs, token, nil)
118
141
  end
119
142
  end
120
143
 
@@ -135,7 +158,7 @@ describe LogStash::Outputs::Monasca::MonascaLogApiClient do
135
158
  client = LogStash::Outputs::Monasca::MonascaLogApiClient
136
159
  .new(monasca_log_api_url)
137
160
 
138
- expect { client.send_logs(logs, token) }.to raise_error(
161
+ expect { client.send_logs(logs, token, nil) }.to raise_error(
139
162
  LogStash::Outputs::Monasca::MonascaLogApiClient::InvalidTokenError
140
163
  )
141
164
  end
@@ -16,6 +16,9 @@
16
16
  require 'yaml'
17
17
 
18
18
  require 'simplecov'
19
+ require 'simplecov-rcov'
20
+ require 'rspec_junit_formatter'
21
+ SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
19
22
  SimpleCov.start do
20
23
  add_filter '/test/'
21
24
  add_filter '/config/'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-monasca_log_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fujitsu Enabling Software Technology GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-06 00:00:00.000000000 Z
11
+ date: 2017-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core
@@ -80,6 +80,34 @@ dependencies:
80
80
  version: '0.10'
81
81
  prerelease: false
82
82
  type: :development
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov-rcov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.0
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: 0.2.0
95
+ prerelease: false
96
+ type: :development
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec_junit_formatter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.3
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.2.3
109
+ prerelease: false
110
+ type: :development
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rubocop
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +137,7 @@ dependencies:
109
137
  prerelease: false
110
138
  type: :development
111
139
  description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
112
- email: kamil.choroba@est.fujitsu.com,tomasz.trebski@ts.fujitsu.com
140
+ email: kamil.choroba@est.fujitsu.com,witold.bedyk@est.fujitsu.com
113
141
  executables: []
114
142
  extensions: []
115
143
  extra_rdoc_files: []
@@ -117,6 +145,7 @@ files:
117
145
  - Gemfile
118
146
  - LICENSE
119
147
  - README.md
148
+ - docs/index.asciidoc
120
149
  - lib/logstash/outputs/keystone/keystone_client.rb
121
150
  - lib/logstash/outputs/keystone/token.rb
122
151
  - lib/logstash/outputs/monasca/monasca_log_api_client.rb
@@ -127,7 +156,7 @@ files:
127
156
  - spec/outputs/monasca/monasca_log_api_client_spec.rb
128
157
  - spec/outputs/monasca_log_api_spec.rb
129
158
  - spec/outputs/spec_helper.rb
130
- homepage: https://github.com/FujitsuEnablingSoftwareTechnologyGmbH/logstash-output-monasca_api
159
+ homepage: https://github.com/logstash-plugins/logstash-output-monasca_log_api
131
160
  licenses:
132
161
  - Apache-2.0
133
162
  metadata: