Defined Type: openiosds::conscienceagent
- Defined in:
- manifests/conscienceagent.pp
Overview
Configure and install an OpenIO conscienceagent service
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'manifests/conscienceagent.pp', line 2
define openiosds::conscienceagent (
$action = 'create',
$type = 'conscienceagent',
$num = '0',
$ns = undef,
$log_facility = 'LOG_LOCAL0',
$log_level = 'info',
$log_address = '/dev/log',
$include_dir = undef,
$check_interval = '5',
$rise = '1',
$fall = '2',
$syslog_prefix = undef,
$no_exec = false,
) {
if ! defined(Class['openiosds']) {
include openiosds
}
# Validation
$actions = ['create','remove']
validate_re($action,$actions,"${action} is invalid.")
validate_string($type)
validate_integer($num)
validate_string($ns)
$valid_log_facilities = ['LOG_LOCAL0','LOG_LOCAL1','LOG_LOCAL2','LOG_LOCAL3','LOG_LOCAL4','LOG_LOCAL5','LOG_LOCAL6','LOG_LOCAL7']
validate_re($log_facility,$valid_log_facilities,"${log_facility} is invalid.")
$valid_log_levels = ['^critical$', '^error$', '^warn$', '^info$', '^debug$', '^trace$', '^blather$']
validate_re($log_level, $valid_log_levels, "${log_level} is invalid.")
if $include_dir { $_include_dir = $include_dir }
else { $_include_dir = "${openiosds::sysconfdir}/${ns}/watch" }
validate_integer($check_interval)
validate_integer($rise)
validate_integer($fall)
if $syslog_prefix { $_syslog_prefix = $syslog_prefix }
else { $_syslog_prefix = "OIO,${ns},${type},${num}" }
validate_bool($no_exec)
# Namespace
if $action == 'create' {
if ! defined(Openiosds::Namespace[$ns]) {
fail('You must include the namespace class before using OpenIO defined types.')
}
}
# Service
openiosds::service {"${ns}-${type}-${num}":
action => $action,
type => $type,
num => $num,
ns => $ns,
} ->
# Configuration
file { $_include_dir:
ensure => $openiosds::directory_ensure,
mode => $openiosds::directory_mode,
owner => $openiosds::user,
group => $openiosds::group,
} ->
file { "${openiosds::sysconfdir}/${ns}/${type}-${num}/${type}-${num}.yml":
ensure => $openiosds::file_ensure,
content => template("openiosds/${type}.yml.erb"),
mode => $openiosds::file_mode,
} ->
# Init
gridinit::program { "${ns}-${type}-${num}":
action => $action,
command => "${openiosds::bindir}/oio-conscience-agent ${openiosds::sysconfdir}/${ns}/${type}-${num}/${type}-${num}.yml",
group => "${ns},${type},${type}-${num}",
uid => $openiosds::user,
gid => $openiosds::group,
no_exec => $no_exec,
}
}
|