Class: Chef::Provisioning::FogDriver::Providers::CloudStack

Inherits:
Driver
  • Object
show all
Defined in:
lib/chef/provisioning/fog_driver/providers/cloudstack.rb

Constant Summary

Constants inherited from Driver

Driver::DEFAULT_OPTIONS, Driver::RETRYABLE_ERRORS, Driver::RETRYABLE_OPTIONS

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Driver

__new__, #allocate_machine, #allocate_machines, canonicalize_url, #compute, #compute_options, #connect_to_machine, #create_volume, #destroy_machine, #destroy_volume, from_provider, from_url, #image_for, inherited, #initialize, new, #provider, provider_class_for, #ready_machine, register_provider_class, #stop_machine, #transport_for

Constructor Details

This class inherits a constructor from Chef::Provisioning::FogDriver::Driver

Class Method Details

.compute_options_for(provider, id, config) ⇒ Object



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
# File 'lib/chef/provisioning/fog_driver/providers/cloudstack.rb', line 13

def self.compute_options_for(provider, id, config)
  new_compute_options = {}
  new_compute_options[:provider] = provider
  new_config = { :driver_options => { :compute_options => new_compute_options }}
  new_defaults = {
    :driver_options => { :compute_options => {} },
    :machine_options => { :bootstrap_options => {} }
  }
  result = Cheffish::MergedConfig.new(new_config, config, new_defaults)

  if id && id != ''
    cloudstack_uri = URI.parse(id)
    new_compute_options[:cloudstack_scheme] = cloudstack_uri.scheme
    new_compute_options[:cloudstack_host]   = cloudstack_uri.host
    new_compute_options[:cloudstack_port]   = cloudstack_uri.port
    new_compute_options[:cloudstack_path]   = cloudstack_uri.path
  end

  host   = result[:driver_options][:compute_options][:cloudstack_host]
  path   = result[:driver_options][:compute_options][:cloudstack_path]    || '/client/api'
  port   = result[:driver_options][:compute_options][:cloudstack_port]    || 443
  scheme = result[:driver_options][:compute_options][:cloudstack_scheme]  || 'https'
  id = URI.scheme_list[scheme.upcase].build(:host => host, :port => port, :path => path).to_s

  [result, id]
end

Instance Method Details

#creatorObject



9
10
11
# File 'lib/chef/provisioning/fog_driver/providers/cloudstack.rb', line 9

def creator
  ''
end