Defined Type: openiosds::account

Defined in:
manifests/account.pp

Overview

Configure and install an OpenIO account service

Parameters:

  • action (Any) (defaults to: 'create')
  • type (Any) (defaults to: 'account')
  • num (Any) (defaults to: '0')
  • ns (Any) (defaults to: undef)
  • ipaddress (Any) (defaults to: $::ipaddress)
  • port (Any) (defaults to: $::openiosds::params::account_port)
  • redis_host (Any) (defaults to: $::ipaddress)
  • redis_port (Any) (defaults to: $::openiosds::params::redis_port)
  • checks (Any) (defaults to: undef)
  • stats (Any) (defaults to: undef)
  • sentinel_hosts (Any) (defaults to: undef)
  • sentinel_master_name (Any) (defaults to: undef)
  • workers (Any) (defaults to: undef)
  • backlog (Any) (defaults to: '2048')
  • location (Any) (defaults to: $hostname)
  • 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
83
84
85
# File 'manifests/account.pp', line 2

define openiosds::account (
  $action                 = 'create',
  $type                   = 'account',
  $num                    = '0',

  $ns                     = undef,
  $ipaddress              = $::ipaddress,
  $port                   = $::openiosds::params::account_port,
  $redis_host             = $::ipaddress,
  $redis_port             = $::openiosds::params::redis_port,
  $checks                 = undef,
  $stats                  = undef,
  $sentinel_hosts         = undef,
  $sentinel_master_name   = undef,
  $workers                = undef,
  $backlog                = '2048',

  $location               = $hostname,
  $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)
  if ! has_interface_with('ipaddress',$ipaddress) { fail("${ipaddress} is invalid.") }
  validate_integer($port)
  validate_string($redis_host)
  validate_integer($redis_port)
  if $checks { $_checks = $checks }
  else { $_checks = ['{type: tcp}'] }
  if $stats { $_stats = $stats }
  else { $_stats = ['{type: http, path: /status, parser: json}','{type: system}'] }
  if $sentinel_master_name {
    validate_string($sentinel_master_name)
    validate_string($sentinel_hosts)
    $_sentinel_master_name = $sentinel_master_name
  }
  if $workers { validate_integer($workers) }
  validate_integer($backlog)
  validate_string($location)

  # 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 files
  file { "${openiosds::sysconfdir}/${ns}/${type}-${num}/${type}-${num}.conf":
    ensure  => $openiosds::file_ensure,
    content => template("openiosds/${type}.conf.erb"),
    mode    => $openiosds::file_mode,
  } ->
  file { "${openiosds::sysconfdir}/${ns}/watch/${type}-${num}.yml":
    ensure  => $openiosds::file_ensure,
    content => template('openiosds/service-watch.yml.erb'),
    mode    => $openiosds::file_mode,
  } ->
  # Init
  gridinit::program { "${ns}-${type}-${num}":
    action  => $action,
    command => "${openiosds::bindir}/oio-account-server ${openiosds::sysconfdir}/${ns}/${type}-${num}/${type}-${num}.conf",
    group   => "${ns},${type},${type}-${num}",
    uid     => $openiosds::user,
    gid     => $openiosds::group,
    no_exec => $no_exec,
  }

}