kafo_parsers 1.1.0 → 1.2.1
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/lib/kafo_parsers/puppet_strings_module_parser.rb +33 -2
- data/lib/kafo_parsers/version.rb +1 -1
- metadata +14 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 747520cf42c2a91caca542f85d2185620e75e291fb5cbaaa6e51bf7850868704
|
4
|
+
data.tar.gz: 556665c63d578dcc13e346a80413da96735be1fcf9df0294258e536ceff546e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92bb6e4a7c67b7a28c8834bfa702b56a87a538aa0e0055a7348369e3ef1d934a35fa6331c0758623aade6d427edc7a40a699b0c15ae282086b078e58f7479b11
|
7
|
+
data.tar.gz: 41ebd83a1ce35095dbd5206d6bfc27bd9d45499c77e32a96846330fda95f949a92343a3e802d13e60c17b3f8464e34a062e2139b278e293fd72a6d18d8dc32d9
|
@@ -133,10 +133,30 @@ module KafoParsers
|
|
133
133
|
|
134
134
|
private
|
135
135
|
|
136
|
+
def self.search_puppet_path(bin_name)
|
137
|
+
# Find the location of the puppet executable and use that to
|
138
|
+
# determine the path of all executables
|
139
|
+
bin_path = (::ENV['PATH'].split(File::PATH_SEPARATOR) + ['/opt/puppetlabs/bin']).find do |path|
|
140
|
+
File.executable?(File.join(path, 'puppet')) && File.executable?(File.join(path, bin_name))
|
141
|
+
end
|
142
|
+
File.join([bin_path, bin_name].compact)
|
143
|
+
end
|
144
|
+
|
145
|
+
def self.is_aio_puppet?
|
146
|
+
puppet_command = search_puppet_path('puppet')
|
147
|
+
File.realpath(puppet_command).start_with?('/opt/puppetlabs')
|
148
|
+
rescue Errno::ENOENT
|
149
|
+
false
|
150
|
+
end
|
151
|
+
|
136
152
|
def self.run_puppet(command)
|
137
|
-
env_vars = self.puppet_bin.start_with?('/opt/puppetlabs') ? clean_env_vars : ::ENV
|
138
153
|
command = command.unshift(self.puppet_bin)
|
139
|
-
|
154
|
+
|
155
|
+
if is_aio_puppet?
|
156
|
+
Open3.capture3(clean_env_vars, *command, :unsetenv_others => true)
|
157
|
+
else
|
158
|
+
Open3.capture3(::ENV, *command, :unsetenv_others => false)
|
159
|
+
end
|
140
160
|
end
|
141
161
|
|
142
162
|
def self.clean_env_vars
|
@@ -153,10 +173,21 @@ module KafoParsers
|
|
153
173
|
#
|
154
174
|
# values are reported as strings which is issue especially for :under
|
155
175
|
# strings are double quoted
|
176
|
+
# basic array and hashes are supported
|
156
177
|
# others must be typecast manually according to reported type
|
157
178
|
def sanitize(value)
|
158
179
|
if (value.start_with?("'") && value.end_with?("'")) || (value.start_with?('"') && value.end_with?('"'))
|
159
180
|
value = value[1..-2]
|
181
|
+
elsif value.start_with?('[') && value.end_with?(']')
|
182
|
+
# TODO: handle commas in strings like ["a,b", "c"]
|
183
|
+
value = value[1..-2].split(',').map { |v| sanitize(v.strip) }
|
184
|
+
elsif value.start_with?('{') && value.end_with?('}')
|
185
|
+
# TODO: handle commas and => in strings, like {"key" => "value,=>"}
|
186
|
+
value = value[1..-2].split(',').map do |v|
|
187
|
+
split = v.strip.split('=>')
|
188
|
+
raise 'Invalid hash' unless split.length == 2
|
189
|
+
split.map { |s| sanitize(s.strip) }
|
190
|
+
end.to_h
|
160
191
|
end
|
161
192
|
value = :undef if value == 'undef'
|
162
193
|
|
data/lib/kafo_parsers/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kafo_parsers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marek Hulan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3'
|
20
23
|
type: :development
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.5'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rake
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +136,7 @@ homepage: https://github.com/theforeman/kafo_parsers
|
|
130
136
|
licenses:
|
131
137
|
- GPL-3.0+
|
132
138
|
metadata: {}
|
133
|
-
post_install_message:
|
139
|
+
post_install_message:
|
134
140
|
rdoc_options: []
|
135
141
|
require_paths:
|
136
142
|
- lib
|
@@ -145,9 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
151
|
- !ruby/object:Gem::Version
|
146
152
|
version: '0'
|
147
153
|
requirements: []
|
148
|
-
|
149
|
-
|
150
|
-
signing_key:
|
154
|
+
rubygems_version: 3.1.6
|
155
|
+
signing_key:
|
151
156
|
specification_version: 4
|
152
157
|
summary: Puppet module parsers
|
153
158
|
test_files: []
|