Class: OpenStack

Inherits:
Fog::Bin show all
Defined in:
lib/fog/bin/openstack.rb

Class Method Summary collapse

Methods inherited from Fog::Bin

available?, collections

Class Method Details

.[](service) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/fog/bin/openstack.rb', line 27

def [](service)
  @@connections ||= Hash.new do |hash, key|
    hash[key] = case key
    when :compute
      Fog::Logger.warning("OpenStack[:compute] is not recommended, use Compute[:openstack] for portability")
      Fog::Compute.new(:provider => 'OpenStack')
    when :identity
      Fog::Logger.warning("OpenStack[:identity] is not recommended, use Identity[:openstack] for portability")
      Fog::Identity.new(:provider => 'OpenStack')
    when :image
      Fog::Logger.warning("OpenStack[:image] is not recommended, use Image[:openstack] for portability")
      Fog::Image.new(:provider => 'OpenStack')
    when :network
      Fog::Logger.warning("OpenStack[:network] is not recommended, use Network[:openstack] for portability")
      Fog::Network.new(:provider => 'OpenStack')
    when :storage
      Fog::Logger.warning("OpenStack[:storage] is not recommended, use Storage[:openstack] for portability")
      Fog::Storage.new(:provider => 'OpenStack')
    when :volume
      Fog::Logger.warning("OpenStack[:volume] is not recommended, use Volume[:openstack] for portability")
      Fog::Volume.new(:provider => 'OpenStack')
    when :metering
      Fog::Logger.warning("OpenStack[:metering] is not recommended, use Metering[:openstack] for portability")
      Fog::Metering.new(:provider => 'OpenStack')
    when :orchestration
      Fog::Logger.warning("OpenStack[:orchestration] is not recommended, use Orchestration[:openstack] for portability")
      Fog::Orchestration.new(:provider => 'OpenStack')
    else
      raise ArgumentError, "Unrecognized service: #{key.inspect}"
    end
  end
  @@connections[service]
end

.class_for(key) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/bin/openstack.rb', line 4

def class_for(key)
  case key
  when :compute
    Fog::Compute::OpenStack
  when :identity
    Fog::Identity::OpenStack
  when :image
    Fog::Image::OpenStack
  when :network
    Fog::Network::OpenStack
  when :storage
    Fog::Storage::OpenStack
  when :volume
    Fog::Volume::OpenStack
  when :metering
    Fog::Metering::OpenStack
  when :orchestration
    Fog::Orchestration::OpenStack
  else
    raise ArgumentError, "Unrecognized service: #{key}"
  end
end

.servicesObject



61
62
63
# File 'lib/fog/bin/openstack.rb', line 61

def services
  Fog::OpenStack.services
end