diff options
| author | James Shubin <james@shubin.ca> | 2014-12-16 13:01:49 -0500 |
|---|---|---|
| committer | James Shubin <james@shubin.ca> | 2014-12-16 13:24:27 -0500 |
| commit | 43c60d2ddd6f57d2117585dc149de6653bdabd4b (patch) | |
| tree | 92bc51611414500970254ad88d3e5fb2fe0f7a86 | |
| parent | a5a2a412c64a9902954b25c9b9f4c1ac9be260fb (diff) | |
Replace the hard-coded gluster operating version table with hiera data.
| -rw-r--r-- | data/hiera.yaml | 2 | ||||
| -rw-r--r-- | data/versions/3.4.yaml | 4 | ||||
| -rw-r--r-- | data/versions/3.5.yaml | 4 | ||||
| -rw-r--r-- | data/versions/3.5/3.5.0.yaml | 4 | ||||
| -rw-r--r-- | data/versions/3.6.yaml | 4 | ||||
| -rw-r--r-- | lib/facter/gluster_version.rb | 15 | ||||
| -rw-r--r-- | manifests/host.pp | 23 |
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' { |
