module Cyoi::Providers

Public Instance Methods

provider_client(attributes) click to toggle source

returns a Infrastructure provider specific object with helpers related to that provider returns nil if attributes.name is unknown

# File lib/cyoi/providers.rb, line 11
def provider_client(attributes)
  attributes = attributes.is_a?(Hash) ? ReadWriteSettings.new(attributes) : attributes
  case attributes.name.to_sym
  when :aws
    @aws_provider_client ||= begin
      require "cyoi/providers/clients/aws_provider_client"
      Cyoi::Providers::Clients::AwsProviderClient.new(attributes)
    end
  when :openstack
    @openstack_provider_client ||= begin
      require "cyoi/providers/clients/openstack_provider_client"
      Cyoi::Providers::Clients::OpenStackProviderClient.new(attributes)
    end
  when :vsphere
    @vsphere_provider_client ||= begin
      puts "vsphere!"
      require "cyoi/providers/clients/vsphere_provider_client"
      Cyoi::Providers::Clients::VsphereProviderClient.new(attributes)
    end
  else
    nil
  end
end