-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
-