class Fog::Compute::VirtualBox::NATRedirect

Attributes

machine[RW]
nat_engine[RW]

Public Class Methods

new(attributes = {}) click to toggle source
Calls superclass method Fog::Model.new
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 31
def initialize(attributes = {})
  self.name     = ''
  self.protocol = :tcp
  self.host_ip  = ''
  self.guest_ip = ''
  super
end

Public Instance Methods

destroy() click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 20
def destroy
  requires :nat_engine, :name
  with_session do |session|
    raw_network_adapter = session.machine.get_network_adapter(nat_engine.network_adapter.slot)
    raw_nat_engine = raw_network_adapter.nat_driver
    raw_nat_engine.remove_redirect(name)
    session.machine.save_settings
  end
  true
end
protocol=(new_protocol) click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 40
def protocol=(new_protocol)
  attributes[:protocol] = case new_protocol
  when '0'
    :udp
  when '1'
    :tcp
  else
    new_protocol
  end
end
save() click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 51
def save
  requires :nat_engine, :name, :protocol, :host_ip, :host_port, :guest_ip, :guest_port
  with_session do |session|
    raw_network_adapter = session.machine.get_network_adapter(nat_engine.network_adapter.slot)
    raw_nat_engine = raw_network_adapter.nat_driver
    raw_nat_engine.add_redirect(name, protocol, host_ip, host_port, guest_ip, guest_port)
    session.machine.save_settings
  end
  true
end

Private Instance Methods

raw() click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 64
def raw
  @raw
end
raw=(new_raw) click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 68
def raw=(new_raw)
  @raw = new_raw
  name, protocol, host_ip, host_port, guest_ip, guest_port = new_raw.split(',')
  raw_attributes = {:name => name, :protocol => protocol, :host_ip => host_ip, :host_port => host_port, :guest_ip => guest_ip, :guest_port => guest_port}
  merge_attributes(raw_attributes)
end
session() click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 75
def session
  ::VirtualBox::Lib.lib.session
end
with_session() { |session| ... } click to toggle source
# File lib/fog/virtual_box/models/compute/nat_redirect.rb, line 79
def with_session
  raw_machine = machine.instance_variable_get(:@raw)
  raw_machine.lock_machine(session, :write)
  yield session
  session.unlock_machine
end