facter 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of facter might be problematic. Click here for more details.

Files changed (139) hide show
  1. data/COMMITTERS.md +25 -34
  2. data/CONTRIBUTING.md +27 -5
  3. data/README.md +32 -0
  4. data/ext/build_defaults.yaml +1 -1
  5. data/ext/debian/control +3 -2
  6. data/ext/osx/file_mapping.yaml +5 -0
  7. data/ext/redhat/facter.spec.erb +4 -1
  8. data/lib/facter/Cfkey.rb +2 -2
  9. data/lib/facter/architecture.rb +2 -2
  10. data/lib/facter/augeasversion.rb +2 -2
  11. data/lib/facter/blockdevices.rb +12 -12
  12. data/lib/facter/dhcp_servers.rb +4 -4
  13. data/lib/facter/domain.rb +4 -4
  14. data/lib/facter/ec2.rb +17 -0
  15. data/lib/facter/ec2/rest.rb +2 -2
  16. data/lib/facter/facterversion.rb +2 -2
  17. data/lib/facter/filesystems.rb +10 -3
  18. data/lib/facter/fqdn.rb +1 -1
  19. data/lib/facter/gid.rb +16 -0
  20. data/lib/facter/hardwareisa.rb +3 -3
  21. data/lib/facter/hardwaremodel.rb +3 -3
  22. data/lib/facter/hostname.rb +1 -1
  23. data/lib/facter/id.rb +4 -4
  24. data/lib/facter/interfaces.rb +3 -0
  25. data/lib/facter/ipaddress6.rb +9 -9
  26. data/lib/facter/kernel.rb +2 -2
  27. data/lib/facter/kernelmajversion.rb +2 -2
  28. data/lib/facter/kernelrelease.rb +4 -4
  29. data/lib/facter/kernelversion.rb +3 -3
  30. data/lib/facter/ldom.rb +11 -0
  31. data/lib/facter/lsbdistcodename.rb +8 -4
  32. data/lib/facter/lsbdistdescription.rb +6 -10
  33. data/lib/facter/lsbdistid.rb +8 -4
  34. data/lib/facter/lsbdistrelease.rb +8 -4
  35. data/lib/facter/lsbmajdistrelease.rb +7 -12
  36. data/lib/facter/lsbminordistrelease.rb +22 -0
  37. data/lib/facter/lsbrelease.rb +8 -4
  38. data/lib/facter/macaddress.rb +1 -0
  39. data/lib/facter/macosx.rb +1 -1
  40. data/lib/facter/manufacturer.rb +3 -3
  41. data/lib/facter/memory.rb +8 -8
  42. data/lib/facter/netmask.rb +2 -1
  43. data/lib/facter/network.rb +3 -3
  44. data/lib/facter/operatingsystem.rb +9 -126
  45. data/lib/facter/operatingsystem/base.rb +61 -0
  46. data/lib/facter/operatingsystem/cumuluslinux.rb +27 -0
  47. data/lib/facter/operatingsystem/implementation.rb +30 -0
  48. data/lib/facter/operatingsystem/linux.rb +467 -0
  49. data/lib/facter/operatingsystem/sunos.rb +54 -0
  50. data/lib/facter/operatingsystem/vmkernel.rb +11 -0
  51. data/lib/facter/operatingsystem/windows.rb +37 -0
  52. data/lib/facter/operatingsystemmajrelease.rb +14 -33
  53. data/lib/facter/operatingsystemrelease.rb +14 -235
  54. data/lib/facter/os.rb +69 -0
  55. data/lib/facter/osfamily.rb +4 -23
  56. data/lib/facter/partitions.rb +4 -3
  57. data/lib/facter/path.rb +2 -2
  58. data/lib/facter/physicalprocessorcount.rb +10 -74
  59. data/lib/facter/processor.rb +13 -129
  60. data/lib/facter/processors.rb +60 -0
  61. data/lib/facter/processors/os.rb +234 -0
  62. data/lib/facter/ps.rb +5 -4
  63. data/lib/facter/puppetversion.rb +1 -1
  64. data/lib/facter/rackspace.rb +34 -0
  65. data/lib/facter/rubysitedir.rb +3 -0
  66. data/lib/facter/rubyversion.rb +2 -2
  67. data/lib/facter/selinux.rb +57 -2
  68. data/lib/facter/ssh.rb +1 -0
  69. data/lib/facter/system_uptime.rb +42 -0
  70. data/lib/facter/timezone.rb +1 -1
  71. data/lib/facter/uptime.rb +5 -23
  72. data/lib/facter/uptime_days.rb +4 -6
  73. data/lib/facter/uptime_hours.rb +4 -6
  74. data/lib/facter/uptime_seconds.rb +5 -9
  75. data/lib/facter/util/formatter.rb +1 -1
  76. data/lib/facter/util/manufacturer.rb +1 -1
  77. data/lib/facter/util/partitions.rb +3 -1
  78. data/lib/facter/util/partitions/linux.rb +1 -1
  79. data/lib/facter/util/partitions/openbsd.rb +35 -0
  80. data/lib/facter/util/uptime.rb +4 -3
  81. data/lib/facter/util/virtual.rb +3 -1
  82. data/lib/facter/util/xendomains.rb +12 -3
  83. data/lib/facter/version.rb +1 -1
  84. data/lib/facter/virtual.rb +24 -23
  85. data/lib/facter/vlans.rb +1 -1
  86. data/lib/facter/xendomains.rb +1 -1
  87. data/lib/facter/zfs_version.rb +6 -2
  88. data/lib/facter/zones.rb +6 -5
  89. data/lib/facter/zpool_version.rb +1 -1
  90. data/spec/fixtures/cpuinfo/amd64dual-grep +2 -0
  91. data/spec/fixtures/cpuinfo/amd64twentyfour-grep +24 -0
  92. data/spec/fixtures/cpuinfo/two_multicore-grep +4 -0
  93. data/spec/fixtures/cpuinfo/two_singlecore-grep +2 -0
  94. data/spec/fixtures/unit/processors/os/darwin-system-profiler +287 -0
  95. data/spec/fixtures/unit/zfs_version/zfs_new +61 -0
  96. data/spec/fixtures/unit/zfs_version/zfs_old +43 -0
  97. data/spec/fixtures/unit/zfs_version/zfsonlinux_0.6.1 +13 -0
  98. data/spec/fixtures/unit/zpool_version/zfsonlinux_0.6.1 +48 -0
  99. data/spec/unit/ec2/rest_spec.rb +6 -6
  100. data/spec/unit/gid_spec.rb +22 -0
  101. data/spec/unit/hardwaremodel_spec.rb +2 -0
  102. data/spec/unit/lsbdistcodename_spec.rb +22 -17
  103. data/spec/unit/lsbdistdescription_spec.rb +22 -17
  104. data/spec/unit/lsbdistid_spec.rb +23 -18
  105. data/spec/unit/lsbdistrelease_spec.rb +22 -17
  106. data/spec/unit/lsbmajdistrelease_spec.rb +23 -6
  107. data/spec/unit/lsbminordistrelease_spec.rb +31 -0
  108. data/spec/unit/lsbrelease_spec.rb +22 -17
  109. data/spec/unit/macaddress_spec.rb +3 -0
  110. data/spec/unit/operatingsystem/base_spec.rb +76 -0
  111. data/spec/unit/operatingsystem/cumuluslinux_spec.rb +40 -0
  112. data/spec/unit/operatingsystem/implementation_spec.rb +49 -0
  113. data/spec/unit/operatingsystem/linux_spec.rb +538 -0
  114. data/spec/unit/operatingsystem/sunos_spec.rb +144 -0
  115. data/spec/unit/operatingsystem/vmkernel_spec.rb +13 -0
  116. data/spec/unit/operatingsystem/windows_spec.rb +68 -0
  117. data/spec/unit/operatingsystem_spec.rb +10 -153
  118. data/spec/unit/operatingsystemmajrelease_spec.rb +14 -31
  119. data/spec/unit/operatingsystemrelease_spec.rb +13 -229
  120. data/spec/unit/os_spec.rb +131 -0
  121. data/spec/unit/osfamily_spec.rb +9 -54
  122. data/spec/unit/partitions_spec.rb +41 -3
  123. data/spec/unit/physicalprocessorcount_spec.rb +6 -78
  124. data/spec/unit/processor_spec.rb +18 -381
  125. data/spec/unit/processors/os_spec.rb +446 -0
  126. data/spec/unit/processors_spec.rb +203 -0
  127. data/spec/unit/rackspace_spec.rb +40 -0
  128. data/spec/unit/system_uptime_spec.rb +80 -0
  129. data/spec/unit/util/formatter_spec.rb +5 -0
  130. data/spec/unit/util/macaddress_spec.rb +2 -0
  131. data/spec/unit/util/processor_spec.rb +120 -0
  132. data/spec/unit/util/uptime_spec.rb +3 -4
  133. data/spec/unit/util/virtual_spec.rb +8 -0
  134. data/spec/unit/util/xendomains_spec.rb +54 -9
  135. data/spec/unit/virtual_spec.rb +8 -1
  136. data/spec/unit/zfs_version_spec.rb +20 -8
  137. data/spec/unit/zpool_version_spec.rb +5 -0
  138. metadata +652 -589
  139. checksums.yaml +0 -7
@@ -1,6 +1,6 @@
1
1
  module Facter
2
2
  if not defined? FACTERVERSION then
3
- FACTERVERSION = '2.1.0'
3
+ FACTERVERSION = '2.2.0'
4
4
  end
5
5
 
6
6
  # Returns the running version of Facter.
@@ -1,31 +1,42 @@
1
1
  # Fact: virtual
2
2
  #
3
- # Purpose: Determine if the system's hardware is real or virtualised.
3
+ # Purpose: Determine if the system's hardware is real or virtualized.
4
4
  #
5
5
  # Resolution:
6
6
  # Assumes physical unless proven otherwise.
7
7
  #
8
- # On Darwin, use the macosx util module to acquire the SPHardwareDataType and
9
- # SPEthernetDataType, from which it is possible to determine if the host is a
10
- # VMware, Parallels, or VirtualBox. This previously used SPDisplaysDataType
8
+ # On Darwin, use the macosx util module to acquire the SPHardwareDataType
9
+ # and SPEthernetDataType, from which it is possible to determine if the host is
10
+ # a VMware, Parallels, or VirtualBox. This previously used SPDisplaysDataType,
11
11
  # which was not reliable if running headless, and also caused lagging issues
12
12
  # on actual Macs.
13
13
  #
14
- # On Linux, BSD, Solaris and HPUX:
15
- # Much of the logic here is obscured behind util/virtual.rb, which rather
16
- # than document here, which would encourage drift, just refer to it.
17
- # The Xen tests in here rely on /sys and /proc, and check for the presence and
14
+ # On Linux, BSD, Solaris and HPUX: Much of the logic here is obscured behind
15
+ # `util/virtual.rb`, which you can consult directly for more detailed resolution
16
+ # information.
17
+ # The Xen tests in here rely on `/sys` and `/proc,` and check for the presence and
18
18
  # contents of files in there.
19
- # If after all the other tests, it's still seen as physical, then it tries to
20
- # parse the output of the "lspci", "dmidecode" and "prtdiag" and parses them
19
+ # If after all the other tests it's still seen as physical, then it tries to
20
+ # parse the output of the `lspci`, `dmidecode`, and `prtdiag` and parses them
21
21
  # for obvious signs of being under VMware, Parallels or VirtualBox.
22
- # Finally it checks for the existence of vmware-vmx, which would hint it's
23
- # VMware.
22
+ # Finally, it checks for the existence of `vmware-vmx`, which would hint that
23
+ # it's VMware.
24
24
  #
25
25
  # Caveats:
26
26
  # Many checks rely purely on existence of files.
27
27
  #
28
28
 
29
+ # Fact: is_virtual
30
+ #
31
+ # Purpose: Return `true` or `false` depending on whether a machine is virtualized or not.
32
+ #
33
+ # Resolution: Hypervisors and the like may be detected as a virtual type, but
34
+ # are not actual virtual machines, or should not be treated as such. This
35
+ # determines if the host is actually virtualized.
36
+ #
37
+ # Caveats:
38
+ #
39
+
29
40
  require 'facter/util/virtual'
30
41
 
31
42
  Facter.add("virtual") do
@@ -106,6 +117,7 @@ Facter.add("virtual") do
106
117
  next "virtualbox" if lines.any? {|l| l =~ /VirtualBox/ }
107
118
  next "xenhvm" if lines.any? {|l| l =~ /HVM domU/ }
108
119
  next "ovirt" if lines.any? {|l| l =~ /oVirt Node/ }
120
+ next "kvm" if lines.any? {|l| l =~ /KVM/ }
109
121
  end
110
122
  end
111
123
  end
@@ -285,17 +297,6 @@ Facter.add("virtual") do
285
297
  end
286
298
  end
287
299
 
288
- # Fact: is_virtual
289
- #
290
- # Purpose: returning true or false for if a machine is virtualised or not.
291
- #
292
- # Resolution: Hypervisors and the like may be detected as a virtual type, but
293
- # are not actual virtual machines, or should not be treated as such. This
294
- # determines if the host is actually virtualized.
295
- #
296
- # Caveats:
297
- #
298
-
299
300
  Facter.add("is_virtual") do
300
301
  confine :kernel => %w{Linux FreeBSD OpenBSD SunOS HP-UX Darwin GNU/kFreeBSD windows}
301
302
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Purpose: On Linux, return a list of all the VLANs on the system.
4
4
  #
5
- # Resolution: On Linux only, checks for and reads /proc/net/vlan/config and
5
+ # Resolution: On Linux only, checks for and reads `/proc/net/vlan/config` and
6
6
  # parses it.
7
7
  #
8
8
  # Caveats:
@@ -3,7 +3,7 @@
3
3
  # Purpose: Return the list of Xen domains on the Dom0.
4
4
  #
5
5
  # Resolution:
6
- # On a Xen Dom0 host, return a list of Xen domains using the 'util/xendomains'
6
+ # On a Xen Dom0 host, return a list of Xen domains using the `util/xendomains`
7
7
  # library.
8
8
  #
9
9
  # Caveats:
@@ -3,8 +3,12 @@ require 'facter'
3
3
  Facter.add('zfs_version') do
4
4
  setcode do
5
5
  if Facter::Core::Execution.which('zfs')
6
- zfs_v = Facter::Core::Execution.exec('zfs upgrade -v')
7
- zfs_version = zfs_v.scan(/^\s+(\d+)\s+/m).flatten.last unless zfs_v.empty?
6
+ zfs_help = Facter::Core::Execution.exec('zfs -? 2> /dev/null')
7
+ zfs_has_upgrade = zfs_help.match(/\A.*upgrade.*\z/m) unless zfs_help.nil?
8
+ if zfs_has_upgrade
9
+ zfs_v = Facter::Core::Execution.exec('zfs upgrade -v')
10
+ zfs_version = zfs_v.scan(/^\s+(\d+)\s+/m).flatten.last unless zfs_v.nil?
11
+ end
8
12
  end
9
13
  end
10
14
  end
@@ -1,16 +1,17 @@
1
- # Fact: zones#
1
+ # Fact: zones_<ZONE>
2
2
  #
3
3
  # Purpose:
4
4
  # Return the list of zones on the system and add one zones_ fact
5
- # for each zone with its state e.g. running, incomplete or installed.
5
+ # for each zone with its state e.g. `running`, `incomplete`, or `installed`.
6
6
  #
7
7
  # Resolution:
8
- # Uses 'usr/sbin/zoneadm list -cp' to get the list of zones in separate parsable
9
- # lines with delimeter being ':' which is used to split the line string and get
8
+ # Uses `usr/sbin/zoneadm list -cp` to get the list of zones in separate parsable
9
+ # lines with delimeter being `:` which is used to split the line string and get
10
10
  # the zone details.
11
11
  #
12
12
  # Caveats:
13
- # We dont support below s10 where zones are not available.
13
+ # Only supported on Solaris 10 and up.
14
+ #
14
15
  require 'facter/util/solaris_zones'
15
16
  if Facter.value(:kernel) == 'SunOS'
16
17
  Facter::Util::SolarisZones.add_facts
@@ -4,7 +4,7 @@ Facter.add('zpool_version') do
4
4
  setcode do
5
5
  if Facter::Core::Execution.which('zpool')
6
6
  zpool_v = Facter::Core::Execution.exec('zpool upgrade -v')
7
- zpool_version = zpool_v.match(/ZFS pool version (\d+)./).captures.first unless zpool_v.empty?
7
+ zpool_version = zpool_v.scan(/^\s+(\d+)\s+/m).flatten.last unless zpool_v.nil?
8
8
  end
9
9
  end
10
10
  end
@@ -0,0 +1,2 @@
1
+ physical id : 0
2
+ physical id : 0
@@ -0,0 +1,24 @@
1
+ physical id : 0
2
+ physical id : 0
3
+ physical id : 0
4
+ physical id : 0
5
+ physical id : 0
6
+ physical id : 0
7
+ physical id : 1
8
+ physical id : 1
9
+ physical id : 1
10
+ physical id : 1
11
+ physical id : 1
12
+ physical id : 1
13
+ physical id : 0
14
+ physical id : 0
15
+ physical id : 0
16
+ physical id : 0
17
+ physical id : 0
18
+ physical id : 0
19
+ physical id : 1
20
+ physical id : 1
21
+ physical id : 1
22
+ physical id : 1
23
+ physical id : 1
24
+ physical id : 1
@@ -0,0 +1,4 @@
1
+ physical id : 0
2
+ physical id : 0
3
+ physical id : 1
4
+ physical id : 1
@@ -0,0 +1,2 @@
1
+ physical id : 0
2
+ physical id : 1
@@ -0,0 +1,287 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <array>
5
+ <dict>
6
+ <key>_SPCommandLineArguments</key>
7
+ <array>
8
+ <string>/usr/sbin/system_profiler</string>
9
+ <string>-nospawn</string>
10
+ <string>-xml</string>
11
+ <string>SPHardwareDataType</string>
12
+ <string>-detailLevel</string>
13
+ <string>full</string>
14
+ </array>
15
+ <key>_SPCompletionInterval</key>
16
+ <real>0.012148022651672363</real>
17
+ <key>_SPResponseTime</key>
18
+ <real>0.11940205097198486</real>
19
+ <key>_dataType</key>
20
+ <string>SPHardwareDataType</string>
21
+ <key>_detailLevel</key>
22
+ <string>-2</string>
23
+ <key>_items</key>
24
+ <array>
25
+ <dict>
26
+ <key>SMC_version_system</key>
27
+ <string>2.19f7</string>
28
+ <key>_name</key>
29
+ <string>hardware_overview</string>
30
+ <key>boot_rom_version</key>
31
+ <string>MBP112.0138.B07</string>
32
+ <key>cpu_type</key>
33
+ <string>Intel Core i7</string>
34
+ <key>current_processor_speed</key>
35
+ <string>2.3 GHz</string>
36
+ <key>l2_cache_core</key>
37
+ <string>256 KB</string>
38
+ <key>l3_cache</key>
39
+ <string>6 MB</string>
40
+ <key>machine_model</key>
41
+ <string>MacBookPro11,3</string>
42
+ <key>machine_name</key>
43
+ <string>MacBook Pro</string>
44
+ <key>number_processors</key>
45
+ <integer>4</integer>
46
+ <key>packages</key>
47
+ <integer>1</integer>
48
+ <key>physical_memory</key>
49
+ <string>16 GB</string>
50
+ <key>platform_UUID</key>
51
+ <string>24A95B44-2444-59CF-9D9B-A42CF82590AE</string>
52
+ <key>serial_number</key>
53
+ <string>C02MQ15KFD57</string>
54
+ </dict>
55
+ </array>
56
+ <key>_parentDataType</key>
57
+ <string>SPRootDataType</string>
58
+ <key>_properties</key>
59
+ <dict>
60
+ <key>LOM_revision</key>
61
+ <dict>
62
+ <key>_order</key>
63
+ <string>85</string>
64
+ </dict>
65
+ <key>Lightshow_version</key>
66
+ <dict>
67
+ <key>_order</key>
68
+ <string>83</string>
69
+ <key>_suppressLocalization</key>
70
+ <string>YES</string>
71
+ </dict>
72
+ <key>MMM_state</key>
73
+ <dict>
74
+ <key>_order</key>
75
+ <string>70</string>
76
+ </dict>
77
+ <key>SMC_version_other</key>
78
+ <dict>
79
+ <key>_order</key>
80
+ <string>82</string>
81
+ </dict>
82
+ <key>SMC_version_riser</key>
83
+ <dict>
84
+ <key>_order</key>
85
+ <string>81</string>
86
+ </dict>
87
+ <key>SMC_version_system</key>
88
+ <dict>
89
+ <key>_order</key>
90
+ <string>80</string>
91
+ <key>_suppressLocalization</key>
92
+ <string>YES</string>
93
+ </dict>
94
+ <key>apple_rom_info</key>
95
+ <dict>
96
+ <key>_order</key>
97
+ <string>53</string>
98
+ </dict>
99
+ <key>boot_rom_release_date</key>
100
+ <dict>
101
+ <key>_order</key>
102
+ <string>52</string>
103
+ </dict>
104
+ <key>boot_rom_vendor</key>
105
+ <dict>
106
+ <key>_order</key>
107
+ <string>50</string>
108
+ </dict>
109
+ <key>boot_rom_version</key>
110
+ <dict>
111
+ <key>_order</key>
112
+ <string>51</string>
113
+ </dict>
114
+ <key>bus_speed</key>
115
+ <dict>
116
+ <key>_order</key>
117
+ <string>45</string>
118
+ </dict>
119
+ <key>cores_per_package</key>
120
+ <dict>
121
+ <key>_order</key>
122
+ <string>24</string>
123
+ </dict>
124
+ <key>cpu_interconnect_speed</key>
125
+ <dict>
126
+ <key>_order</key>
127
+ <string>46</string>
128
+ </dict>
129
+ <key>cpu_type</key>
130
+ <dict>
131
+ <key>_order</key>
132
+ <string>15</string>
133
+ </dict>
134
+ <key>current_processor_speed</key>
135
+ <dict>
136
+ <key>_order</key>
137
+ <string>17</string>
138
+ </dict>
139
+ <key>l2_cache</key>
140
+ <dict>
141
+ <key>_order</key>
142
+ <string>26</string>
143
+ </dict>
144
+ <key>l2_cache_core</key>
145
+ <dict>
146
+ <key>_order</key>
147
+ <string>26</string>
148
+ </dict>
149
+ <key>l2_cache_share</key>
150
+ <dict>
151
+ <key>_order</key>
152
+ <string>26</string>
153
+ </dict>
154
+ <key>l2_cache_size</key>
155
+ <dict>
156
+ <key>_order</key>
157
+ <string>26</string>
158
+ </dict>
159
+ <key>l3_cache</key>
160
+ <dict>
161
+ <key>_order</key>
162
+ <string>27</string>
163
+ </dict>
164
+ <key>l3_cache_processor</key>
165
+ <dict>
166
+ <key>_order</key>
167
+ <string>27</string>
168
+ </dict>
169
+ <key>l3_cache_size</key>
170
+ <dict>
171
+ <key>_order</key>
172
+ <string>27</string>
173
+ </dict>
174
+ <key>machine_model</key>
175
+ <dict>
176
+ <key>_order</key>
177
+ <string>11</string>
178
+ </dict>
179
+ <key>machine_name</key>
180
+ <dict>
181
+ <key>_order</key>
182
+ <string>10</string>
183
+ </dict>
184
+ <key>maximum_processor_speed</key>
185
+ <dict>
186
+ <key>_order</key>
187
+ <string>19</string>
188
+ </dict>
189
+ <key>minimum_processor_speed</key>
190
+ <dict>
191
+ <key>_order</key>
192
+ <string>18</string>
193
+ </dict>
194
+ <key>number_cpus</key>
195
+ <dict>
196
+ <key>_order</key>
197
+ <string>20</string>
198
+ </dict>
199
+ <key>number_processors</key>
200
+ <dict>
201
+ <key>_order</key>
202
+ <string>22</string>
203
+ </dict>
204
+ <key>packages</key>
205
+ <dict>
206
+ <key>_order</key>
207
+ <string>20</string>
208
+ </dict>
209
+ <key>physical_memory</key>
210
+ <dict>
211
+ <key>_order</key>
212
+ <string>40</string>
213
+ </dict>
214
+ <key>platform_UUID</key>
215
+ <dict>
216
+ <key>_detailLevel</key>
217
+ <string>0</string>
218
+ <key>_order</key>
219
+ <string>98</string>
220
+ </dict>
221
+ <key>platform_cpu_features</key>
222
+ <dict>
223
+ <key>_order</key>
224
+ <string>30</string>
225
+ </dict>
226
+ <key>platform_cpu_htt</key>
227
+ <dict>
228
+ <key>_order</key>
229
+ <string>28</string>
230
+ </dict>
231
+ <key>platform_cpu_vendor</key>
232
+ <dict>
233
+ <key>_order</key>
234
+ <string>12</string>
235
+ </dict>
236
+ <key>platform_manufacturer</key>
237
+ <dict>
238
+ <key>_order</key>
239
+ <string>4</string>
240
+ </dict>
241
+ <key>platform_product_name</key>
242
+ <dict>
243
+ <key>_order</key>
244
+ <string>2</string>
245
+ </dict>
246
+ <key>platform_version</key>
247
+ <dict>
248
+ <key>_order</key>
249
+ <string>6</string>
250
+ </dict>
251
+ <key>riser_serial_number</key>
252
+ <dict>
253
+ <key>_detailLevel</key>
254
+ <string>0</string>
255
+ <key>_order</key>
256
+ <string>92</string>
257
+ </dict>
258
+ <key>sales_order_number</key>
259
+ <dict>
260
+ <key>_detailLevel</key>
261
+ <string>0</string>
262
+ <key>_order</key>
263
+ <string>95</string>
264
+ </dict>
265
+ <key>serial_number</key>
266
+ <dict>
267
+ <key>_detailLevel</key>
268
+ <string>0</string>
269
+ <key>_order</key>
270
+ <string>90</string>
271
+ </dict>
272
+ <key>volumes</key>
273
+ <dict>
274
+ <key>_detailLevel</key>
275
+ <string>0</string>
276
+ </dict>
277
+ </dict>
278
+ <key>_timeStamp</key>
279
+ <date>2014-07-09T18:43:25Z</date>
280
+ <key>_versionInfo</key>
281
+ <dict>
282
+ <key>com.apple.SystemProfiler.SPPlatformReporter</key>
283
+ <string>1441</string>
284
+ </dict>
285
+ </dict>
286
+ </array>
287
+ </plist>