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 2011/02/21 16:46:15 UTC

svn commit: r1073030 - in /incubator/deltacloud/trunk: client/lib/deltacloud.rb server/lib/deltacloud/drivers/ec2/ec2_driver.rb

Author: mfojtik
Date: Mon Feb 21 15:46:15 2011
New Revision: 1073030

URL: http://svn.apache.org/viewvc?rev=1073030&view=rev
Log:
Added client support for listing supported drivers by API instance

Modified:
    incubator/deltacloud/trunk/client/lib/deltacloud.rb
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb

Modified: incubator/deltacloud/trunk/client/lib/deltacloud.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/deltacloud.rb?rev=1073030&r1=1073029&r2=1073030&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/deltacloud.rb (original)
+++ incubator/deltacloud/trunk/client/lib/deltacloud.rb Mon Feb 21 15:46:15 2011
@@ -66,6 +66,27 @@ module DeltaCloud
     API.new(nil, nil, url).driver_name
   end
 
+  def self.drivers(url)
+    api = API.new(nil, nil, url)
+    drivers = {}
+    api::request(:get, '/drivers', {}) do |response|
+      response = Nokogiri::XML(response)
+      (response/"/api/drivers/driver").each do |d|
+        drivers[d[:id].to_sym] = { :name => (d/'name').text }
+        entrypoint = {}
+        (d/'entrypoints').each do |entrypoint|
+          entrypoint = (entrypoint/'entrypoint').collect { |e| { :id => e[:id], :url => e.text } }
+        end
+        drivers[d[:id].to_sym].merge!({ :entrypoints => entrypoint }) unless entrypoint.empty?
+        if (d/'credentials')
+          drivers[d[:id].to_sym].merge!({ :username => (d/'credentials/username').text}) if (d/'credentials/username')
+          drivers[d[:id].to_sym].merge!({ :password => (d/'credentials/password').text}) if (d/'credentials/password')
+        end
+      end
+    end
+    drivers
+  end
+
   class API
     attr_reader :api_uri, :driver_name, :api_version, :features, :entry_points
     attr_reader :api_driver, :api_provider

Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb?rev=1073030&r1=1073029&r2=1073030&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb Mon Feb 21 15:46:15 2011
@@ -519,7 +519,7 @@ module Deltacloud
           endpoint = (Thread.current[:provider] || ENV['API_PROVIDER'] || DEFAULT_REGION)
           # return the endpoint if it does not map to a default endpoint, allowing
           # the endpoint to be a full hostname instead of a region.
-          Deltacloud::Drivers::driver_config[:ec2][:entry_points][service.to_s][endpoint] || endpoint
+          Deltacloud::Drivers::driver_config[:ec2][:entrypoints][service.to_s][endpoint] || endpoint
         end
 
         def tag_instance(credentials, instance, name)