Class: VdlWrapper

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

Class Method Summary collapse

Methods included from VMwareWebService::Logging

#logger

Class Method Details

.__disconnect__(conn_obj) ⇒ Object

Raises:



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

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

.__exit__Object

Raises:



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

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
  logger.info "VixDiskLib has exited cleanly"
  @vddk.running = true
  @vddk.shutdown = true
  @initialized = nil
end

.connect(connect_parms) ⇒ Object

Raises:



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

def self.connect(connect_parms)
  logger.info "VdlWrapper.connect: #{connect_parms[:server_name]}"
  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



47
48
49
50
51
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 47

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

.dumpDisks(server_name) ⇒ Object



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

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

.inc_server_disk_countObject



41
42
43
44
45
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 41

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

.initObject



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

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



18
19
20
21
# File 'lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb', line 18

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