Class: MiqVimEventHistoryCollector

Inherits:
Object
  • Object
show all
Includes:
VMwareWebService::Logging
Defined in:
lib/VMwareWebService/MiqVimEventHistoryCollector.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from VMwareWebService::Logging

#logger

Constructor Details

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

Returns a new instance of MiqVimEventHistoryCollector.



8
9
10
11
12
13
14
15
16
17
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 8

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.



6
7
8
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 6

def invObj
  @invObj
end

Instance Method Details

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

Helper method that yields all requested events



57
58
59
60
61
62
63
64
65
66
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 57

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



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

def pageSize
  @pgSize
end

#pageSize=(val) ⇒ Object



50
51
52
53
54
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 50

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

#readNext(maxCount = @pgSize) ⇒ Object



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

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

#readPrevious(maxCount = @pgSize) ⇒ Object



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

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

#releaseObject



19
20
21
22
23
24
# File 'lib/VMwareWebService/MiqVimEventHistoryCollector.rb', line 19

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

#resetObject



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

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

#rewindObject



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

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