Puppet Class: swift::dispersion

Defined in:
manifests/dispersion.pp

Overview

Parameters:

  • auth_url (Any) (defaults to: 'http://127.0.0.1:5000/v2.0/')
  • auth_user (Any) (defaults to: 'dispersion')
  • auth_tenant (Any) (defaults to: 'services')
  • auth_pass (Any) (defaults to: 'dispersion_password')
  • auth_version (Any) (defaults to: '2.0')
  • endpoint_type (Any) (defaults to: 'publicURL')
  • swift_dir (Any) (defaults to: '/etc/swift')
  • coverage (Any) (defaults to: 1)
  • retries (Any) (defaults to: 5)
  • concurrency (Any) (defaults to: 25)
  • dump_json (Any) (defaults to: 'no')


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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'manifests/dispersion.pp', line 60

class swift::dispersion (
  $auth_url      = 'http://127.0.0.1:5000/v2.0/',
  $auth_user     = 'dispersion',
  $auth_tenant   = 'services',
  $auth_pass     = 'dispersion_password',
  $auth_version  = '2.0',
  $endpoint_type = 'publicURL',
  $swift_dir     = '/etc/swift',
  $coverage      = 1,
  $retries       = 5,
  $concurrency   = 25,
  $dump_json     = 'no'
) {

  include swift::params

  Package['swift'] -> Swift_dispersion_config<||>
  Swift_dispersion_config<||> ~> Exec['swift-dispersion-populate']

  file { '/etc/swift/dispersion.conf':
    ensure  => present,
    owner   => 'swift',
    group   => 'swift',
    mode    => '0660',
    require => Package['swift'],
  }

  swift_dispersion_config {
    'dispersion/auth_url':            value => $auth_url;
    'dispersion/auth_user':           value => "${auth_tenant}:${auth_user}";
    'dispersion/auth_key':            value => $auth_pass;
    'dispersion/auth_version':        value => $auth_version;
    'dispersion/endpoint_type':       value => $endpoint_type;
    'dispersion/swift_dir':           value => $swift_dir;
    'dispersion/dispersion_coverage': value => $coverage;
    'dispersion/retries':             value => $retries;
    'dispersion/concurrency':         value => $concurrency;
    'dispersion/dump_json':           value => $dump_json;
  }

  exec { 'swift-dispersion-populate':
    path      => ['/bin', '/usr/bin'],
    subscribe => File['/etc/swift/dispersion.conf'],
    timeout   => 0,
    onlyif    => "swift -A ${auth_url} -U ${auth_tenant}:${auth_user} -K ${auth_pass} -V ${auth_version} stat | grep 'Account: '",
    unless    => "swift -A ${auth_url} -U ${auth_tenant}:${auth_user} -K ${auth_pass} -V ${auth_version} list | grep dispersion_",
    require   => Package['swiftclient'],
  }

}