Merge branch 'feature/ido_db_objects'

This commit is contained in:
Nick Chappell 2014-08-22 18:37:31 -07:00
commit d0a151b414
2 changed files with 114 additions and 0 deletions

View file

@ -0,0 +1,57 @@
# == Defined type: icinga2::object::idomysqlconnection
#
# This is a defined type for Icinga 2 IDO MySQL connection objects.
# See the following Icinga 2 doc page for more info:
# http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-idomysqlconnection
#
# === Parameters
#
# See the inline comments.
#
define icinga2::object::idomysqlconnection (
$object_name = $name,
$host = 'localhost',
$port = 3306,
$user = 'icinga',
$password = 'icinga',
$database = 'icinga',
$table_prefix = 'icinga_',
$instance_name = 'default',
$instance_description = undef,
$cleanup = {
acknowledgements_age => 0,
commenthistory_age => 0,
contactnotifications_age => 0,
contactnotificationmethods_age => 0,
downtimehistory_age => 0,
eventhandlers_age => 0,
externalcommands_age => 0,
flappinghistory_age => 0,
hostchecks_age => 0,
logentries_age => 0,
notifications_age => 0,
processevents_age => 0,
statehistory_age => 0,
servicechecks_age => 0,
systemcommands_age => 0
},
$categories = [],
$target_dir = '/etc/icinga2/conf.d',
$target_file_name = "${name}.conf",
$target_file_owner = 'root',
$target_file_group = 'root',
$target_file_mode = '644'
) {
file {"${target_dir}/${target_file_name}":
ensure => file,
owner => $target_file_owner,
group => $target_file_group,
mode => $target_file_mode,
content => template('icinga2/object_idomysqlconnection.conf.erb'),
notify => Service['icinga2'],
}
}

View file

@ -0,0 +1,57 @@
/**
* WARNING: This IdoMysqlConnection definition is automatically generated by Puppet.
* ANY MANUAL CHANGES TO IT WILL GET OVERWRITTEN!
*/
/**
* An IdoMysqlConnection definition. You can create your own configuration
* files in the conf.d directory (e.g. one per host). By default all *.conf
* files in this directory are included.
*
*
* See http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-idomysqlconnection
* for more info on MySQL IDO connection obects.
*/
library "db_ido_mysql"
object IdoMysqlConnection "<%= @object_name %>" {
<%#- If any of the @ parameters are undefined, don't print anything for them: -%>
<%- if @host -%>
<%#- Otherwise, include the parameter: -%>
host = "<%= @host -%>"
<%- end -%>
<%- if @port -%>
port = <%= @port %>
<%- end -%>
<%- if @user -%>
user = "<%= @user -%>"
<%- end -%>
<%- if @password -%>
password = "<%= @password -%>"
<%- end -%>
<%- if @database -%>
database = "<%= @database -%>"
<%- end -%>
<%- if @table_prefix -%>
table_prefix = "<%= @table_prefix -%>"
<%- end -%>
<%- if @instance_name -%>
instance_name = "<%= @instance_name -%>"
<%- end -%>
<%- if @instance_description -%>
instance_description = "<%= @instance_description -%>"
<%- end -%>
<%- if @cleanup.empty? != true -%>
cleanup = {
<%- @cleanup.each_pair do |key, value| -%>
<%= key %> = <%= value %>
<%- end -%>
}
<%- end -%>
<%- if @categories.length != 0 -%>
categories = <%= @categories.map {|category| "#{category}"}.join(' | ') %>
<%- end -%>
}