opsgenie 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/opsgenie.rb +51 -0
  3. metadata +72 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 93152f74eb89b198aaaf0d6d30df5f923cca29d5
4
+ data.tar.gz: 90f13fb9ec9ea29f7103854fbaaa9a2d94a82ad9
5
+ SHA512:
6
+ metadata.gz: 1c0c02567b1a031b629fe130907bd859d06cb2780d2df20583900677d1b9baa22eb6ba7838d7e4d7eb7ec11f6daef242d45cc242ee4669854ea0fbad606d196d
7
+ data.tar.gz: 0d168fdc7e5cf7eef5d05e7ae41e733cbcbfc0903166fc3274649223078cc572bf2d0f5824f7ad9475e627330eb034f9310ad2522eb6b3380bd602d0addff6da
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rubygems"
4
+ require "json"
5
+ require "net/http"
6
+ require "uri"
7
+
8
+ class Opsgenie
9
+
10
+ def initialize(api_key)
11
+ @api_key = api_key
12
+ @url_prefix = 'https://api.opsgenie.com/v1/json/alert'
13
+ end
14
+
15
+ def self.fetch_json(uri, params, req_type)
16
+ uri = URI(uri)
17
+ https = Net::HTTP.new(uri.host, uri.port)
18
+ https.use_ssl = true
19
+ begin
20
+ if req_type=='post'
21
+ res = https.post(uri.path, params)
22
+ else
23
+ uri.query = URI.encode_www_form(params) if params
24
+ res = Net::HTTP.get_response(uri)
25
+ end
26
+ if res.is_a?(Net::HTTPSuccess)
27
+ return JSON.parse(res.body)
28
+ else
29
+ return false
30
+ end
31
+ rescue
32
+ return false
33
+ end
34
+
35
+ end
36
+
37
+ def send_alert message
38
+ params = "{ \"apiKey\":\"#{@api_key}\", \"message\":\"#{message}\" }"
39
+ response = Opsgenie.fetch_json(@url_prefix, params, 'post')
40
+ return response==false ? 'Alert could not be generated.':'Alert generated.'
41
+ end
42
+
43
+ def test_alert
44
+ puts "Testing alert service."
45
+ params = "{ \"apiKey\":\"#{@api_key}\", \"message\":\"testalert\" }"
46
+ response = Opsgenie.fetch_json(@url_prefix, params, 'post')
47
+ return response==false ? 'Alert could not be generated.':'Alert generated.'
48
+ end
49
+
50
+ end
51
+
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: opsgenie
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Shivam Bajpai
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.8.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.8.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 4.0.5
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.0.5
41
+ description: A gem to use opsgenie APIs with ruby
42
+ email: email4shivam@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/opsgenie.rb
48
+ homepage: http://rubygems.org/gems/opsgenie
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubyforge_project:
68
+ rubygems_version: 2.4.6
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: Opsgenie API integration!
72
+ test_files: []