ohai 18.2.7 → 19.1.16
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.
- checksums.yaml +4 -4
- data/Gemfile +6 -6
- data/lib/ohai/loader.rb +3 -2
- data/lib/ohai/mixin/oci_metadata.rb +34 -1
- data/lib/ohai/plugins/alibaba.rb +1 -1
- data/lib/ohai/plugins/ec2.rb +5 -1
- data/lib/ohai/plugins/eucalyptus.rb +1 -1
- data/lib/ohai/plugins/filesystem.rb +0 -4
- data/lib/ohai/plugins/freebsd/network.rb +35 -10
- data/lib/ohai/plugins/gce.rb +1 -1
- data/lib/ohai/plugins/linux/network.rb +3 -1
- data/lib/ohai/plugins/oci.rb +15 -15
- data/lib/ohai/plugins/rpm.rb +1 -1
- data/lib/ohai/plugins/windows/dmi.rb +1 -1
- data/lib/ohai/plugins/windows/network.rb +1 -1
- data/lib/ohai/version.rb +1 -1
- data/ohai.gemspec +6 -5
- metadata +27 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6339d53754721217929ead82d4a232ace638f648d5e7ba2469221dfd22da54a0
|
|
4
|
+
data.tar.gz: 28eda66502f23a2bacf4c96407fb89193023fe76cd5f30f0ab839096def6e044
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c33166e19c09e55f3b28d9ee437a350666b7241b949e0b45bc1e4cc27118bc86130f2c6520c7a136de879d3e72fde0254cadbe3d562646abc7298cbb8b437731
|
|
7
|
+
data.tar.gz: ffd0515bda588dee888dcd1deed4a8d1275b35ddbb55d7b8913b5e87203781628820f0417df55847da3e27a2cec85b2df2e7a2cb7dcb632b9f1181d2f0575e03
|
data/Gemfile
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
source "https://rubygems.org"
|
|
3
4
|
|
|
4
5
|
gemspec
|
|
5
6
|
|
|
6
|
-
# pull these gems from main of chef/chef so that we
|
|
7
|
-
gem "
|
|
8
|
-
gem "chef-
|
|
9
|
-
|
|
7
|
+
# pull these gems from main of chef/chef so that we"re testing against what we will release
|
|
8
|
+
gem "appbundler"
|
|
9
|
+
gem "chef-config", git: "https://github.com/chef/chef", branch: "main", glob: "chef-config/chef-config.gemspec"
|
|
10
|
+
gem "chef-utils", git: "https://github.com/chef/chef", branch: "main", glob: "chef-utils/chef-utils.gemspec"
|
|
11
|
+
gem "ffi", "~> 1.17", force_ruby_platform: true
|
|
10
12
|
# NOTE: do not submit PRs to add pry as a dep, add to your Gemfile.local
|
|
11
13
|
group :development do
|
|
12
14
|
gem "cookstyle", ">= 7.32.8"
|
|
@@ -16,8 +18,6 @@ group :development do
|
|
|
16
18
|
gem "rspec-core", "~> 3.0"
|
|
17
19
|
gem "rspec-expectations", "~> 3.0"
|
|
18
20
|
gem "rspec-mocks", "~> 3.0"
|
|
19
|
-
gem "rubocop-performance", "1.18.0"
|
|
20
|
-
gem "rubocop-rspec"
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
group :debug do
|
data/lib/ohai/loader.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
#
|
|
2
3
|
# Author:: Claire McQuin (<claire@chef.io>)
|
|
3
4
|
# Copyright:: Copyright (c) Chef Software Inc.
|
|
@@ -97,10 +98,10 @@ module Ohai
|
|
|
97
98
|
# @return [Object] class object for the ohai plugin defined in the file
|
|
98
99
|
def load_plugin_class(plugin_path)
|
|
99
100
|
# Read the contents of the plugin to understand if it's a V6 or V7 plugin.
|
|
100
|
-
contents =
|
|
101
|
+
contents = nil
|
|
101
102
|
begin
|
|
102
103
|
logger.trace("Loading plugin at #{plugin_path}")
|
|
103
|
-
contents
|
|
104
|
+
contents = File.read(plugin_path)
|
|
104
105
|
rescue IOError, Errno::ENOENT
|
|
105
106
|
logger.warn("Unable to open or read plugin at #{plugin_path}")
|
|
106
107
|
return nil
|
|
@@ -28,6 +28,39 @@ module Ohai
|
|
|
28
28
|
OCI_METADATA_URL = "/opc/v2"
|
|
29
29
|
CHASSIS_ASSET_TAG_FILE = "/sys/devices/virtual/dmi/id/chassis_asset_tag"
|
|
30
30
|
|
|
31
|
+
# Get the chassis asset tag from DMI information
|
|
32
|
+
# On Linux: reads from sysfs
|
|
33
|
+
# On Windows: queries WMI Win32_SystemEnclosure
|
|
34
|
+
def chassis_asset_tag
|
|
35
|
+
if RUBY_PLATFORM =~ /mswin|mingw|windows/
|
|
36
|
+
get_chassis_asset_tag_windows
|
|
37
|
+
else
|
|
38
|
+
get_chassis_asset_tag_linux
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Read chassis asset tag from Linux sysfs
|
|
43
|
+
def get_chassis_asset_tag_linux
|
|
44
|
+
return unless ::File.exist?(CHASSIS_ASSET_TAG_FILE)
|
|
45
|
+
|
|
46
|
+
::File.read(CHASSIS_ASSET_TAG_FILE).strip
|
|
47
|
+
rescue => e
|
|
48
|
+
logger.debug("Mixin OciMetadata: Failed to read chassis asset tag from #{CHASSIS_ASSET_TAG_FILE}: #{e}")
|
|
49
|
+
nil
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Read chassis asset tag from Windows WMI
|
|
53
|
+
def get_chassis_asset_tag_windows
|
|
54
|
+
require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
|
|
55
|
+
|
|
56
|
+
wmi = WmiLite::Wmi.new
|
|
57
|
+
enclosure = wmi.first_of("Win32_SystemEnclosure")
|
|
58
|
+
enclosure&.[]("SMBIOSAssetTag")
|
|
59
|
+
rescue => e
|
|
60
|
+
logger.debug("Mixin OciMetadata: Failed to read chassis asset tag from WMI: #{e}")
|
|
61
|
+
nil
|
|
62
|
+
end
|
|
63
|
+
|
|
31
64
|
# fetch the meta content with a timeout and the required header
|
|
32
65
|
def http_get(uri)
|
|
33
66
|
conn = Net::HTTP.start(OCI_METADATA_ADDR)
|
|
@@ -51,7 +84,7 @@ module Ohai
|
|
|
51
84
|
end
|
|
52
85
|
json_data
|
|
53
86
|
else
|
|
54
|
-
logger.
|
|
87
|
+
logger.debug("Mixin OciMetadata: Received response code #{response.code} requesting #{metadata}")
|
|
55
88
|
nil
|
|
56
89
|
end
|
|
57
90
|
end
|
data/lib/ohai/plugins/alibaba.rb
CHANGED
|
@@ -54,7 +54,7 @@ Ohai.plugin(:Alibaba) do
|
|
|
54
54
|
# a single check that combines all the various detection methods for Alibaba
|
|
55
55
|
# @return [Boolean] Does the system appear to be on Alibaba
|
|
56
56
|
def looks_like_alibaba?
|
|
57
|
-
|
|
57
|
+
hint?("alibaba") || has_ali_dmi?
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
collect_data do
|
data/lib/ohai/plugins/ec2.rb
CHANGED
|
@@ -108,7 +108,11 @@ Ohai.plugin(:EC2) do
|
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
collect_data do
|
|
111
|
-
|
|
111
|
+
begin
|
|
112
|
+
require "base64" unless defined?(Base64)
|
|
113
|
+
rescue LoadError
|
|
114
|
+
logger.warn("Plugin EC2: base64 gem not found. Binary userdata will not be properly encoded.")
|
|
115
|
+
end
|
|
112
116
|
|
|
113
117
|
if looks_like_ec2?
|
|
114
118
|
logger.trace("Plugin EC2: looks_like_ec2? == true")
|
|
@@ -29,7 +29,7 @@ Ohai.plugin(:Eucalyptus) do
|
|
|
29
29
|
provides "eucalyptus"
|
|
30
30
|
depends "network/interfaces"
|
|
31
31
|
|
|
32
|
-
MAC_MATCH = /^[dD]0:0[dD]
|
|
32
|
+
MAC_MATCH = /^[dD]0:0[dD]:/ unless defined?(MAC_MATCH)
|
|
33
33
|
|
|
34
34
|
# returns the mac address from the collection of all address types
|
|
35
35
|
def get_mac_address(addresses)
|
|
@@ -744,10 +744,6 @@ Ohai.plugin(:Filesystem) do
|
|
|
744
744
|
fs_data["by_mountpoint"] = by_mountpoint
|
|
745
745
|
fs_data["by_pair"] = by_pair
|
|
746
746
|
|
|
747
|
-
# Chef 16 added 'filesystem2'
|
|
748
|
-
# In Chef 17 we made 'filesystem' and 'filesystem2' match (both new-style)
|
|
749
|
-
# In Chef 18 we will drop 'filesystem2'
|
|
750
747
|
filesystem fs_data
|
|
751
|
-
filesystem2 fs_data
|
|
752
748
|
end
|
|
753
749
|
end
|
|
@@ -43,7 +43,7 @@ Ohai.plugin(:Network) do
|
|
|
43
43
|
so = shell_out("#{Ohai.abs_path( "/sbin/ifconfig" )} -a")
|
|
44
44
|
cint = nil
|
|
45
45
|
so.stdout.lines do |line|
|
|
46
|
-
if line =~ /^([0-9a-zA-Z\.]+):\s+/
|
|
46
|
+
if line =~ /^([0-9a-zA-Z\._]+):\s+/
|
|
47
47
|
cint = $1
|
|
48
48
|
iface[cint] = Mash.new
|
|
49
49
|
if cint =~ /^(\w+)(\d+.*)/
|
|
@@ -80,10 +80,13 @@ Ohai.plugin(:Network) do
|
|
|
80
80
|
flags = $1.split(",")
|
|
81
81
|
iface[cint][:flags] = flags if flags.length > 0
|
|
82
82
|
end
|
|
83
|
-
if line =~ /metric
|
|
83
|
+
if line =~ /metric (\d+) mtu (\d+)/
|
|
84
84
|
iface[cint][:metric] = $1
|
|
85
85
|
iface[cint][:mtu] = $2
|
|
86
86
|
end
|
|
87
|
+
if line =~ /media: (\w+)/
|
|
88
|
+
iface[cint][:encapsulation] = $1
|
|
89
|
+
end
|
|
87
90
|
end
|
|
88
91
|
|
|
89
92
|
so = shell_out("arp -an")
|
|
@@ -104,22 +107,44 @@ Ohai.plugin(:Network) do
|
|
|
104
107
|
# which have been auto-configured (interfaces statically configured
|
|
105
108
|
# into a system, but not located at boot time are not shown).
|
|
106
109
|
so = shell_out("netstat -ibdn")
|
|
107
|
-
so.stdout.lines
|
|
110
|
+
head = so.stdout.lines[0]
|
|
111
|
+
have_drop = false
|
|
112
|
+
if head =~ /Idrop/
|
|
113
|
+
have_drop = true
|
|
114
|
+
# Name Mtu Network Address Ipkts Ierrs Idrop Ibytes Opkts Oerrs Obytes Coll Drop
|
|
115
|
+
# vtnet0 1500 <Link#1> fa:16:3e:ba:3e:25 579 0 0 46746 210 0 26242 0 0
|
|
116
|
+
# $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11
|
|
117
|
+
regex = /^([\w\.\*]+)\s+\d+\s+<Link#\d+>\s+([\w\d:]*)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/
|
|
118
|
+
else
|
|
108
119
|
# Name Mtu Network Address Ipkts Ierrs Ibytes Opkts Oerrs Obytes Coll Drop
|
|
109
120
|
# ed0 1500 <Link#1> 54:52:00:68:92:85 333604 26 151905886 175472 0 24897542 0 905
|
|
110
121
|
# $1 $2 $3 $4 $5 $6 $7 $8 $9 $10
|
|
111
|
-
|
|
122
|
+
regex = /^([\w\.\*]+)\s+\d+\s+<Link#\d+>\s+([\w\d:]*)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/
|
|
123
|
+
end
|
|
124
|
+
so.stdout.lines do |line|
|
|
125
|
+
if line =~ regex
|
|
112
126
|
net_counters[$1] ||= Mash.new
|
|
113
127
|
net_counters[$1]["rx"] ||= Mash.new
|
|
114
128
|
net_counters[$1]["tx"] ||= Mash.new
|
|
115
129
|
net_counters[$1]["rx"]["packets"] = $3
|
|
116
130
|
net_counters[$1]["rx"]["errors"] = $4
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
if have_drop
|
|
132
|
+
net_counters[$1]["rx"]["dropped"] = $5
|
|
133
|
+
net_counters[$1]["rx"]["bytes"] = $6
|
|
134
|
+
net_counters[$1]["tx"]["packets"] = $7
|
|
135
|
+
net_counters[$1]["tx"]["errors"] = $8
|
|
136
|
+
net_counters[$1]["tx"]["bytes"] = $9
|
|
137
|
+
net_counters[$1]["tx"]["collisions"] = $10
|
|
138
|
+
net_counters[$1]["tx"]["dropped"] = $11
|
|
139
|
+
else
|
|
140
|
+
net_counters[$1]["rx"]["bytes"] = $5
|
|
141
|
+
net_counters[$1]["tx"]["packets"] = $6
|
|
142
|
+
net_counters[$1]["tx"]["errors"] = $7
|
|
143
|
+
net_counters[$1]["tx"]["bytes"] = $8
|
|
144
|
+
net_counters[$1]["tx"]["collisions"] = $9
|
|
145
|
+
net_counters[$1]["tx"]["dropped"] = $10
|
|
146
|
+
end
|
|
147
|
+
|
|
123
148
|
end
|
|
124
149
|
end
|
|
125
150
|
|
data/lib/ohai/plugins/gce.rb
CHANGED
|
@@ -72,7 +72,7 @@ Ohai.plugin(:GCE) do
|
|
|
72
72
|
return true if hint?("gce")
|
|
73
73
|
|
|
74
74
|
if has_gce_dmi? || has_gce_system_info?
|
|
75
|
-
|
|
75
|
+
can_socket_connect?(Ohai::Mixin::GCEMetadata::GCE_METADATA_ADDR, 80)
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
|
|
@@ -578,6 +578,8 @@ Ohai.plugin(:Network) do
|
|
|
578
578
|
|
|
579
579
|
# returns the macaddress for interface from a hash of interfaces (iface elsewhere in this file)
|
|
580
580
|
def get_mac_for_interface(interfaces, interface)
|
|
581
|
+
return "00:00:00:00:00:00" if interfaces[interface][:flags].include?("LOOPBACK")
|
|
582
|
+
|
|
581
583
|
interfaces[interface][:addresses].find { |k, v| v["family"] == "lladdr" }.first unless interfaces[interface][:addresses].nil? || interfaces[interface][:flags].include?("NOARP")
|
|
582
584
|
end
|
|
583
585
|
|
|
@@ -700,7 +702,7 @@ Ohai.plugin(:Network) do
|
|
|
700
702
|
# Match the lead line for an interface from iproute2
|
|
701
703
|
# 3: eth0.11@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
|
|
702
704
|
# The '@eth0:' portion doesn't exist on primary interfaces and thus is optional in the regex
|
|
703
|
-
IPROUTE_INT_REGEX ||= /^(\d+): ([0-9a-zA-Z
|
|
705
|
+
IPROUTE_INT_REGEX ||= /^(\d+): ([0-9a-zA-Z@:;\.\-_]*?)(@[0-9a-zA-Z\-_]+|):\s/
|
|
704
706
|
|
|
705
707
|
if which("ip")
|
|
706
708
|
# families to get default routes from
|
data/lib/ohai/plugins/oci.rb
CHANGED
|
@@ -44,24 +44,22 @@ Ohai.plugin(:Oci) do
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def oci_chassis_asset_tag?
|
|
47
|
-
|
|
48
|
-
if
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
end
|
|
47
|
+
asset_tag = chassis_asset_tag
|
|
48
|
+
return false if asset_tag.nil? || asset_tag.empty?
|
|
49
|
+
|
|
50
|
+
if /OracleCloud.com/.match?(asset_tag)
|
|
51
|
+
logger.trace("Plugin oci: Found OracleCloud.com chassis_asset_tag used by oci.")
|
|
52
|
+
true
|
|
53
|
+
else
|
|
54
|
+
false
|
|
56
55
|
end
|
|
57
|
-
has_oci_chassis_asset_tag
|
|
58
56
|
end
|
|
59
57
|
|
|
60
58
|
def parse_metadata
|
|
61
|
-
return
|
|
59
|
+
return unless can_socket_connect?(Ohai::Mixin::OCIMetadata::OCI_METADATA_ADDR, 80)
|
|
62
60
|
|
|
63
61
|
instance_data = fetch_metadata("instance")
|
|
64
|
-
return
|
|
62
|
+
return if instance_data.nil?
|
|
65
63
|
|
|
66
64
|
metadata = Mash.new
|
|
67
65
|
metadata["compute"] = Mash.new
|
|
@@ -80,12 +78,14 @@ Ohai.plugin(:Oci) do
|
|
|
80
78
|
end
|
|
81
79
|
end
|
|
82
80
|
|
|
83
|
-
volume_attachments_data = fetch_metadata("
|
|
81
|
+
volume_attachments_data = fetch_metadata("allVolumeAttachments")
|
|
84
82
|
|
|
85
83
|
unless volume_attachments_data.nil?
|
|
86
84
|
metadata["volumes"] = Mash.new
|
|
87
|
-
volume_attachments_data.each do |
|
|
88
|
-
|
|
85
|
+
volume_attachments_data.each do |v|
|
|
86
|
+
if v.is_a?(Hash) && v["id"]
|
|
87
|
+
metadata["volumes"][v["id"]] = v
|
|
88
|
+
end
|
|
89
89
|
end
|
|
90
90
|
end
|
|
91
91
|
|
data/lib/ohai/plugins/rpm.rb
CHANGED
|
@@ -22,7 +22,7 @@ Ohai.plugin(:Rpm) do
|
|
|
22
22
|
provides "rpm"
|
|
23
23
|
optional "true"
|
|
24
24
|
|
|
25
|
-
MACROS_MARKER =
|
|
25
|
+
MACROS_MARKER = /========================/ unless defined?(MACROS_MARKER)
|
|
26
26
|
|
|
27
27
|
unless defined?(DO_NOT_SPLIT)
|
|
28
28
|
DO_NOT_SPLIT = %w{
|
|
@@ -37,7 +37,7 @@ Ohai.plugin(:DMI) do
|
|
|
37
37
|
#
|
|
38
38
|
# This cannot handle some property names, eg SMBIOSBIOSVersion.
|
|
39
39
|
# https://rubular.com/r/FBNtXod4wkZGAG
|
|
40
|
-
SPLIT_REGEX ||= /[A-Z][a-z0-9]+|[A-Z]{2,}(?=[A-Z][a-z0-9])|[A-Z]{2,}
|
|
40
|
+
SPLIT_REGEX ||= /[A-Z][a-z0-9]+|[A-Z]{2,}(?=[A-Z][a-z0-9])|[A-Z]{2,}/
|
|
41
41
|
|
|
42
42
|
WINDOWS_TO_UNIX_KEYS ||= [
|
|
43
43
|
%w{vendor manufacturer},
|
|
@@ -41,7 +41,7 @@ Ohai.plugin(:Network) do
|
|
|
41
41
|
# If we are running on windows nano or another operating system from the future
|
|
42
42
|
# that does not populate the deprecated win32_* WMI classes, then we should
|
|
43
43
|
# grab data from the newer MSFT_* classes
|
|
44
|
-
return msft_adapter_data if data[:addresses].
|
|
44
|
+
return msft_adapter_data if data[:addresses].none?
|
|
45
45
|
|
|
46
46
|
data[:adapters] = wmi.instances_of("Win32_NetworkAdapter")
|
|
47
47
|
data
|
data/lib/ohai/version.rb
CHANGED
data/ohai.gemspec
CHANGED
|
@@ -12,17 +12,18 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
s.email = "adam@chef.io"
|
|
13
13
|
s.homepage = "https://github.com/chef/ohai/"
|
|
14
14
|
|
|
15
|
-
s.required_ruby_version = ">=
|
|
15
|
+
s.required_ruby_version = ">= 3.1"
|
|
16
16
|
|
|
17
|
-
s.add_dependency "
|
|
18
|
-
s.add_dependency "chef-
|
|
19
|
-
s.add_dependency "
|
|
17
|
+
s.add_dependency "base64" # For encoding binary data in Ruby 3.4+
|
|
18
|
+
s.add_dependency "chef-config", ">= 14.12", "< 20"
|
|
19
|
+
s.add_dependency "chef-utils", ">= 16.0", "< 20"
|
|
20
|
+
s.add_dependency "ffi", ">= 1.15.5"
|
|
20
21
|
s.add_dependency "ffi-yajl", "~> 2.2"
|
|
21
22
|
s.add_dependency "ipaddress"
|
|
22
23
|
s.add_dependency "mixlib-cli", ">= 1.7.0" # 1.7+ needed to support passing multiple options
|
|
23
24
|
s.add_dependency "mixlib-config", ">= 2.0", "< 4.0"
|
|
24
25
|
s.add_dependency "mixlib-log", ">= 2.0.1", "< 4.0"
|
|
25
|
-
s.add_dependency "mixlib-shellout", "~> 3.
|
|
26
|
+
s.add_dependency "mixlib-shellout", "~> 3.3.6"
|
|
26
27
|
s.add_dependency "plist", "~> 3.1"
|
|
27
28
|
s.add_dependency "train-core"
|
|
28
29
|
s.add_dependency "wmi-lite", "~> 1.0"
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ohai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 19.1.16
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Jacob
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-12-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: base64
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: chef-config
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -19,7 +33,7 @@ dependencies:
|
|
|
19
33
|
version: '14.12'
|
|
20
34
|
- - "<"
|
|
21
35
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
36
|
+
version: '20'
|
|
23
37
|
type: :runtime
|
|
24
38
|
prerelease: false
|
|
25
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,7 +43,7 @@ dependencies:
|
|
|
29
43
|
version: '14.12'
|
|
30
44
|
- - "<"
|
|
31
45
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
46
|
+
version: '20'
|
|
33
47
|
- !ruby/object:Gem::Dependency
|
|
34
48
|
name: chef-utils
|
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -39,7 +53,7 @@ dependencies:
|
|
|
39
53
|
version: '16.0'
|
|
40
54
|
- - "<"
|
|
41
55
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '
|
|
56
|
+
version: '20'
|
|
43
57
|
type: :runtime
|
|
44
58
|
prerelease: false
|
|
45
59
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -49,27 +63,21 @@ dependencies:
|
|
|
49
63
|
version: '16.0'
|
|
50
64
|
- - "<"
|
|
51
65
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '
|
|
66
|
+
version: '20'
|
|
53
67
|
- !ruby/object:Gem::Dependency
|
|
54
68
|
name: ffi
|
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
|
56
70
|
requirements:
|
|
57
|
-
- - "
|
|
58
|
-
- !ruby/object:Gem::Version
|
|
59
|
-
version: '1.9'
|
|
60
|
-
- - "<="
|
|
71
|
+
- - ">="
|
|
61
72
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: 1.
|
|
73
|
+
version: 1.15.5
|
|
63
74
|
type: :runtime
|
|
64
75
|
prerelease: false
|
|
65
76
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
77
|
requirements:
|
|
67
|
-
- - "
|
|
68
|
-
- !ruby/object:Gem::Version
|
|
69
|
-
version: '1.9'
|
|
70
|
-
- - "<="
|
|
78
|
+
- - ">="
|
|
71
79
|
- !ruby/object:Gem::Version
|
|
72
|
-
version: 1.
|
|
80
|
+
version: 1.15.5
|
|
73
81
|
- !ruby/object:Gem::Dependency
|
|
74
82
|
name: ffi-yajl
|
|
75
83
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -158,20 +166,14 @@ dependencies:
|
|
|
158
166
|
requirements:
|
|
159
167
|
- - "~>"
|
|
160
168
|
- !ruby/object:Gem::Version
|
|
161
|
-
version:
|
|
162
|
-
- - ">="
|
|
163
|
-
- !ruby/object:Gem::Version
|
|
164
|
-
version: 3.2.5
|
|
169
|
+
version: 3.3.6
|
|
165
170
|
type: :runtime
|
|
166
171
|
prerelease: false
|
|
167
172
|
version_requirements: !ruby/object:Gem::Requirement
|
|
168
173
|
requirements:
|
|
169
174
|
- - "~>"
|
|
170
175
|
- !ruby/object:Gem::Version
|
|
171
|
-
version:
|
|
172
|
-
- - ">="
|
|
173
|
-
- !ruby/object:Gem::Version
|
|
174
|
-
version: 3.2.5
|
|
176
|
+
version: 3.3.6
|
|
175
177
|
- !ruby/object:Gem::Dependency
|
|
176
178
|
name: plist
|
|
177
179
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -400,7 +402,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
400
402
|
requirements:
|
|
401
403
|
- - ">="
|
|
402
404
|
- !ruby/object:Gem::Version
|
|
403
|
-
version: '
|
|
405
|
+
version: '3.1'
|
|
404
406
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
405
407
|
requirements:
|
|
406
408
|
- - ">="
|