Defined Type: openiosds::sdsagent

Defined in:
manifests/sdsagent.pp

Overview

Configure and install an OpenIO sdsagent service

Parameters:

  • action (Any) (defaults to: 'create')
  • type (Any) (defaults to: 'sds-agent')
  • num (Any) (defaults to: '0')
  • port (Any) (defaults to: '4000')
  • events_spool_dir (Any) (defaults to: undef)
  • path (Any) (defaults to: undef)
  • backlog (Any) (defaults to: '8192')
  • mode (Any) (defaults to: '0600')
  • 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
82
# File 'manifests/sdsagent.pp', line 2

define openiosds::sdsagent (
  $action           = 'create',
  $type             = 'sds-agent',
  $num              = '0',

  $port             = '4000',
  $events_spool_dir = undef,
  $path             = undef,
  $backlog          = '8192',
  $mode             = '0600',

  $no_exec          = false,
) {

  if ! defined(Class['openiosds']) {
    include openiosds
  }

  # Validation
  $actions = ['create','remove']
  validate_re($action,$actions,"${action} is invalid.")
  validate_string($type)
  if type3x($num) != 'integer' { fail("${num} is not an integer.") }

  if type3x($port) != 'integer' { fail("${port} is not an integer.") }
  if $events_spool_dir { $_events_spool_dir = $events_spool_dir }
  else { $_events_spool_dir = $openiosds::spoolstatedir }
  if $path { $_path = $path }
  else { $_path = "${openiosds::runstatedir}/${type}-${num}.sock" }
  if type3x($backlog) != 'integer' { fail("${backlog} is not an integer.") }
  validate_string($mode)

  validate_bool($no_exec)


  if $action == 'create' {
    file { "${openiosds::sysconfdir_global}/sds.conf":
      ensure  => $openiosds::file_ensure,
      replace => false,
      content => template('openiosds/sds.conf.erb'),
      owner   => $openiosds::user,
      group   => $openiosds::group,
      mode    => $openiosds::file_mode,
    }
  }

  # Service
  openiosds::service {"${type}-${num}":
    action => $action,
    type   => $type,
    num    => $num,
  } ->
  # Files
  file { "${openiosds::sysconfdir}/${type}-${num}/${type}-${num}.conf":
    ensure  => $openiosds::file_ensure,
    content => template("openiosds/${type}.conf.erb"),
    owner   => $openiosds::user,
    group   => $openiosds::group,
    mode    => $openiosds::file_mode,
    notify  => Gridinit::Program["${type}-${num}"],
    require => Openiosds::Service["${type}-${num}"],
  } ->
  file { "${openiosds::sysconfdir}/${type}-${num}/${type}-${num}.log4crc":
    ensure  => $openiosds::file_ensure,
    content => template('openiosds/log4crc.erb'),
    owner   => $openiosds::user,
    group   => $openiosds::group,
    mode    => $openiosds::file_mode,
    notify  => Gridinit::Program["${type}-${num}"],
    require => Openiosds::Service["${type}-${num}"],
  } ->
  # Init
  gridinit::program { "${type}-${num}":
    command => "${openiosds::bindir}/oio-cluster-agent -s OIO,local,${type},${num} ${openiosds::sysconfdir}/${type}-${num}/${type}-${num}.conf",
    group   => $type,
    uid     => $openiosds::user,
    gid     => $openiosds::group,
    no_exec => $no_exec,
  }

}