1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/bin/fog

219 lines
3.9 KiB
Text
Raw Normal View History

2009-10-02 02:22:47 -04:00
#!/usr/bin/env ruby
require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
require 'irb'
require 'yaml'
module Fog
module Credentials
2010-01-25 19:21:38 -05:00
Fog.credential = (ARGV.first && :"#{ARGV.first}") || :default
unless Fog.credentials
2010-01-15 00:27:08 -05:00
exit
end
end
end
2009-10-08 02:45:33 -04:00
module AWS
class << self
credential = (ARGV.first && :"#{ARGV.first}") || :default
2010-01-25 19:21:38 -05:00
if Fog.credentials[:aws_access_key_id] && Fog.credentials[:aws_secret_access_key]
2009-10-02 02:22:47 -04:00
2010-02-06 18:42:38 -05:00
def ready?
true
end
def [](service)
@@connections ||= Hash.new do |hash, key|
2010-01-25 19:21:38 -05:00
credentials = Fog.credentials.reject do |k, v|
![:aws_access_key_id, :aws_secret_access_key].include?(k)
end
hash[key] = case key
when :ec2
Fog::AWS::EC2.new(credentials)
when :s3
Fog::AWS::S3.new(credentials)
end
end
@@connections[service]
end
2009-10-08 02:45:33 -04:00
def addresses
self[:ec2].addresses
end
2009-10-02 02:22:47 -04:00
2010-01-14 23:44:39 -05:00
def directories
self[:s3].directories
end
2009-10-09 02:01:09 -04:00
2010-01-10 16:22:18 -05:00
def flavors
self[:ec2].flavors
2010-01-10 16:22:18 -05:00
end
2010-01-10 16:35:20 -05:00
def images
self[:ec2].images
2010-01-10 16:35:20 -05:00
end
2010-01-08 14:29:07 -05:00
def servers
self[:ec2].servers
end
2009-10-08 02:45:33 -04:00
def key_pairs
self[:ec2].key_pairs
end
2009-10-08 02:45:33 -04:00
def security_groups
self[:ec2].security_groups
end
2009-10-15 01:03:31 -04:00
def snapshots
self[:ec2].snapshots
end
2009-10-15 01:03:31 -04:00
def volumes
self[:ec2].volumes
end
2009-10-15 01:03:31 -04:00
2010-02-06 18:42:38 -05:00
else
def ready?
false
end
end
2009-10-15 01:03:31 -04:00
end
2009-10-08 02:45:33 -04:00
end
2009-10-15 01:03:31 -04:00
module Rackspace
class << self
2010-01-25 19:21:38 -05:00
if Fog.credentials[:rackspace_api_key] && Fog.credentials[:rackspace_username]
2009-10-15 01:03:31 -04:00
2010-02-06 18:42:38 -05:00
def ready?
true
end
def [](service)
@@connections ||= Hash.new do |hash, key|
2010-01-25 19:21:38 -05:00
credentials = Fog.credentials.reject do |k,v|
![:rackspace_api_key, :rackspace_username].include?(k)
end
hash[key] = case key
when :files
Fog::Rackspace::Files.new(credentials)
when :servers
Fog::Rackspace::Servers.new(credentials)
end
end
@@connections[service]
end
def flavors
self[:servers].flavors
end
def images
self[:servers].images
end
def servers
self[:servers].servers
end
2010-02-06 18:42:38 -05:00
else
def ready?
false
end
2009-10-15 01:03:31 -04:00
end
end
2009-10-08 02:45:33 -04:00
end
2010-02-06 18:43:02 -05:00
module Slicehost
class << self
if Fog.credentials[:slicehost_password]
def ready?
true
end
def [](service)
@@connections ||= Hash.new do |hash, key|
credentials = Fog.credentials.reject do |k,v|
![:slicehost_password].include?(k)
end
hash[key] = case key
when :slices
Fog::Slicehost.new(credentials)
end
end
@@connections[service]
end
def flavors
self[:slices].flavors
end
def images
self[:slices].images
end
def servers
self[:slices].servers
end
else
def ready?
true
end
end
end
end
2010-02-06 18:42:38 -05:00
module Fog
class << self
def services
services = []
2010-02-06 18:43:02 -05:00
[::AWS, ::Rackspace, ::Slicehost].each do |service|
2010-02-06 18:42:38 -05:00
if service.ready?
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
2009-10-02 02:22:47 -04:00
ARGV.clear # Avoid passing args to IRB
IRB.setup(nil)
@irb = IRB::Irb.new(nil)
IRB.conf[:MAIN_CONTEXT] = @irb.context
@irb.context.workspace = IRB::WorkSpace.new(binding)
catch(:IRB_EXIT) { @irb.eval_input }