Class: Puppet::Provider::Zabbix
- Inherits:
-
Puppet::Provider
- Object
- Puppet::Provider
- Puppet::Provider::Zabbix
- Defined in:
- lib/puppet/provider/zabbix.rb
Class Method Summary collapse
-
.check_host(host, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Check if host exists.
-
.check_proxy(host, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Check if proxy exists.
- .check_template_exist(template, template_source, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
-
.check_template_in_host(host, template, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Check if given template name exists in current host.
- .check_template_is_equal(template, template_source, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
-
.create_connection(zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Create the api connection.
-
.get_template_id(zbx, template) ⇒ Object
Get the template id from the name.
-
.is_a_number?(s) ⇒ Boolean
Is it an number?.
-
.require_zabbix ⇒ Object
Require the zabbixapi gem.
Class Method Details
.check_host(host, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Check if host exists. When error raised, return false.
23 24 25 26 27 28 29 30 |
# File 'lib/puppet/provider/zabbix.rb', line 23 def self.check_host(host,zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) begin zbx = create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) zbx.hosts.get_id(:host => host) rescue Puppet::ExecutionFailure => e false end end |
.check_proxy(host, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Check if proxy exists. When error raised, return false.
33 34 35 36 37 38 39 40 41 |
# File 'lib/puppet/provider/zabbix.rb', line 33 def self.check_proxy(host,zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) begin require_zabbix zbx = create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) zbx.proxies.get_id(:host => host) rescue Puppet::ExecutionFailure => e false end end |
.check_template_exist(template, template_source, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
62 63 64 65 66 67 68 69 |
# File 'lib/puppet/provider/zabbix.rb', line 62 def self.check_template_exist(template,template_source,zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) begin zbx = create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) zbx.templates.get_id( :host => template ) rescue Puppet::ExecutionFailure => e false end end |
.check_template_in_host(host, template, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Check if given template name exists in current host.
54 55 56 57 58 59 60 |
# File 'lib/puppet/provider/zabbix.rb', line 54 def self.check_template_in_host(host,template,zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) zbx = create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) template_id = self.get_template_id(zbx,template) template_array = Array.new template_array = zbx.templates.get_ids_by_host( :hostids => [zbx.hosts.get_id(:host => host)] ) template_array.include?("#{template_id}") end |
.check_template_is_equal(template, template_source, zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/puppet/provider/zabbix.rb', line 71 def self.check_template_is_equal(template,template_source,zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) begin zbx = create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) exported = zbx.configurations.export( :format => "xml", :options => { :templates => [zbx.templates.get_id(:host => template)] } ) exported_clean = exported.gsub(/>\s*/, ">").gsub(/\s*</, "<").gsub(/<date>.*<\/date>/,"DATEWASHERE") template_source_clean = template_source.gsub(/>\s*/, ">").gsub(/\s*</, "<").gsub(/<date>.*<\/date>/,"DATEWASHERE") exported_clean.eql? template_source_clean rescue Puppet::ExecutionFailure => e false end end |
.create_connection(zabbix_url, zabbix_user, zabbix_pass, apache_use_ssl) ⇒ Object
Create the api connection
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/puppet/provider/zabbix.rb', line 8 def self.create_connection(zabbix_url,zabbix_user,zabbix_pass,apache_use_ssl) if apache_use_ssl protocol = 'https' else protocol = 'http' end zbx = ZabbixApi.connect( :url => "#{protocol}://#{zabbix_url}/api_jsonrpc.php", :user => zabbix_user, :password => zabbix_pass ) zbx end |
.get_template_id(zbx, template) ⇒ Object
Get the template id from the name.
44 45 46 47 48 49 50 51 |
# File 'lib/puppet/provider/zabbix.rb', line 44 def self.get_template_id(zbx,template) if self.is_a_number?(template) return template else id = zbx.templates.get_id( :host => template ) return id end end |
.is_a_number?(s) ⇒ Boolean
Is it an number?
89 90 91 |
# File 'lib/puppet/provider/zabbix.rb', line 89 def self.is_a_number?(s) s.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true end |
.require_zabbix ⇒ Object
Require the zabbixapi gem
3 4 5 |
# File 'lib/puppet/provider/zabbix.rb', line 3 def self.require_zabbix require "zabbixapi" end |