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,104 +1,104 @@
1
- # frozen_string_literal: true
2
-
3
- Ohai.plugin(:Passwd) do
4
- provides "etc", "current_user"
5
- optional true
6
-
7
- # @param [String] str
8
- #
9
- # @return [String]
10
- #
11
- def fix_encoding(str)
12
- str.force_encoding(Encoding.default_external) if str.respond_to?(:force_encoding)
13
- str
14
- end
15
-
16
- collect_data do
17
- require "etc" unless defined?(Etc)
18
-
19
- unless etc
20
- etc Mash.new
21
-
22
- etc[:passwd] = Mash.new
23
- etc[:group] = Mash.new
24
-
25
- Etc.passwd do |entry|
26
- user_passwd_entry = Mash.new(dir: entry.dir, gid: entry.gid, uid: entry.uid, shell: entry.shell, gecos: entry.gecos)
27
- user_passwd_entry.each_value { |v| fix_encoding(v) }
28
- entry_name = fix_encoding(entry.name)
29
- etc[:passwd][entry_name] = user_passwd_entry unless etc[:passwd].key?(entry_name)
30
- end
31
-
32
- Etc.group do |entry|
33
- group_entry = Mash.new(gid: entry.gid,
34
- members: entry.mem.map { |u| fix_encoding(u) })
35
-
36
- etc[:group][fix_encoding(entry.name)] = group_entry
37
- end
38
- end
39
-
40
- unless current_user
41
- current_user fix_encoding(Etc.getpwuid(Process.euid).name)
42
- end
43
- end
44
-
45
- collect_data(:windows) do
46
- require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
47
-
48
- unless etc
49
- etc Mash.new
50
-
51
- wmi = WmiLite::Wmi.new
52
-
53
- etc[:passwd] = Mash.new
54
- users = wmi.query("SELECT * FROM Win32_UserAccount WHERE LocalAccount = True")
55
- users.each do |user|
56
- uname = user["Name"].strip.downcase
57
- Ohai::Log.debug("processing user #{uname}")
58
- etc[:passwd][uname] = Mash.new
59
- wmi_obj = user.wmi_ole_object
60
- wmi_obj.properties_.each do |key|
61
- etc[:passwd][uname][key.name.downcase] = user[key.name]
62
- end
63
- end
64
-
65
- etc[:group] = Mash.new
66
- groups = wmi.query("SELECT * FROM Win32_Group WHERE LocalAccount = True")
67
- groups.each do |group|
68
- gname = group["Name"].strip.downcase
69
- Ohai::Log.debug("processing group #{gname}")
70
- etc[:group][gname] = Mash.new
71
- wmi_obj = group.wmi_ole_object
72
- wmi_obj.properties_.each do |key|
73
- etc[:group][gname][key.name.downcase] = group[key.name]
74
- end
75
-
76
- # This is the primary reason that we're using WMI instead of powershell
77
- # cmdlets - the powershell start up cost is huge, and you *must* do this
78
- # query for every. single. group. individually.
79
-
80
- # The query returns nothing unless you specify domain *and* name, it's
81
- # a path, not a set of queries.
82
- subq = "Win32_Group.Domain='#{group["Domain"]}',Name='#{group["Name"]}'"
83
- members = wmi.query(
84
- "SELECT * FROM Win32_GroupUser WHERE GroupComponent=\"#{subq}\""
85
- )
86
- etc[:group][gname]["members"] = members.map do |member|
87
- mi = {}
88
- info = Hash[
89
- member["partcomponent"].split(",").map { |x| x.split("=") }.map { |a, b| [a, b.undump] }
90
- ]
91
- if info.keys.any? { |x| x.match?("Win32_UserAccount") }
92
- mi["type"] = :user
93
- else
94
- # NOTE: the type here is actually Win32_SystemAccount, because,
95
- # that's what groups are in the Windows universe.
96
- mi["type"] = :group
97
- end
98
- mi["name"] = info["Name"]
99
- mi
100
- end
101
- end
102
- end
103
- end
104
- end
1
+ # frozen_string_literal: true
2
+
3
+ Ohai.plugin(:Passwd) do
4
+ provides "etc", "current_user"
5
+ optional true
6
+
7
+ # @param [String] str
8
+ #
9
+ # @return [String]
10
+ #
11
+ def fix_encoding(str)
12
+ str.force_encoding(Encoding.default_external) if str.respond_to?(:force_encoding)
13
+ str
14
+ end
15
+
16
+ collect_data do
17
+ require "etc" unless defined?(Etc)
18
+
19
+ unless etc
20
+ etc Mash.new
21
+
22
+ etc[:passwd] = Mash.new
23
+ etc[:group] = Mash.new
24
+
25
+ Etc.passwd do |entry|
26
+ user_passwd_entry = Mash.new(dir: entry.dir, gid: entry.gid, uid: entry.uid, shell: entry.shell, gecos: entry.gecos)
27
+ user_passwd_entry.each_value { |v| fix_encoding(v) }
28
+ entry_name = fix_encoding(entry.name)
29
+ etc[:passwd][entry_name] = user_passwd_entry unless etc[:passwd].key?(entry_name)
30
+ end
31
+
32
+ Etc.group do |entry|
33
+ group_entry = Mash.new(gid: entry.gid,
34
+ members: entry.mem.map { |u| fix_encoding(u) })
35
+
36
+ etc[:group][fix_encoding(entry.name)] = group_entry
37
+ end
38
+ end
39
+
40
+ unless current_user
41
+ current_user fix_encoding(Etc.getpwuid(Process.euid).name)
42
+ end
43
+ end
44
+
45
+ collect_data(:windows) do
46
+ require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
47
+
48
+ unless etc
49
+ etc Mash.new
50
+
51
+ wmi = WmiLite::Wmi.new
52
+
53
+ etc[:passwd] = Mash.new
54
+ users = wmi.query("SELECT * FROM Win32_UserAccount WHERE LocalAccount = True")
55
+ users.each do |user|
56
+ uname = user["Name"].strip.downcase
57
+ Ohai::Log.debug("processing user #{uname}")
58
+ etc[:passwd][uname] = Mash.new
59
+ wmi_obj = user.wmi_ole_object
60
+ wmi_obj.properties_.each do |key|
61
+ etc[:passwd][uname][key.name.downcase] = user[key.name]
62
+ end
63
+ end
64
+
65
+ etc[:group] = Mash.new
66
+ groups = wmi.query("SELECT * FROM Win32_Group WHERE LocalAccount = True")
67
+ groups.each do |group|
68
+ gname = group["Name"].strip.downcase
69
+ Ohai::Log.debug("processing group #{gname}")
70
+ etc[:group][gname] = Mash.new
71
+ wmi_obj = group.wmi_ole_object
72
+ wmi_obj.properties_.each do |key|
73
+ etc[:group][gname][key.name.downcase] = group[key.name]
74
+ end
75
+
76
+ # This is the primary reason that we're using WMI instead of powershell
77
+ # cmdlets - the powershell start up cost is huge, and you *must* do this
78
+ # query for every. single. group. individually.
79
+
80
+ # The query returns nothing unless you specify domain *and* name, it's
81
+ # a path, not a set of queries.
82
+ subq = "Win32_Group.Domain='#{group["Domain"]}',Name='#{group["Name"]}'"
83
+ members = wmi.query(
84
+ "SELECT * FROM Win32_GroupUser WHERE GroupComponent=\"#{subq}\""
85
+ )
86
+ etc[:group][gname]["members"] = members.map do |member|
87
+ mi = {}
88
+ info = Hash[
89
+ member["partcomponent"].split(",").map { |x| x.split("=") }.map { |a, b| [a, b.undump] }
90
+ ]
91
+ if info.keys.any? { |x| x.match?("Win32_UserAccount") }
92
+ mi["type"] = :user
93
+ else
94
+ # NOTE: the type here is actually Win32_SystemAccount, because,
95
+ # that's what groups are in the Windows universe.
96
+ mi["type"] = :group
97
+ end
98
+ mi["name"] = info["Name"]
99
+ mi
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -1,45 +1,45 @@
1
- #
2
- # Author:: Joshua Timberman (<joshua@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software 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(:Perl) do
20
- provides "languages/perl"
21
- depends "languages".freeze
22
-
23
- collect_data do
24
-
25
- so = shell_out("perl -V:version -V:archname")
26
- # Sample output:
27
- # version='5.18.2';
28
- # archname='darwin-thread-multi-2level';
29
- if so.exitstatus == 0
30
- perl = Mash.new
31
- so.stdout.split(/\r?\n/).each do |line|
32
- case line
33
- when /^version=\'(.+)\';$/
34
- perl[:version] = $1
35
- when /^archname=\'(.+)\';$/
36
- perl[:archname] = $1
37
- end
38
- end
39
- languages[:perl] = perl unless perl.empty?
40
- end
41
- rescue Ohai::Exceptions::Exec
42
- logger.trace('Plugin Perl: Could not shell_out "perl -V:version -V:archname". Skipping plugin')
43
-
44
- end
45
- end
1
+ #
2
+ # Author:: Joshua Timberman (<joshua@chef.io>)
3
+ # Copyright:: Copyright (c) Chef Software 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(:Perl) do
20
+ provides "languages/perl"
21
+ depends "languages".freeze
22
+
23
+ collect_data do
24
+
25
+ so = shell_out("perl -V:version -V:archname")
26
+ # Sample output:
27
+ # version='5.18.2';
28
+ # archname='darwin-thread-multi-2level';
29
+ if so.exitstatus == 0
30
+ perl = Mash.new
31
+ so.stdout.split(/\r?\n/).each do |line|
32
+ case line
33
+ when /^version=\'(.+)\';$/
34
+ perl[:version] = $1
35
+ when /^archname=\'(.+)\';$/
36
+ perl[:archname] = $1
37
+ end
38
+ end
39
+ languages[:perl] = perl unless perl.empty?
40
+ end
41
+ rescue Ohai::Exceptions::Exec
42
+ logger.trace('Plugin Perl: Could not shell_out "perl -V:version -V:archname". Skipping plugin')
43
+
44
+ end
45
+ end
@@ -1,52 +1,52 @@
1
- #
2
- # Author:: Doug MacEachern <dougm@vmware.com>
3
- # Author:: Tim Smith <tim@cozy.co>
4
- # Copyright:: Copyright (c) 2009 VMware, Inc.
5
- # Copyright:: Copyright (c) 2014 Cozy Services, Ltd.
6
- # License:: Apache License, Version 2.0
7
- #
8
- # Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- # See the License for the specific language governing permissions and
18
- # limitations under the License.
19
- #
20
-
21
- Ohai.plugin(:PHP) do
22
- provides "languages/php"
23
- depends "languages".freeze
24
-
25
- collect_data do
26
-
27
- so = shell_out("php -v")
28
- # Sample output:
29
- # PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
30
- # Copyright (c) 1997-2015 The PHP Group
31
- # Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
32
- if so.exitstatus == 0
33
- php = Mash.new
34
- so.stdout.each_line do |line|
35
- case line
36
- when /^PHP (\S+)(?:.*built: ([^)]+))?/
37
- php[:version] = $1
38
- php[:builddate] = $2
39
- when /Zend Engine v([^\s]+),/
40
- php[:zend_engine_version] = $1
41
- when /Zend OPcache v([^\s]+),/
42
- php[:zend_opcache_version] = $1
43
- end
44
- end
45
-
46
- languages[:php] = php unless php.empty?
47
- end
48
- rescue Ohai::Exceptions::Exec
49
- logger.trace('Plugin Php: Could not shell_out "php -v". Skipping plugin')
50
-
51
- end
52
- end
1
+ #
2
+ # Author:: Doug MacEachern <dougm@vmware.com>
3
+ # Author:: Tim Smith <tim@cozy.co>
4
+ # Copyright:: Copyright (c) 2009 VMware, Inc.
5
+ # Copyright:: Copyright (c) 2014 Cozy Services, Ltd.
6
+ # License:: Apache License, Version 2.0
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ Ohai.plugin(:PHP) do
22
+ provides "languages/php"
23
+ depends "languages".freeze
24
+
25
+ collect_data do
26
+
27
+ so = shell_out("php -v")
28
+ # Sample output:
29
+ # PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
30
+ # Copyright (c) 1997-2015 The PHP Group
31
+ # Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
32
+ if so.exitstatus == 0
33
+ php = Mash.new
34
+ so.stdout.each_line do |line|
35
+ case line
36
+ when /^PHP (\S+)(?:.*built: ([^)]+))?/
37
+ php[:version] = $1
38
+ php[:builddate] = $2
39
+ when /Zend Engine v([^\s]+),/
40
+ php[:zend_engine_version] = $1
41
+ when /Zend OPcache v([^\s]+),/
42
+ php[:zend_opcache_version] = $1
43
+ end
44
+ end
45
+
46
+ languages[:php] = php unless php.empty?
47
+ end
48
+ rescue Ohai::Exceptions::Exec
49
+ logger.trace('Plugin Php: Could not shell_out "php -v". Skipping plugin')
50
+
51
+ end
52
+ end
@@ -1,41 +1,41 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Adam Jacob (<adam@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(:Platform) do
21
- provides "platform", "platform_version", "platform_family", "platform_backend"
22
- depends "os", "os_version"
23
-
24
- collect_data(:default) do
25
- platform os unless attribute?("platform")
26
- platform_version os_version unless attribute?("platform_version")
27
- platform_family platform unless attribute?("platform_family")
28
-
29
- platform_backend Mash.new
30
- platform_backend["type"] = "local"
31
- platform_backend["uri"] = "local://"
32
-
33
- if connection
34
- platform_backend["type"] = connection.backend_type
35
- if connection.respond_to?(:uri)
36
- platform_backend["type"] = connection.uri.split(":").first
37
- platform_backend["uri"] = connection.uri
38
- end
39
- end
40
- end
41
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Adam Jacob (<adam@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(:Platform) do
21
+ provides "platform", "platform_version", "platform_family", "platform_backend"
22
+ depends "os", "os_version"
23
+
24
+ collect_data(:default) do
25
+ platform os unless attribute?("platform")
26
+ platform_version os_version unless attribute?("platform_version")
27
+ platform_family platform unless attribute?("platform_family")
28
+
29
+ platform_backend Mash.new
30
+ platform_backend["type"] = "local"
31
+ platform_backend["uri"] = "local://"
32
+
33
+ if connection
34
+ platform_backend["type"] = connection.backend_type
35
+ if connection.respond_to?(:uri)
36
+ platform_backend["type"] = connection.uri.split(":").first
37
+ platform_backend["uri"] = connection.uri
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,82 +1,82 @@
1
- #
2
- # Copyright:: Copyright (c) Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- Ohai.plugin(:Powershell) do
19
- provides "languages/powershell"
20
- depends "languages".freeze
21
-
22
- collect_data(:windows) do
23
-
24
- so = shell_out("powershell.exe -NoLogo -NonInteractive -NoProfile -command $PSVersionTable")
25
- # Sample output:
26
- #
27
- # Name Value
28
- # ---- -----
29
- # PSVersion 4.0
30
- # WSManStackVersion 3.0
31
- # SerializationVersion 1.1.0.1
32
- # CLRVersion 4.0.30319.34014
33
- # BuildVersion 6.3.9600.16394
34
- # PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
35
- # PSRemotingProtocolVersion 2.2
36
-
37
- if so.exitstatus == 0
38
- powershell = Mash.new
39
- version_info = {}
40
- so.stdout.strip.each_line do |line|
41
- kv = line.strip.split(/\s+/, 2)
42
- version_info[kv[0]] = kv[1] if kv.length == 2
43
- end
44
- powershell[:version] = version_info["PSVersion"]
45
- powershell[:ws_man_stack_version] = version_info["WSManStackVersion"]
46
- powershell[:serialization_version] = version_info["SerializationVersion"]
47
- powershell[:clr_version] = version_info["CLRVersion"]
48
- powershell[:build_version] = version_info["BuildVersion"]
49
- powershell[:compatible_versions] = parse_compatible_versions
50
- powershell[:remoting_protocol_version] = version_info["PSRemotingProtocolVersion"]
51
- languages[:powershell] = powershell unless powershell.empty?
52
- end
53
- rescue Ohai::Exceptions::Exec
54
- logger.trace('Plugin Powershell: Could not shell_out "powershell.exe -NoLogo -NonInteractive -NoProfile -command $PSVersionTable". Skipping plugin')
55
-
56
- end
57
-
58
- def version_command
59
- [
60
- "$progresspreference = 'silentlycontinue'",
61
- "$PSVersionTable.PSCompatibleVersions | foreach {$_.tostring()}",
62
- ].join("; ")
63
- end
64
-
65
- def powershell_command
66
- ["powershell.exe",
67
- "-NoLogo",
68
- "-NonInteractive",
69
- "-NoProfile",
70
- "-Command",
71
- ].join(" ")
72
- end
73
-
74
- def parse_compatible_versions
75
- so = shell_out("#{powershell_command} \"#{version_command}\"")
76
- versions = []
77
- so.stdout.strip.each_line do |line|
78
- versions << line.strip
79
- end
80
- versions
81
- end
82
- end
1
+ #
2
+ # Copyright:: Copyright (c) Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ Ohai.plugin(:Powershell) do
19
+ provides "languages/powershell"
20
+ depends "languages".freeze
21
+
22
+ collect_data(:windows) do
23
+
24
+ so = shell_out("powershell.exe -NoLogo -NonInteractive -NoProfile -command $PSVersionTable")
25
+ # Sample output:
26
+ #
27
+ # Name Value
28
+ # ---- -----
29
+ # PSVersion 4.0
30
+ # WSManStackVersion 3.0
31
+ # SerializationVersion 1.1.0.1
32
+ # CLRVersion 4.0.30319.34014
33
+ # BuildVersion 6.3.9600.16394
34
+ # PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
35
+ # PSRemotingProtocolVersion 2.2
36
+
37
+ if so.exitstatus == 0
38
+ powershell = Mash.new
39
+ version_info = {}
40
+ so.stdout.strip.each_line do |line|
41
+ kv = line.strip.split(/\s+/, 2)
42
+ version_info[kv[0]] = kv[1] if kv.length == 2
43
+ end
44
+ powershell[:version] = version_info["PSVersion"]
45
+ powershell[:ws_man_stack_version] = version_info["WSManStackVersion"]
46
+ powershell[:serialization_version] = version_info["SerializationVersion"]
47
+ powershell[:clr_version] = version_info["CLRVersion"]
48
+ powershell[:build_version] = version_info["BuildVersion"]
49
+ powershell[:compatible_versions] = parse_compatible_versions
50
+ powershell[:remoting_protocol_version] = version_info["PSRemotingProtocolVersion"]
51
+ languages[:powershell] = powershell unless powershell.empty?
52
+ end
53
+ rescue Ohai::Exceptions::Exec
54
+ logger.trace('Plugin Powershell: Could not shell_out "powershell.exe -NoLogo -NonInteractive -NoProfile -command $PSVersionTable". Skipping plugin')
55
+
56
+ end
57
+
58
+ def version_command
59
+ [
60
+ "$progresspreference = 'silentlycontinue'",
61
+ "$PSVersionTable.PSCompatibleVersions | foreach {$_.tostring()}",
62
+ ].join("; ")
63
+ end
64
+
65
+ def powershell_command
66
+ ["powershell.exe",
67
+ "-NoLogo",
68
+ "-NonInteractive",
69
+ "-NoProfile",
70
+ "-Command",
71
+ ].join(" ")
72
+ end
73
+
74
+ def parse_compatible_versions
75
+ so = shell_out("#{powershell_command} \"#{version_command}\"")
76
+ versions = []
77
+ so.stdout.strip.each_line do |line|
78
+ versions << line.strip
79
+ end
80
+ versions
81
+ end
82
+ end