summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Shubin <james@shubin.ca>2014-12-16 13:01:49 -0500
committerJames Shubin <james@shubin.ca>2014-12-16 13:24:27 -0500
commit43c60d2ddd6f57d2117585dc149de6653bdabd4b (patch)
tree92bc51611414500970254ad88d3e5fb2fe0f7a86
parenta5a2a412c64a9902954b25c9b9f4c1ac9be260fb (diff)
Replace the hard-coded gluster operating version table with hiera data.
-rw-r--r--data/hiera.yaml2
-rw-r--r--data/versions/3.4.yaml4
-rw-r--r--data/versions/3.5.yaml4
-rw-r--r--data/versions/3.5/3.5.0.yaml4
-rw-r--r--data/versions/3.6.yaml4
-rw-r--r--lib/facter/gluster_version.rb15
-rw-r--r--manifests/host.pp23
7 files changed, 36 insertions, 20 deletions
diff --git a/data/hiera.yaml b/data/hiera.yaml
index 52b83b5..a7cbb93 100644
--- a/data/hiera.yaml
+++ b/data/hiera.yaml
@@ -1,6 +1,8 @@
# gluster/data/hiera.yaml
---
:hierarchy:
+- versions/%{::gluster_major_version}/%{::gluster_version}
+- versions/%{::gluster_major_version}
- tree/%{::osfamily}/%{::operatingsystem}/%{::operatingsystemrelease}
- tree/%{::osfamily}/%{::operatingsystem}
- tree/%{::osfamily}
diff --git a/data/versions/3.4.yaml b/data/versions/3.4.yaml
new file mode 100644
index 0000000..9ec7c41
--- /dev/null
+++ b/data/versions/3.4.yaml
@@ -0,0 +1,4 @@
+# gluster/data/versions/3.4.yaml
+---
+gluster::versions::operating_version: '2'
+# vim: ts=8
diff --git a/data/versions/3.5.yaml b/data/versions/3.5.yaml
new file mode 100644
index 0000000..097376b
--- /dev/null
+++ b/data/versions/3.5.yaml
@@ -0,0 +1,4 @@
+# gluster/data/versions/3.5.yaml
+---
+gluster::versions::operating_version: '30501' # v3.5.1
+# vim: ts=8
diff --git a/data/versions/3.5/3.5.0.yaml b/data/versions/3.5/3.5.0.yaml
new file mode 100644
index 0000000..634c97a
--- /dev/null
+++ b/data/versions/3.5/3.5.0.yaml
@@ -0,0 +1,4 @@
+# gluster/data/versions/3.5.0.yaml
+---
+gluster::versions::operating_version: '3' # v3.5.0
+# vim: ts=8
diff --git a/data/versions/3.6.yaml b/data/versions/3.6.yaml
new file mode 100644
index 0000000..71a88bd
--- /dev/null
+++ b/data/versions/3.6.yaml
@@ -0,0 +1,4 @@
+# gluster/data/versions/3.6.yaml
+---
+gluster::versions::operating_version: '30600' # v3.6.0
+# vim: ts=8
diff --git a/lib/facter/gluster_version.rb b/lib/facter/gluster_version.rb
index a3df7bc..508aa79 100644
--- a/lib/facter/gluster_version.rb
+++ b/lib/facter/gluster_version.rb
@@ -29,10 +29,23 @@ cut = `which cut 2> /dev/null`.chomp
# create the fact if the gluster executable exists
if File.exist?(gluster)
+ cmd = gluster+' --version | /usr/bin/head -1 | '+cut+' -d " " -f 2'
+ version = `#{cmd}`.chomp
+ match = /^(\d+)\.(\d+)\.(\d+)$/.match("#{version}")
+ if not match.nil?
+ major_version = "#{match[1]}.#{match[2]}"
+ Facter.add('gluster_major_version') do
+ #confine :operatingsystem => %w{CentOS, RedHat, Fedora}
+ setcode {
+ major_version
+ }
+ end
+ end
+
Facter.add('gluster_version') do
#confine :operatingsystem => %w{CentOS, RedHat, Fedora}
setcode {
- Facter::Util::Resolution.exec(gluster+' --version | /usr/bin/head -1 | '+cut+' -d " " -f 2').chomp
+ version
}
end
end
diff --git a/manifests/host.pp b/manifests/host.pp
index 8c39e57..47b6e7e 100644
--- a/manifests/host.pp
+++ b/manifests/host.pp
@@ -97,25 +97,10 @@ define gluster::host(
'\1.\2' # print int.int
)
- # TODO: add additional values to this table...
- # TODO: this should use "data-in-modules" instead...
- # READ: https://www.gluster.org/community/documentation/index.php/OperatingVersions
- $operating_version = "${gluster_version}" ? {
- '' => '', # gluster not yet installed...
- # specific version matches go here...
- '3.4.0' => '2',
- '3.5.0' => '3',
- '3.5.1' => '30501',
- '3.6.0' => '30600',
- default => "${gluster_main_version}" ? {
- # loose version matches go here...
- #'3.3' => '1', # blank...
- '3.4' => '2',
- '3.5' => '30501', # 3.5.1
- '3.6' => '30600', # 3.6.0
- default => '-1', # unknown...
- },
- }
+ # TODO: add additional values to the yaml hiera data...
+ include gluster::versions
+ # if empty string, gluster is not yet installed...
+ $operating_version = "${::gluster::versions::operating_versions}"
# this catches unknown gluster versions to add to table
if "${operating_version}" == '-1' {