diff options
| author | Micah <micah@leap.se> | 2016-07-12 16:45:54 -0400 | 
|---|---|---|
| committer | Micah <micah@leap.se> | 2016-07-12 16:45:54 -0400 | 
| commit | f2019755fd724fb1020cb2d97cdf82b751450ebc (patch) | |
| tree | 1c2bd3a4f03b84795ea0ce0b7ccc0f28a2ecbadd /puppet/modules/couchdb/lib/facter | |
| parent | 81210aea5cf136194598e7a399ce307ecbe088f1 (diff) | |
git subrepo clone https://leap.se/git/puppet_couchdb puppet/modules/couchdb
subrepo:
  subdir:   "puppet/modules/couchdb"
  merged:   "76ff149"
upstream:
  origin:   "https://leap.se/git/puppet_couchdb"
  branch:   "master"
  commit:   "76ff149"
git-subrepo:
  version:  "0.3.0"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "1e79595"
Change-Id: I9ccb1a9dfdaa083814ea395132c42a778052f59b
Diffstat (limited to 'puppet/modules/couchdb/lib/facter')
| -rw-r--r-- | puppet/modules/couchdb/lib/facter/couchdb_pwhash_alg.rb | 43 | ||||
| -rw-r--r-- | puppet/modules/couchdb/lib/facter/couchdb_version.rb | 34 | 
2 files changed, 77 insertions, 0 deletions
| diff --git a/puppet/modules/couchdb/lib/facter/couchdb_pwhash_alg.rb b/puppet/modules/couchdb/lib/facter/couchdb_pwhash_alg.rb new file mode 100644 index 00000000..60ae701a --- /dev/null +++ b/puppet/modules/couchdb/lib/facter/couchdb_pwhash_alg.rb @@ -0,0 +1,43 @@ +require 'facter' + +def version_parts ( version ) +  # gives back a hash containing major, minor and patch numbers +  # of a give version string + +  parts = Hash.new +  first, *rest = version.split(".") +  parts["major"] = first +  parts["minor"] = rest[0] +  parts["patch"] = rest[1] +  return parts +end + +def couchdb_pwhash_alg +  # couchdb uses sha1 as pw hash algorithm until v. 1.2, +  # but pbkdf2 from v.1.3 on. +  # see http://docs.couchdb.org/en/1.4.x/configuring.html for +  # details + +  couchdb_version = Facter.value(:couchdb_version) +  version = version_parts(couchdb_version) +  major = version["major"].to_i +  alg = case major +    when 0 then alg = 'n/a' +    when 1 then +      minor = version['minor'].to_i +      if minor < 3 +        alg = 'sha1' +      else +        alg = 'pbkdf2' +      end +  else +    alg = 'pbkdf2' +  end +  return alg +end + +Facter.add(:couchdb_pwhash_alg) do +  setcode do +    couchdb_pwhash_alg +  end +end diff --git a/puppet/modules/couchdb/lib/facter/couchdb_version.rb b/puppet/modules/couchdb/lib/facter/couchdb_version.rb new file mode 100644 index 00000000..3a721169 --- /dev/null +++ b/puppet/modules/couchdb/lib/facter/couchdb_version.rb @@ -0,0 +1,34 @@ +require 'facter' + +def deb_installed_version ( name ) +  # returns an empty string if package is not installed, +  # otherwise the version + +  version = `apt-cache policy #{name} | grep Installed 2>&1` +  version.slice! "  Installed: " +  version.slice! "(none)" +  return version.strip.chomp +end + +def couchdb_version +  bigcouch = deb_installed_version("bigcouch") +  if bigcouch.empty? +    couchdb = deb_installed_version("couchdb") +    if couchdb.empty? +      version = 'n/a' +    else +      version =  couchdb +    end +  else +    # bigcouch is currently only available in one version (0.4.2), +    # which includes couchdb 1.1.1 +    version = '1.1.1' +  end +  return version +end + +Facter.add(:couchdb_version) do +  setcode do +    couchdb_version +  end +end | 
