Class: VagrantPlugins::G5K::Network::Nat
- Inherits:
-
Object
- Object
- VagrantPlugins::G5K::Network::Nat
- Defined in:
- lib/vagrant-g5k/network/nat.rb
Instance Method Summary collapse
- #attach ⇒ Object
- #check_state(job_id) ⇒ Object
- #detach ⇒ Object
- #generate_net ⇒ Object
-
#initialize(env, driver, oar_driver) ⇒ Nat
constructor
A new instance of Nat.
- #vm_ssh_info(vmid) ⇒ Object
Constructor Details
#initialize(env, driver, oar_driver) ⇒ Nat
Returns a new instance of Nat.
9 10 11 12 13 14 15 16 |
# File 'lib/vagrant-g5k/network/nat.rb', line 9 def initialize(env, driver, oar_driver) @logger = Log4r::Logger.new("vagrant::network::nat") # command driver is unused @env = env @driver = driver @oar_driver = oar_driver @net = env[:machine].provider_config.net end |
Instance Method Details
#attach ⇒ Object
32 33 34 |
# File 'lib/vagrant-g5k/network/nat.rb', line 32 def attach() # noop end |
#check_state(job_id) ⇒ Object
28 29 30 |
# File 'lib/vagrant-g5k/network/nat.rb', line 28 def check_state(job_id) return nil end |
#detach ⇒ Object
36 37 38 |
# File 'lib/vagrant-g5k/network/nat.rb', line 36 def detach() # noop end |
#generate_net ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/vagrant-g5k/network/nat.rb', line 18 def generate_net() fwd_ports = @net[:ports].map do |p| "hostfwd=tcp::#{p}" end.join(',') net = "-net nic,model=virtio -net user,#{fwd_ports}" @logger.debug("Generated net string : #{net}") return "NAT #{net}" end |
#vm_ssh_info(vmid) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/vagrant-g5k/network/nat.rb', line 40 def vm_ssh_info(vmid) # get forwarded port 22 ports = @net[:ports] ssh_fwd = ports.select{ |x| x.split(':')[1] == '22'}.first if ssh_fwd.nil? @env[:ui].error "SSH port 22 must be forwarded" raise Error "SSh port 22 isn't forwarded" end ssh_fwd = ssh_fwd.split('-:')[0] # get node hosting the vm job = @oar_driver.check_job(@env[:machine].id) ssh_info = { :host => job["assigned_network_address"].first, :port => ssh_fwd } @logger.debug(ssh_info) ssh_info end |