Module: MiqVimDump

Included in:
MiqVimCoreUpdater, MiqVimInventory
Defined in:
lib/VMwareWebService/MiqVimDump.rb

Instance Method Summary collapse

Instance Method Details

#dumpAllObject

def dumpMors



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/VMwareWebService/MiqVimDump.rb', line 77

def dumpAll
  accessors = [
    "hostSystemsByMor",
    "datacentersByMor",
    "foldersByMor",
    "resourcePoolsByMor",
    "clusterComputeResourcesByMor",
    "computeResourcesByMor",
    "virtualMachinesByMor",
    "dataStoresByMor"
  ]

  oldGi = @globalIndent
  @globalIndent = "\t\t"

  accessors.each do |a|
    puts
    puts "*" * (a.length + 1)
    puts "#{a}:"
    send(a).each do |k, o|
      puts "\t#{k}"
      dumpObj(o)
    end
  end
  @globalIndent = oldGi
end

#dumpArray(a, level) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/VMwareWebService/MiqVimDump.rb', line 29

def dumpArray(a, level)
  i = 0
  a.each do |ae|
    s = ""
    s = " <#{ae.xsiType}>" if ae.respond_to?(:xsiType) && !ae.xsiType.nil?
    indentedPrint("Level#{level} (#{ae.class}), [#{i}]#{s}:", level)
    dumpObj(ae, level + 1)
    i += 1
  end
end

#dumpClass(obj, level) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/VMwareWebService/MiqVimDump.rb', line 40

def dumpClass(obj, level)
  indentedPrint("*** Object type: " + obj.class.to_s, level)
  return unless obj
  if obj.kind_of?(DateTime)
    indentedPrint("Level#{level}, #{obj}:", level)
    return
  end
  obj.instance_variables.each do |ivn|
    indentedPrint("Level#{level}, #{ivn}:", level)
    dumpObj(obj.instance_variable_get(ivn), level + 1)
  end
end

#dumpHash(h, level) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/VMwareWebService/MiqVimDump.rb', line 20

def dumpHash(h, level)
  h.each do |k, v|
    s = ""
    s = " <#{v.xsiType}>" if v.respond_to?(:xsiType) && !v.xsiType.nil?
    indentedPrint("Level#{level} (#{v.class}), #{k}#{s}:", level)
    dumpObj(v, level + 1)
  end
end

#dumpHostInfoObject



104
105
106
107
108
109
110
# File 'lib/VMwareWebService/MiqVimDump.rb', line 104

def dumpHostInfo
  inventoryHash['HostSystem'].each do |hsMor|
    # puts "*** NEW"
    prop = getMoProp(hsMor)
    dumpObj(prop)
  end
end

#dumpMorsObject



70
71
72
73
74
75
# File 'lib/VMwareWebService/MiqVimDump.rb', line 70

def dumpMors
  inventoryHash.each do |t, moa|
    puts "#{t}:"
    moa.each { |mor| puts "\t#{mor}" }
  end
end

#dumpObj(obj, level = 0) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/VMwareWebService/MiqVimDump.rb', line 2

def dumpObj(obj, level = 0)
  @globalIndent = "" unless @globalIndent
  @dumpToLog = false if @dumpToLog.nil?
  if level == 0 && obj.respond_to?(:xsiType) && !obj.xsiType.nil?
    indentedPrint("#{obj.class.name} <#{obj.xsiType}>:", 0)
    @globalIndent += "    "
  end
  if obj.kind_of? Array
    dumpArray(obj, level)
  elsif obj.kind_of? Hash
    dumpHash(obj, level)
  elsif obj.kind_of?(String) || obj.kind_of?(Numeric)
    indentedPrint(obj, level)
  else
    dumpClass(obj, level)
  end
end

#dumpToLog=(val) ⇒ Object



57
58
59
# File 'lib/VMwareWebService/MiqVimDump.rb', line 57

def dumpToLog=(val)
  @dumpToLog = val
end

#globalIndent=(val) ⇒ Object



53
54
55
# File 'lib/VMwareWebService/MiqVimDump.rb', line 53

def globalIndent=(val)
  @globalIndent = val
end

#indentedPrint(s, i) ⇒ Object



61
62
63
64
65
66
67
68
# File 'lib/VMwareWebService/MiqVimDump.rb', line 61

def indentedPrint(s, i)
  if @dumpToLog
    $vim_log.debug @globalIndent + ("    " * i) + s.to_s
  else
    print @globalIndent + "    " * i
    puts s
  end
end