class Sahara::Session::VMWare

Public Class Methods

new(machine) click to toggle source
# File lib/sahara/session/vmware.rb, line 5
def initialize(machine)
  @machine=machine
  @vmx_path=@machine.provider.driver.vmx_path
  @vmwarecmd=@machine.provider.driver.instance_variable_get(:@vmrun_path).to_s.gsub(" ", "\\ ")
  @sandboxname="sahara-sandbox"
  if @machine.provider.driver.class.to_s != "HashiCorp::VagrantVMwarefusion::Driver::Fusion"
    raise Sahara::Errors::ProviderNotSupported
  end
end

Public Instance Methods

commit() click to toggle source
# File lib/sahara/session/vmware.rb, line 33
def commit
  `#{@vmwarecmd} -T ws deleteSnapshot "#{@vmx_path}" "#{@sandboxname}"`
  `#{@vmwarecmd} -T ws snapshot "#{@vmx_path}" "#{@sandboxname}"`
end
is_snapshot_mode_on?() click to toggle source
# File lib/sahara/session/vmware.rb, line 20
def is_snapshot_mode_on?
  snapshots=self.list_snapshots
  return snapshots.include?(@sandboxname)
end
is_vm_created?() click to toggle source
# File lib/sahara/session/vmware.rb, line 52
def is_vm_created?
  return !@machine.id.nil?
end
list_snapshots() click to toggle source
# File lib/sahara/session/vmware.rb, line 15
def list_snapshots
  output = `#{@vmwarecmd} listSnapshots "#{@vmx_path}"`
  output.rstrip.split(/\r?\n/).map {|line| line.chomp }
end
off() click to toggle source
# File lib/sahara/session/vmware.rb, line 25
def off
  `#{@vmwarecmd} -T ws deleteSnapshot "#{@vmx_path}" "#{@sandboxname}"`
end
on() click to toggle source
# File lib/sahara/session/vmware.rb, line 29
def on
  `#{@vmwarecmd} -T ws snapshot "#{@vmx_path}" "#{@sandboxname}"`
end
rollback() click to toggle source
# File lib/sahara/session/vmware.rb, line 38
def rollback
  `#{@vmwarecmd} -T ws revertToSnapshot "#{@vmx_path}" "#{@sandboxname}" `
  sleep 2

  gui_boot = @machine.provider_config.gui
  if gui_boot
    boot_mode = "gui"
  else
    boot_mode = "nogui"
  end
  # restore boot mode
  `#{@vmwarecmd} -T ws start "#{@vmx_path}" #{boot_mode} `
end