1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/vcloud/bin.rb
freeformz 30446e5ac1 Servicify & Hashify & more requests
Many changes:

-Become more of a proper Fog Service.
-Drop most of the Collection/Model customizations.
-Add a hook for services to do something after #new with the instance
-Move to the ToHashDocument parser ... so no more having to actually
make parsers.
-Fog::Vcloud::Extension is kind of like Fog::Service, but for writing
extension modules to Fog::Vcloud.
-Fix up existing specs/mocks (they're not complete atm, but the existing
ones are up to date).
-Fog::Vcloud::Terremark::Ecloud gets almost all extensions implemented
(almost).
-Fog::Vcloud::Terremark::Ecloud bumped to working with the current TMRK
API release.
-Factor out some TMRK/ecloud specifc mock data into the ecloud module.
-Probably forgetting something.
2010-06-28 02:10:27 +08:00

57 lines
1.4 KiB
Ruby

module Vcloud
class << self
def services
if Fog.credentials.has_key?(:vcloud)
Fog.credentials[:vcloud].keys.sort { |a,b| a.to_s <=> b.to_s }
else
[]
end
end
def registered_services
Vcloud.services.map { |service| ":" << service.to_s }.join(", ")
end
def complete_service_options?(service)
if Fog.credentials.has_key?(:vcloud)
if Fog.credentials[:vcloud].has_key?(service)
service = Fog.credentials[:vcloud][service]
if Fog::Vcloud.requirements.all? { |option| service.has_key?(option) }
return true
end
end
end
false
end
if Vcloud.services.any? && Vcloud.services.all? { |service| Vcloud.complete_service_options?(service) }
def initialized?
true
end
def startup_notice
puts "You have access to the following vCloud services: #{Vcloud.registered_services}."
end
def [](service)
@@connections ||= Hash.new do |hash, key|
if credentials = Fog.credentials[:vcloud][key]
hash[key] = Fog::Vcloud.new(credentials)
else
raise ArgumentError.new("Unregistered service: :#{key}. Registered services are: #{Vcloud.registered_services}")
end
end
@@connections[service]
end
else
def initialized?
false
end
end
end
end