You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2010/11/03 14:46:25 UTC

[PATCH core 2/3] Fix Mock driver speed in case you have a lot of YAML files

From: Michal Fojtik <mf...@redhat.com>

---
 server/lib/deltacloud/drivers/mock/mock_driver.rb |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/server/lib/deltacloud/drivers/mock/mock_driver.rb b/server/lib/deltacloud/drivers/mock/mock_driver.rb
index 847319b..52c63b7 100644
--- a/server/lib/deltacloud/drivers/mock/mock_driver.rb
+++ b/server/lib/deltacloud/drivers/mock/mock_driver.rb
@@ -130,12 +130,23 @@ class MockDriver < Deltacloud::BaseDriver
   #
   # Instances
   #
+  require 'ruby-prof'
+
+  def instance(credentials, opts={})
+    check_credentials( credentials )
+    instance_filename = File.join(@storage_root, 'instances', "#{opts[:id]}.yml")
+    return nil unless File.exists?(instance_filename)
+    instance = YAML::load_file(instance_filename)
+    instance[:actions] = instance_actions_for( instance[:state] )
+    instance[:id] = File::basename(instance_filename, ".yml")
+    Instance.new(instance)
+  end
 
   def instances(credentials, opts=nil)
     check_credentials( credentials )
     instances = []
     Dir[ "#{@storage_root}/instances/*.yml" ].each do |instance_file|
-      instance = YAML.load( File.read( instance_file ) )
+      instance = YAML::load_file(instance_file)
       if ( instance[:owner_id] == credentials.user )
         instance[:id] = File.basename( instance_file, ".yml" )
         instance[:actions] = instance_actions_for( instance[:state] )
-- 
1.7.2.3


Re: [PATCH core 2/3] Fix Mock driver speed in case you have a lot of YAML files

Posted by Michal Fojtik <mf...@redhat.com>.
On 03/11/10 14:46 +0100, mfojtik@redhat.com wrote:
>From: Michal Fojtik <mf...@redhat.com>
>
>---
> server/lib/deltacloud/drivers/mock/mock_driver.rb |   13 ++++++++++++-
> 1 files changed, 12 insertions(+), 1 deletions(-)
>
>diff --git a/server/lib/deltacloud/drivers/mock/mock_driver.rb b/server/lib/deltacloud/drivers/mock/mock_driver.rb
>index 847319b..52c63b7 100644
>--- a/server/lib/deltacloud/drivers/mock/mock_driver.rb
>+++ b/server/lib/deltacloud/drivers/mock/mock_driver.rb
>@@ -130,12 +130,23 @@ class MockDriver < Deltacloud::BaseDriver
>   #
>   # Instances
>   #
>+  require 'ruby-prof'

^^ Please ignore this line, it will be removed before push ;-)
>
>+
>+  def instance(credentials, opts={})
>+    check_credentials( credentials )
>+    instance_filename = File.join(@storage_root, 'instances', "#{opts[:id]}.yml")
>+    return nil unless File.exists?(instance_filename)
>+    instance = YAML::load_file(instance_filename)
>+    instance[:actions] = instance_actions_for( instance[:state] )
>+    instance[:id] = File::basename(instance_filename, ".yml")
>+    Instance.new(instance)
>+  end
> 
>   def instances(credentials, opts=nil)
>     check_credentials( credentials )
>     instances = []
>     Dir[ "#{@storage_root}/instances/*.yml" ].each do |instance_file|
>-      instance = YAML.load( File.read( instance_file ) )
>+      instance = YAML::load_file(instance_file)
>       if ( instance[:owner_id] == credentials.user )
>         instance[:id] = File.basename( instance_file, ".yml" )
>         instance[:actions] = instance_actions_for( instance[:state] )
>-- 
>1.7.2.3
>

-- 
--------------------------------------------------------
Michal Fojtik, mfojtik@redhat.com
Deltacloud API: http://deltacloud.org
--------------------------------------------------------