Defined Type: openiosds::conscienceagent

Defined in:
manifests/conscienceagent.pp

Overview

Configure and install an OpenIO conscienceagent service

Parameters:

  • action (Any) (defaults to: 'create')
  • type (Any) (defaults to: 'conscienceagent')
  • num (Any) (defaults to: '0')
  • ns (Any) (defaults to: undef)
  • log_facility (Any) (defaults to: 'LOG_LOCAL0')
  • log_level (Any) (defaults to: 'info')
  • log_address (Any) (defaults to: '/dev/log')
  • include_dir (Any) (defaults to: undef)
  • check_interval (Any) (defaults to: '5')
  • rise (Any) (defaults to: '1')
  • fall (Any) (defaults to: '2')
  • syslog_prefix (Any) (defaults to: undef)
  • no_exec (Any) (defaults to: false)


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,
  }

}