Class: VdlWrapper

Inherits:
Object
  • Object
show all
Extended by:
FFI::VixDiskLib::ApiWrapper
Includes:
DRb::DRbUndumped
Defined in:
lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb

Class Method Summary collapse

Class Method Details

.__disconnect__(conn_obj) ⇒ Object

Raises:



63
64
65
66
67
68
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 63

def self.__disconnect__(conn_obj)
  $vim_log.info "VdlWrapper.__disconnect__: #{conn_obj.serverName}" if $vim_log
  raise VixDiskLibError, "VixDiskLib is not initialized" unless @initialized
  FFI::VixDiskLib::API.disconnect(conn_obj.vdl_connection)
  @connection = nil
end

.__exit__Object

Raises:



70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 70

def self.__exit__
  raise VixDiskLibError, "VixDiskLib is not initialized" unless @initialized
  __disconnect__(@connection) unless @connection.nil?
  #
  # NOTE: We have to comment this call out for now.
  # For some reason the call to VixDiskLib.exit is causing
  # the DRb service (this process) to segfault during the exit sequence.
  #
  # super
  $vim_log.info "VixDiskLib has exited cleanly"
  @vddk.running = true
  @vddk.shutdown = true
  @initialized = nil
end

.connect(connect_parms) ⇒ Object

Raises:



55
56
57
58
59
60
61
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 55

def self.connect(connect_parms)
  $vim_log.info "VdlWrapper.connect: #{connect_parms[:server_name]}" if $vim_log
  raise VixDiskLibError, "VixDiskLib is not initialized" unless @initialized
  raise VixDiskLibError, "Already connected to #{@connection.serverName}" if @connection
  @connection = VdlConnection.new(connect_parms, @vddk)
  @connection
end

.dec_server_disk_countObject



49
50
51
52
53
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 49

def self.dec_server_disk_count
  @server_disk_count -= 1
  @vddk.running = true
  @server_disk_count
end

.dumpDisks(server_name) ⇒ Object



36
37
38
39
40
41
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 36

def self.dumpDisks(server_name)
  $vim_log.warn "*** Open VdlDisks for server #{server_name}" if $vim_log
  @connection.dumpDisks unless @connection.nil? || @connection.serverName != server_name
  @vddk.running = true
  $vim_log.warn "*** Open VdlDisks end" if $vim_log
end

.inc_server_disk_countObject



43
44
45
46
47
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 43

def self.inc_server_disk_count
  @server_disk_count += 1
  @vddk.running = true
  @server_disk_count
end

.initObject



29
30
31
32
33
34
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 29

def self.init
  return if @initialized
  FFI::VixDiskLib::ApiWrapper.init(@info_log, @warn_log, @error_log, nil)
  @initialized = true
  @connection = nil
end

.server(server) ⇒ Object



20
21
22
23
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 20

def self.server(server)
  return unless @vddk.nil?
  @vddk = server
end