summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Shubin <james@shubin.ca>2014-03-11 17:33:11 -0400
committerJames Shubin <james@shubin.ca>2014-03-16 22:39:07 -0400
commit0f11f74eb0d0ba2725486d922841157b94fa06b3 (patch)
tree7654ef682076509e5bf8b2c322bc5465a3dbc432
parent70b41db233f28fcb39011b0bd694ba5211ef4989 (diff)
downloadpuppet-gluster-0f11f74eb0d0ba2725486d922841157b94fa06b3.tar.gz
puppet-gluster-0f11f74eb0d0ba2725486d922841157b94fa06b3.tar.xz
puppet-gluster-0f11f74eb0d0ba2725486d922841157b94fa06b3.zip
Fix small bugs for setgroups.
-rw-r--r--lib/facter/gluster_property.rb4
-rw-r--r--manifests/simple.pp16
-rw-r--r--manifests/volume.pp7
-rw-r--r--manifests/volume/property/group.pp1
-rw-r--r--manifests/volume/property/group/data.pp5
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}/"],
}
}