Method: Lab::Drivers::FogDriver#initialize

Defined in:
lib/lab/driver/fog_driver.rb

#initialize(config, fog_config) ⇒ FogDriver

Returns a new instance of FogDriver.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/lab/driver/fog_driver.rb', line 11

def initialize(config,fog_config)
  
  super(config)
  @fog_config = fog_config

  # Soft dependency
  begin
    require 'fog'
  rescue LoadError
    raise "WARNING: Library fog not found. Could not create driver"
  end

  if @fog_config['fog_type'] == "ec2"

    # AWS / EC2 Base Credential Configuration
    @aws_cert_file = IO.read(fog_config['fog_aws_cert_file']).chomp if fog_config['fog_aws_cert_file']
    @aws_private_key_file = IO.read(fog_config['fog_aws_private_key_file']).chomp if fog_config['fog_aws_private_key_file']
    @ec2_access_key_file = IO.read(fog_config['fog_ec2_access_key_file']).chomp if fog_config['fog_ec2_access_key_file']
    @ec2_secret_access_key_file = IO.read(fog_config['fog_ec2_secret_access_key_file']).chomp if fog_config['fog_ec2_secret_access_key_file']
    
    # Instance Keys
    @ec2_instance_public_key_file = IO.read(fog_config['fog_ec2_instance_public_key_file']).chomp if fog_config['fog_ec2_instance_public_key_file']
    @ec2_instance_private_key_file = IO.read(fog_config['fog_ec2_instance_private_key_file']).chomp if fog_config['fog_ec2_instance_private_key_file']
    
    # Instance Details
    @ec2_base_ami = fog_config['fog_ec2_base_ami']
    @ec2_flavor = fog_config['fog_ec2_flavor']
    @ec2_user = fog_config['fog_ec2_user']
    @ec2_region = fog_config['fog_ec2_region']
        
    # Set up a connection
    @compute = Fog::Compute.new(
      :provider => "Aws",
      :aws_access_key_id => @aws_access_key_file,
      :aws_secret_access_key => @aws_secret_access_key_file )
  else
    raise "Unsupported fog type"
  end
end