redphone 0.0.1 → 0.0.2
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.
- data/.gitignore +1 -1
- data/README.org +18 -0
- data/lib/redphone/helpers.rb +7 -1
- data/lib/redphone/pagerduty.rb +16 -0
- data/lib/redphone/version.rb +1 -1
- data/test/pagerduty_test.rb +13 -0
- metadata +8 -7
data/.gitignore
CHANGED
data/README.org
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
* Redphone, the monitoring service ruby library
|
2
|
+
- Pagerduty support (integration, incidents)
|
3
|
+
* Getting started
|
4
|
+
: gem install redphone
|
5
|
+
* Examples
|
6
|
+
** Pagerduty
|
7
|
+
: pagerduty = Redphone::Pagerduty.new(:service_key => SERVICE_KEY)
|
8
|
+
Trigger an incident
|
9
|
+
: pagerduty.trigger_incident(:description => "Testing Redphone Rubygem.", :incident_key => "redphone/test")
|
10
|
+
Resolve an incident
|
11
|
+
: pagerduty.resolve_incident(:incident_key => "redphone/test")
|
12
|
+
List/query current and past incidents
|
13
|
+
: incidents = Redphone::Pagerduty.incidents(
|
14
|
+
: :subdomain => SUBDOMAIN,
|
15
|
+
: :user => USER,
|
16
|
+
: :password => PASSWORD,
|
17
|
+
: :incident_key => "redphone/test"
|
18
|
+
: )
|
data/lib/redphone/helpers.rb
CHANGED
@@ -2,11 +2,14 @@ require "rubygems" if RUBY_VERSION < "1.9.0"
|
|
2
2
|
require "net/http"
|
3
3
|
require "uri"
|
4
4
|
require "json"
|
5
|
+
require "cgi"
|
5
6
|
|
6
7
|
def http_request(options={})
|
7
|
-
raise "
|
8
|
+
raise "You must supply a URI" if options[:uri].nil?
|
8
9
|
method = options[:method] || "get"
|
9
10
|
uri = URI.parse(options[:uri])
|
11
|
+
user = options[:user]
|
12
|
+
password = options[:password]
|
10
13
|
body = options[:body] || nil
|
11
14
|
http = Net::HTTP.new(uri.host, uri.port)
|
12
15
|
if options[:ssl] == true
|
@@ -25,6 +28,9 @@ def http_request(options={})
|
|
25
28
|
else
|
26
29
|
raise "Unknown HTTP method: #{method}"
|
27
30
|
end
|
31
|
+
if user && password
|
32
|
+
request.basic_auth user, password
|
33
|
+
end
|
28
34
|
request.body = body
|
29
35
|
http.request(request)
|
30
36
|
end
|
data/lib/redphone/pagerduty.rb
CHANGED
@@ -28,5 +28,21 @@ module Redphone
|
|
28
28
|
request_body = options.merge!({:event_type => "resolve"})
|
29
29
|
integration_api(request_body)
|
30
30
|
end
|
31
|
+
|
32
|
+
def self.incidents(options={})
|
33
|
+
raise "You must supply a subdomain" if options[:subdomain].nil?
|
34
|
+
raise "You must supply a user" if options[:user].nil?
|
35
|
+
raise "You must supply a password" if options[:password].nil?
|
36
|
+
params_hash = options.reject { |key, value| [:subdomain, :user, :password].include?(key) }
|
37
|
+
params = params_hash.map { |key, value| "#{key}=#{CGI.escape(value)}"}.join("&")
|
38
|
+
response = http_request(
|
39
|
+
:method => "get",
|
40
|
+
:user => options[:user],
|
41
|
+
:password => options[:password],
|
42
|
+
:ssl => true,
|
43
|
+
:uri => "https://#{options[:subdomain]}.pagerduty.com/api/v1/incidents?#{params}"
|
44
|
+
)
|
45
|
+
response.body
|
46
|
+
end
|
31
47
|
end
|
32
48
|
end
|
data/lib/redphone/version.rb
CHANGED
data/test/pagerduty_test.rb
CHANGED
@@ -5,6 +5,8 @@ require 'minitest/autorun'
|
|
5
5
|
require 'redphone/pagerduty'
|
6
6
|
|
7
7
|
SERVICE_KEY = File.open("pagerduty_service_key.txt", "rb").read.gsub("\n", "")
|
8
|
+
credentials = File.open("pagerduty_credentials.txt", "rb").read.split("\n")
|
9
|
+
SUBDOMAIN, USER, PASSWORD = credentials.each { |row| row }
|
8
10
|
|
9
11
|
class TestRedphonePagerduty < MiniTest::Unit::TestCase
|
10
12
|
i_suck_and_my_tests_are_order_dependent!
|
@@ -24,4 +26,15 @@ class TestRedphonePagerduty < MiniTest::Unit::TestCase
|
|
24
26
|
response = JSON.parse(resolve)
|
25
27
|
assert_equal 'success', response['status']
|
26
28
|
end
|
29
|
+
|
30
|
+
def test_incidents
|
31
|
+
incidents = Redphone::Pagerduty.incidents(
|
32
|
+
:subdomain => SUBDOMAIN,
|
33
|
+
:user => USER,
|
34
|
+
:password => PASSWORD,
|
35
|
+
:incident_key => "redphone/test"
|
36
|
+
)
|
37
|
+
response = JSON.parse(incidents)
|
38
|
+
assert response['total'] > 0
|
39
|
+
end
|
27
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redphone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-08 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70117443283800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70117443283800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70117443283340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70117443283340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: minitest
|
38
|
-
requirement: &
|
38
|
+
requirement: &70117443282820 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70117443282820
|
47
47
|
description: A rubygem for talking to monitoring service APIs
|
48
48
|
email:
|
49
49
|
- portertech@gmail.com
|
@@ -53,6 +53,7 @@ extra_rdoc_files: []
|
|
53
53
|
files:
|
54
54
|
- .gitignore
|
55
55
|
- Gemfile
|
56
|
+
- README.org
|
56
57
|
- Rakefile
|
57
58
|
- lib/redphone.rb
|
58
59
|
- lib/redphone/helpers.rb
|