class VagrantPlugins::Openstack::Action::ConnectOpenstack
Public Class Methods
new(app, env, catalog_reader = OpenstackCatalog.new)
click to toggle source
# File lib/vagrant-openstack-provider/action/connect_openstack.rb, line 16 def initialize(app, env, catalog_reader = OpenstackCatalog.new) @app = app @logger = Log4r::Logger.new('vagrant_openstack::action::connect_openstack') @catalog_reader = catalog_reader env[:openstack_client] = VagrantPlugins::Openstack end
Public Instance Methods
execute(env)
click to toggle source
# File lib/vagrant-openstack-provider/action/connect_openstack.rb, line 23 def execute(env) client = env[:openstack_client] if client.session.token.nil? catalog = client.keystone.authenticate(env) @catalog_reader.read(env, catalog) override_endpoint_catalog_with_user_config(env) check_configuration(env) log_endpoint_catalog(env) end @app.call(env) unless @app.nil? end
Private Instance Methods
check_configuration(env)
click to toggle source
# File lib/vagrant-openstack-provider/action/connect_openstack.rb, line 48 def check_configuration(env) fail Errors::MissingNovaEndpoint unless env[:openstack_client].session.endpoints.key? :compute end
log_endpoint_catalog(env)
click to toggle source
# File lib/vagrant-openstack-provider/action/connect_openstack.rb, line 52 def log_endpoint_catalog(env) env[:openstack_client].session.endpoints.each do |key, value| @logger.info(" -- #{key.to_s.ljust 15}: #{value}") end end
override_endpoint_catalog_with_user_config(env)
click to toggle source
# File lib/vagrant-openstack-provider/action/connect_openstack.rb, line 37 def override_endpoint_catalog_with_user_config(env) client = env[:openstack_client] config = env[:machine].provider_config endpoints = client.session.endpoints endpoints[:compute] = config.openstack_compute_url unless config.openstack_compute_url.nil? endpoints[:network] = config.openstack_network_url unless config.openstack_network_url.nil? endpoints[:volume] = config.openstack_volume_url unless config.openstack_volume_url.nil? endpoints[:image] = config.openstack_image_url unless config.openstack_image_url.nil? endpoints.delete_if { |_, value| value.nil? || value.empty? } end