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,96 +1,96 @@
1
- # frozen_string_literal: true
2
- # Author:: Chris Dituri (<csdituri@gmail.com>)
3
- # Copyright:: Copyright (c) 2016 Chris Dituri
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
- Ohai.plugin(:Haskell) do
19
-
20
- provides "languages/haskell",
21
- "languages/haskell/ghc",
22
- "languages/haskell/ghci",
23
- "languages/haskell/cabal",
24
- "languages/haskell/stack"
25
-
26
- depends "languages"
27
-
28
- collect_data(:default) do
29
- haskell = Mash.new
30
-
31
- # Check for ghc
32
- begin
33
- so = shell_out("ghc --version")
34
-
35
- # Sample output:
36
- # The Glorious Glasgow Haskell Compilation System, version 7.6.3
37
- if so.exitstatus == 0
38
- haskell[:ghc] = Mash.new
39
- haskell[:ghc][:version] = so.stdout.split[-1]
40
- haskell[:ghc][:description] = so.stdout.chomp
41
- end
42
- rescue Ohai::Exceptions::Exec
43
- logger.trace('Plugin Haskell: Could not shell_out "ghc --version". Skipping data')
44
- end
45
-
46
- # Check for ghci
47
- begin
48
- so = shell_out("ghci --version")
49
-
50
- # Sample output:
51
- # The Glorious Glasgow Haskell Compilation System, version 7.6.3
52
- if so.exitstatus == 0
53
- haskell[:ghci] = Mash.new
54
- haskell[:ghci][:version] = so.stdout.split[-1]
55
- haskell[:ghci][:description] = so.stdout.chomp
56
- end
57
- rescue Ohai::Exceptions::Exec
58
- logger.trace('Plugin Haskell: Could not shell_out "ghci --version". Skipping data')
59
- end
60
-
61
- # Check for cabal
62
- begin
63
- so = shell_out("cabal --version")
64
-
65
- # Sample output:
66
- # cabal-install version 1.16.0.2
67
- # using version 1.16.0 of the Cabal library
68
- if so.exitstatus == 0
69
- haskell[:cabal] = Mash.new
70
- haskell[:cabal][:version] = so.stdout.split("\n")[0].split[-1]
71
- haskell[:cabal][:description] = so.stdout.split("\n")[0].chomp
72
- end
73
- rescue Ohai::Exceptions::Exec
74
- logger.trace('Plugin Haskell: Could not shell_out "cabal --version". Skipping data')
75
- end
76
-
77
- # Check for stack
78
- begin
79
- so = shell_out("stack --version")
80
-
81
- # Sample output:
82
- # Version 1.1.0, Git revision 0e9430aad55841b5ff2c6c2851f0548c16bce7cf (3540 commits) x86_64 hpack-0.13.0
83
- # or
84
- # Version 1.2.0 x86_64 hpack-0.14.0
85
- if so.exitstatus == 0
86
- haskell[:stack] = Mash.new
87
- haskell[:stack][:version] = /Version ([^\s,]*)/.match(so.stdout)[1] rescue nil
88
- haskell[:stack][:description] = so.stdout.chomp
89
- end
90
- rescue Ohai::Exceptions::Exec
91
- logger.trace('Plugin Haskell: Could not shell_out "stack --version". Skipping data')
92
- end
93
-
94
- languages[:haskell] = haskell unless haskell.empty?
95
- end
96
- end
1
+ # frozen_string_literal: true
2
+ # Author:: Chris Dituri (<csdituri@gmail.com>)
3
+ # Copyright:: Copyright (c) 2016 Chris Dituri
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
+ Ohai.plugin(:Haskell) do
19
+
20
+ provides "languages/haskell",
21
+ "languages/haskell/ghc",
22
+ "languages/haskell/ghci",
23
+ "languages/haskell/cabal",
24
+ "languages/haskell/stack"
25
+
26
+ depends "languages"
27
+
28
+ collect_data(:default) do
29
+ haskell = Mash.new
30
+
31
+ # Check for ghc
32
+ begin
33
+ so = shell_out("ghc --version")
34
+
35
+ # Sample output:
36
+ # The Glorious Glasgow Haskell Compilation System, version 7.6.3
37
+ if so.exitstatus == 0
38
+ haskell[:ghc] = Mash.new
39
+ haskell[:ghc][:version] = so.stdout.split[-1]
40
+ haskell[:ghc][:description] = so.stdout.chomp
41
+ end
42
+ rescue Ohai::Exceptions::Exec
43
+ logger.trace('Plugin Haskell: Could not shell_out "ghc --version". Skipping data')
44
+ end
45
+
46
+ # Check for ghci
47
+ begin
48
+ so = shell_out("ghci --version")
49
+
50
+ # Sample output:
51
+ # The Glorious Glasgow Haskell Compilation System, version 7.6.3
52
+ if so.exitstatus == 0
53
+ haskell[:ghci] = Mash.new
54
+ haskell[:ghci][:version] = so.stdout.split[-1]
55
+ haskell[:ghci][:description] = so.stdout.chomp
56
+ end
57
+ rescue Ohai::Exceptions::Exec
58
+ logger.trace('Plugin Haskell: Could not shell_out "ghci --version". Skipping data')
59
+ end
60
+
61
+ # Check for cabal
62
+ begin
63
+ so = shell_out("cabal --version")
64
+
65
+ # Sample output:
66
+ # cabal-install version 1.16.0.2
67
+ # using version 1.16.0 of the Cabal library
68
+ if so.exitstatus == 0
69
+ haskell[:cabal] = Mash.new
70
+ haskell[:cabal][:version] = so.stdout.split("\n")[0].split[-1]
71
+ haskell[:cabal][:description] = so.stdout.split("\n")[0].chomp
72
+ end
73
+ rescue Ohai::Exceptions::Exec
74
+ logger.trace('Plugin Haskell: Could not shell_out "cabal --version". Skipping data')
75
+ end
76
+
77
+ # Check for stack
78
+ begin
79
+ so = shell_out("stack --version")
80
+
81
+ # Sample output:
82
+ # Version 1.1.0, Git revision 0e9430aad55841b5ff2c6c2851f0548c16bce7cf (3540 commits) x86_64 hpack-0.13.0
83
+ # or
84
+ # Version 1.2.0 x86_64 hpack-0.14.0
85
+ if so.exitstatus == 0
86
+ haskell[:stack] = Mash.new
87
+ haskell[:stack][:version] = /Version ([^\s,]*)/.match(so.stdout)[1] rescue nil
88
+ haskell[:stack][:description] = so.stdout.chomp
89
+ end
90
+ rescue Ohai::Exceptions::Exec
91
+ logger.trace('Plugin Haskell: Could not shell_out "stack --version". Skipping data')
92
+ end
93
+
94
+ languages[:haskell] = haskell unless haskell.empty?
95
+ end
96
+ end
@@ -1,133 +1,133 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Adam Jacob (<adam@chef.io>)
4
- # Author:: Benjamin Black (<nostromo@gmail.com>)
5
- # Author:: Bryan McLellan (<btm@loftninjas.org>)
6
- # Author:: Daniel DeLeo (<dan@kallistec.com>)
7
- # Author:: Doug MacEachern (<dougm@vmware.com>)
8
- # Author:: James Gartrell (<jgartrel@gmail.com>)
9
- # Author:: Isa Farnik (<isa@chef.io>)
10
- # Copyright:: Copyright (c) Chef Software Inc.
11
- # Copyright:: Copyright (c) 2009 Bryan McLellan
12
- # Copyright:: Copyright (c) 2009 Daniel DeLeo
13
- # Copyright:: Copyright (c) 2010 VMware, Inc.
14
- # License:: Apache License, Version 2.0
15
- #
16
- # Licensed under the Apache License, Version 2.0 (the "License");
17
- # you may not use this file except in compliance with the License.
18
- # You may obtain a copy of the License at
19
- #
20
- # http://www.apache.org/licenses/LICENSE-2.0
21
- #
22
- # Unless required by applicable law or agreed to in writing, software
23
- # distributed under the License is distributed on an "AS IS" BASIS,
24
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
- # See the License for the specific language governing permissions and
26
- # limitations under the License.
27
- #
28
-
29
- require_relative "../mixin/network_helper"
30
-
31
- Ohai.plugin(:Hostname) do
32
- include Ohai::Mixin::NetworkHelper
33
-
34
- provides "domain", "hostname", "fqdn", "machinename"
35
-
36
- # hostname : short hostname
37
- # machinename : output of hostname command (might be short on solaris)
38
- # fqdn : result of canonicalizing hostname using DNS or /etc/hosts
39
- # domain : domain part of FQDN
40
- #
41
- # hostname and machinename should always exist
42
- # fqdn and domain may be broken if DNS is broken on the host
43
-
44
- def from_cmd(cmd)
45
- shell_out(cmd).stdout.strip
46
- end
47
-
48
- # forward and reverse lookup to canonicalize FQDN (hostname -f equivalent)
49
- def resolve_fqdn
50
- canonicalize_hostname_with_retries(from_cmd("hostname"))
51
- end
52
-
53
- def collect_domain
54
- # Domain is everything after the first dot
55
- if fqdn
56
- fqdn =~ /.+?\.(.*)/
57
- domain $1
58
- end
59
- end
60
-
61
- def collect_hostname
62
- # Hostname is everything before the first dot
63
- if machinename
64
- machinename =~ /([^.]+)\.?/
65
- hostname $1
66
- elsif fqdn
67
- fqdn =~ /(.+?)\./
68
- hostname $1
69
- end
70
- end
71
-
72
- collect_data(:default) do
73
- machinename from_cmd("hostname")
74
- fqdn resolve_fqdn
75
- collect_hostname
76
- collect_domain
77
- end
78
-
79
- collect_data(:aix) do
80
- machinename from_cmd("hostname -s")
81
- fqdn resolve_fqdn || from_cmd("hostname")
82
- collect_hostname
83
- collect_domain
84
- end
85
-
86
- collect_data(:netbsd, :openbsd, :dragonflybsd) do
87
- hostname from_cmd("hostname -s")
88
- fqdn resolve_fqdn
89
- machinename from_cmd("hostname")
90
- collect_domain
91
- end
92
-
93
- collect_data(:darwin) do
94
- hostname from_cmd("hostname -s")
95
- machinename from_cmd("hostname")
96
- fqdn resolve_fqdn
97
- domain collect_domain
98
- end
99
-
100
- collect_data(:freebsd) do
101
- hostname from_cmd("hostname -s")
102
- machinename from_cmd("hostname")
103
- fqdn resolve_fqdn
104
- collect_domain
105
- end
106
-
107
- collect_data(:linux) do
108
- hostname from_cmd("hostname -s")
109
- machinename from_cmd("hostname")
110
- fqdn resolve_fqdn
111
- domain collect_domain
112
- end
113
-
114
- collect_data(:solaris2) do
115
- machinename from_cmd("hostname")
116
- hostname from_cmd("hostname")
117
- fqdn resolve_fqdn
118
- domain collect_domain
119
- end
120
-
121
- collect_data(:windows) do
122
- require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
123
- require "socket" unless defined?(Socket)
124
-
125
- wmi = WmiLite::Wmi.new
126
- host = wmi.first_of("Win32_ComputerSystem")
127
-
128
- hostname host["dnshostname"].to_s
129
- machinename host["name"].to_s
130
- fqdn canonicalize_hostname_with_retries(Socket.gethostname)
131
- domain collect_domain
132
- end
133
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Adam Jacob (<adam@chef.io>)
4
+ # Author:: Benjamin Black (<nostromo@gmail.com>)
5
+ # Author:: Bryan McLellan (<btm@loftninjas.org>)
6
+ # Author:: Daniel DeLeo (<dan@kallistec.com>)
7
+ # Author:: Doug MacEachern (<dougm@vmware.com>)
8
+ # Author:: James Gartrell (<jgartrel@gmail.com>)
9
+ # Author:: Isa Farnik (<isa@chef.io>)
10
+ # Copyright:: Copyright (c) Chef Software Inc.
11
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
12
+ # Copyright:: Copyright (c) 2009 Daniel DeLeo
13
+ # Copyright:: Copyright (c) 2010 VMware, Inc.
14
+ # License:: Apache License, Version 2.0
15
+ #
16
+ # Licensed under the Apache License, Version 2.0 (the "License");
17
+ # you may not use this file except in compliance with the License.
18
+ # You may obtain a copy of the License at
19
+ #
20
+ # http://www.apache.org/licenses/LICENSE-2.0
21
+ #
22
+ # Unless required by applicable law or agreed to in writing, software
23
+ # distributed under the License is distributed on an "AS IS" BASIS,
24
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
+ # See the License for the specific language governing permissions and
26
+ # limitations under the License.
27
+ #
28
+
29
+ require_relative "../mixin/network_helper"
30
+
31
+ Ohai.plugin(:Hostname) do
32
+ include Ohai::Mixin::NetworkHelper
33
+
34
+ provides "domain", "hostname", "fqdn", "machinename"
35
+
36
+ # hostname : short hostname
37
+ # machinename : output of hostname command (might be short on solaris)
38
+ # fqdn : result of canonicalizing hostname using DNS or /etc/hosts
39
+ # domain : domain part of FQDN
40
+ #
41
+ # hostname and machinename should always exist
42
+ # fqdn and domain may be broken if DNS is broken on the host
43
+
44
+ def from_cmd(cmd)
45
+ shell_out(cmd).stdout.strip
46
+ end
47
+
48
+ # forward and reverse lookup to canonicalize FQDN (hostname -f equivalent)
49
+ def resolve_fqdn
50
+ canonicalize_hostname_with_retries(from_cmd("hostname"))
51
+ end
52
+
53
+ def collect_domain
54
+ # Domain is everything after the first dot
55
+ if fqdn
56
+ fqdn =~ /.+?\.(.*)/
57
+ domain $1
58
+ end
59
+ end
60
+
61
+ def collect_hostname
62
+ # Hostname is everything before the first dot
63
+ if machinename
64
+ machinename =~ /([^.]+)\.?/
65
+ hostname $1
66
+ elsif fqdn
67
+ fqdn =~ /(.+?)\./
68
+ hostname $1
69
+ end
70
+ end
71
+
72
+ collect_data(:default) do
73
+ machinename from_cmd("hostname")
74
+ fqdn resolve_fqdn
75
+ collect_hostname
76
+ collect_domain
77
+ end
78
+
79
+ collect_data(:aix) do
80
+ machinename from_cmd("hostname -s")
81
+ fqdn resolve_fqdn || from_cmd("hostname")
82
+ collect_hostname
83
+ collect_domain
84
+ end
85
+
86
+ collect_data(:netbsd, :openbsd, :dragonflybsd) do
87
+ hostname from_cmd("hostname -s")
88
+ fqdn resolve_fqdn
89
+ machinename from_cmd("hostname")
90
+ collect_domain
91
+ end
92
+
93
+ collect_data(:darwin) do
94
+ hostname from_cmd("hostname -s")
95
+ machinename from_cmd("hostname")
96
+ fqdn resolve_fqdn
97
+ domain collect_domain
98
+ end
99
+
100
+ collect_data(:freebsd) do
101
+ hostname from_cmd("hostname -s")
102
+ machinename from_cmd("hostname")
103
+ fqdn resolve_fqdn
104
+ collect_domain
105
+ end
106
+
107
+ collect_data(:linux) do
108
+ hostname from_cmd("hostname -s")
109
+ machinename from_cmd("hostname")
110
+ fqdn resolve_fqdn
111
+ domain collect_domain
112
+ end
113
+
114
+ collect_data(:solaris2) do
115
+ machinename from_cmd("hostname")
116
+ hostname from_cmd("hostname")
117
+ fqdn resolve_fqdn
118
+ domain collect_domain
119
+ end
120
+
121
+ collect_data(:windows) do
122
+ require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
123
+ require "socket" unless defined?(Socket)
124
+
125
+ wmi = WmiLite::Wmi.new
126
+ host = wmi.first_of("Win32_ComputerSystem")
127
+
128
+ hostname host["dnshostname"].to_s
129
+ machinename host["name"].to_s
130
+ fqdn canonicalize_hostname_with_retries(Socket.gethostname)
131
+ domain collect_domain
132
+ end
133
+ end
@@ -1,26 +1,26 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Caleb Tennis (<caleb.tennis@gmail.com>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
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(:InitPackage) do
21
- provides "init_package"
22
-
23
- collect_data(:linux) do
24
- init_package file_exist?("/proc/1/comm") ? file_open("/proc/1/comm").gets.chomp : "init"
25
- end
26
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Caleb Tennis (<caleb.tennis@gmail.com>)
4
+ # Copyright:: Copyright (c) Chef Software Inc.
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(:InitPackage) do
21
+ provides "init_package"
22
+
23
+ collect_data(:linux) do
24
+ init_package file_exist?("/proc/1/comm") ? file_open("/proc/1/comm").gets.chomp : "init"
25
+ end
26
+ end
@@ -1,78 +1,78 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Benjamin Black (<bb@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
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(:Java) do
21
- provides "languages/java"
22
- depends "languages"
23
-
24
- def get_java_info
25
- so = shell_out("java -mx64m -version")
26
- # Sample output:
27
- # java version "1.8.0_60"
28
- # Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
29
- # Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
30
- if so.exitstatus == 0
31
- java = Mash.new
32
- so.stderr.split(/\r?\n/).each do |line|
33
- case line
34
- when /(?:java|openjdk) version \"([0-9\.\_]+)\"/
35
- java[:version] = $1
36
- when /^(.+Runtime Environment.*) \((build)\s*(.+)\)$/
37
- java[:runtime] = { "name" => $1, "build" => $3 }
38
- when /^(.+ (Client|Server) VM) \(build\s*(.+)\)$/
39
- java[:hotspot] = { "name" => $1, "build" => $3 }
40
- end
41
- end
42
-
43
- languages[:java] = java unless java.empty?
44
- end
45
- rescue Ohai::Exceptions::Exec
46
- logger.trace('Plugin Java: Could not shell_out "java -mx64m -version". Skipping plugin')
47
- end
48
-
49
- # On Mac OS X, the development tools include "stubs" for JVM executables that
50
- # prompt the user to install the JVM if they desire. In our case we simply
51
- # wish to detect if the JVM is there and do not want to trigger a popup
52
- # window. As a workaround, we can run the java_home executable and check its
53
- # exit status to determine if the `java` executable is the real one or the OS
54
- # X stub. In the terminal, it looks like this:
55
- #
56
- # $ /usr/libexec/java_home
57
- # Unable to find any JVMs matching version "(null)".
58
- # No Java runtime present, try --request to install.
59
- #
60
- # $ echo $?
61
- # 1
62
- #
63
- # This check always returns true when not on darwin because it is just a
64
- # workaround for this particular annoyance.
65
- def has_real_java?
66
- return true unless on_darwin?
67
-
68
- shell_out("/usr/libexec/java_home").status.success?
69
- end
70
-
71
- def on_darwin?
72
- RUBY_PLATFORM.downcase.include?("darwin")
73
- end
74
-
75
- collect_data do
76
- get_java_info if has_real_java?
77
- end
78
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Benjamin Black (<bb@chef.io>)
4
+ # Copyright:: Copyright (c) Chef Software Inc.
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(:Java) do
21
+ provides "languages/java"
22
+ depends "languages"
23
+
24
+ def get_java_info
25
+ so = shell_out("java -mx64m -version")
26
+ # Sample output:
27
+ # java version "1.8.0_60"
28
+ # Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
29
+ # Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
30
+ if so.exitstatus == 0
31
+ java = Mash.new
32
+ so.stderr.split(/\r?\n/).each do |line|
33
+ case line
34
+ when /(?:java|openjdk) version \"([0-9\.\_]+)\"/
35
+ java[:version] = $1
36
+ when /^(.+Runtime Environment.*) \((build)\s*(.+)\)$/
37
+ java[:runtime] = { "name" => $1, "build" => $3 }
38
+ when /^(.+ (Client|Server) VM) \(build\s*(.+)\)$/
39
+ java[:hotspot] = { "name" => $1, "build" => $3 }
40
+ end
41
+ end
42
+
43
+ languages[:java] = java unless java.empty?
44
+ end
45
+ rescue Ohai::Exceptions::Exec
46
+ logger.trace('Plugin Java: Could not shell_out "java -mx64m -version". Skipping plugin')
47
+ end
48
+
49
+ # On Mac OS X, the development tools include "stubs" for JVM executables that
50
+ # prompt the user to install the JVM if they desire. In our case we simply
51
+ # wish to detect if the JVM is there and do not want to trigger a popup
52
+ # window. As a workaround, we can run the java_home executable and check its
53
+ # exit status to determine if the `java` executable is the real one or the OS
54
+ # X stub. In the terminal, it looks like this:
55
+ #
56
+ # $ /usr/libexec/java_home
57
+ # Unable to find any JVMs matching version "(null)".
58
+ # No Java runtime present, try --request to install.
59
+ #
60
+ # $ echo $?
61
+ # 1
62
+ #
63
+ # This check always returns true when not on darwin because it is just a
64
+ # workaround for this particular annoyance.
65
+ def has_real_java?
66
+ return true unless on_darwin?
67
+
68
+ shell_out("/usr/libexec/java_home").status.success?
69
+ end
70
+
71
+ def on_darwin?
72
+ RUBY_PLATFORM.downcase.include?("darwin")
73
+ end
74
+
75
+ collect_data do
76
+ get_java_info if has_real_java?
77
+ end
78
+ end