Sha256: e25d17d147ed850ad6d6105262387f4ffe2a590f5444b899d15be055e5ce6af3
Contents?: true
Size: 1.95 KB
Versions: 2
Compression:
Stored size: 1.95 KB
Contents
module VagrantPlugins module VCloud module Action class ReadSSHInfo # FIXME: More work needed here for vCloud logic (vApp, VM IPs, etc.) def initialize(app, env) @app = app @logger = Log4r::Logger.new("vagrant_vcloud::action::read_ssh_info") end def call(env) env[:machine_ssh_info] = read_ssh_info(env) @app.call env end def read_ssh_info(env) return nil if env[:machine].id.nil? cfg = env[:machine].provider_config cnx = cfg.vcloud_cnx.driver vmName = env[:machine].name vAppId = env[:machine].get_vapp_id @logger.debug("Getting vapp info...") vm = cnx.get_vapp(vAppId) myhash = vm[:vms_hash][vmName.to_sym] if vm.nil? # The machine can't be found @logger.info("Machine couldn't be found, assuming it got destroyed.") machine.id = nil return nil end @logger.debug("Getting port forwarding rules...") rules = cnx.get_vapp_port_forwarding_rules(vAppId) rules.each do |rule| if rule[:vapp_scoped_local_id] == myhash[:vapp_scoped_local_id] && rule[:nat_internal_port] == "22" @externalIP = rule[:nat_external_ip] @externalPort = rule[:nat_external_port] break end end if cfg.vdc_edge_gateway_ip && cfg.vdc_edge_gateway @logger.debug("We're running vagrant behind an org edge") @externalIP = cfg.vdc_edge_gateway_ip end # FIXME: fix the selfs and create a meaningful info message # @logger.debug("Our variables: IP #{@externalIP} and Port #{@externalPort}") return { # FIXME: these shouldn't be self :host => @externalIP, :port => @externalPort } end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vagrant-vcloud-0.1.2 | lib/vagrant-vcloud/action/read_ssh_info.rb |
vagrant-vcloud-0.1.1 | lib/vagrant-vcloud/action/read_ssh_info.rb |