module Rackspace def self.[](service) @@connections ||= Hash.new do |hash, key| 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 module Files module Formats end end module Servers module Formats FLAVOR = { 'disk' => Integer, 'id' => Integer, 'name' => String, 'ram' => Integer } IMAGE = { 'id' => Integer, 'name' => String, 'serverId' => Integer, 'status' => String, 'updated' => String } SERVER = { 'addresses' => { 'private' => [String], 'public' => [String] }, 'flavorId' => Integer, 'hostId' => String, 'id' => Integer, 'imageId' => Integer, 'metadata' => {}, 'name' => String, 'progress' => Integer, 'status' => String } SUMMARY = { 'id' => Integer, 'name' => String } end end end