garrison-api 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e6f5385e3b0ea9c7f5aed6d89f142ccf0e5cdb6
4
- data.tar.gz: e780ab99a892438a3bc3cfb3244eb5e8998301e7
3
+ metadata.gz: 6d52efa6a09a8a881d20599de7d28e0122a1218d
4
+ data.tar.gz: c83a8ab3ab6b15a84d985c699f368f7ec17452db
5
5
  SHA512:
6
- metadata.gz: 47414652bcad2baf190237378482bb515b26587c5b1ea4b1583ffa9f5c337e68b648ffb3dd26d069e4b352b15f83cc1f9cbf3ac9f72887a5de4317228882ce3f
7
- data.tar.gz: 2d7330b6a1ff3dd9fdf6ef03ea5bcd93322b2dd4d101a54d5c90a0248c0dee8a4fe01b13f1125eafea62df8b6babd64cc9f4aac53977d2e8152d5389470a8fcf
6
+ metadata.gz: 794ba747e079161641e4b6130d1fa51d5a8576426163d0eede3cbcb8baac7c7a0253995c4c079c32492c004e5a08e060f044c2fb9fc1aeb51df6005daf9e8a6c
7
+ data.tar.gz: d1ce95a143cecda8b3d13e5b95587c825d8a9e4c2185d33da54bdabd4aff8be9775e9752215bd7afbad2b4f8626a125ace3d620cc27ce526af58838796e819e3
@@ -0,0 +1,65 @@
1
+ module Garrison
2
+ module Agents
3
+ class Check
4
+
5
+ attr_accessor :severity
6
+ attr_accessor :family
7
+ attr_accessor :type
8
+ attr_accessor :options
9
+
10
+ def initialize(options = {})
11
+ @severity = ENV['GARRISON_ALERT_SEVERITY']
12
+ @type = ENV['GARRISON_ALERT_TYPE']
13
+ @family = ENV['GARRISON_ALERT_FAMILY']
14
+ @options = options
15
+
16
+ Logging.info "Starting... #{self.class.name}"
17
+ inherit_settings
18
+ Logging.info "Agent Settings (severity=#{self.severity} type=#{self.type} family=#{self.family})"
19
+
20
+ options_log = options.map do |key, value|
21
+ value = value.is_a?(Array) ? value.join(',') : value
22
+ "#{key}=#{value}"
23
+ end
24
+ Logging.info "Check Settings (#{options_log.join(' ')})" if options.any?
25
+ end
26
+
27
+ def perform
28
+ raise 'You must override this method'
29
+ end
30
+
31
+ def alert(name:, target:, detail:, finding:, finding_id:, urls: [], key_values: [])
32
+ Logging.info "Raising alert for '#{target}'"
33
+
34
+ alert = Api::Alert.new
35
+ alert.type = type
36
+ alert.family = family
37
+ alert.source = 'aws-rds'
38
+
39
+ alert.name = name
40
+ alert.target = target
41
+ alert.detail = detail
42
+ alert.severity = severity
43
+
44
+ alert.finding = finding
45
+ alert.finding_id = finding_id
46
+ alert.detected_at = Time.now.utc
47
+
48
+ alert.urls = urls
49
+
50
+ alert.key_values = key_values
51
+ alert.key_values << { key: 'datacenter', value: 'aws' }
52
+ alert.key_values << { key: 'aws-service', value: 'rds' }
53
+ alert.key_values << { key: 'aws-account', value: AwsHelper.whoami.account }
54
+
55
+ alert.save
56
+ end
57
+
58
+ private
59
+
60
+ def inherit_settings
61
+ settings
62
+ end
63
+ end
64
+ end
65
+ end
data/lib/garrison/api.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'httparty'
2
2
  require 'garrison/api/version'
3
3
  require 'garrison/api/alert'
4
+ require 'garrison/agents/check'
5
+ require 'garrison/helpers/logger'
4
6
 
5
7
  module Garrison
6
8
  module Api
@@ -1,5 +1,5 @@
1
1
  module Garrison
2
2
  module Api
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
@@ -0,0 +1,22 @@
1
+ require 'logger'
2
+
3
+ module Garrison
4
+ module Logging
5
+ class << self
6
+ def logger
7
+ @logger ||= Logger.new($stdout)
8
+ end
9
+
10
+ def logger=(logger)
11
+ @logger = logger
12
+ end
13
+
14
+ levels = %w[debug info warn error fatal]
15
+ levels.each do |level|
16
+ define_method(level.to_sym) do |msg|
17
+ logger.send(level, msg)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: garrison-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Forward3D Developers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-13 00:00:00.000000000 Z
11
+ date: 2018-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -69,9 +69,11 @@ files:
69
69
  - bin/console
70
70
  - bin/setup
71
71
  - garrison-api.gemspec
72
+ - lib/garrison/agents/check.rb
72
73
  - lib/garrison/api.rb
73
74
  - lib/garrison/api/alert.rb
74
75
  - lib/garrison/api/version.rb
76
+ - lib/garrison/helpers/logger.rb
75
77
  homepage: https://github.com/forward3d/garrison
76
78
  licenses:
77
79
  - MIT