Class: MiqVimEventHistoryCollector

Inherits:
Object
  • Object
show all
Includes:
DRb::DRbUndumped, MiqBrokerObjRegistry, MiqBrokerVimConnectionCheck
Defined in:
lib/VMwareWebService/MiqVimBrokerMods.rb,
lib/VMwareWebService/MiqVimEventHistoryCollector.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MiqBrokerVimConnectionCheck

#connectionRemoved?

Methods included from MiqBrokerObjRegistry

#holdBrokerObj, #registerBrokerObj, #unregisterBrokerObj

Constructor Details

#initialize(invObj, eventFilterSpec = nil, pgSize = 20) ⇒ MiqVimEventHistoryCollector

Returns a new instance of MiqVimEventHistoryCollector.



4
5
6
7
8
9
10
11
12
13
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 4

def initialize(invObj, eventFilterSpec = nil, pgSize = 20)
  @invObj                 = invObj
  @sic                    = invObj.sic
  @pgSize                 = pgSize

  @eventFilterSpec = eventFilterSpec || VimHash.new("EventFilterSpec")

  @eventHistoryCollector = @invObj.createCollectorForEvents(@sic.eventManager, @eventFilterSpec)
  @invObj.setCollectorPageSize(@eventHistoryCollector, @pgSize)
end

Instance Attribute Details

#invObjObject (readonly)

Returns the value of attribute invObj.



2
3
4
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 2

def invObj
  @invObj
end

Instance Method Details

#events(direction = :forward, maxCount = @pgSize) ⇒ Object

Helper method that yields all requested events



53
54
55
56
57
58
59
60
61
62
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 53

def events(direction = :forward, maxCount = @pgSize)
  set_method, next_method = (direction == :forward) ? [:rewind, :readNext] : [:reset, :readPrevious]
  send(set_method)

  readNext if direction == :reverse   # Hack to fix issue with VC setting to first page of events

  while (events_page = send(next_method, maxCount))
    events_page.each { |event| yield(event) }
  end
end

#pageSizeObject



42
43
44
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 42

def pageSize
  @pgSize
end

#pageSize=(val) ⇒ Object



46
47
48
49
50
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 46

def pageSize=(val)
  raise "MiqVimEventHistoryCollector.pageSize=: collector instance has been released" unless @eventHistoryCollector
  @invObj.setCollectorPageSize(@eventHistoryCollector, val)
  @pgSize = val
end

#readNext(maxCount = @pgSize) ⇒ Object



22
23
24
25
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 22

def readNext(maxCount = @pgSize)
  raise "MiqVimEventHistoryCollector.readNext: collector instance has been released" unless @eventHistoryCollector
  @invObj.readNextEvents(@eventHistoryCollector, maxCount)
end

#readPrevious(maxCount = @pgSize) ⇒ Object



27
28
29
30
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 27

def readPrevious(maxCount = @pgSize)
  raise "MiqVimEventHistoryCollector.readPrevious: collector instance has been released" unless @eventHistoryCollector
  @invObj.readPreviousEvents(@eventHistoryCollector, maxCount)
end

#releaseObject



15
16
17
18
19
20
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 15

def release
  return unless @eventHistoryCollector
  $vim_log.info "MiqVimEventHistoryCollector.release: destroying #{@eventHistoryCollector}"
  @invObj.destroyCollector(@eventHistoryCollector)
  @eventHistoryCollector = nil
end

#release_origObject



154
# File 'lib/VMwareWebService/MiqVimBrokerMods.rb', line 154

alias_method :release_orig, :release

#resetObject



32
33
34
35
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 32

def reset
  raise "MiqVimEventHistoryCollector.reset: collector instance has been released" unless @eventHistoryCollector
  @invObj.resetCollector(@eventHistoryCollector)
end

#rewindObject



37
38
39
40
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 37

def rewind
  raise "MiqVimEventHistoryCollector.rewind: collector instance has been released" unless @eventHistoryCollector
  @invObj.rewindCollector(@eventHistoryCollector)
end