factor-connector-pagerduty 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/factor/connector/pagerduty.rb +120 -0
- metadata +142 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3c0605d31b470bac8b3c4d647063b701f9519968
|
4
|
+
data.tar.gz: 378f879823348f57e791d1991c58dda6195d5c79
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7080c64c6cc763c14f8b7ceaac467e5b090fb96db462f21498cd5b5c8e7d0ec30ee0c82c9944460233145630107195d42e690ea07be79039e651249a4593176f
|
7
|
+
data.tar.gz: d42c50c50ce90a7c222c13f9f8b37df98c44048813d22148de3db6e5f6e2f91f19e149032eaa62be5f7f94e55120338ef39e21fd4cbe74448762f75e1c81f8e5
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'factor-connector-api'
|
2
|
+
require 'pagerduty'
|
3
|
+
require 'httparty'
|
4
|
+
|
5
|
+
Factor::Connector.service 'pagerduty' do
|
6
|
+
action 'create' do |params|
|
7
|
+
|
8
|
+
service_key = params['service_key']
|
9
|
+
description = params['description']
|
10
|
+
incident_key = params['incident_key']
|
11
|
+
client = params['client']
|
12
|
+
client_url = params['client_url']
|
13
|
+
|
14
|
+
fail 'A description is required' unless description
|
15
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
16
|
+
|
17
|
+
content = {
|
18
|
+
incident_key: incident_key,
|
19
|
+
client: client,
|
20
|
+
client_url: client_url
|
21
|
+
}
|
22
|
+
|
23
|
+
info 'Generating a new incident'
|
24
|
+
begin
|
25
|
+
service = Pagerduty.new(service_key)
|
26
|
+
incident = service.trigger(description, content)
|
27
|
+
rescue
|
28
|
+
fail 'Failed to send incident'
|
29
|
+
end
|
30
|
+
action_callback incident
|
31
|
+
end
|
32
|
+
|
33
|
+
action 'retrieve' do |params|
|
34
|
+
|
35
|
+
service_key = params['service_key']
|
36
|
+
incident_key = params['incident_key']
|
37
|
+
|
38
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
39
|
+
fail 'An incident key is required' unless incident_key
|
40
|
+
|
41
|
+
info 'Retrieving the incident information'
|
42
|
+
begin
|
43
|
+
service = Pagerduty.new(service_key)
|
44
|
+
incident = service.get_incident(incident_key)
|
45
|
+
rescue
|
46
|
+
fail 'Failed to find the incident'
|
47
|
+
end
|
48
|
+
action_callback incident
|
49
|
+
end
|
50
|
+
|
51
|
+
action 'acknowledge' do |params|
|
52
|
+
|
53
|
+
service_key = params['service_key']
|
54
|
+
incident_key = params['incident_key']
|
55
|
+
|
56
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
57
|
+
fail 'An incident key is required' unless incident_key
|
58
|
+
|
59
|
+
info 'Acknowleding the incident'
|
60
|
+
begin
|
61
|
+
service = Pagerduty.new(service_key)
|
62
|
+
incident = service.get_incident(incident_key)
|
63
|
+
response = incident.acknowledge
|
64
|
+
rescue
|
65
|
+
fail 'Failed to find the incident'
|
66
|
+
end
|
67
|
+
action_callback response
|
68
|
+
end
|
69
|
+
|
70
|
+
action 'resolve' do |params|
|
71
|
+
|
72
|
+
service_key = params['service_key']
|
73
|
+
incident_key = params['incident_key']
|
74
|
+
|
75
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
76
|
+
fail 'An incident key is required' unless incident_key
|
77
|
+
|
78
|
+
info 'Resolving the incident'
|
79
|
+
begin
|
80
|
+
service = Pagerduty.new(service_key)
|
81
|
+
incident = service.get_incident(incident_key)
|
82
|
+
response = incident.resolve
|
83
|
+
rescue
|
84
|
+
fail 'Failed to find the incident'
|
85
|
+
end
|
86
|
+
action_callback response
|
87
|
+
end
|
88
|
+
|
89
|
+
action 'list' do |params|
|
90
|
+
|
91
|
+
subdomain = params['subdomain']
|
92
|
+
access_key = params['access_key']
|
93
|
+
|
94
|
+
fail 'A subdomain must be provided' unless subdomain
|
95
|
+
fail 'An Access Key (access_key) is required' unless access_key
|
96
|
+
|
97
|
+
info 'Loading incidents'
|
98
|
+
begin
|
99
|
+
uri = "https://#{subdomain}.pagerduty.com/api/v1/incidents"
|
100
|
+
access_string = "Token token=#{access_key}"
|
101
|
+
response = HTTParty.get(
|
102
|
+
uri,
|
103
|
+
headers: {
|
104
|
+
'Content-Type' => 'application/json', 'Authorization' => access_string
|
105
|
+
}
|
106
|
+
)
|
107
|
+
rescue
|
108
|
+
fail 'Failed to load incidents'
|
109
|
+
end
|
110
|
+
|
111
|
+
info 'Parsing the response'
|
112
|
+
begin
|
113
|
+
incident_list = JSON.parse(response.body)
|
114
|
+
rescue
|
115
|
+
fail 'Failed to parse the response from the PagerDuty API'
|
116
|
+
end
|
117
|
+
|
118
|
+
action_callback incident_list
|
119
|
+
end
|
120
|
+
end
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: factor-connector-pagerduty
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Josie Wright
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: factor-connector-api
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pagerduty
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: httparty
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.13.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.13.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: codeclimate-test-reporter
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.4.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.1.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.1.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 10.3.2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 10.3.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: wrong
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.7.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.7.1
|
111
|
+
description:
|
112
|
+
email:
|
113
|
+
- jozwright@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- lib/factor/connector/pagerduty.rb
|
119
|
+
homepage: https://factor.io
|
120
|
+
licenses: []
|
121
|
+
metadata: {}
|
122
|
+
post_install_message:
|
123
|
+
rdoc_options: []
|
124
|
+
require_paths:
|
125
|
+
- lib
|
126
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
requirements: []
|
137
|
+
rubyforge_project:
|
138
|
+
rubygems_version: 2.2.2
|
139
|
+
signing_key:
|
140
|
+
specification_version: 4
|
141
|
+
summary: PagerDuty Factor.io Connector
|
142
|
+
test_files: []
|