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)