Class: VagrantPlugins::Cloudstack::Action::ReadWinrmInfo
- Inherits:
-
ReadTransportInfo
- Object
- ReadTransportInfo
- VagrantPlugins::Cloudstack::Action::ReadWinrmInfo
- Defined in:
- lib/vagrant-cloudstack/action/read_winrm_info.rb
Overview
This action reads the WinRM info for the machine and puts it into the ‘:machine_winrm_info` key in the environment.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, env) ⇒ ReadWinrmInfo
constructor
A new instance of ReadWinrmInfo.
- #read_winrm_info(cloudstack, machine) ⇒ Object
Methods inherited from ReadTransportInfo
#find_server, #retrieve_public_ip_port
Constructor Details
#initialize(app, env) ⇒ ReadWinrmInfo
Returns a new instance of ReadWinrmInfo.
10 11 12 13 14 15 |
# File 'lib/vagrant-cloudstack/action/read_winrm_info.rb', line 10 def initialize(app, env) @app = app @logger = Log4r::Logger.new("vagrant_cloudstack::action::read_winrm_info") @public_port_fieldname = 'pf_public_port' end |
Instance Method Details
#call(env) ⇒ Object
17 18 19 20 21 |
# File 'lib/vagrant-cloudstack/action/read_winrm_info.rb', line 17 def call(env) env[:machine_winrm_info] = read_winrm_info(env[:cloudstack_compute], env[:machine]) @app.call(env) end |
#read_winrm_info(cloudstack, machine) ⇒ Object
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/vagrant-cloudstack/action/read_winrm_info.rb', line 23 def read_winrm_info(cloudstack, machine) return nil if (server = find_server(cloudstack, machine)).nil? # Get the Port forwarding config domain = machine.provider_config.domain_id domain_config = machine.provider_config.get_domain_config(domain) pf_ip_address, pf_public_port = retrieve_public_ip_port(cloudstack, domain_config, machine) transport_info = { :host => pf_ip_address || server.nics[0]['ipaddress'], :port => pf_public_port } transport_info = transport_info.merge({ :username => domain_config.vm_user }) unless domain_config.vm_user.nil? machine.config.winrm.username = domain_config.vm_user unless domain_config.vm_user.nil? # The WinRM communicator doesnt support passing # the username via winrm_info ... yet ;-) # Read password from file into domain_config if domain_config.vm_password.nil? vmcredentials_file = machine.data_dir.join("vmcredentials") if vmcredentials_file.file? vmcredentials_password = nil File.read(vmcredentials_file).each_line do |line| vmcredentials_password = line.strip end domain_config.vm_password = vmcredentials_password end end transport_info = transport_info.merge({ :password => domain_config.vm_password }) unless domain_config.vm_password.nil? # The WinRM communicator doesnt support passing # the password via winrm_info ... yet ;-) machine.config.winrm.password = domain_config.vm_password unless domain_config.vm_password.nil? transport_info end |