You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2012/12/10 15:01:00 UTC
[2/2] git commit: CIMI: Moved helper methods out of db.rb to separe
helper file
CIMI: Moved helper methods out of db.rb to separe helper file
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/1a170507
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/1a170507
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/1a170507
Branch: refs/heads/master
Commit: 1a1705079b335b38caadc1556629a1a51e48232d
Parents: 5967a99
Author: Michal Fojtik <mf...@redhat.com>
Authored: Mon Dec 10 11:08:36 2012 +0100
Committer: Michal fojtik <mf...@redhat.com>
Committed: Mon Dec 10 15:00:34 2012 +0100
----------------------------------------------------------------------
server/lib/cimi/helpers.rb | 3 +-
server/lib/cimi/helpers/database_helper.rb | 46 +++++++++++++++++++
server/lib/cimi/server.rb | 2 +
server/lib/db.rb | 56 ++---------------------
4 files changed, 54 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/1a170507/server/lib/cimi/helpers.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/helpers.rb b/server/lib/cimi/helpers.rb
index c2f2461..ea71cbf 100644
--- a/server/lib/cimi/helpers.rb
+++ b/server/lib/cimi/helpers.rb
@@ -26,11 +26,12 @@ end
# Declare namespace for CIMI models
#
-require_relative '../db'
require_relative '../deltacloud/drivers'
require_relative '../deltacloud/models'
require_relative '../deltacloud/helpers/driver_helper'
require_relative '../deltacloud/helpers/auth_helper'
require_relative '../deltacloud/helpers/deltacloud_helper'
require_relative '../deltacloud/helpers/rabbit_helper'
+
require_relative './helpers/cimi_helper'
+require_relative './helpers/database_helper'
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/1a170507/server/lib/cimi/helpers/database_helper.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/helpers/database_helper.rb b/server/lib/cimi/helpers/database_helper.rb
new file mode 100644
index 0000000..d6aa55b
--- /dev/null
+++ b/server/lib/cimi/helpers/database_helper.rb
@@ -0,0 +1,46 @@
+module Deltacloud
+ module Helpers
+
+ module Database
+
+ def test_environment?
+ Deltacloud.test_environment?
+ end
+
+ def store_attributes_for(model, values={})
+ return if test_environment?
+ return if model.nil? or values.empty?
+ current_db.entities.first_or_create(:be_kind => model.to_entity, :be_id => model.id).update(values)
+ end
+
+ def load_attributes_for(model)
+ return {} if test_environment?
+ entity = get_entity(model)
+ entity.nil? ? {} : entity.to_hash
+ end
+
+ def delete_attributes_for(model)
+ return if test_environment?
+ entity = get_entity(model)
+ !entity.nil? && entity.destroy!
+ end
+
+ def get_entity(model)
+ current_db.entities.first(:be_kind => model.to_entity, :be_id => model.id)
+ end
+
+ def current_provider
+ Thread.current[:provider] || ENV['API_PROVIDER'] || 'default'
+ end
+
+ # This method allows to store things into database based on current driver
+ # and provider.
+ #
+ def current_db
+ Provider.first_or_create(:driver => driver_symbol.to_s, :url => current_provider)
+ end
+
+ end
+ end
+
+end
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/1a170507/server/lib/cimi/server.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb
index b1fc751..02891c5 100644
--- a/server/lib/cimi/server.rb
+++ b/server/lib/cimi/server.rb
@@ -21,6 +21,8 @@ require 'sinatra/base'
require 'sinatra/rabbit'
require_relative '../sinatra'
+require_relative '../db'
+
require_relative './helpers'
require_relative './collections'
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/1a170507/server/lib/db.rb
----------------------------------------------------------------------
diff --git a/server/lib/db.rb b/server/lib/db.rb
index ef83462..2a5114d 100644
--- a/server/lib/db.rb
+++ b/server/lib/db.rb
@@ -1,13 +1,7 @@
module Deltacloud
def self.test_environment?
- ENV['RACK_ENV'] == 'test'
- end
-
- module Database
- def test_environment?
- Deltacloud.test_environment?
- end
+ ENV['RACK_ENV'] == 'test' || ENV['DELTACLOUD_NO_DATABASE']
end
unless test_environment?
@@ -17,59 +11,17 @@ module Deltacloud
require_relative './db/machine_template'
end
- DATABASE_LOCATION = ENV['DATABASE_LOCATION'] || "/var/tmp/deltacloud-mock-#{ENV['USER']}/db.sqlite"
+ DATABASE_LOCATION = ENV['DATABASE_LOCATION'] || File.join('/', 'var', 'tmp', "deltacloud-mock-#{ENV['USER']}", 'db.sqlite')
def self.initialize_database
- DataMapper::Logger.new($stdout, :debug)
+ DataMapper::Logger.new($stdout, :debug) if ENV['API_VERBOSE']
dbdir = File::dirname(DATABASE_LOCATION)
- unless File::directory?(dbdir)
- FileUtils::mkdir(dbdir)
- end
+ FileUtils::mkdir(dbdir) unless File::directory?(dbdir)
DataMapper::setup(:default, "sqlite://#{DATABASE_LOCATION}")
DataMapper::finalize
DataMapper::auto_upgrade!
end
- module Helpers
- module Database
- include Deltacloud::Database
-
- def store_attributes_for(model, values={})
- return if test_environment?
- return if model.nil? or values.empty?
- current_db.entities.first_or_create(:be_kind => model.to_entity, :be_id => model.id).update(values)
- end
-
- def load_attributes_for(model)
- return {} if test_environment?
- entity = get_entity(model)
- entity.nil? ? {} : entity.to_hash
- end
-
- def delete_attributes_for(model)
- return if test_environment?
- entity = get_entity(model)
- !entity.nil? && entity.destroy!
- end
-
- def get_entity(model)
- current_db.entities.first(:be_kind => model.to_entity, :be_id => model.id)
- end
-
- def current_provider
- Thread.current[:provider] || ENV['API_PROVIDER'] || 'default'
- end
-
- # This method allows to store things into database based on current driver
- # and provider.
- #
- def current_db
- Provider.first_or_create(:driver => driver_symbol.to_s, :url => current_provider)
- end
-
- end
- end
-
end
Deltacloud::initialize_database unless Deltacloud.test_environment?