ohai 17.7.8 → 17.7.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/lib/ohai/plugins/rpm.rb +109 -0
- data/lib/ohai/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 152ee2a1456b0508eeb740837c37169e101f860d4398ed71dc2be86207aa9e75
|
4
|
+
data.tar.gz: ff72078f7fb2e6eab1207659eb0a66b4bfed98cbf66ca82778830ecfe545e5f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0bd1cc8142814db7d670a19cb6c49d7ccbfa7e029ae33ec79d194f27c03abdf07c215e155e50cc052893f9b3aef15a1c4de414e40e370753595fb877fa2c574
|
7
|
+
data.tar.gz: 23424895d514fe8ca3384e1155a75cbaba60a684aac6f4e53c924bb34733194691642a3b877f09c8e377b8a0fe59075bb2380d0bba9c8ed0c8abb59eea758aa2
|
data/Gemfile
CHANGED
@@ -9,14 +9,14 @@ gem "chef-utils", git: "https://github.com/chef/chef", branch: "main", glob: "ch
|
|
9
9
|
|
10
10
|
# NOTE: do not submit PRs to add pry as a dep, add to your Gemfile.local
|
11
11
|
group :development do
|
12
|
-
gem "chefstyle", "2.1.
|
12
|
+
gem "chefstyle", "2.1.3"
|
13
13
|
gem "ipaddr_extensions"
|
14
14
|
gem "rake", ">= 10.1.0"
|
15
15
|
gem "rspec-collection_matchers", "~> 1.0"
|
16
16
|
gem "rspec-core", "~> 3.0"
|
17
17
|
gem "rspec-expectations", "~> 3.0"
|
18
18
|
gem "rspec-mocks", "~> 3.0"
|
19
|
-
gem "rubocop-performance", "1.
|
19
|
+
gem "rubocop-performance", "1.12.0"
|
20
20
|
gem "rubocop-rspec"
|
21
21
|
end
|
22
22
|
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Author:: Davide Cavalca <dcavalca@fb.com>
|
5
|
+
# Copyright:: Copyright (c) 2021 Meta Platforms, Inc. and affiliates.
|
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(:Rpm) do
|
22
|
+
provides "rpm"
|
23
|
+
optional "true"
|
24
|
+
|
25
|
+
MACROS_MARKER = /========================/.freeze
|
26
|
+
|
27
|
+
DO_NOT_SPLIT = %w{
|
28
|
+
build_arch
|
29
|
+
build_os
|
30
|
+
install_arch
|
31
|
+
install_os
|
32
|
+
archcolor
|
33
|
+
optflags
|
34
|
+
}.freeze
|
35
|
+
|
36
|
+
collect_data(:aix, :darwin, :dragonflybsd, :freebsd, :linux, :netbsd, :openbsd, :solaris2) do
|
37
|
+
rpm_path = which("rpm")
|
38
|
+
if rpm_path
|
39
|
+
rpm_version_out = shell_out("#{rpm_path} --version")
|
40
|
+
rpm_showrc_out = shell_out("#{rpm_path} --showrc")
|
41
|
+
|
42
|
+
rpm Mash.new unless rpm
|
43
|
+
rpm[:macros] ||= Mash.new
|
44
|
+
|
45
|
+
m = rpm_version_out.stdout.match(/\w+ (\d.*)/)
|
46
|
+
if m
|
47
|
+
rpm[:version] = m[1]
|
48
|
+
end
|
49
|
+
|
50
|
+
lines = rpm_showrc_out.stdout.split("\n")
|
51
|
+
# there's a marker to separate the beginning and end of the macros list
|
52
|
+
macros_start_idx = lines.index { |x| x.match(MACROS_MARKER) }
|
53
|
+
macros_end_idx = lines.rindex { |x| x.match(MACROS_MARKER) }
|
54
|
+
section = nil
|
55
|
+
lines[0..macros_start_idx - 1].each do |line|
|
56
|
+
if line.start_with?("ARCHITECTURE AND OS")
|
57
|
+
section = :arch_os
|
58
|
+
rpm[section] ||= Mash.new
|
59
|
+
elsif line.start_with?("RPMRC VALUES")
|
60
|
+
section = :rpmrc
|
61
|
+
rpm[section] ||= Mash.new
|
62
|
+
elsif line.start_with?("Features supported by rpmlib")
|
63
|
+
section = :features
|
64
|
+
rpm[section] ||= Mash.new
|
65
|
+
elsif line.start_with?("Macro path")
|
66
|
+
fields = line.split(":", 2)
|
67
|
+
if fields
|
68
|
+
rpm[:macro_path] = fields[1].strip.split(":")
|
69
|
+
end
|
70
|
+
section = nil
|
71
|
+
elsif %i{arch_os rpmrc}.include?(section)
|
72
|
+
fields = line.split(":")
|
73
|
+
if fields && fields[0] && fields[1]
|
74
|
+
key = fields[0].strip.sub("'s", "es").tr(" ", "_")
|
75
|
+
if DO_NOT_SPLIT.include?(key)
|
76
|
+
values = fields[1].strip
|
77
|
+
else
|
78
|
+
values = fields[1].strip.split(" ")
|
79
|
+
end
|
80
|
+
rpm[section][key] = values
|
81
|
+
end
|
82
|
+
elsif section == :features
|
83
|
+
fields = line.split("=")
|
84
|
+
if fields && fields[0] && fields[1]
|
85
|
+
rpm[section][fields[0].strip] = fields[1].strip
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
name = nil
|
91
|
+
value = ""
|
92
|
+
lines[macros_start_idx + 1..macros_end_idx - 1].each do |line|
|
93
|
+
if line.start_with?("-")
|
94
|
+
if name
|
95
|
+
rpm[:macros][name] = value
|
96
|
+
name = nil
|
97
|
+
value = ""
|
98
|
+
else
|
99
|
+
_prefix, name, value = line.split(" ", 3)
|
100
|
+
end
|
101
|
+
else
|
102
|
+
value += "\n#{line}"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
else
|
106
|
+
logger.trace("Plugin RPM: Could not find rpm. Skipping plugin.")
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/ohai/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ohai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 17.7.
|
4
|
+
version: 17.7.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -341,6 +341,7 @@ files:
|
|
341
341
|
- lib/ohai/plugins/python.rb
|
342
342
|
- lib/ohai/plugins/rackspace.rb
|
343
343
|
- lib/ohai/plugins/root_group.rb
|
344
|
+
- lib/ohai/plugins/rpm.rb
|
344
345
|
- lib/ohai/plugins/ruby.rb
|
345
346
|
- lib/ohai/plugins/rust.rb
|
346
347
|
- lib/ohai/plugins/scala.rb
|