]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blobdiff - modules/base_installation/lib/facter/ldapvar.rb
Enhance install script, and add ip6 address
[perso/Immae/Projets/Puppet.git] / modules / base_installation / lib / facter / ldapvar.rb
index ff8e898271c53352b33c763b67bc52831e5ee26a..3ee6623080709c013f1281ab3f8c39a52eac21da 100644 (file)
@@ -1,46 +1,49 @@
-require 'ldap'
-require 'puppet/util/ldap/connection'
-
-Facter.add("ldapvar") do
-  setcode do
-    if Puppet[:node_terminus].to_sym != :ldap
-      data = []
-    else
-      begin
-        conn = Puppet::Util::Ldap::Connection.instance
-        conn.start
-        connection = conn.connection
-      rescue ::LDAP::ResultError => e
-        raise Puppet::ParseError, ("ldapquery(): LDAP ResultError - #{e.message}")
-      end
-
-      host = Facter.value('ec2_metadata')["hostname"]
-      base = Puppet[:ldapbase]
-      scope  = ::LDAP::LDAP_SCOPE_SUBTREE
-      filter = "(objectclass=*)"
-
-      data = {
-        :self  => {},
-        :other => [],
-      }
-
-      connection.search(base, scope, filter) do |entry|
-        data_ = entry.to_hash
-        data_['vars'] = (data_[Puppet[:ldapstackedattrs]] || [])
-          .map { |var| var.split("=", 2) }
-          .group_by { |(key, value)| key }
-          .map { |key, value| [key, value.map(&:last)] }
-          .to_h
-
-        data[:other] << data_
+begin
+  require 'ldap'
+  require 'puppet/util/ldap/connection'
+
+  Facter.add("ldapvar") do
+    setcode do
+      if Puppet[:node_terminus].to_sym != :ldap
+        data = []
+      else
+        begin
+          conn = Puppet::Util::Ldap::Connection.instance
+          conn.start
+          connection = conn.connection
+        rescue ::LDAP::ResultError => e
+          raise Puppet::ParseError, ("ldapquery(): LDAP ResultError - #{e.message}")
+        end
 
-        if data_["cn"].any? { |cn| cn == host }
-          data[:self] = data_
+        host = Facter.value('ec2_metadata')["hostname"]
+        base = Puppet[:ldapbase]
+        scope  = ::LDAP::LDAP_SCOPE_SUBTREE
+        filter = "(objectclass=*)"
+
+        data = {
+          :self  => {},
+          :other => [],
+        }
+
+        connection.search(base, scope, filter) do |entry|
+          data_ = entry.to_hash
+          data_['vars'] = (data_[Puppet[:ldapstackedattrs]] || [])
+            .map { |var| var.split("=", 2) }
+            .group_by { |(key, value)| key }
+            .map { |key, value| [key, value.map(&:last)] }
+            .to_h
+
+          data[:other] << data_
+
+          if data_["cn"].any? { |cn| cn == host }
+            data[:self] = data_
+          end
         end
-      end
 
-      data
+        data
+      end
     end
   end
+rescue LoadError
+  # No facts
 end
-