Module: MiqBrokerObjRegistry

Instance Method Summary collapse

Instance Method Details

#holdBrokerObjObject



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

def holdBrokerObj
  $vim_log.info "MiqBrokerObjRegistry.holdBrokerObj: #{self.class} object_id: #{object_id} TEMP HOLD"
  $miqBrokerObjRegistryLock.synchronize(:EX) do
    $miqBrokerObjHold[object_id] = self
  end
  nil
end

#registerBrokerObj(id) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/VMwareWebService/MiqVimBrokerMods.rb', line 42

def registerBrokerObj(id)
  $vim_log.info "MiqBrokerObjRegistry.registerBrokerObj: #{self.class} object_id: #{object_id} => SessionId: #{id}"
  $miqBrokerObjRegistryLock.synchronize(:EX) do
    $miqBrokerObjRegistry[id] << self

    if $miqBrokerObjHold.key?(object_id)
      $vim_log.info "MiqBrokerObjRegistry.registerBrokerObj: #{self.class} object_id: #{object_id} TEMP HOLD RELEASE"
      $miqBrokerObjHold.delete(object_id)
    end

    if defined? @invObj
      connKey = "#{@invObj.server}_#{@invObj.username}"
      $vim_log.info "MiqBrokerObjRegistry.registerBrokerObj: #{self.class} object_id: #{object_id} => Connection: #{connKey}"
      $miqBrokerObjRegistryByConn[connKey] << self
    end

    $miqBrokerObjIdMap[object_id] = id
    $miqBrokerObjCounts[self.class.to_s] = 0 unless $miqBrokerObjCounts[self.class.to_s]
    $miqBrokerObjCounts[self.class.to_s] += 1
  end
  nil
end

#releaseObject



83
84
85
86
87
# File 'lib/VMwareWebService/MiqVimBrokerMods.rb', line 83

def release
  $vim_log.info "MiqBrokerObjRegistry.release: #{self.class} object_id: #{object_id}"
  unregisterBrokerObj
  release_orig
end

#unregisterBrokerObjObject



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

def unregisterBrokerObj
  $miqBrokerObjRegistryLock.synchronize(:EX) do
    return unless (id = $miqBrokerObjIdMap[object_id])
    $vim_log.info "MiqBrokerObjRegistry.unregisterBrokerObj: #{self.class} object_id: #{object_id} => SessionId: #{id}"
    $miqBrokerObjRegistry[id].delete(self)
    $miqBrokerObjRegistry.delete(id) if $miqBrokerObjRegistry[id].empty?
    if defined? @invObj
      connKey = "#{@invObj.server}_#{@invObj.username}"
      $vim_log.info "MiqBrokerObjRegistry.unregisterBrokerObj: #{self.class} object_id: #{object_id} => Connection: #{connKey}"
      $miqBrokerObjRegistryByConn[connKey].delete(self)
      $miqBrokerObjRegistryByConn.delete(connKey) if $miqBrokerObjRegistryByConn[connKey].empty?
    end
    $miqBrokerObjIdMap.delete(object_id)
    $miqBrokerObjCounts[self.class.to_s] -= 1
  end
  nil
end