ohai 18.2.6 → 19.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +28 -28
  3. data/LICENSE +201 -201
  4. data/bin/ohai +25 -25
  5. data/lib/ohai/application.rb +189 -189
  6. data/lib/ohai/common/dmi.rb +167 -167
  7. data/lib/ohai/config.rb +51 -51
  8. data/lib/ohai/dsl/plugin/versionvii.rb +203 -203
  9. data/lib/ohai/dsl/plugin.rb +232 -232
  10. data/lib/ohai/dsl.rb +22 -22
  11. data/lib/ohai/exception.rb +36 -36
  12. data/lib/ohai/hints.rb +68 -68
  13. data/lib/ohai/loader.rb +178 -178
  14. data/lib/ohai/log.rb +34 -34
  15. data/lib/ohai/mash.rb +22 -22
  16. data/lib/ohai/mixin/alibaba_metadata.rb +83 -83
  17. data/lib/ohai/mixin/azure_metadata.rb +105 -105
  18. data/lib/ohai/mixin/chef_utils_wiring.rb +52 -52
  19. data/lib/ohai/mixin/command.rb +4 -4
  20. data/lib/ohai/mixin/constant_helper.rb +55 -55
  21. data/lib/ohai/mixin/dmi_decode.rb +54 -54
  22. data/lib/ohai/mixin/do_metadata.rb +48 -48
  23. data/lib/ohai/mixin/ec2_metadata.rb +264 -270
  24. data/lib/ohai/mixin/gce_metadata.rb +79 -79
  25. data/lib/ohai/mixin/http_helper.rb +64 -64
  26. data/lib/ohai/mixin/json_helper.rb +36 -36
  27. data/lib/ohai/mixin/network_helper.rb +92 -92
  28. data/lib/ohai/mixin/oci_metadata.rb +60 -60
  29. data/lib/ohai/mixin/os.rb +128 -128
  30. data/lib/ohai/mixin/scaleway_metadata.rb +51 -51
  31. data/lib/ohai/mixin/seconds_to_human.rb +52 -52
  32. data/lib/ohai/mixin/shell_out.rb +51 -51
  33. data/lib/ohai/mixin/softlayer_metadata.rb +74 -74
  34. data/lib/ohai/mixin/string.rb +31 -31
  35. data/lib/ohai/mixin/train_helpers.rb +36 -36
  36. data/lib/ohai/mixin/which.rb +39 -39
  37. data/lib/ohai/plugin_config.rb +47 -47
  38. data/lib/ohai/plugins/aix/kernel.rb +50 -50
  39. data/lib/ohai/plugins/aix/memory.rb +37 -37
  40. data/lib/ohai/plugins/aix/network.rb +142 -142
  41. data/lib/ohai/plugins/aix/platform.rb +30 -30
  42. data/lib/ohai/plugins/aix/uptime.rb +54 -54
  43. data/lib/ohai/plugins/aix/virtualization.rb +154 -154
  44. data/lib/ohai/plugins/alibaba.rb +72 -72
  45. data/lib/ohai/plugins/azure.rb +154 -154
  46. data/lib/ohai/plugins/bsd/virtualization.rb +121 -121
  47. data/lib/ohai/plugins/c.rb +178 -178
  48. data/lib/ohai/plugins/chef.rb +50 -50
  49. data/lib/ohai/plugins/cloud.rb +379 -379
  50. data/lib/ohai/plugins/command.rb +26 -26
  51. data/lib/ohai/plugins/cpu.rb +642 -642
  52. data/lib/ohai/plugins/darwin/hardware.rb +99 -99
  53. data/lib/ohai/plugins/darwin/memory.rb +62 -62
  54. data/lib/ohai/plugins/darwin/network.rb +207 -207
  55. data/lib/ohai/plugins/darwin/platform.rb +40 -40
  56. data/lib/ohai/plugins/darwin/virtualization.rb +104 -104
  57. data/lib/ohai/plugins/digital_ocean.rb +67 -67
  58. data/lib/ohai/plugins/dmi.rb +134 -134
  59. data/lib/ohai/plugins/docker.rb +58 -58
  60. data/lib/ohai/plugins/dragonflybsd/memory.rb +60 -60
  61. data/lib/ohai/plugins/dragonflybsd/network.rb +128 -128
  62. data/lib/ohai/plugins/dragonflybsd/platform.rb +28 -28
  63. data/lib/ohai/plugins/ec2.rb +148 -148
  64. data/lib/ohai/plugins/elixir.rb +36 -36
  65. data/lib/ohai/plugins/erlang.rb +60 -60
  66. data/lib/ohai/plugins/eucalyptus.rb +86 -86
  67. data/lib/ohai/plugins/filesystem.rb +753 -753
  68. data/lib/ohai/plugins/fips.rb +36 -36
  69. data/lib/ohai/plugins/freebsd/memory.rb +60 -60
  70. data/lib/ohai/plugins/freebsd/network.rb +128 -128
  71. data/lib/ohai/plugins/freebsd/platform.rb +28 -28
  72. data/lib/ohai/plugins/gce.rb +89 -89
  73. data/lib/ohai/plugins/go.rb +34 -34
  74. data/lib/ohai/plugins/groovy.rb +38 -38
  75. data/lib/ohai/plugins/grub2.rb +40 -40
  76. data/lib/ohai/plugins/habitat.rb +73 -73
  77. data/lib/ohai/plugins/haskell.rb +96 -96
  78. data/lib/ohai/plugins/hostname.rb +133 -133
  79. data/lib/ohai/plugins/init_package.rb +26 -26
  80. data/lib/ohai/plugins/java.rb +78 -78
  81. data/lib/ohai/plugins/kernel.rb +292 -292
  82. data/lib/ohai/plugins/keys.rb +27 -27
  83. data/lib/ohai/plugins/languages.rb +26 -26
  84. data/lib/ohai/plugins/libvirt.rb +114 -114
  85. data/lib/ohai/plugins/linode.rb +73 -73
  86. data/lib/ohai/plugins/linux/block_device.rb +48 -48
  87. data/lib/ohai/plugins/linux/hostnamectl.rb +34 -34
  88. data/lib/ohai/plugins/linux/interrupts.rb +84 -83
  89. data/lib/ohai/plugins/linux/ipc.rb +52 -52
  90. data/lib/ohai/plugins/linux/livepatch.rb +38 -38
  91. data/lib/ohai/plugins/linux/lsb.rb +46 -46
  92. data/lib/ohai/plugins/linux/lspci.rb +80 -80
  93. data/lib/ohai/plugins/linux/machineid.rb +36 -36
  94. data/lib/ohai/plugins/linux/mdadm.rb +120 -120
  95. data/lib/ohai/plugins/linux/memory.rb +106 -106
  96. data/lib/ohai/plugins/linux/network.rb +879 -879
  97. data/lib/ohai/plugins/linux/os_release.rb +38 -38
  98. data/lib/ohai/plugins/linux/platform.rb +314 -314
  99. data/lib/ohai/plugins/linux/selinux.rb +69 -69
  100. data/lib/ohai/plugins/linux/sessions.rb +54 -54
  101. data/lib/ohai/plugins/linux/sysctl.rb +39 -39
  102. data/lib/ohai/plugins/linux/systemd_paths.rb +36 -36
  103. data/lib/ohai/plugins/linux/tc.rb +61 -61
  104. data/lib/ohai/plugins/linux/virtualization.rb +300 -300
  105. data/lib/ohai/plugins/lua.rb +39 -39
  106. data/lib/ohai/plugins/mono.rb +50 -50
  107. data/lib/ohai/plugins/netbsd/memory.rb +99 -99
  108. data/lib/ohai/plugins/netbsd/network.rb +122 -122
  109. data/lib/ohai/plugins/netbsd/platform.rb +28 -28
  110. data/lib/ohai/plugins/network.rb +186 -186
  111. data/lib/ohai/plugins/nodejs.rb +40 -40
  112. data/lib/ohai/plugins/oci.rb +94 -94
  113. data/lib/ohai/plugins/ohai.rb +29 -29
  114. data/lib/ohai/plugins/ohai_time.rb +26 -26
  115. data/lib/ohai/plugins/openbsd/memory.rb +99 -99
  116. data/lib/ohai/plugins/openbsd/network.rb +122 -122
  117. data/lib/ohai/plugins/openbsd/platform.rb +28 -28
  118. data/lib/ohai/plugins/openstack.rb +84 -84
  119. data/lib/ohai/plugins/os.rb +55 -55
  120. data/lib/ohai/plugins/packages.rb +234 -234
  121. data/lib/ohai/plugins/passwd.rb +104 -104
  122. data/lib/ohai/plugins/perl.rb +45 -45
  123. data/lib/ohai/plugins/php.rb +52 -52
  124. data/lib/ohai/plugins/platform.rb +41 -41
  125. data/lib/ohai/plugins/powershell.rb +82 -82
  126. data/lib/ohai/plugins/ps.rb +35 -35
  127. data/lib/ohai/plugins/python.rb +43 -43
  128. data/lib/ohai/plugins/rackspace.rb +177 -177
  129. data/lib/ohai/plugins/root_group.rb +41 -41
  130. data/lib/ohai/plugins/rpm.rb +121 -121
  131. data/lib/ohai/plugins/ruby.rb +66 -66
  132. data/lib/ohai/plugins/rust.rb +34 -34
  133. data/lib/ohai/plugins/scala.rb +38 -38
  134. data/lib/ohai/plugins/scaleway.rb +58 -58
  135. data/lib/ohai/plugins/scsi.rb +52 -52
  136. data/lib/ohai/plugins/shard.rb +142 -142
  137. data/lib/ohai/plugins/shells.rb +32 -32
  138. data/lib/ohai/plugins/softlayer.rb +48 -48
  139. data/lib/ohai/plugins/solaris2/dmi.rb +191 -191
  140. data/lib/ohai/plugins/solaris2/memory.rb +32 -32
  141. data/lib/ohai/plugins/solaris2/network.rb +192 -192
  142. data/lib/ohai/plugins/solaris2/platform.rb +58 -58
  143. data/lib/ohai/plugins/solaris2/virtualization.rb +90 -90
  144. data/lib/ohai/plugins/ssh_host_key.rb +84 -84
  145. data/lib/ohai/plugins/sysconf.rb +46 -46
  146. data/lib/ohai/plugins/timezone.rb +45 -45
  147. data/lib/ohai/plugins/train.rb +35 -35
  148. data/lib/ohai/plugins/uptime.rb +95 -95
  149. data/lib/ohai/plugins/virtualbox.rb +197 -197
  150. data/lib/ohai/plugins/vmware.rb +109 -109
  151. data/lib/ohai/plugins/windows/dmi.rb +95 -95
  152. data/lib/ohai/plugins/windows/drivers.rb +52 -52
  153. data/lib/ohai/plugins/windows/memory.rb +39 -39
  154. data/lib/ohai/plugins/windows/network.rb +222 -222
  155. data/lib/ohai/plugins/windows/platform.rb +34 -34
  156. data/lib/ohai/plugins/windows/system_enclosure.rb +29 -29
  157. data/lib/ohai/plugins/windows/virtualization.rb +45 -45
  158. data/lib/ohai/plugins/zpools.rb +94 -94
  159. data/lib/ohai/provides_map.rb +208 -208
  160. data/lib/ohai/runner.rb +128 -126
  161. data/lib/ohai/system.rb +258 -258
  162. data/lib/ohai/train_transport.rb +29 -29
  163. data/lib/ohai/util/file_helper.rb +6 -6
  164. data/lib/ohai/util/ip_helper.rb +56 -56
  165. data/lib/ohai/util/win32.rb +47 -47
  166. data/lib/ohai/version.rb +23 -23
  167. data/lib/ohai.rb +23 -23
  168. data/ohai.gemspec +35 -35
  169. metadata +9 -15
@@ -1,39 +1,39 @@
1
- #
2
- # Author:: Doug MacEachern <dougm@vmware.com>
3
- # Copyright:: Copyright (c) 2009 VMware, Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- Ohai.plugin(:Lua) do
20
- provides "languages/lua"
21
- depends "languages".freeze
22
-
23
- collect_data do
24
-
25
- so = shell_out("lua -v")
26
- # Sample output:
27
- # Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio
28
- if so.exitstatus == 0
29
- lua = Mash.new
30
- # at some point in lua's history they went from outputting the version
31
- # on stderr to doing it on stdout. This handles old / new versions
32
- lua[:version] = so.stdout.empty? ? so.stderr.split[1] : so.stdout.split[1]
33
- languages[:lua] = lua if lua[:version]
34
- end
35
- rescue Ohai::Exceptions::Exec
36
- logger.trace('Plugin Lua: Could not shell_out "lua -v". Skipping plugin')
37
-
38
- end
39
- end
1
+ #
2
+ # Author:: Doug MacEachern <dougm@vmware.com>
3
+ # Copyright:: Copyright (c) 2009 VMware, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ Ohai.plugin(:Lua) do
20
+ provides "languages/lua"
21
+ depends "languages".freeze
22
+
23
+ collect_data do
24
+
25
+ so = shell_out("lua -v")
26
+ # Sample output:
27
+ # Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio
28
+ if so.exitstatus == 0
29
+ lua = Mash.new
30
+ # at some point in lua's history they went from outputting the version
31
+ # on stderr to doing it on stdout. This handles old / new versions
32
+ lua[:version] = so.stdout.empty? ? so.stderr.split[1] : so.stdout.split[1]
33
+ languages[:lua] = lua if lua[:version]
34
+ end
35
+ rescue Ohai::Exceptions::Exec
36
+ logger.trace('Plugin Lua: Could not shell_out "lua -v". Skipping plugin')
37
+
38
+ end
39
+ end
@@ -1,50 +1,50 @@
1
- #
2
- # Author:: Doug MacEachern <dougm@vmware.com>
3
- # Copyright:: Copyright (c) 2009 VMware, Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- Ohai.plugin(:Mono) do
20
- provides "languages/mono"
21
- depends "languages".freeze
22
-
23
- collect_data do
24
-
25
- so = shell_out("mono -V")
26
- # Sample output:
27
- # Mono JIT compiler version 4.2.3 (Stable 4.2.3.4/832de4b Wed Mar 30 13:57:48 PDT 2016)
28
- # Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
29
- # TLS: normal
30
- # SIGSEGV: altstack
31
- # Notification: kqueue
32
- # Architecture: amd64
33
- # Disabled: none
34
- # Misc: softtrace
35
- # LLVM: supported, not enabled.
36
- # GC: sgen
37
- if so.exitstatus == 0
38
- mono = Mash.new
39
- output = so.stdout.split
40
- mono[:version] = output[4] unless output[4].nil?
41
- if output.length >= 12
42
- mono[:builddate] = "%s %s %s %s %s %s" % [output[7], output[8], output[9], output[10], output[11], output[12].delete!(")")]
43
- end
44
- languages[:mono] = mono unless mono.empty?
45
- end
46
- rescue Ohai::Exceptions::Exec
47
- logger.trace('Plugin Mono: Could not shell_out "mono -V". Skipping plugin')
48
-
49
- end
50
- end
1
+ #
2
+ # Author:: Doug MacEachern <dougm@vmware.com>
3
+ # Copyright:: Copyright (c) 2009 VMware, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ Ohai.plugin(:Mono) do
20
+ provides "languages/mono"
21
+ depends "languages".freeze
22
+
23
+ collect_data do
24
+
25
+ so = shell_out("mono -V")
26
+ # Sample output:
27
+ # Mono JIT compiler version 4.2.3 (Stable 4.2.3.4/832de4b Wed Mar 30 13:57:48 PDT 2016)
28
+ # Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
29
+ # TLS: normal
30
+ # SIGSEGV: altstack
31
+ # Notification: kqueue
32
+ # Architecture: amd64
33
+ # Disabled: none
34
+ # Misc: softtrace
35
+ # LLVM: supported, not enabled.
36
+ # GC: sgen
37
+ if so.exitstatus == 0
38
+ mono = Mash.new
39
+ output = so.stdout.split
40
+ mono[:version] = output[4] unless output[4].nil?
41
+ if output.length >= 12
42
+ mono[:builddate] = "%s %s %s %s %s %s" % [output[7], output[8], output[9], output[10], output[11], output[12].delete!(")")]
43
+ end
44
+ languages[:mono] = mono unless mono.empty?
45
+ end
46
+ rescue Ohai::Exceptions::Exec
47
+ logger.trace('Plugin Mono: Could not shell_out "mono -V". Skipping plugin')
48
+
49
+ end
50
+ end
@@ -1,99 +1,99 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Mathieu Sauve-Frankel <msf@kisoku.net>
4
- # Copyright:: Copyright (c) 2009 Bryan McLellan
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- Ohai.plugin(:Memory) do
21
- provides "memory"
22
-
23
- collect_data(:netbsd) do
24
- memory Mash.new
25
- memory[:swap] = Mash.new
26
-
27
- # $ vmstat -s
28
- # 4096 bytes per page
29
- # 514011 pages managed
30
- # 224519 pages free
31
- # 209339 pages active
32
- # 4647 pages inactive
33
- # 0 pages being paged out
34
- # 5 pages wired
35
- # 0 pages zeroed
36
- # 4 pages reserved for pagedaemon
37
- # 6 pages reserved for kernel
38
- # 262205 swap pages
39
- # 0 swap pages in use
40
- # 0 total anon's in system
41
- # 0 free anon's
42
- # 1192991609 page faults
43
- # 1369579301 traps
44
- # 814549706 interrupts
45
- # 771702498 cpu context switches
46
- # 208810590 fpu context switches
47
- # 492361360 software interrupts
48
- # 1161998825 syscalls
49
- # 0 pagein operations
50
- # 0 swap ins
51
- # 0 swap outs
52
- # 768352 forks
53
- # 16 forks where vmspace is shared
54
- # 1763 kernel map entries
55
- # 0 number of times the pagedaemon woke up
56
- # 0 revolutions of the clock hand
57
- # 0 pages freed by pagedaemon
58
- # 0 pages scanned by pagedaemon
59
- # 0 pages reactivated by pagedaemon
60
- # 0 busy pages found by pagedaemon
61
- # 1096393776 total name lookups
62
- # cache hits (37% pos + 2% neg) system 1% per-directory
63
- # deletions 0%, falsehits 6%, toolong 26%
64
- # 0 select collisions
65
-
66
- so = shell_out("vmstat -s")
67
- so.stdout.lines do |line|
68
- case line
69
- when /(\d+) bytes per page/
70
- memory[:page_size] = $1
71
- when /(\d+) pages managed/
72
- memory[:page_count] = $1
73
- memory[:total] = memory[:page_size].to_i * memory[:page_count].to_i
74
- when /(\d+) pages free/
75
- memory[:free] = memory[:page_size].to_i * $1.to_i
76
- when /(\d+) pages active/
77
- memory[:active] = memory[:page_size].to_i * $1.to_i
78
- when /(\d+) pages inactive/
79
- memory[:inactive] = memory[:page_size].to_i * $1.to_i
80
- when /(\d+) pages wired/
81
- memory[:wired] = memory[:page_size].to_i * $1.to_i
82
- end
83
- end
84
-
85
- so = shell_out("swapctl -l")
86
- so.stdout.lines do |line|
87
- # Device 1024-blocks Used Avail Capacity Priority
88
- # swap_device 1048824 0 1048824 0% 0
89
- if line =~ %r{^([\d\w/]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+([\d\%]+)}
90
- mdev = $1
91
- memory[:swap][mdev] = Mash.new
92
- memory[:swap][mdev][:total] = $2
93
- memory[:swap][mdev][:used] = $3
94
- memory[:swap][mdev][:free] = $4
95
- memory[:swap][mdev][:percent_free] = $5
96
- end
97
- end
98
- end
99
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Mathieu Sauve-Frankel <msf@kisoku.net>
4
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
5
+ # License:: Apache License, Version 2.0
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ Ohai.plugin(:Memory) do
21
+ provides "memory"
22
+
23
+ collect_data(:netbsd) do
24
+ memory Mash.new
25
+ memory[:swap] = Mash.new
26
+
27
+ # $ vmstat -s
28
+ # 4096 bytes per page
29
+ # 514011 pages managed
30
+ # 224519 pages free
31
+ # 209339 pages active
32
+ # 4647 pages inactive
33
+ # 0 pages being paged out
34
+ # 5 pages wired
35
+ # 0 pages zeroed
36
+ # 4 pages reserved for pagedaemon
37
+ # 6 pages reserved for kernel
38
+ # 262205 swap pages
39
+ # 0 swap pages in use
40
+ # 0 total anon's in system
41
+ # 0 free anon's
42
+ # 1192991609 page faults
43
+ # 1369579301 traps
44
+ # 814549706 interrupts
45
+ # 771702498 cpu context switches
46
+ # 208810590 fpu context switches
47
+ # 492361360 software interrupts
48
+ # 1161998825 syscalls
49
+ # 0 pagein operations
50
+ # 0 swap ins
51
+ # 0 swap outs
52
+ # 768352 forks
53
+ # 16 forks where vmspace is shared
54
+ # 1763 kernel map entries
55
+ # 0 number of times the pagedaemon woke up
56
+ # 0 revolutions of the clock hand
57
+ # 0 pages freed by pagedaemon
58
+ # 0 pages scanned by pagedaemon
59
+ # 0 pages reactivated by pagedaemon
60
+ # 0 busy pages found by pagedaemon
61
+ # 1096393776 total name lookups
62
+ # cache hits (37% pos + 2% neg) system 1% per-directory
63
+ # deletions 0%, falsehits 6%, toolong 26%
64
+ # 0 select collisions
65
+
66
+ so = shell_out("vmstat -s")
67
+ so.stdout.lines do |line|
68
+ case line
69
+ when /(\d+) bytes per page/
70
+ memory[:page_size] = $1
71
+ when /(\d+) pages managed/
72
+ memory[:page_count] = $1
73
+ memory[:total] = memory[:page_size].to_i * memory[:page_count].to_i
74
+ when /(\d+) pages free/
75
+ memory[:free] = memory[:page_size].to_i * $1.to_i
76
+ when /(\d+) pages active/
77
+ memory[:active] = memory[:page_size].to_i * $1.to_i
78
+ when /(\d+) pages inactive/
79
+ memory[:inactive] = memory[:page_size].to_i * $1.to_i
80
+ when /(\d+) pages wired/
81
+ memory[:wired] = memory[:page_size].to_i * $1.to_i
82
+ end
83
+ end
84
+
85
+ so = shell_out("swapctl -l")
86
+ so.stdout.lines do |line|
87
+ # Device 1024-blocks Used Avail Capacity Priority
88
+ # swap_device 1048824 0 1048824 0% 0
89
+ if line =~ %r{^([\d\w/]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+([\d\%]+)}
90
+ mdev = $1
91
+ memory[:swap][mdev] = Mash.new
92
+ memory[:swap][mdev][:total] = $2
93
+ memory[:swap][mdev][:used] = $3
94
+ memory[:swap][mdev][:free] = $4
95
+ memory[:swap][mdev][:percent_free] = $5
96
+ end
97
+ end
98
+ end
99
+ end
@@ -1,122 +1,122 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Bryan McLellan (btm@loftninjas.org)
4
- # Copyright:: Copyright (c) 2009 Bryan McLellan
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- Ohai.plugin(:Network) do
21
- provides "network", "network/interfaces"
22
- provides "counters/network", "counters/network/interfaces"
23
-
24
- collect_data(:netbsd) do
25
- network Mash.new unless network
26
- network[:interfaces] ||= Mash.new
27
- counters Mash.new unless counters
28
- counters[:network] ||= Mash.new
29
-
30
- shell_out("route -n get default").stdout.lines do |line|
31
- if line =~ /(\w+): ([\w\.]+)/
32
- case $1
33
- when "gateway"
34
- network[:default_gateway] = $2
35
- when "interface"
36
- network[:default_interface] = $2
37
- end
38
- end
39
- end
40
-
41
- iface = Mash.new
42
- cint = nil
43
- shell_out("#{Ohai.abs_path( "/sbin/ifconfig" )} -a").stdout.lines do |line|
44
- if line =~ /^([0-9a-zA-Z\.]+):\s+/
45
- cint = $1
46
- iface[cint] = Mash.new
47
- if cint =~ /^(\w+)(\d+.*)/
48
- iface[cint][:type] = $1
49
- iface[cint][:number] = $2
50
- end
51
- end
52
- # call the family lladdr to match linux for consistency
53
- if line =~ /\s+address: (.+?)\s/
54
- iface[cint][:addresses] ||= Mash.new
55
- iface[cint][:addresses][$1] = { "family" => "lladdr" }
56
- end
57
- if line =~ /\s+inet ([\d.]+) netmask ([\da-fx]+)\s*\w*\s*([\d.]*)/
58
- iface[cint][:addresses] ||= Mash.new
59
- # convert the netmask to decimal for consistency
60
- netmask = "#{$2[2, 2].hex}.#{$2[4, 2].hex}.#{$2[6, 2].hex}.#{$2[8, 2].hex}"
61
- if $3.empty?
62
- iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => netmask }
63
- else
64
- # found a broadcast address
65
- iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => netmask, "broadcast" => $3 }
66
- end
67
- end
68
- if line =~ /\s+inet6 ([a-f0-9\:]+)%?(\w*)\s+prefixlen\s+(\d+)\s*\w*\s*([\da-fx]*)/
69
- iface[cint][:addresses] ||= Mash.new
70
- if $4.empty?
71
- iface[cint][:addresses][$1] = { "family" => "inet6", "prefixlen" => $3 }
72
- else
73
- # found a zone_id / scope
74
- iface[cint][:addresses][$1] = { "family" => "inet6", "zoneid" => $2, "prefixlen" => $3, "scopeid" => $4 }
75
- end
76
- end
77
- if line =~ /flags=\d+<(.+)>/
78
- flags = $1.split(",")
79
- iface[cint][:flags] = flags if flags.length > 0
80
- end
81
- if line =~ /metric: (\d+) mtu: (\d+)/
82
- iface[cint][:metric] = $1
83
- iface[cint][:mtu] = $2
84
- end
85
- end
86
-
87
- shell_out("arp -an").stdout.lines do |line|
88
- if line =~ /\((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\) at ([a-fA-F0-9\:]+) on ([0-9a-zA-Z\.\:\-]+)/
89
- next unless iface[$3] # this should never happen
90
-
91
- iface[$3][:arp] ||= Mash.new
92
- iface[$3][:arp][$1] = $2.downcase
93
- end
94
- end
95
-
96
- network["interfaces"] = iface
97
-
98
- net_counters = Mash.new
99
- # From netstat(1), not sure of the implications:
100
- # Show the state of all network interfaces or a single interface
101
- # which have been auto-configured (interfaces statically configured
102
- # into a system, but not located at boot time are not shown).
103
- shell_out("netstat -idn").stdout.lines do |line|
104
- # Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll Drop
105
- # em0 1500 <Link> 00:11:25:2d:90:be 3719557 0 3369969 0 0 0
106
- # $1 $2 $3 $4 $5 $6 $7 $8
107
- if line =~ /^([\w\.\*]+)\s+\d+\s+<Link>\s+([\w:]*)\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/
108
- net_counters[$1] ||= Mash.new
109
- net_counters[$1]["rx"] ||= Mash.new
110
- net_counters[$1]["tx"] ||= Mash.new
111
- net_counters[$1]["rx"]["packets"] = $3
112
- net_counters[$1]["rx"]["errors"] = $4
113
- net_counters[$1]["tx"]["packets"] = $5
114
- net_counters[$1]["tx"]["errors"] = $6
115
- net_counters[$1]["tx"]["collisions"] = $7
116
- net_counters[$1]["tx"]["dropped"] = $8
117
- end
118
- end
119
-
120
- counters[:network][:interfaces] = net_counters
121
- end
122
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Bryan McLellan (btm@loftninjas.org)
4
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
5
+ # License:: Apache License, Version 2.0
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ Ohai.plugin(:Network) do
21
+ provides "network", "network/interfaces"
22
+ provides "counters/network", "counters/network/interfaces"
23
+
24
+ collect_data(:netbsd) do
25
+ network Mash.new unless network
26
+ network[:interfaces] ||= Mash.new
27
+ counters Mash.new unless counters
28
+ counters[:network] ||= Mash.new
29
+
30
+ shell_out("route -n get default").stdout.lines do |line|
31
+ if line =~ /(\w+): ([\w\.]+)/
32
+ case $1
33
+ when "gateway"
34
+ network[:default_gateway] = $2
35
+ when "interface"
36
+ network[:default_interface] = $2
37
+ end
38
+ end
39
+ end
40
+
41
+ iface = Mash.new
42
+ cint = nil
43
+ shell_out("#{Ohai.abs_path( "/sbin/ifconfig" )} -a").stdout.lines do |line|
44
+ if line =~ /^([0-9a-zA-Z\.]+):\s+/
45
+ cint = $1
46
+ iface[cint] = Mash.new
47
+ if cint =~ /^(\w+)(\d+.*)/
48
+ iface[cint][:type] = $1
49
+ iface[cint][:number] = $2
50
+ end
51
+ end
52
+ # call the family lladdr to match linux for consistency
53
+ if line =~ /\s+address: (.+?)\s/
54
+ iface[cint][:addresses] ||= Mash.new
55
+ iface[cint][:addresses][$1] = { "family" => "lladdr" }
56
+ end
57
+ if line =~ /\s+inet ([\d.]+) netmask ([\da-fx]+)\s*\w*\s*([\d.]*)/
58
+ iface[cint][:addresses] ||= Mash.new
59
+ # convert the netmask to decimal for consistency
60
+ netmask = "#{$2[2, 2].hex}.#{$2[4, 2].hex}.#{$2[6, 2].hex}.#{$2[8, 2].hex}"
61
+ if $3.empty?
62
+ iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => netmask }
63
+ else
64
+ # found a broadcast address
65
+ iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => netmask, "broadcast" => $3 }
66
+ end
67
+ end
68
+ if line =~ /\s+inet6 ([a-f0-9\:]+)%?(\w*)\s+prefixlen\s+(\d+)\s*\w*\s*([\da-fx]*)/
69
+ iface[cint][:addresses] ||= Mash.new
70
+ if $4.empty?
71
+ iface[cint][:addresses][$1] = { "family" => "inet6", "prefixlen" => $3 }
72
+ else
73
+ # found a zone_id / scope
74
+ iface[cint][:addresses][$1] = { "family" => "inet6", "zoneid" => $2, "prefixlen" => $3, "scopeid" => $4 }
75
+ end
76
+ end
77
+ if line =~ /flags=\d+<(.+)>/
78
+ flags = $1.split(",")
79
+ iface[cint][:flags] = flags if flags.length > 0
80
+ end
81
+ if line =~ /metric: (\d+) mtu: (\d+)/
82
+ iface[cint][:metric] = $1
83
+ iface[cint][:mtu] = $2
84
+ end
85
+ end
86
+
87
+ shell_out("arp -an").stdout.lines do |line|
88
+ if line =~ /\((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\) at ([a-fA-F0-9\:]+) on ([0-9a-zA-Z\.\:\-]+)/
89
+ next unless iface[$3] # this should never happen
90
+
91
+ iface[$3][:arp] ||= Mash.new
92
+ iface[$3][:arp][$1] = $2.downcase
93
+ end
94
+ end
95
+
96
+ network["interfaces"] = iface
97
+
98
+ net_counters = Mash.new
99
+ # From netstat(1), not sure of the implications:
100
+ # Show the state of all network interfaces or a single interface
101
+ # which have been auto-configured (interfaces statically configured
102
+ # into a system, but not located at boot time are not shown).
103
+ shell_out("netstat -idn").stdout.lines do |line|
104
+ # Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll Drop
105
+ # em0 1500 <Link> 00:11:25:2d:90:be 3719557 0 3369969 0 0 0
106
+ # $1 $2 $3 $4 $5 $6 $7 $8
107
+ if line =~ /^([\w\.\*]+)\s+\d+\s+<Link>\s+([\w:]*)\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/
108
+ net_counters[$1] ||= Mash.new
109
+ net_counters[$1]["rx"] ||= Mash.new
110
+ net_counters[$1]["tx"] ||= Mash.new
111
+ net_counters[$1]["rx"]["packets"] = $3
112
+ net_counters[$1]["rx"]["errors"] = $4
113
+ net_counters[$1]["tx"]["packets"] = $5
114
+ net_counters[$1]["tx"]["errors"] = $6
115
+ net_counters[$1]["tx"]["collisions"] = $7
116
+ net_counters[$1]["tx"]["dropped"] = $8
117
+ end
118
+ end
119
+
120
+ counters[:network][:interfaces] = net_counters
121
+ end
122
+ end