fog--fog/lib/fog/bin.rb

79 lines
1.7 KiB
Ruby

module Fog
class << self
def credential=(new_credential)
@credential = new_credential
@credentials = nil
end
def credential
@credential || :default
end
def credentials
@credentials ||= begin
path = File.expand_path('~/.fog')
credentials = if File.exists?(path)
File.open(path) do |file|
YAML.load(file.read)
end
else
nil
end
unless credentials && credentials[credential]
print("\n To run as '#{credential}', add the following to ~/.fog\n")
yml = <<-YML
:#{credential}:
:aws_access_key_id: INTENTIONALLY_LEFT_BLANK
:aws_secret_access_key: INTENTIONALLY_LEFT_BLANK
:rackspace_api_key: INTENTIONALLY_LEFT_BLANK
:rackspace_username: INTENTIONALLY_LEFT_BLANK
:slicehost_password: INTENTIONALLY_LEFT_BLANK
:terremark_username: INTENTIONALLY_LEFT_BLANK
:terremark_password: INTENTIONALLY_LEFT_BLANK
YML
print(yml)
raise(ArgumentError.new("Missing Credentials"))
end
credentials[credential]
end
end
def services
services = []
[::AWS, ::Rackspace, ::Slicehost, ::Terremark].each do |service|
if service.initialized?
services << service
end
end
services
end
def flavors
flavors = {}
services.each do |service|
flavors[service] = service.flavors
end
flavors
end
def images
images = {}
services.each do |service|
images[service] = service.images
end
images
end
def servers
servers = {}
services.each do |service|
servers[service] = service.servers
end
servers
end
end
end