chili_logger 0.0.11 → 0.1.5

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.
@@ -1,6 +1,6 @@
1
1
  # class for centralizing Creative's logging logic
2
2
  class ChiliLogger
3
- # module responsible for uniformization of values in ChiliLogger
3
+ # module responsible for uniformization of values in ChiliLogger
4
4
  module Values
5
5
  # class for keeping all default values in a single place
6
6
  class Default
@@ -8,8 +8,8 @@ class ChiliLogger
8
8
  :rabbitmq
9
9
  end
10
10
 
11
- def msg_broker_config
12
- {}
11
+ def fallback_broker
12
+ :aws_sqs
13
13
  end
14
14
 
15
15
  def user
@@ -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
@@ -22,7 +22,7 @@ class ChiliLogger
22
22
  end
23
23
  # only overwrite if :errors was explicitly set in main_content
24
24
  uniformized_content[:errors] = errors(content[:errors]) if content.key?(:errors)
25
-
25
+
26
26
  uniformized_content
27
27
  end
28
28
 
@@ -18,7 +18,7 @@ class ChiliLogger
18
18
  block_device_mapping: aws_metadata('block-device-mapping/'),
19
19
  events: aws_metadata('events/'),
20
20
  hostname: aws_metadata('hostname'),
21
- iam: aws_metadata('iam/'),
21
+ # iam: aws_metadata('iam/'),
22
22
  instance_action: aws_metadata('instance-action'),
23
23
  instance_id: aws_metadata('instance-id'),
24
24
  instance_type: aws_metadata('instance-type'),
@@ -31,7 +31,7 @@ class ChiliLogger
31
31
  profile: aws_metadata('profile'),
32
32
  public_hostname: aws_metadata('public-hostname'),
33
33
  public_ipv4: aws_metadata('public-ipv4'),
34
- public_keys: aws_metadata('public-keys/'),
34
+ # public_keys: aws_metadata('public-keys/'),
35
35
  reservation_id: aws_metadata('reservation-id'),
36
36
  security_groups: aws_metadata('security-groups'),
37
37
  services: aws_metadata('services/')
@@ -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.11
4
+ version: 0.1.5
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-10 00:00:00.000000000 Z
11
+ date: 2020-09-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,13 +89,8 @@ files:
81
89
  - assets/images/rabbit-topic-explanation.webp
82
90
  - bin/console
83
91
  - bin/setup
84
- - chili_logger-0.0.10.gem
85
- - chili_logger-0.0.6.gem
86
- - chili_logger-0.0.7.gem
87
- - chili_logger-0.0.8.gem
88
- - chili_logger-0.0.9.1.gem
89
- - chili_logger-0.0.9.gem
90
92
  - chili_logger.gemspec
93
+ - lib/brokers/main_broker.rb
91
94
  - lib/brokers/rabbit_broker.rb
92
95
  - lib/brokers/sqs_broker.rb
93
96
  - lib/chili_logger.rb
@@ -99,11 +102,14 @@ files:
99
102
  - lib/helpers/logs_coverage/coverage_writer.rb
100
103
  - lib/helpers/logs_coverage/levantamento_provisório.yaml
101
104
  - lib/helpers/values/default.rb
105
+ - lib/helpers/values/secrets/aws_secrets_manager.rb
106
+ - lib/helpers/values/secrets/secrets.rb
102
107
  - lib/helpers/values/type_uniformizer/desc.rb
103
108
  - lib/helpers/values/type_uniformizer/main_content.rb
104
109
  - lib/helpers/values/type_uniformizer/user.rb
105
110
  - lib/message_writer/aws_ops_metadata.rb
106
111
  - lib/message_writer/message_writer.rb
112
+ - lib/unpublished_logs_manager/unpublished_logs_manager.rb
107
113
  - log/chili-logger-coverage.yml
108
114
  homepage: https://gitlab.com/chiligumdev/chili_logger
109
115
  licenses:
@@ -124,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
130
  - !ruby/object:Gem::Version
125
131
  version: '0'
126
132
  requirements: []
127
- rubygems_version: 3.0.6
133
+ rubygems_version: 3.0.8
128
134
  signing_key:
129
135
  specification_version: 4
130
136
  summary: placeholder
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file