Sha256: 63b0441f95392a881bf8122d0e76c0324b328a7bbee437d80e70a552725ab4b9

Contents?: true

Size: 1.71 KB

Versions: 32

Compression:

Stored size: 1.71 KB

Contents

#
# Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
# © Copyright IBM Corporation 2014.
#
# LICENSE: MIT (http://opensource.org/licenses/MIT)
#

class Softlayer < Fog::Bin
  class << self
    def class_for(key)
      case key
        when :compute
          Fog::Compute::Softlayer
        when :dns
          Fog::DNS::Softlayer
        when :network
          Fog::Network::Softlayer
        when :storage
          Fog::Storage::Softlayer
        else
          # @todo Replace most instances of ArgumentError with NotImplementedError
          # @todo For a list of widely supported Exceptions, see:
          # => http://www.zenspider.com/Languages/Ruby/QuickRef.html#35
          raise ArgumentError, "Unsupported #{self} service: #{key}"
      end
    end

    def [](service)
      @@connections ||= Hash.new do |hash, key|
        hash[key] = case key
                      when :compute
                        Fog::Logger.warning("Softlayer[:compute] is not recommended, use Compute[:aws] for portability")
                        Fog::Compute.new(:provider => :softlayer)
                      when :dns
                        Fog::Logger.warning("Softlayer[:dns] is not recommended, use DNS[:aws] for portability")
                        Fog::DNS.new(:provider => :softlayer)
                      when :network
                        Fog::Network.new(:provider => :softlayer)
                      when :storage
                        Fog::Storage.new(:provider => :softlayer)
                      else
                        raise ArgumentError, "Unrecognized service: #{key.inspect}"
                    end
      end
      @@connections[service]
    end

    def services
      Fog::Softlayer.services
    end
  end
end

Version data entries

32 entries across 30 versions & 5 rubygems

Version Path
fog-2.3.0 lib/fog/bin/softlayer.rb
fog-ifeel-2.2.0 lib/fog/bin/softlayer.rb
fog-2.2.0 lib/fog/bin/softlayer.rb
fog-2.1.0 lib/fog/bin/softlayer.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-1.42.1/lib/fog/bin/softlayer.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-1.42.1/lib/fog/bin/softlayer.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-1.42.1/lib/fog/bin/softlayer.rb
fog-1.42.1 lib/fog/bin/softlayer.rb
fog-2.0.0 lib/fog/bin/softlayer.rb
fog-1.42.0 lib/fog/bin/softlayer.rb
fog-1.41.0 lib/fog/bin/softlayer.rb
fog-1.40.0 lib/fog/bin/softlayer.rb
fog-1.39.0 lib/fog/bin/softlayer.rb
fog-1.38.0 lib/fog/bin/softlayer.rb
fog-1.37.0 lib/fog/bin/softlayer.rb
fog-1.36.0 lib/fog/bin/softlayer.rb
fog-1.35.0 lib/fog/bin/softlayer.rb
fog-2.0.0.pre.0 lib/fog/bin/softlayer.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/bin/softlayer.rb
fog-1.34.0 lib/fog/bin/softlayer.rb