You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2013/02/28 15:17:14 UTC

[1/15] RHEV-M: avoid failure of GET instance details

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/d96847ba/server/tests/drivers/rhevm/instance_test.rb
----------------------------------------------------------------------
diff --git a/server/tests/drivers/rhevm/instance_test.rb b/server/tests/drivers/rhevm/instance_test.rb
index 867fb76..382cd4a 100644
--- a/server/tests/drivers/rhevm/instance_test.rb
+++ b/server/tests/drivers/rhevm/instance_test.rb
@@ -3,10 +3,16 @@ require 'require_relative' if RUBY_VERSION < '1.9'
 
 require_relative 'common.rb'
 
+TST_REALM    = 'b91b0346-4ba3-11e2-a3ac-0050568c6b2d'
+TST_INSTANCE = '28c7428b-834a-46b6-8d21-bf350e00e3d7'
+TST_IMAGE    = '3cd2891a-9a0f-44c8-8dec-6280efa278e3'
+
 describe 'RhevmDriver Instances' do
 
   before do
-    @driver = Deltacloud::new(:rhevm, credentials)
+    # Read credentials from ${HOME/.deltacloud/config
+    @driver = Deltacloud::Test::config.driver(:rhevm,
+      provider="https://10.16.120.71/api;b9bb11c2-f397-4f41-a57b-7ac15a894779")
     VCR.insert_cassette __name__
   end
 
@@ -26,34 +32,31 @@ describe 'RhevmDriver Instances' do
   end
 
   it 'must allow to filter instances' do
-    @driver.instances(:id =>'a949192d-55eb-465c-9ef1-d59581a562a3').wont_be_empty
-    @driver.instances(:id =>'a949192d-55eb-465c-9ef1-d59581a562a3').must_be_kind_of Array
-    @driver.instances(:id =>'a949192d-55eb-465c-9ef1-d59581a562a3').size.must_equal 1
-    @driver.instances(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').first.id.must_equal 'a949192d-55eb-465c-9ef1-d59581a562a3'
-    @driver.instances(:owner_id => 'admin@internal').wont_be_empty
-    @driver.instances(:owner_id => 'admin@internal').each do |inst|
-      inst.owner_id.must_equal 'admin@internal'
-    end
+    @driver.instances(:id =>TST_INSTANCE).wont_be_empty
+    @driver.instances(:id =>TST_INSTANCE).must_be_kind_of Array
+    @driver.instances(:id =>TST_INSTANCE).size.must_equal 1
+    @driver.instances(:id => TST_INSTANCE).first.id.must_equal TST_INSTANCE
     @driver.instances(:id => 'i-00000000').must_be_empty
     @driver.instances(:id => 'unknown').must_be_empty
   end
 
   it 'must allow to retrieve single instance' do
-    @driver.instance(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').wont_be_nil
-    @driver.instance(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').must_be_kind_of Instance
-    @driver.instance(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').id.must_equal 'a949192d-55eb-465c-9ef1-d59581a562a3'
+    @driver.instance(:id => TST_INSTANCE).wont_be_nil
+    @driver.instance(:id => TST_INSTANCE).wont_be_nil
+    @driver.instance(:id => TST_INSTANCE).must_be_kind_of Instance
+    @driver.instance(:id => TST_INSTANCE).id.must_equal TST_INSTANCE
     @driver.instance(:id => 'i-00000000').must_be_nil
     @driver.instance(:id => 'unknown').must_be_nil
   end
 
   it 'must allow to create a new instance and destroy it' do
-    instance = @driver.create_instance('5558c5b6-9dd6-41b7-87f9-7cbce4fd40c5',
-                                       :realm_id => '99408929-82cf-4dc7-a532-9d998063fa95',
+    instance = @driver.create_instance(TST_IMAGE,
+                                       :realm_id => TST_REALM,
                                        :hwp_id => 'SERVER',
                                        :hwp_memory => '1024',
                                        :user_data => 'test user data'
                                       )
-    instance = instance.wait_for!(@driver, record_retries) { |i| i.is_stopped? }
+    instance = instance.wait_for!(@driver, record_retries('', :timeout => 60)) { |i| i.is_stopped? }
     instance.must_be_kind_of Instance
     instance.is_running?.must_equal false
     @driver.instance(:id => instance.id).wont_be_nil
@@ -61,23 +64,24 @@ describe 'RhevmDriver Instances' do
     @driver.instance(:id => instance.id).name.wont_be_nil
     @driver.instance(:id => instance.id).instance_profile.name.must_equal 'SERVER'
     @driver.instance(:id => instance.id).instance_profile.memory.must_equal 1024
-    @driver.instance(:id => instance.id).realm_id.must_equal '99408929-82cf-4dc7-a532-9d998063fa95'
-    @driver.instance(:id => instance.id).image_id.must_equal '5558c5b6-9dd6-41b7-87f9-7cbce4fd40c5'
-    @driver.instance(:id => instance.id).owner_id.must_equal 'admin@internal'
+    @driver.instance(:id => instance.id).realm_id.must_equal TST_REALM
+    @driver.instance(:id => instance.id).image_id.must_equal TST_IMAGE
     @driver.instance(:id => instance.id).state.must_equal 'STOPPED'
     @driver.instance(:id => instance.id).actions.must_include :start
     @driver.destroy_instance(instance.id)
     instance.wait_for!(@driver, record_retries('destroy')) { |i| i.nil? }
   end
 
+
   it 'must allow to create a new instance and make it running' do
-    instance = @driver.create_instance('5558c5b6-9dd6-41b7-87f9-7cbce4fd40c5',
-                                       :realm_id => '99408929-82cf-4dc7-a532-9d998063fa95',
+    instance = @driver.create_instance(TST_IMAGE,
+                                       :realm_id => TST_REALM,
                                        :hwp_id => 'SERVER',
                                        :hwp_memory => '1024',
                                        :user_data => 'test user data'
                                       )
-    instance = instance.wait_for!(@driver, record_retries) { |i| i.is_stopped? }
+    instance = instance.wait_for!(@driver, record_retries('', :timeout => 60)) { |i| i.is_stopped? }
+    skip "Skip this test due to RHEVm bug: https://bugzilla.redhat.com/show_bug.cgi?id=910741"
     instance.must_be_kind_of Instance
     instance.is_running?.must_equal false
     @driver.instance(:id => instance.id).wont_be_nil
@@ -85,20 +89,22 @@ describe 'RhevmDriver Instances' do
     @driver.instance(:id => instance.id).name.wont_be_nil
     @driver.instance(:id => instance.id).instance_profile.name.must_equal 'SERVER'
     @driver.instance(:id => instance.id).instance_profile.memory.must_equal 1024
-    @driver.instance(:id => instance.id).realm_id.must_equal '99408929-82cf-4dc7-a532-9d998063fa95'
-    @driver.instance(:id => instance.id).image_id.must_equal '5558c5b6-9dd6-41b7-87f9-7cbce4fd40c5'
-    @driver.instance(:id => instance.id).owner_id.must_equal 'admin@internal'
+    @driver.instance(:id => instance.id).realm_id.must_equal TST_REALM
+    @driver.instance(:id => instance.id).image_id.must_equal TST_IMAGE
     @driver.instance(:id => instance.id).state.must_equal 'STOPPED'
     @driver.instance(:id => instance.id).actions.must_include :start
     @driver.start_instance(instance.id)
-    instance = instance.wait_for!(@driver, record_retries('start')) { |i| i.is_running? }
+    instance = instance.wait_for!(@driver, record_retries('start', :timeout => 60)) { |i| i.is_running? }
     @driver.instance(:id => instance.id).state.must_equal 'RUNNING'
-    Proc.new { @driver.destroy_instance(instance.id) }.must_raise Deltacloud::Exceptions::BackendError, 'Cannot remove VM. VM is running.'
+    @driver.instance(:id => instance.id).actions.must_include :stop
+    Proc.new do
+      @driver.destroy_instance(instance.id)
+    end.must_raise Deltacloud::Exceptions::BackendError, 'Cannot remove VM. VM is running.'
     @driver.stop_instance(instance.id)
-    instance = instance.wait_for!(@driver, record_retries('stop')) { |i| i.is_stopped? }
+    instance = instance.wait_for!(@driver, record_retries('stop', :timeout => 60)) { |i| i.is_stopped?  }
     @driver.instance(:id => instance.id).state.must_equal 'STOPPED'
     @driver.destroy_instance(instance.id)
-    instance.wait_for!(@driver, record_retries('destroy')) { |i| i.nil? }
+    instance.wait_for!(@driver, record_retries('destroy', :timeout => 60)) { |i| i.nil? }
   end
 
 end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/d96847ba/server/tests/test_helper.rb
----------------------------------------------------------------------
diff --git a/server/tests/test_helper.rb b/server/tests/test_helper.rb
index 8d8073f..4d5b1ef 100644
--- a/server/tests/test_helper.rb
+++ b/server/tests/test_helper.rb
@@ -79,6 +79,17 @@ module Deltacloud
         end
       end
 
+      # Read credentials from ${HOME/.deltacloud/config if found.
+      # e.g.:
+      # cat ${HOME/.deltacloud/config
+      # rhevm:
+      #   user:     'user@domain'
+      #   password: 'mypassword'
+      #   provider: 'https://16.0.0.7/api;b9bb11c2-f397-4f41-a57b-7ac15a894779'
+      # mock:
+      #   user: mockuser
+      #   password: mockpassword
+      #   provider: compute
       def credentials(driver)
         driver = driver.to_s
         if @hash.has_key?(driver)
@@ -90,6 +101,20 @@ module Deltacloud
         end
         { :user => user, :password => password }
       end
+
+      def driver(driver, provider = nil)
+        if @hash.has_key?(driver.to_s)
+          user = @hash[driver.to_s]["user"]
+          password = @hash[driver.to_s]["password"]
+          provider = @hash[driver.to_s]["provider"] unless provider
+          params = {:user => user, :password => password, :provider => provider}
+        else
+          provider = "fakeprovider" unless provider
+          params = { :user => "fakeuser", :password => "fakepassword", :provider => provider }
+        end
+        Deltacloud::new(driver, params)
+      end
+
     end
 
     def self.config