nagios-promoo 1.3.1 → 1.4.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2c15e3b9d6a452b5b7972c715f6e7ac5cbfcbea
|
4
|
+
data.tar.gz: d592f809c7b003a0ea38dfc9b17ea2293c7ca356
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47dff019a4bb3d36e8235ac3afa16eda38c14fb6abe0f26d2e502e52bf97275a0cb2c5ffd2f1637cf3380c1655dcdb85710e37f7a27d1656ec43f82547e78e21
|
7
|
+
data.tar.gz: 5b5eab6dee2fb3fd60725e4a312cf494a733fe78e804e87563be31e2315e748c9c191d0751a60bea025dc89f48ac820e4f0e1a59457a282e9b28a1cd81c21db2
|
@@ -12,13 +12,7 @@ module Nagios
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
APPDB_REQUEST_FORM = 'version=1.0&resource=broker&data=%3Cappdb%3Abroker%20xmlns%3Axs%3D%22http%3A%2F%2F' \
|
17
|
-
'www.w3.org%2F2001%2FXMLSchema%22%20xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2F' \
|
18
|
-
'XMLSchema-instance%22%20xmlns%3Aappdb%3D%22http%3A%2F%2Fappdb.egi.eu%2Fapi%2F1.0%2F' \
|
19
|
-
'appdb%22%3E%3Cappdb%3Arequest%20id%3D%22vaproviders%22%20method%3D%22GET%22%20' \
|
20
|
-
'resource%3D%22va_providers%22%3E%3Cappdb%3Aparam%20name%3D%22listmode%22%3Edetails' \
|
21
|
-
'%3C%2Fappdb%3Aparam%3E%3C%2Fappdb%3Arequest%3E%3C%2Fappdb%3Abroker%3E'.freeze
|
15
|
+
APPDB_PROVIDERS_URL = 'https://appdb.egi.eu/rest/1.0/va_providers?listmode=details'.freeze
|
22
16
|
|
23
17
|
attr_reader :options
|
24
18
|
|
@@ -40,20 +34,17 @@ module Nagios
|
|
40
34
|
private
|
41
35
|
|
42
36
|
def appdb_providers
|
43
|
-
response = HTTParty.
|
37
|
+
response = HTTParty.get(APPDB_PROVIDERS_URL)
|
44
38
|
raise "Could not get site details from AppDB [HTTP #{response.code}]" unless response.success?
|
45
39
|
raise 'Response from AppDB has unexpected structure' unless valid_response?(response.parsed_response)
|
46
40
|
|
47
|
-
providers = response.parsed_response['appdb:
|
48
|
-
['appdb:appdb']['virtualization:provider']
|
41
|
+
providers = response.parsed_response['appdb:appdb']['virtualization:provider']
|
49
42
|
providers.delete_if { |prov| prov['provider:endpoint_url'].blank? }
|
50
43
|
end
|
51
44
|
|
52
45
|
def valid_response?(response)
|
53
|
-
response['appdb:
|
54
|
-
&& response['appdb:
|
55
|
-
&& response['appdb:broker']['appdb:reply']['appdb:appdb'] \
|
56
|
-
&& response['appdb:broker']['appdb:reply']['appdb:appdb']['virtualization:provider']
|
46
|
+
response['appdb:appdb'] \
|
47
|
+
&& response['appdb:appdb']['virtualization:provider']
|
57
48
|
end
|
58
49
|
end
|
59
50
|
end
|
@@ -16,7 +16,15 @@ module Nagios
|
|
16
16
|
|
17
17
|
def options
|
18
18
|
[
|
19
|
-
[:
|
19
|
+
[:appid, { type: :string, required: true, desc: 'AppDB ID referencing a virtual appliance' }],
|
20
|
+
[
|
21
|
+
:vo,
|
22
|
+
{
|
23
|
+
type: :string,
|
24
|
+
required: true,
|
25
|
+
desc: 'Virtual Organization name used to select the appropriate virtual appliance'
|
26
|
+
}
|
27
|
+
],
|
20
28
|
[
|
21
29
|
:with_storage,
|
22
30
|
{
|
@@ -45,15 +53,8 @@ module Nagios
|
|
45
53
|
CPU_SUM_WEIGHT = 1000
|
46
54
|
COMPUTE_NAME_PREFIX = 'sam-nagios-promoo'.freeze
|
47
55
|
DEFAULT_STORAGE_SIZE = 1 # GB
|
48
|
-
|
49
|
-
|
50
|
-
'%3Axs%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%22%20' \
|
51
|
-
'xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXML' \
|
52
|
-
'Schema-instance%22%20xmlns%3Aappdb%3D%22http%3A%2F%2F' \
|
53
|
-
'appdb.egi.eu%2Fapi%2F1.0%2Fappdb%22%3E%3Cappdb%3Arequest%20' \
|
54
|
-
'id%3D%22vaproviders%22%20method%3D%22GET%22%20resource%3D%22' \
|
55
|
-
'va_providers%22%3E%3Cappdb%3Aparam%20name%3D%22listmode%22%3E' \
|
56
|
-
'details%3C%2Fappdb%3Aparam%3E%3C%2Fappdb%3Arequest%3E%3C%2Fappdb%3Abroker%3E'.freeze
|
56
|
+
|
57
|
+
APPDB_PROVIDERS_URL = 'https://appdb.egi.eu/rest/1.0/va_providers?listmode=details'.freeze
|
57
58
|
|
58
59
|
def run(_args = [])
|
59
60
|
@_links = {}
|
@@ -181,14 +182,14 @@ module Nagios
|
|
181
182
|
|
182
183
|
def appdb_appliance
|
183
184
|
appliances = [appdb_provider['provider:image']].flatten.compact
|
184
|
-
appliances.delete_if { |appl| appl['
|
185
|
+
appliances.delete_if { |appl| appl['appid'].blank? }
|
185
186
|
|
186
187
|
appliance = appliances.detect do |appl|
|
187
|
-
|
188
|
+
appl['appid'] == options[:appid] && appl['voname'] == options[:vo]
|
188
189
|
end
|
189
190
|
if appliance.blank?
|
190
|
-
raise 'Site does not have an appliance with
|
191
|
-
"#{
|
191
|
+
raise 'Site does not have an appliance with AppID '\
|
192
|
+
"#{options[:appid]} published in AppDB for VO #{options[:vo]}"
|
192
193
|
end
|
193
194
|
|
194
195
|
appliance['va_provider_image_id'].split('#').last
|
@@ -224,15 +225,14 @@ module Nagios
|
|
224
225
|
|
225
226
|
def appdb_providers
|
226
227
|
parsed_response = cache_fetch('appdb-sites', options[:cache_expiration]) do
|
227
|
-
response = HTTParty.
|
228
|
+
response = HTTParty.get(APPDB_PROVIDERS_URL)
|
228
229
|
raise "Could not get appliance details from AppDB [#{response.code}]" unless response.success?
|
229
230
|
raise 'Response from AppDB has unexpected structure' unless valid_response?(response.parsed_response)
|
230
231
|
|
231
232
|
response.parsed_response
|
232
233
|
end
|
233
234
|
|
234
|
-
providers = parsed_response['appdb:
|
235
|
-
['appdb:appdb']['virtualization:provider']
|
235
|
+
providers = parsed_response['appdb:appdb']['virtualization:provider']
|
236
236
|
providers.delete_if { |prov| prov['provider:endpoint_url'].blank? }
|
237
237
|
end
|
238
238
|
|
@@ -241,10 +241,8 @@ module Nagios
|
|
241
241
|
end
|
242
242
|
|
243
243
|
def valid_response?(response)
|
244
|
-
response['appdb:
|
245
|
-
&& response['appdb:
|
246
|
-
&& response['appdb:broker']['appdb:reply']['appdb:appdb'] \
|
247
|
-
&& response['appdb:broker']['appdb:reply']['appdb:appdb']['virtualization:provider']
|
244
|
+
response['appdb:appdb'] \
|
245
|
+
&& response['appdb:appdb']['virtualization:provider']
|
248
246
|
end
|
249
247
|
|
250
248
|
include Nagios::Promoo::Utils::Cache
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios-promoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Parak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: occi-api
|
@@ -359,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
359
359
|
version: '0'
|
360
360
|
requirements: []
|
361
361
|
rubyforge_project:
|
362
|
-
rubygems_version: 2.6.
|
362
|
+
rubygems_version: 2.6.12
|
363
363
|
signing_key:
|
364
364
|
specification_version: 4
|
365
365
|
summary: Nagios Probes for Monitoring OpenNebula and OCCI
|