# File lib/puppet/rails.rb, line 9
 9:     def self.connect
10:         # This global init does not work for testing, because we remove
11:         # the state dir on every test.
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