Class: VagrantPlugins::OpenStack::Action::ConnectOpenStack

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-openstack-cloud-provider/action/connect_openstack.rb

Overview

This action connects to OpenStack, verifies credentials work, and puts the OpenStack connection object into the ‘:openstack_compute` key in the environment.

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ ConnectOpenStack

Returns a new instance of ConnectOpenStack.



12
13
14
15
# File 'lib/vagrant-openstack-cloud-provider/action/connect_openstack.rb', line 12

def initialize(app, env)
  @app    = app
  @logger = Log4r::Logger.new("vagrant_openstack::action::connect_openstack")
end

Instance Method Details

#call(env) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/vagrant-openstack-cloud-provider/action/connect_openstack.rb', line 17

def call(env)
  config = env[:machine].provider_config

  openstack_options = {
      :provider => :openstack,
      :openstack_region => config.region,
      :openstack_username => config.username,
      :openstack_api_key => config.api_key,
      :openstack_auth_url => config.endpoint,
      :openstack_tenant => config.tenant
  }

  $openstack_compute ||= get_fog_promise('Compute', openstack_options)
  $openstack_network ||= get_fog_promise('Network', openstack_options)

  env[:openstack_compute] = $openstack_compute
  env[:openstack_network] = $openstack_network

  @app.call(env)
end