inventory-server 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/inventory/server/version.rb +1 -1
- data/plugins/log_failures_in_es.rb +13 -3
- data/spec/unit/facts_parser_spec.rb +4 -3
- data/spec/unit/index_spec.rb +2 -1
- data/spec/unit/json_schema_validator_spec.rb +3 -2
- data/spec/unit/log_failures_in_es_spec.rb +10 -3
- data/spec/unit/log_failures_on_disk_spec.rb +3 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84d72e786ae3173c439ccb24170aa15e3a16bf0d
|
4
|
+
data.tar.gz: ad4c6d4b89247e08e5ce89b8f3d64e329223fddd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d91e3d181aa1e25a39609a04e6fbe83976df36002da60de6b8745e0e3dbd27c16da6621cbb2afdfac8128e12ef57b500e30b9c52831abb59b725b2aaf374c496
|
7
|
+
data.tar.gz: 50a189ca44fd4d93d903d6a58e9a8042ecb27c7367570bfd4be5102756e947b2a403e22052fc4923474f1f31d9c0f8c2cb29caefa7488ea8fd6f075c5234f10f
|
@@ -21,13 +21,23 @@ module Inventory
|
|
21
21
|
|
22
22
|
url = "#{@config[:es_host]}/#{@config[:es_failure_index]}/#{@config[:es_failure_type]}/#{id}"
|
23
23
|
begin
|
24
|
-
@app.call(env)
|
25
|
-
RestClient.delete(url)
|
24
|
+
result = @app.call(env)
|
25
|
+
RestClient.delete(url) rescue result
|
26
|
+
return result
|
26
27
|
rescue => e
|
28
|
+
InventoryLogger.logger.error $!
|
29
|
+
InventoryLogger.logger.error "#{e.backtrace}"
|
30
|
+
InventoryLogger.logger.error "Failed facts stored on #{url}"
|
31
|
+
|
27
32
|
env['error_message'] = $!
|
28
33
|
env['stack_trace'] = "#{e.backtrace}"
|
29
34
|
|
30
|
-
|
35
|
+
begin
|
36
|
+
RestClient.put(url, env.to_json)
|
37
|
+
rescue => e
|
38
|
+
InventoryLogger.logger.error "Fail to store failed facts #{e}: #{e.response}"
|
39
|
+
raise e
|
40
|
+
end
|
31
41
|
|
32
42
|
raise e
|
33
43
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require_relative '../../plugins/facts_parser'
|
3
3
|
|
4
|
-
noop = lambda {|env|}
|
4
|
+
noop = lambda {|env| 42}
|
5
5
|
|
6
6
|
RSpec.describe Inventory::Server::FactsParser, '#call' do
|
7
7
|
context "without body" do
|
@@ -33,8 +33,9 @@ RSpec.describe Inventory::Server::FactsParser, '#call' do
|
|
33
33
|
|
34
34
|
context "with good JSON" do
|
35
35
|
env = { :body => '{"key":"value"}' }
|
36
|
-
it "should throw an error" do
|
37
|
-
Inventory::Server::FactsParser.new(noop, {}).call(env)
|
36
|
+
it "should not throw an error" do
|
37
|
+
result= Inventory::Server::FactsParser.new(noop, {}).call(env)
|
38
|
+
expect(result).to eq(42)
|
38
39
|
expect(env[:facts]).to eq 'key' => 'value'
|
39
40
|
end
|
40
41
|
end
|
data/spec/unit/index_spec.rb
CHANGED
@@ -63,7 +63,8 @@ RSpec.describe Inventory::Server::Index, '#call' do
|
|
63
63
|
env = {:id => 'MY_UUID', :facts => { :key => 'value' } }
|
64
64
|
stub = stub_request(:put, "#{config[:es_host]}/inventory_facts/1-0-0/MY_UUID").to_return(:body => '{"OK": true}')
|
65
65
|
|
66
|
-
Inventory::Server::Index.new(noop, config).call(env)
|
66
|
+
result = Inventory::Server::Index.new(noop, config).call(env)
|
67
|
+
expect(result).to eq({ :key => 'value' })
|
67
68
|
|
68
69
|
expect(stub).to have_been_requested
|
69
70
|
end
|
@@ -2,7 +2,7 @@ require_relative '../../plugins/json_schema_validator'
|
|
2
2
|
|
3
3
|
require 'rspec/mocks'
|
4
4
|
|
5
|
-
noop = lambda {|env|}
|
5
|
+
noop = lambda {|env| 42}
|
6
6
|
|
7
7
|
config = Inventory::Server::Config::defaults
|
8
8
|
|
@@ -34,7 +34,8 @@ RSpec.describe Inventory::Server::JsonSchemaValidator, '#call' do
|
|
34
34
|
|
35
35
|
context "without JSON schema" do
|
36
36
|
it "should pass" do
|
37
|
-
Inventory::Server::JsonSchemaValidator.new(noop, config).call(env)
|
37
|
+
result = Inventory::Server::JsonSchemaValidator.new(noop, config).call(env)
|
38
|
+
expect(result).to eq 42
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require_relative '../../plugins/log_failures_in_es'
|
2
2
|
require 'rspec/mocks'
|
3
3
|
|
4
|
-
noop = lambda {|env|}
|
4
|
+
noop = lambda {|env| 42}
|
5
5
|
|
6
6
|
RSpec.describe Inventory::Server::LogFailuresInEs do
|
7
7
|
config = { :failed_facts_dir => './log' , :es_failure_index => "itdiscovery-failures", :es_failure_type => "v1", :es_host => "http://localhost:9200"}
|
@@ -33,14 +33,21 @@ RSpec.describe Inventory::Server::LogFailuresInEs do
|
|
33
33
|
it "should pass without writing anything" do
|
34
34
|
expect(RestClient).to receive(:delete).with('http://localhost:9200/itdiscovery-failures/v1/MY_UUID')
|
35
35
|
expect(RestClient).to_not receive(:put).with(any_args)
|
36
|
-
Inventory::Server::LogFailuresInEs.new(noop, config).call(env)
|
36
|
+
result = Inventory::Server::LogFailuresInEs.new(noop, config).call(env)
|
37
|
+
expect(result).to eq 42
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should pass without even when ES fails to delete the error document" do
|
41
|
+
expect(RestClient).to receive(:delete).with('http://localhost:9200/itdiscovery-failures/v1/MY_UUID').and_raise('404 Not Found')
|
42
|
+
result = Inventory::Server::LogFailuresInEs.new(noop, config).call(env)
|
43
|
+
expect(result).to eq 42
|
37
44
|
end
|
38
45
|
end
|
39
46
|
|
40
47
|
context "with error" do
|
41
48
|
it "should write facts" do
|
42
49
|
raise_error = lambda{ |e| raise "an error" }
|
43
|
-
expect(RestClient).to receive(:put).with('http://localhost:9200/itdiscovery-failures/v1/MY_UUID', /(?=.*my_body)(?=.*an error)(?=.*log_failures_in_es_spec.rb:
|
50
|
+
expect(RestClient).to receive(:put).with('http://localhost:9200/itdiscovery-failures/v1/MY_UUID', /(?=.*my_body)(?=.*an error)(?=.*log_failures_in_es_spec.rb:)/)
|
44
51
|
expect {
|
45
52
|
Inventory::Server::LogFailuresInEs.new(raise_error, config).call(env)
|
46
53
|
}.to raise_error 'an error'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require_relative '../../plugins/log_failures_on_disk'
|
2
2
|
require 'rspec/mocks'
|
3
3
|
|
4
|
-
noop = lambda {|env|}
|
4
|
+
noop = lambda {|env| 42 }
|
5
5
|
|
6
6
|
RSpec.describe Inventory::Server::LogFailuresOnDisk do
|
7
7
|
config = { :failed_facts_dir => './log' }
|
@@ -31,8 +31,9 @@ RSpec.describe Inventory::Server::LogFailuresOnDisk do
|
|
31
31
|
|
32
32
|
context "without error" do
|
33
33
|
it "should pass without writing anything" do
|
34
|
-
Inventory::Server::LogFailuresOnDisk.new(noop, config).call(env)
|
35
34
|
expect(File).to_not receive(:write)
|
35
|
+
result = Inventory::Server::LogFailuresOnDisk.new(noop, config).call(env)
|
36
|
+
expect(result).to eq 42
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|