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/01/20 12:29:59 UTC

svn commit: r1233874 - /deltacloud/trunk/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb

Author: mfojtik
Date: Fri Jan 20 11:29:59 2012
New Revision: 1233874

URL: http://svn.apache.org/viewvc?rev=1233874&view=rev
Log:
RHEV-M: Add more verbose exception when floppyinject is not enabled on target RHEV-M backend (BZ: 765855)

Modified:
    deltacloud/trunk/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb

Modified: deltacloud/trunk/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb
URL: http://svn.apache.org/viewvc/deltacloud/trunk/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb?rev=1233874&r1=1233873&r2=1233874&view=diff
==============================================================================
--- deltacloud/trunk/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb (original)
+++ deltacloud/trunk/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb Fri Jan 20 11:29:59 2012
@@ -119,6 +119,16 @@ module RHEVM
       (result_xml/'/cluster/version').first[:major].strip == major
     end
 
+    def capability?(name)
+      headers = {
+        :content_type => 'application/xml',
+        :accept => 'application/xml'
+      }
+      headers.merge!(auth_header)
+      result_xml = Nokogiri::XML(RHEVM::client(@api_entrypoint)["/capabilities"].get(headers))
+      !(result_xml/"/capabilities/version/custom_properties/custom_property[@name='#{name}']").empty?
+    end
+
     def create_vm(template_id, opts={})
       opts ||= {}
       templ = template(template_id)
@@ -135,6 +145,7 @@ module RHEVM
           }
           if opts[:user_data] and not opts[:user_data].empty?
             if api_version?('3') and cluster_version?((opts[:realm_id] || clusters.first.id), '3')
+              raise "Required VDSM hook 'floppyinject' not supported by RHEV-M" unless capability?(:floppyinject)
               custom_properties {
                 custom_property({
                   :name => "floppyinject",