Class: Nagios::Promoo::Occi::Probes::MixinsProbe
- Inherits:
-
BaseProbe
- Object
- BaseProbe
- Nagios::Promoo::Occi::Probes::MixinsProbe
show all
- Defined in:
- lib/nagios/promoo/occi/probes/mixins_probe.rb
Overview
Probe for checking OCCI mixins declared by sites.
Constant Summary
collapse
- INFRA_MIXINS =
%w[
http://schemas.ogf.org/occi/infrastructure#os_tpl
http://schemas.ogf.org/occi/infrastructure#resource_tpl
].freeze
- CONTEXT_MIXINS =
%w[
http://schemas.openstack.org/instance/credentials#public_key
http://schemas.openstack.org/compute/instance#user_data
].freeze
Instance Attribute Summary
Attributes inherited from BaseProbe
#options
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from BaseProbe
#client, #initialize
Class Method Details
.declaration ⇒ Object
36
37
38
|
# File 'lib/nagios/promoo/occi/probes/mixins_probe.rb', line 36
def declaration
'mixins'
end
|
.description ⇒ Object
13
14
15
|
# File 'lib/nagios/promoo/occi/probes/mixins_probe.rb', line 13
def description
['mixins', 'Run a probe checking for mandatory OCCI mixin definitions']
end
|
.options ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/nagios/promoo/occi/probes/mixins_probe.rb', line 17
def options
[
[
:mixins,
{
type: :string, enum: %w[infra context all],
default: 'all', desc: 'Collection of mandatory mixins to check'
}
],
[
:optional,
{
type: :array, default: [],
desc: 'Identifiers of optional mixins (optional by force)'
}
]
]
end
|
.runnable? ⇒ Boolean
40
41
42
|
# File 'lib/nagios/promoo/occi/probes/mixins_probe.rb', line 40
def runnable?
true
end
|
Instance Method Details
#run(_args = []) ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/nagios/promoo/occi/probes/mixins_probe.rb', line 55
def run(_args = [])
mixins = []
mixins += INFRA_MIXINS if %w[infra all].include?(options[:mixins])
mixins += CONTEXT_MIXINS if %w[context all].include?(options[:mixins])
mixins -= options[:optional] if options[:optional]
Timeout.timeout(options[:timeout]) do
mixins.each { |mixin| raise "#{mixin.inspect} is missing" unless client.model.get_by_id(mixin, true) }
end
puts 'MIXINS OK - All specified OCCI mixins were found'
rescue => ex
puts "MIXINS CRITICAL - #{ex.message}"
puts ex.backtrace if options[:debug]
exit 2
end
|