diff options
-rw-r--r-- | lib/facter/gluster_property.rb | 4 | ||||
-rw-r--r-- | manifests/simple.pp | 16 | ||||
-rw-r--r-- | manifests/volume.pp | 7 | ||||
-rw-r--r-- | manifests/volume/property/group.pp | 1 | ||||
-rw-r--r-- | manifests/volume/property/group/data.pp | 5 |
5 files changed, 20 insertions, 13 deletions
diff --git a/lib/facter/gluster_property.rb b/lib/facter/gluster_property.rb index 17a889d..d38614e 100644 --- a/lib/facter/gluster_property.rb +++ b/lib/facter/gluster_property.rb @@ -46,7 +46,7 @@ found = {} [valid_setgroupdir, groupdir].each do |g| if not(g.nil?) and File.directory?(g) - Dir.glob(g+'*.*').each do |f| + Dir.glob(g+'*').each do |f| b = File.basename(f) # a later entry overrides an earlier one... @@ -56,7 +56,7 @@ found = {} groups = File.open(f, 'r').read # read into str groups.each_line do |line| - split = line.split('=') # split key=value pairs + split = line.strip.split('=') # split key=value pairs if split.length == 2 key = split[0] value = split[1] diff --git a/manifests/simple.pp b/manifests/simple.pp index 7a48790..fc4da96 100644 --- a/manifests/simple.pp +++ b/manifests/simple.pp @@ -50,6 +50,7 @@ class gluster::simple( $shorewall = true ) { include gluster::vardir + include gluster::volume::property::group::data # make the groups early #$vardir = $::gluster::vardir::module_vardir # with trailing slash $vardir = regsubst($::gluster::vardir::module_vardir, '\/$', '') @@ -71,6 +72,11 @@ class gluster::simple( $valid_path = sprintf("%s/", regsubst($chosen_path, '\/$', '')) + $valid_volumes = type($volume) ? { # always an array of volumes... + 'array' => $volume, + default => ["${volume}"], + } + validate_hash($brick_param_defaults) # in someone explicitly added this value, then don't overwrite it... if has_key($brick_param_defaults, 'areyousure') { @@ -149,7 +155,7 @@ class gluster::simple( #} Gluster::Brick <<||>> - gluster::volume { $volume: + gluster::volume { $valid_volumes: replica => $replica, stripe => $stripe, # NOTE: with this method you do not choose the order of course! @@ -160,10 +166,16 @@ class gluster::simple( # the only semi-safe way is the new built in automatic collect: bricks => true, # automatic brick collection... ping => $ping, - setgroup => $setgroup, start => true, } Gluster::Volume <<||>> + + # set a group of volume properties + if "${setgroup}" != '' { + $setgroup_yaml = inline_template("<%= @valid_volumes.inject(Hash.new) { |h,i| {i+'#'+@setgroup => {}}.merge(h) }.to_yaml %>") + $setgroup_hash = parseyaml($setgroup_yaml) + create_resources('gluster::volume::property::group', $setgroup_hash) + } } # vim: ts=8 diff --git a/manifests/volume.pp b/manifests/volume.pp index f946a54..645c090 100644 --- a/manifests/volume.pp +++ b/manifests/volume.pp @@ -24,7 +24,6 @@ define gluster::volume( $vip = '', # vip of the cluster (optional but recommended) $ping = true, # do we want to include fping checks ? $settle = true, # do we want to run settle checks ? - $setgroup = '', # pick a volume property group to set, eg: virt $start = undef # start volume ? true, false (stop it) or undef ) { include gluster::xml @@ -412,12 +411,6 @@ define gluster::volume( alias => "gluster-volume-fsm-watch-${name}", } } - - # set a group of volume properties - if "${setgroup}" != '' { - gluster::volume::property::group { "${name}#${setgroup}": - } - } } # vim: ts=8 diff --git a/manifests/volume/property/group.pp b/manifests/volume/property/group.pp index 97c03b7..02b5fcb 100644 --- a/manifests/volume/property/group.pp +++ b/manifests/volume/property/group.pp @@ -26,7 +26,6 @@ define gluster::volume::property::group( ) { include gluster::xml include gluster::vardir - include gluster::volume::property include gluster::volume::property::group::data #$vardir = $::gluster::vardir::module_vardir # with trailing slash diff --git a/manifests/volume/property/group/data.pp b/manifests/volume/property/group/data.pp index c731266..b79c4dd 100644 --- a/manifests/volume/property/group/data.pp +++ b/manifests/volume/property/group/data.pp @@ -28,11 +28,14 @@ class gluster::volume::property::group::data() { file { "${vardir}/groups/": source => 'puppet:///modules/gluster/groups/', + ensure => directory, + recurse => true, + purge => true, + force => true, owner => root, group => nobody, mode => 644, # u=rwx backup => false, # don't backup to filebucket - ensure => present, require => File["${vardir}/"], } } |