[Ovirt-devel] [PATCH server] Simplified active_record_env to make less error-prone.
Jason Guiditta
jguiditt at redhat.com
Wed Nov 5 14:03:21 UTC 2008
Too many requires to keep track of, this should make it easier until we rewrite it again.
Signed-off-by: Jason Guiditta <jguiditt at redhat.com>
---
src/dutils/active_record_env.rb | 80 ++++---------------------------
src/test/unit/active_record_env_test.rb | 31 ++++++++++++
2 files changed, 41 insertions(+), 70 deletions(-)
create mode 100644 src/test/unit/active_record_env_test.rb
diff --git a/src/dutils/active_record_env.rb b/src/dutils/active_record_env.rb
index afbf8f2..ad5e762 100644
--- a/src/dutils/active_record_env.rb
+++ b/src/dutils/active_record_env.rb
@@ -19,81 +19,21 @@
# also available at http://www.gnu.org/copyleft/gpl.html.
$: << File.join(File.dirname(__FILE__), "../app")
-$: << File.join(File.dirname(__FILE__), "../vendor/plugins/betternestedset/lib")
+#$: << File.join(File.dirname(__FILE__), "../vendor/plugins/betternestedset/lib")
require 'rubygems'
-gem 'activeldap'
+$LOAD_PATH << File.expand_path(File.dirname(__FILE__))
-require 'active_ldap'
-require 'active_support'
-require 'active_record'
-require 'action_pack'
-require 'action_controller'
-require 'action_view'
-require 'erb'
+ENV['RAILS_ENV'] = 'production' || ENV['RAILS_ENV']
-OVIRT_DIR = "/usr/share/ovirt-server"
+require File.dirname(__FILE__) + '/../config/boot'
+require "#{RAILS_ROOT}/config/environment"
-require "#{OVIRT_DIR}/vendor/plugins/betternestedset/init.rb"
-require "#{OVIRT_DIR}/vendor/plugins/acts_as_xapian/lib/acts_as_xapian"
-
-def database_connect
- yml = YAML::load(ERB.new(IO.read("#{OVIRT_DIR}/config/database.yml")).result)
- rails_env = ENV['RAILS_ENV']
- rails_env = 'production' unless rails_env
- dbconfig = yml[rails_env]
- ActiveRecord::Base.establish_connection(
- :adapter => dbconfig['adapter'],
- :host => dbconfig['host'],
- :username => dbconfig['username'],
- :password => dbconfig['password'],
- :database => dbconfig['database']
- )
+def database_connect(environment)
+ conf = YAML::load(File.open(File.dirname(__FILE__) + '/../config/database.yml'))
+ ActiveRecord::Base.establish_connection(conf[environment])
end
-database_connect
-
-require 'models/account.rb'
-require 'models/pool.rb'
-require 'models/permission.rb'
-require 'models/quota.rb'
-
-require 'models/hardware_pool.rb'
-require 'models/directory_pool.rb'
-require 'models/smart_pool.rb'
-require 'models/host.rb'
-require 'models/cpu.rb'
-require 'models/boot_type.rb'
-require 'models/bonding.rb'
-require 'models/bonding_type.rb'
-require 'models/nic.rb'
-
-require 'models/vm_resource_pool.rb'
-require 'models/vm.rb'
-
-require 'models/task'
-require 'models/host_task.rb'
-require 'models/storage_task.rb'
-require 'models/vm_task.rb'
-
-require 'models/storage_pool.rb'
-require 'models/iscsi_storage_pool.rb'
-require 'models/nfs_storage_pool.rb'
-require 'models/lvm_storage_pool.rb'
-
-require 'models/storage_volume.rb'
-require 'models/iscsi_storage_volume.rb'
-require 'models/nfs_storage_volume.rb'
-require 'models/lvm_storage_volume.rb'
-require 'models/smart_pool.rb'
-require 'models/smart_pool_tag.rb'
-
-require 'models/ip_address.rb'
-require 'models/ip_v4_address.rb'
-require 'models/ip_v6_address.rb'
-require 'models/network.rb'
-require 'models/physical_network.rb'
-require 'models/usage.rb'
-require 'models/vlan.rb'
-
+# Open ActiveRecord connection
+database_connect(ENV['RAILS_ENV'])
\ No newline at end of file
diff --git a/src/test/unit/active_record_env_test.rb b/src/test/unit/active_record_env_test.rb
new file mode 100644
index 0000000..e5fe064
--- /dev/null
+++ b/src/test/unit/active_record_env_test.rb
@@ -0,0 +1,31 @@
+#
+# Copyright (C) 2008 Red Hat, Inc.
+# Written by Jason Guiditta <jguiditt at redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA. A copy of the GNU General Public License is
+# also available at http://www.gnu.org/copyleft/gpl.html.
+
+require File.dirname(__FILE__) + '/../test_helper'
+require File.dirname(__FILE__) + '/../../dutils/active_record_env'
+
+class ActiveRecordEnvTest < Test::Unit::TestCase
+ fixtures :pools, :storage_pools, :hosts, :cpus, :vms, :tasks
+
+ def test_can_find_hosts
+ database_connect(ENV["RAILS_ENV"])
+ hosts = Host.find(:all, :limit => 2)
+ assert_not_nil hosts, 'you have no hosts list!'
+ end
+end
--
1.5.6.5
More information about the ovirt-devel
mailing list