9: def self.connect
10:
11:
12: return if ActiveRecord::Base.connected?
13:
14: Puppet.settings.use(:main, :rails, :puppetmasterd)
15:
16: ActiveRecord::Base.logger = Logger.new(Puppet[:railslog])
17: begin
18: loglevel = Logger.const_get(Puppet[:rails_loglevel].upcase)
19: ActiveRecord::Base.logger.level = loglevel
20: rescue => detail
21: Puppet.warning "'%s' is not a valid Rails log level; using debug" % Puppet[:rails_loglevel]
22: ActiveRecord::Base.logger.level = Logger::DEBUG
23: end
24:
25: ActiveRecord::Base.verify_active_connections!
26:
27: begin
28: ActiveRecord::Base.establish_connection(database_arguments())
29: rescue => detail
30: if Puppet[:trace]
31: puts detail.backtrace
32: end
33: raise Puppet::Error, "Could not connect to database: %s" % detail
34: end
35: end