From: David Lutterkort <lut...@redhat.com>

Server startup failed if /var/tmp/deltacloud-mock-$USER failed because the
DB initialization code did not create that directory. Creating that
directory fooled the logic in the mock driver that determined if the stock
data needed to be copied there.
---
 server/lib/db.rb                                  |    4 ++++
 server/lib/deltacloud/drivers/mock/mock_client.rb |    4 +---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/server/lib/db.rb b/server/lib/db.rb
index ac6d913..e6fe761 100644
--- a/server/lib/db.rb
+++ b/server/lib/db.rb
@@ -21,6 +21,10 @@ module Deltacloud
 
   def self.initialize_database
     DataMapper::Logger.new($stdout, :debug)
+    dbdir = File::dirname(DATABASE_LOCATION)
+    unless File::directory?(dbdir)
+      FileUtils::mkdir(dbdir)
+    end
     DataMapper::setup(:default, "sqlite://#{DATABASE_LOCATION}")
     DataMapper::finalize
     DataMapper::auto_upgrade!
diff --git a/server/lib/deltacloud/drivers/mock/mock_client.rb 
b/server/lib/deltacloud/drivers/mock/mock_client.rb
index c6dd464..919ee27 100644
--- a/server/lib/deltacloud/drivers/mock/mock_client.rb
+++ b/server/lib/deltacloud/drivers/mock/mock_client.rb
@@ -26,9 +26,7 @@ module Deltacloud::Drivers::Mock
       @storage_root = storage_root
       @collections = []
 
-      if ! File::directory?(@storage_root)
-        FileUtils::rm_rf(@storage_root)
-        FileUtils::mkdir_p(@storage_root, :mode => 0750)
+      if ! File::directory?(File::join(@storage_root, "images"))
         data = Dir[File::join(File::dirname(__FILE__), "data", "*")]
         FileUtils::cp_r(data, @storage_root)
       end
-- 
1.7.7.6

Reply via email to