nagios-promoo 1.3.1 → 1.4.0
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.
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
|