summaryrefslogtreecommitdiffstats
path: root/lib/puppet/rails.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/rails.rb')
-rw-r--r--lib/puppet/rails.rb44
1 files changed, 23 insertions, 21 deletions
diff --git a/lib/puppet/rails.rb b/lib/puppet/rails.rb
index e9eeeaed5..2a5b31408 100644
--- a/lib/puppet/rails.rb
+++ b/lib/puppet/rails.rb
@@ -43,32 +43,34 @@ module Puppet::Rails
}
)
- def self.setupdb
-
- end
-
+ # Set up our database connection. It'd be nice to have a "use" system
+ # that could make callbacks.
def self.init
- Puppet.config.use(:puppet)
- Puppet.config.use(:puppetmaster)
+ unless defined? @inited and @inited
+ Puppet.config.use(:puppet)
+ Puppet.config.use(:puppetmaster)
- ActiveRecord::Base.logger = Logger.new(Puppet[:railslog])
- args = {:adapter => Puppet[:dbadapter]}
+ ActiveRecord::Base.logger = Logger.new(Puppet[:railslog])
+ args = {:adapter => Puppet[:dbadapter]}
- case Puppet[:dbadapter]
- when "sqlite3":
- args[:database] = Puppet[:dblocation]
- when "mysql":
- args[:host] = Puppet[:dbserver]
- args[:username] = Puppet[:dbuser]
- args[:password] = Puppet[:dbpassword]
- args[:database] = Puppet[:dbname]
- end
+ case Puppet[:dbadapter]
+ when "sqlite3":
+ args[:database] = Puppet[:dblocation]
+ when "mysql":
+ args[:host] = Puppet[:dbserver]
+ args[:username] = Puppet[:dbuser]
+ args[:password] = Puppet[:dbpassword]
+ args[:database] = Puppet[:dbname]
+ end
+
+ ActiveRecord::Base.establish_connection(args)
- ActiveRecord::Base.establish_connection(args)
+ unless FileTest.exists?(args[:database])
+ require 'puppet/rails/database'
+ Puppet::Rails::Database.up
+ end
- unless FileTest.exists?(args[:database])
- require 'puppet/rails/database'
- Puppet::Rails::Database.up
+ @inited = true
end
end
end