class Puppet::Util::Ldap::Connection
Attributes
connection[R]
host[RW]
password[RW]
port[RW]
reset[RW]
ssl[RW]
user[RW]
Public Class Methods
instance()
click to toggle source
Return a default connection, using our default settings.
# File lib/puppet/util/ldap/connection.rb 9 def self.instance 10 ssl = if Puppet[:ldaptls] 11 :tls 12 elsif Puppet[:ldapssl] 13 true 14 else 15 false 16 end 17 18 options = {} 19 options[:ssl] = ssl 20 user = Puppet.settings[:ldapuser] 21 if user && user != "" 22 options[:user] = user 23 pass = Puppet.settings[:ldappassword] 24 if pass && pass != "" 25 options[:password] = pass 26 end 27 end 28 29 new(Puppet[:ldapserver], Puppet[:ldapport], options) 30 end
new(host, port, user: nil, password: nil, reset: nil, ssl: nil)
click to toggle source
# File lib/puppet/util/ldap/connection.rb 36 def initialize(host, port, user: nil, password: nil, reset: nil, ssl: nil) 37 raise Puppet::Error, _("Could not set up LDAP Connection: Missing ruby/ldap libraries") unless Puppet.features.ldap? 38 39 @host = host 40 @port = port 41 @user = user 42 @password = password 43 @reset = reset 44 @ssl = ssl 45 end
Public Instance Methods
close()
click to toggle source
# File lib/puppet/util/ldap/connection.rb 32 def close 33 connection.unbind if connection.bound? 34 end
name()
click to toggle source
Create a per-connection unique name.
# File lib/puppet/util/ldap/connection.rb 48 def name 49 [host, port, user, password, ssl].collect { |p| p.to_s }.join("/") 50 end
reset?()
click to toggle source
Should we reset the connection?
# File lib/puppet/util/ldap/connection.rb 53 def reset? 54 reset 55 end
start()
click to toggle source
Start our ldap connection.
# File lib/puppet/util/ldap/connection.rb 58 def start 59 case ssl 60 when :tls 61 @connection = LDAP::SSLConn.new(host, port, true) 62 when true 63 @connection = LDAP::SSLConn.new(host, port) 64 else 65 @connection = LDAP::Conn.new(host, port) 66 end 67 @connection.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3) 68 @connection.set_option(LDAP::LDAP_OPT_REFERRALS, LDAP::LDAP_OPT_ON) 69 @connection.simple_bind(user, password) 70 rescue => detail 71 raise Puppet::Error, _("Could not connect to LDAP: %{detail}") % { detail: detail }, detail.backtrace 72 end