You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by fv...@redhat.com on 2011/08/18 11:03:42 UTC

[PATCH core] Added check for datacenter in cluster

From: Francesco Vollero <fv...@redhat.com>

Signed-off-by: Francesco Vollero <fv...@redhat.com>
---
 .../lib/deltacloud/drivers/rhevm/rhevm_client.rb   |   10 ++++++++--
 .../lib/deltacloud/drivers/rhevm/rhevm_driver.rb   |    1 +
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
index b4a2a80..fcc25e2 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
@@ -131,8 +131,8 @@ module RHEVM
         [ RHEVM::Cluster::new(self, vm)]
       else
         Client::parse_response(RHEVM::client(@api_entrypoint)["/clusters"].get(headers)).xpath('/clusters/cluster').collect do |vm|
-          RHEVM::Cluster::new(self, vm)
-        end
+          RHEVM::Cluster::new(self, vm) if has_datacenter?(vm)
+        end.compact
       end
     end
 
@@ -196,6 +196,11 @@ module RHEVM
       Nokogiri::XML(response)
     end
 
+    def has_datacenter?(vm)
+      value=!(vm/'data_center').empty?
+      puts "has_datacenter value: #{value}"
+      value
+    end
   end
 
   class BaseObject
@@ -300,6 +305,7 @@ module RHEVM
       @description = ((xml/'description').first.text rescue nil)
       @datacenter = Link::new(@client, (xml/'data_center').first[:id], (xml/'data_center').first[:href])
     end
+
   end
 
   class DataCenter < BaseObject
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index d0d528e..5190598 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -78,6 +78,7 @@ class RHEVMDriver < Deltacloud::BaseDriver
     realm_arr = []
     safely do
       clusters = client.clusters
+      puts clusters.size
       clusters.each do |r|
         d = client.datacenters(:id => r.datacenter.id).first
         realm_arr << convert_realm(r, d)
-- 
1.7.4.4


Re: [PATCH core] Added check for datacenter in cluster

Posted by Michal Fojtik <mf...@redhat.com>.
On Aug 18, 2011, at 11:03 AM, fvollero@redhat.com wrote:

ACK. With small inline doubts :)

  -- Michal

> From: Francesco Vollero <fv...@redhat.com>
> 
> Signed-off-by: Francesco Vollero <fv...@redhat.com>
> ---
> .../lib/deltacloud/drivers/rhevm/rhevm_client.rb   |   10 ++++++++--
> .../lib/deltacloud/drivers/rhevm/rhevm_driver.rb   |    1 +
> 2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
> index b4a2a80..fcc25e2 100644
> --- a/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
> +++ b/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
> @@ -131,8 +131,8 @@ module RHEVM
>         [ RHEVM::Cluster::new(self, vm)]
>       else
>         Client::parse_response(RHEVM::client(@api_entrypoint)["/clusters"].get(headers)).xpath('/clusters/cluster').collect do |vm|
> -          RHEVM::Cluster::new(self, vm)
> -        end
> +          RHEVM::Cluster::new(self, vm) if has_datacenter?(vm)
> +        end.compact
>       end
>     end
> 
> @@ -196,6 +196,11 @@ module RHEVM
>       Nokogiri::XML(response)
>     end
> 
> +    def has_datacenter?(vm)
> +      value=!(vm/'data_center').empty?
> +      puts "has_datacenter value: #{value}"
> +      value
> +    end
>   end
> 
>   class BaseObject
> @@ -300,6 +305,7 @@ module RHEVM
>       @description = ((xml/'description').first.text rescue nil)
>       @datacenter = Link::new(@client, (xml/'data_center').first[:id], (xml/'data_center').first[:href])
>     end
> +

This new line is not necessary here.

>   end
> 
>   class DataCenter < BaseObject
> diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
> index d0d528e..5190598 100644
> --- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
> +++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
> @@ -78,6 +78,7 @@ class RHEVMDriver < Deltacloud::BaseDriver
>     realm_arr = []
>     safely do
>       clusters = client.clusters
> +      puts clusters.size

Forgot to remove some debugging stuff?

>       clusters.each do |r|
>         d = client.datacenters(:id => r.datacenter.id).first
>         realm_arr << convert_realm(r, d)
> -- 
> 1.7.4.4
> 

 -- Michal

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