ohai 18.1.18 → 19.0.3

Sign up to get free protection for your applications and to get access to all the features.
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 -264
  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 -635
  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 -751
  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 -84
  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 -29
  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 -128
  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 +10 -10
@@ -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