chili_logger 0.0.9.1 → 0.1.3

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.
@@ -0,0 +1,39 @@
1
+ require 'aws-sdk-secretsmanager'
2
+ require 'base64'
3
+
4
+ # class for centralizing Creative's logging logic
5
+ class ChiliLogger
6
+ # module responsible for uniformization of values in ChiliLogger
7
+ module Values
8
+ # class to centralize access to all secrets stored in 3rd-party managers
9
+ class Secrets
10
+ # Module to load secrets environment variables
11
+ class AwsSecretsManager
12
+ def initialize(region_name = 'us-east-1')
13
+ @client = Aws::SecretsManager::Client.new(region: region_name)
14
+ end
15
+
16
+ def get_secrets_collection(collection_name)
17
+ JSON.parse(get_secret(collection_name))
18
+ end
19
+
20
+ private
21
+
22
+ # Use this code snippet in your app.
23
+ # If you need more information about configurations or implementing the sample code, visit the AWS docs:
24
+ # https://aws.amazon.com/developers/getting-started/ruby/
25
+ # method from AWS example, ipsis literis
26
+ def get_secret(secret_name)
27
+ # In this sample we only handle the specific exceptions for the 'GetSecretValue' API.
28
+ # See https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
29
+ # We rethrow the exception by default.
30
+ get_secret_value_response = @client.get_secret_value(secret_id: secret_name)
31
+
32
+ # Decrypts secret using the associated KMS CMK.
33
+ # Depending on whether the secret is a string or binary, one of these fields will be populated.
34
+ get_secret_value_response.secret_string || Base64.decode64(get_secret_value_response.secret_binary)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,29 @@
1
+ require 'helpers/values/secrets/aws_secrets_manager'
2
+
3
+ # class for centralizing Creative's logging logic
4
+ class ChiliLogger
5
+ # module responsible for uniformization of values in ChiliLogger
6
+ module Values
7
+ # class to centralize access to all secrets stored in 3rd-party managers
8
+ class Secrets
9
+ def initialize(manager_name = 'aws')
10
+ manager_class = supported_managers[manager_name.to_s]
11
+ manager_class ||= supported_managers['aws']
12
+
13
+ @secrets_manager = manager_class.new
14
+ end
15
+
16
+ def get_secrets_collection(collection_name)
17
+ @secrets_manager.get_secrets_collection(collection_name)
18
+ end
19
+
20
+ private
21
+
22
+ def supported_managers
23
+ {
24
+ 'aws' => AwsSecretsManager
25
+ }
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,47 @@
1
+ require 'errors/error_messages/config_error'
2
+ require 'brokers/main_broker'
3
+ require 'errors/logging_error_handler/logging_error_handler'
4
+
5
+ # class for centralizing Creative's logging logic
6
+ class ChiliLogger
7
+ # class for manipulating unpublished logs that were sent to the fallback_broker
8
+ class UnpublishedLogsManager
9
+ def initialize(msg_broker, logging_error_handler)
10
+ validate_msg_broker_type(msg_broker)
11
+ validate_logging_error_handler_type(logging_error_handler)
12
+
13
+ @msg_broker = msg_broker
14
+ @logging_error_handler = logging_error_handler
15
+ end
16
+
17
+ def republish
18
+ unpub_logs = @logging_error_handler.fetch_unpublished_logs
19
+
20
+ unpub_logs.each do |unpub_log|
21
+ fallback_broker_msg = unpub_log[:fallback_broker_msg]
22
+ log = unpub_log[:log]
23
+
24
+ # if a message can't be published by MainBroker, LoggingErrorHandler sends it to the fallback_broker
25
+ # to avoid duplicates in this scenario, we delete the message before even trying to publish it
26
+ @logging_error_handler.delete_unpublished_log(fallback_broker_msg)
27
+ @msg_broker.publish(log)
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def validate_msg_broker_type(msg_broker)
34
+ err_type = ChiliLogger::ConfigError
35
+ err_msg = "#{msg_broker.inspect} should be an instance of ChiliLogger::MainBroker"
36
+
37
+ raise(err_type, err_msg) unless msg_broker.class == ChiliLogger::MainBroker
38
+ end
39
+
40
+ def validate_logging_error_handler_type(error_handler)
41
+ err_type = ChiliLogger::ConfigError
42
+ err_msg = "#{error_handler} should be an instance of ChiliLogger::LoggingError::Handler"
43
+
44
+ raise(err_type, err_msg) unless error_handler.class == ChiliLogger::LoggingErrorHandler
45
+ end
46
+ end
47
+ end
@@ -51,9 +51,15 @@ test:
51
51
  transaction:
52
52
  console:
53
53
  publish_test:
54
- - "/home/lucas/.rvm/gems/ruby-2.3.3/gems/chili_logger-0.0.8/lib/chili_logger.rb:61:in
54
+ - "/home/lucas/.rvm/gems/ruby-2.3.3/gems/chili_logger-0.1.0/lib/chili_logger.rb:61:in
55
+ `publish_instant_log'"
56
+ - "(pry):189:in `block (2 levels) in __pry__'"
57
+ uncaught_error:
58
+ console:
59
+ publish_test:
60
+ - "/home/lucas/.rvm/gems/ruby-2.3.3/gems/chili_logger-0.1.0/lib/chili_logger.rb:61:in
55
61
  `publish_instant_log'"
56
- - "(pry):53:in `__pry__'"
62
+ - "(pry):10:in `__pry__'"
57
63
  - "/home/lucas/.rvm/gems/ruby-2.3.3/gems/pry-0.13.1/lib/pry/pry_instance.rb:290:in
58
64
  `eval'"
59
65
  - "/home/lucas/.rvm/gems/ruby-2.3.3/gems/pry-0.13.1/lib/pry/pry_instance.rb:290:in
metadata CHANGED
@@ -1,35 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chili_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - lucas sandeville
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-07 00:00:00.000000000 Z
11
+ date: 2020-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: aws-sdk
14
+ name: aws-sdk-sqs
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 2.9.0
20
17
  - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '2.9'
19
+ version: 1.30.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 2.9.0
26
+ version: 1.30.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk-secretsmanager
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.36.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
30
38
  - - "~>"
31
39
  - !ruby/object:Gem::Version
32
- version: '2.9'
40
+ version: 1.36.0
33
41
  - !ruby/object:Gem::Dependency
34
42
  name: bunny
35
43
  requirement: !ruby/object:Gem::Requirement
@@ -81,11 +89,8 @@ files:
81
89
  - assets/images/rabbit-topic-explanation.webp
82
90
  - bin/console
83
91
  - bin/setup
84
- - chili_logger-0.0.6.gem
85
- - chili_logger-0.0.7.gem
86
- - chili_logger-0.0.8.gem
87
- - chili_logger-0.0.9.gem
88
92
  - chili_logger.gemspec
93
+ - lib/brokers/main_broker.rb
89
94
  - lib/brokers/rabbit_broker.rb
90
95
  - lib/brokers/sqs_broker.rb
91
96
  - lib/chili_logger.rb
@@ -97,11 +102,14 @@ files:
97
102
  - lib/helpers/logs_coverage/coverage_writer.rb
98
103
  - lib/helpers/logs_coverage/levantamento_provisório.yaml
99
104
  - lib/helpers/values/default.rb
105
+ - lib/helpers/values/secrets/aws_secrets_manager.rb
106
+ - lib/helpers/values/secrets/secrets.rb
100
107
  - lib/helpers/values/type_uniformizer/desc.rb
101
108
  - lib/helpers/values/type_uniformizer/main_content.rb
102
109
  - lib/helpers/values/type_uniformizer/user.rb
103
110
  - lib/message_writer/aws_ops_metadata.rb
104
111
  - lib/message_writer/message_writer.rb
112
+ - lib/unpublished_logs_manager/unpublished_logs_manager.rb
105
113
  - log/chili-logger-coverage.yml
106
114
  homepage: https://gitlab.com/chiligumdev/chili_logger
107
115
  licenses:
Binary file
Binary file
Binary file
Binary file