puppet 7.24.0-universal-darwin → 7.26.0-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODEOWNERS +5 -5
- data/Gemfile.lock +37 -37
- data/ext/project_data.yaml +1 -1
- data/lib/puppet/defaults.rb +10 -5
- data/lib/puppet/http/client.rb +12 -5
- data/lib/puppet/indirector/catalog/json.rb +8 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +7 -2
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +20 -3
- data/lib/puppet/ssl/oids.rb +1 -0
- data/lib/puppet/thread_local.rb +1 -4
- data/lib/puppet/version.rb +1 -1
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/application/apply_spec.rb +14 -0
- data/spec/integration/http/client_spec.rb +16 -0
- data/spec/unit/defaults_spec.rb +2 -40
- data/spec/unit/network/http/api/indirected_routes_spec.rb +26 -0
- metadata +3 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf25e42634968757c424965508aa6fa26a66f57ee03868a2a4b0ddbd5503e7cf
|
4
|
+
data.tar.gz: b4194a13ab7e9f12eb46a82d5995e483b203ed578be64b9b39fd1d77e1f6199a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf6c5912116c3254330a96d5cc21d6d52807f613820967c1685c042eda64cf5bcb1ab8042b05adcaa936881940492c20d96a1a02640050fbf92140bdc8fc4450
|
7
|
+
data.tar.gz: 04ed925c840517e266cf62475897d32e6564f6bef383e3c57d0f144d89df13a584c21f4e95170f97d4fb8a71c6c7167f5e28dceb0591ba57c86771a84dae6da9
|
data/CODEOWNERS
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# defaults
|
2
|
-
* @puppetlabs/phoenix
|
2
|
+
* @puppetlabs/phoenix
|
3
3
|
|
4
4
|
# PAL
|
5
5
|
/lib/puppet/pal @puppetlabs/bolt
|
6
6
|
|
7
7
|
# puppet module
|
8
|
-
/lib/puppet/application/module.rb @puppetlabs/
|
9
|
-
/lib/puppet/face/module @puppetlabs/
|
10
|
-
/lib/puppet/forge @puppetlabs/
|
11
|
-
/lib/puppet/module_tool @puppetlabs/
|
8
|
+
/lib/puppet/application/module.rb @puppetlabs/modules
|
9
|
+
/lib/puppet/face/module @puppetlabs/modules
|
10
|
+
/lib/puppet/forge @puppetlabs/modules
|
11
|
+
/lib/puppet/module_tool @puppetlabs/modules
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
GIT
|
2
2
|
remote: https://github.com/puppetlabs/packaging
|
3
|
-
revision:
|
3
|
+
revision: affecba5dfacc5862fc7199895ccf11b69153570
|
4
4
|
branch: 1.0.x
|
5
5
|
specs:
|
6
|
-
packaging (0
|
6
|
+
packaging (0)
|
7
7
|
apt_stage_artifacts
|
8
8
|
artifactory (~> 3)
|
9
9
|
csv (>= 3.1.5)
|
@@ -15,9 +15,9 @@ GIT
|
|
15
15
|
PATH
|
16
16
|
remote: .
|
17
17
|
specs:
|
18
|
-
puppet (7.
|
18
|
+
puppet (7.26.0)
|
19
19
|
CFPropertyList (~> 2.2)
|
20
|
-
concurrent-ruby (~> 1.0
|
20
|
+
concurrent-ruby (~> 1.0)
|
21
21
|
deep_merge (~> 1.0)
|
22
22
|
facter (>= 2.4.0, < 5)
|
23
23
|
fast_gettext (>= 1.1, < 3)
|
@@ -31,27 +31,27 @@ GEM
|
|
31
31
|
remote: https://artifactory.delivery.puppetlabs.net/artifactory/api/gems/rubygems/
|
32
32
|
specs:
|
33
33
|
CFPropertyList (2.3.6)
|
34
|
-
addressable (2.8.
|
34
|
+
addressable (2.8.5)
|
35
35
|
public_suffix (>= 2.0.2, < 6.0)
|
36
36
|
apt_stage_artifacts (0.11.0)
|
37
37
|
docopt
|
38
38
|
artifactory (3.0.15)
|
39
39
|
ast (2.4.2)
|
40
40
|
coderay (1.1.3)
|
41
|
-
concurrent-ruby (1.
|
41
|
+
concurrent-ruby (1.2.2)
|
42
42
|
crack (0.4.5)
|
43
43
|
rexml
|
44
|
-
csv (3.2.
|
44
|
+
csv (3.2.7)
|
45
45
|
declarative (0.0.20)
|
46
46
|
deep_merge (1.2.2)
|
47
47
|
diff-lcs (1.5.0)
|
48
|
-
digest-crc (0.6.
|
48
|
+
digest-crc (0.6.5)
|
49
49
|
rake (>= 12.0.0, < 14.0.0)
|
50
50
|
docopt (0.6.1)
|
51
|
-
facter (4.
|
51
|
+
facter (4.4.2)
|
52
52
|
hocon (~> 1.3)
|
53
53
|
thor (>= 1.0.1, < 2.0)
|
54
|
-
faraday (2.7.
|
54
|
+
faraday (2.7.10)
|
55
55
|
faraday-net_http (>= 2.0, < 3.1)
|
56
56
|
ruby2_keywords (>= 0.0.4)
|
57
57
|
faraday-net_http (3.0.2)
|
@@ -64,7 +64,7 @@ GEM
|
|
64
64
|
fast_gettext (~> 1.1.0)
|
65
65
|
gettext (>= 3.0.2, < 3.3.0)
|
66
66
|
locale
|
67
|
-
google-apis-core (0.11.
|
67
|
+
google-apis-core (0.11.1)
|
68
68
|
addressable (~> 2.5, >= 2.5.1)
|
69
69
|
googleauth (>= 0.16.2, < 2.a)
|
70
70
|
httpclient (>= 2.8.1, < 3.a)
|
@@ -91,7 +91,7 @@ GEM
|
|
91
91
|
google-cloud-core (~> 1.6)
|
92
92
|
googleauth (>= 0.16.2, < 2.a)
|
93
93
|
mini_mime (~> 1.0)
|
94
|
-
googleauth (1.
|
94
|
+
googleauth (1.7.0)
|
95
95
|
faraday (>= 0.17.3, < 3.a)
|
96
96
|
jwt (>= 1.4, < 3.0)
|
97
97
|
memoist (~> 0.16)
|
@@ -100,7 +100,7 @@ GEM
|
|
100
100
|
signet (>= 0.16, < 2.a)
|
101
101
|
hashdiff (1.0.1)
|
102
102
|
hiera (3.12.0)
|
103
|
-
hiera-eyaml (3.
|
103
|
+
hiera-eyaml (3.4.0)
|
104
104
|
highline
|
105
105
|
optimist
|
106
106
|
highline (2.1.0)
|
@@ -109,35 +109,36 @@ GEM
|
|
109
109
|
httpclient (2.8.3)
|
110
110
|
json-schema (2.8.1)
|
111
111
|
addressable (>= 2.4)
|
112
|
-
jwt (2.7.
|
112
|
+
jwt (2.7.1)
|
113
113
|
locale (2.1.3)
|
114
114
|
memoist (0.16.2)
|
115
115
|
memory_profiler (1.0.1)
|
116
116
|
method_source (1.0.0)
|
117
|
-
mini_mime (1.1.
|
117
|
+
mini_mime (1.1.5)
|
118
118
|
minitar (0.9)
|
119
|
-
msgpack (1.7.
|
119
|
+
msgpack (1.7.2)
|
120
120
|
multi_json (1.15.0)
|
121
121
|
mustache (1.1.1)
|
122
|
-
optimist (3.0
|
122
|
+
optimist (3.1.0)
|
123
123
|
os (1.1.4)
|
124
|
-
parallel (1.
|
125
|
-
parser (3.2.2.
|
124
|
+
parallel (1.23.0)
|
125
|
+
parser (3.2.2.3)
|
126
126
|
ast (~> 2.4.1)
|
127
|
+
racc
|
127
128
|
pry (0.14.2)
|
128
129
|
coderay (~> 1.1)
|
129
130
|
method_source (~> 1.0)
|
130
|
-
public_suffix (5.0.
|
131
|
-
puppet-resource_api (1.
|
131
|
+
public_suffix (5.0.3)
|
132
|
+
puppet-resource_api (1.9.0)
|
132
133
|
hocon (>= 1.0)
|
133
|
-
puppetserver-ca (2.
|
134
|
+
puppetserver-ca (2.6.0)
|
134
135
|
facter (>= 2.0.1, < 5)
|
135
136
|
racc (1.5.2)
|
136
137
|
rainbow (3.1.1)
|
137
138
|
rake (13.0.6)
|
138
|
-
rdiscount (2.2.7)
|
139
|
+
rdiscount (2.2.7.1)
|
139
140
|
rdoc (6.3.3)
|
140
|
-
regexp_parser (2.
|
141
|
+
regexp_parser (2.8.1)
|
141
142
|
release-metrics (1.1.0)
|
142
143
|
csv
|
143
144
|
docopt
|
@@ -146,7 +147,7 @@ GEM
|
|
146
147
|
trailblazer-option (>= 0.1.1, < 0.2.0)
|
147
148
|
uber (< 0.2.0)
|
148
149
|
retriable (3.1.2)
|
149
|
-
rexml (3.2.
|
150
|
+
rexml (3.2.6)
|
150
151
|
ronn (0.7.3)
|
151
152
|
hpricot (>= 0.8.2)
|
152
153
|
mustache (>= 0.7.0)
|
@@ -155,18 +156,18 @@ GEM
|
|
155
156
|
rspec-core (~> 3.12.0)
|
156
157
|
rspec-expectations (~> 3.12.0)
|
157
158
|
rspec-mocks (~> 3.12.0)
|
158
|
-
rspec-core (3.12.
|
159
|
+
rspec-core (3.12.2)
|
159
160
|
rspec-support (~> 3.12.0)
|
160
|
-
rspec-expectations (3.12.
|
161
|
+
rspec-expectations (3.12.3)
|
161
162
|
diff-lcs (>= 1.2.0, < 2.0)
|
162
163
|
rspec-support (~> 3.12.0)
|
163
164
|
rspec-its (1.3.0)
|
164
165
|
rspec-core (>= 3.0.0)
|
165
166
|
rspec-expectations (>= 3.0.0)
|
166
|
-
rspec-mocks (3.12.
|
167
|
+
rspec-mocks (3.12.6)
|
167
168
|
diff-lcs (>= 1.2.0, < 2.0)
|
168
169
|
rspec-support (~> 3.12.0)
|
169
|
-
rspec-support (3.12.
|
170
|
+
rspec-support (3.12.1)
|
170
171
|
rubocop (1.28.0)
|
171
172
|
parallel (~> 1.10)
|
172
173
|
parser (>= 3.1.0.0)
|
@@ -176,22 +177,22 @@ GEM
|
|
176
177
|
rubocop-ast (>= 1.17.0, < 2.0)
|
177
178
|
ruby-progressbar (~> 1.7)
|
178
179
|
unicode-display_width (>= 1.4.0, < 3.0)
|
179
|
-
rubocop-ast (1.
|
180
|
+
rubocop-ast (1.29.0)
|
180
181
|
parser (>= 3.2.1.0)
|
181
182
|
rubocop-i18n (3.0.0)
|
182
183
|
rubocop (~> 1.0)
|
183
|
-
ruby-prof (1.6.
|
184
|
+
ruby-prof (1.6.3)
|
184
185
|
ruby-progressbar (1.13.0)
|
185
186
|
ruby2_keywords (0.0.5)
|
186
187
|
scanf (1.0.0)
|
187
|
-
semantic_puppet (1.0
|
188
|
+
semantic_puppet (1.1.0)
|
188
189
|
signet (0.17.0)
|
189
190
|
addressable (~> 2.8)
|
190
191
|
faraday (>= 0.17.5, < 3.a)
|
191
192
|
jwt (>= 1.5, < 3.0)
|
192
193
|
multi_json (~> 1.10)
|
193
194
|
text (1.3.1)
|
194
|
-
thor (1.2.
|
195
|
+
thor (1.2.2)
|
195
196
|
trailblazer-option (0.1.2)
|
196
197
|
uber (0.1.0)
|
197
198
|
unicode-display_width (2.4.2)
|
@@ -200,9 +201,8 @@ GEM
|
|
200
201
|
addressable (>= 2.8.0)
|
201
202
|
crack (>= 0.3.2)
|
202
203
|
hashdiff (>= 0.4.0, < 2.0.0)
|
203
|
-
webrick (1.
|
204
|
-
yard (0.9.
|
205
|
-
webrick (~> 1.7.0)
|
204
|
+
webrick (1.8.1)
|
205
|
+
yard (0.9.34)
|
206
206
|
|
207
207
|
PLATFORMS
|
208
208
|
x86_64-linux
|
@@ -238,4 +238,4 @@ DEPENDENCIES
|
|
238
238
|
yard
|
239
239
|
|
240
240
|
BUNDLED WITH
|
241
|
-
2.
|
241
|
+
2.4.12
|
data/ext/project_data.yaml
CHANGED
data/lib/puppet/defaults.rb
CHANGED
@@ -3,11 +3,7 @@ require_relative '../puppet/util/platform'
|
|
3
3
|
module Puppet
|
4
4
|
|
5
5
|
def self.default_diffargs
|
6
|
-
|
7
|
-
""
|
8
|
-
else
|
9
|
-
"-u"
|
10
|
-
end
|
6
|
+
'-u'
|
11
7
|
end
|
12
8
|
|
13
9
|
def self.default_digest_algorithm
|
@@ -1711,6 +1707,15 @@ EOT
|
|
1711
1707
|
can be guaranteed to support this format, but it will be used for all
|
1712
1708
|
classes that support it.",
|
1713
1709
|
},
|
1710
|
+
:allow_pson_serialization => {
|
1711
|
+
:default => true,
|
1712
|
+
:type => :boolean,
|
1713
|
+
:desc => "Whether when unable to serialize to JSON or other formats,
|
1714
|
+
Puppet falls back to PSON. This option affects both puppetserver's
|
1715
|
+
configuration management service responses and when the agent saves its
|
1716
|
+
cached catalog. This option is useful in preventing the loss of data because
|
1717
|
+
rich data cannot be serialized via PSON.",
|
1718
|
+
},
|
1714
1719
|
:agent_catalog_run_lockfile => {
|
1715
1720
|
:default => "$statedir/agent_catalog_run.lock",
|
1716
1721
|
:type => :string, # (#2888) Ensure this file is not added to the settings catalog.
|
data/lib/puppet/http/client.rb
CHANGED
@@ -367,6 +367,7 @@ class Puppet::HTTP::Client
|
|
367
367
|
apply_auth(request, basic_auth) if redirects.zero?
|
368
368
|
|
369
369
|
# don't call return within the `request` block
|
370
|
+
close_and_sleep = nil
|
370
371
|
http.request(request) do |nethttp|
|
371
372
|
response = Puppet::HTTP::ResponseNetHTTP.new(request.uri, nethttp)
|
372
373
|
begin
|
@@ -380,12 +381,14 @@ class Puppet::HTTP::Client
|
|
380
381
|
interval = @retry_after_handler.retry_after_interval(request, response, retries)
|
381
382
|
retries += 1
|
382
383
|
if interval
|
383
|
-
|
384
|
-
|
385
|
-
|
384
|
+
close_and_sleep = proc do
|
385
|
+
if http.started?
|
386
|
+
Puppet.debug("Closing connection for #{Puppet::HTTP::Site.from_uri(request.uri)}")
|
387
|
+
http.finish
|
388
|
+
end
|
389
|
+
Puppet.warning(_("Sleeping for %{interval} seconds before retrying the request") % { interval: interval })
|
390
|
+
::Kernel.sleep(interval)
|
386
391
|
end
|
387
|
-
Puppet.warning(_("Sleeping for %{interval} seconds before retrying the request") % { interval: interval })
|
388
|
-
::Kernel.sleep(interval)
|
389
392
|
next
|
390
393
|
end
|
391
394
|
end
|
@@ -404,6 +407,10 @@ class Puppet::HTTP::Client
|
|
404
407
|
|
405
408
|
done = true
|
406
409
|
end
|
410
|
+
ensure
|
411
|
+
# If a server responded with a retry, make sure the connection is closed and then
|
412
|
+
# sleep the specified time.
|
413
|
+
close_and_sleep.call if close_and_sleep
|
407
414
|
end
|
408
415
|
end
|
409
416
|
|
@@ -18,9 +18,14 @@ class Puppet::Resource::Catalog::Json < Puppet::Indirector::JSON
|
|
18
18
|
def to_json(object)
|
19
19
|
object.render(json_format)
|
20
20
|
rescue Puppet::Network::FormatHandler::FormatError => err
|
21
|
-
Puppet
|
22
|
-
|
23
|
-
|
21
|
+
if Puppet[:allow_pson_serialization]
|
22
|
+
Puppet.info(_("Unable to serialize catalog to json, retrying with pson. PSON is deprecated and will be removed in a future release"))
|
23
|
+
Puppet.log_exception(err, err.message, level: :debug)
|
24
|
+
object.render('pson').force_encoding(Encoding::BINARY)
|
25
|
+
else
|
26
|
+
Puppet.info(_("Unable to serialize catalog to json, no other acceptable format"))
|
27
|
+
Puppet.log_exception(err, err.message, level: :err)
|
28
|
+
end
|
24
29
|
end
|
25
30
|
|
26
31
|
private
|
@@ -192,8 +192,13 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
192
192
|
yield format
|
193
193
|
true
|
194
194
|
rescue Puppet::Network::FormatHandler::FormatError => err
|
195
|
-
|
196
|
-
|
195
|
+
msg = _("Failed to serialize %{model} for '%{key}': %{detail}") %
|
196
|
+
{model: model, key: key, detail: err}
|
197
|
+
if Puppet[:allow_pson_serialization]
|
198
|
+
Puppet.warning(msg)
|
199
|
+
else
|
200
|
+
raise Puppet::Network::FormatHandler::FormatError.new(msg)
|
201
|
+
end
|
197
202
|
false
|
198
203
|
end
|
199
204
|
end
|
@@ -9,7 +9,13 @@ class DeferredValue
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def resolve
|
12
|
-
@proc.call
|
12
|
+
val = @proc.call
|
13
|
+
# Deferred sensitive values will be marked as such in resolve_futures()
|
14
|
+
if val.is_a?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
15
|
+
val.unwrap
|
16
|
+
else
|
17
|
+
val
|
18
|
+
end
|
13
19
|
end
|
14
20
|
end
|
15
21
|
|
@@ -87,8 +93,12 @@ class DeferredResolver
|
|
87
93
|
#
|
88
94
|
if resolved.is_a?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
89
95
|
resolved = resolved.unwrap
|
90
|
-
|
91
|
-
|
96
|
+
mark_sensitive_parameters(r, k)
|
97
|
+
# If the value is a DeferredValue and it has an argument of type PSensitiveType, mark it as sensitive
|
98
|
+
# The DeferredValue.resolve method will unwrap it during catalog application
|
99
|
+
elsif resolved.is_a?(Puppet::Pops::Evaluator::DeferredValue)
|
100
|
+
if v.arguments.any? {|arg| arg.is_a?(Puppet::Pops::Types::PSensitiveType)}
|
101
|
+
mark_sensitive_parameters(r, k)
|
92
102
|
end
|
93
103
|
end
|
94
104
|
overrides[ k ] = resolved
|
@@ -97,6 +107,13 @@ class DeferredResolver
|
|
97
107
|
end
|
98
108
|
end
|
99
109
|
|
110
|
+
def mark_sensitive_parameters(r, k)
|
111
|
+
unless r.sensitive_parameters.include?(k.to_sym)
|
112
|
+
r.sensitive_parameters = (r.sensitive_parameters + [k.to_sym]).freeze
|
113
|
+
end
|
114
|
+
end
|
115
|
+
private :mark_sensitive_parameters
|
116
|
+
|
100
117
|
def resolve(x)
|
101
118
|
if x.class == @deferred_class
|
102
119
|
resolve_future(x)
|
data/lib/puppet/ssl/oids.rb
CHANGED
@@ -71,6 +71,7 @@ module Puppet::SSL::Oids
|
|
71
71
|
|
72
72
|
["1.3.6.1.4.1.34380.1.3.1", 'pp_authorization', 'Certificate Extension Authorization'],
|
73
73
|
["1.3.6.1.4.1.34380.1.3.13", 'pp_auth_role', 'Puppet Node Role Name for Authorization'],
|
74
|
+
["1.3.6.1.4.1.34380.1.3.39", 'pp_cli_auth', 'Puppetserver CA CLI Authorization'],
|
74
75
|
]
|
75
76
|
|
76
77
|
@did_register_puppet_oids = false
|
data/lib/puppet/thread_local.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
require 'concurrent'
|
2
2
|
|
3
|
-
|
4
|
-
# implementation of ThreadLocal, we end up leaking references to JRuby instances
|
5
|
-
# and preventing them from being garbage collected.
|
6
|
-
class Puppet::ThreadLocal < Concurrent::RubyThreadLocalVar
|
3
|
+
class Puppet::ThreadLocal < Concurrent::ThreadLocalVar
|
7
4
|
end
|
data/lib/puppet/version.rb
CHANGED
data/man/man5/puppet.conf.5
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPETCONF" "5" "
|
4
|
+
.TH "PUPPETCONF" "5" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
\fBThis page is autogenerated; any changes will get overwritten\fR
|
6
6
|
.
|
7
7
|
.SH "Configuration settings"
|
@@ -62,6 +62,14 @@ Whether to allow a new certificate request to overwrite an existing certificate
|
|
62
62
|
.
|
63
63
|
.IP "" 0
|
64
64
|
.
|
65
|
+
.SS "allow_pson_serialization"
|
66
|
+
Whether when unable to serialize to JSON or other formats, Puppet falls back to PSON\. This option affects both puppetserver\'s configuration management service responses and when the agent saves its cached catalog\. This option is useful in preventing the loss of data because rich data cannot be serialized via PSON\.
|
67
|
+
.
|
68
|
+
.IP "\(bu" 4
|
69
|
+
\fIDefault\fR: \fBtrue\fR
|
70
|
+
.
|
71
|
+
.IP "" 0
|
72
|
+
.
|
65
73
|
.SS "always_retry_plugins"
|
66
74
|
Affects how we cache attempts to load Puppet resource types and features\. If true, then calls to \fBPuppet\.type\.<type>?\fR \fBPuppet\.feature\.<feature>?\fR will always attempt to load the type or feature (which can be an expensive operation) unless it has already been loaded successfully\. This makes it possible for a single agent run to, e\.g\., install a package that provides the underlying capabilities for a type or feature, and then later load that type or feature during the same run (even if the type or feature had been tested earlier and had not been available)\.
|
67
75
|
.
|
@@ -937,7 +945,7 @@ The time to wait for data to be read from an HTTP connection\. If nothing is rea
|
|
937
945
|
The HTTP User\-Agent string to send when making network requests\.
|
938
946
|
.
|
939
947
|
.IP "\(bu" 4
|
940
|
-
\fIDefault\fR: \fBPuppet/7\.
|
948
|
+
\fIDefault\fR: \fBPuppet/7\.26\.0 Ruby/2\.7\.5\-p203 (x86_64\-linux)\fR
|
941
949
|
.
|
942
950
|
.IP "" 0
|
943
951
|
.
|
data/man/man8/puppet-agent.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-AGENT" "8" "
|
4
|
+
.TH "PUPPET\-AGENT" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-agent\fR \- The puppet agent daemon
|
data/man/man8/puppet-apply.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-APPLY" "8" "
|
4
|
+
.TH "PUPPET\-APPLY" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-apply\fR \- Apply Puppet manifests locally
|
data/man/man8/puppet-catalog.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-CATALOG" "8" "
|
4
|
+
.TH "PUPPET\-CATALOG" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-catalog\fR \- Compile, save, view, and convert catalogs\.
|
data/man/man8/puppet-config.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-CONFIG" "8" "
|
4
|
+
.TH "PUPPET\-CONFIG" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-config\fR \- Interact with Puppet\'s settings\.
|
data/man/man8/puppet-describe.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-DESCRIBE" "8" "
|
4
|
+
.TH "PUPPET\-DESCRIBE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-describe\fR \- Display help about resource types
|
data/man/man8/puppet-device.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-DEVICE" "8" "
|
4
|
+
.TH "PUPPET\-DEVICE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-device\fR \- Manage remote network devices
|
data/man/man8/puppet-doc.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-DOC" "8" "
|
4
|
+
.TH "PUPPET\-DOC" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-doc\fR \- Generate Puppet references
|
data/man/man8/puppet-epp.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-EPP" "8" "
|
4
|
+
.TH "PUPPET\-EPP" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-epp\fR \- Interact directly with the EPP template parser/renderer\.
|
data/man/man8/puppet-facts.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-FACTS" "8" "
|
4
|
+
.TH "PUPPET\-FACTS" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-facts\fR \- Retrieve and store facts\.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-FILEBUCKET" "8" "
|
4
|
+
.TH "PUPPET\-FILEBUCKET" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-filebucket\fR \- Store and retrieve files in a filebucket
|
data/man/man8/puppet-generate.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-GENERATE" "8" "
|
4
|
+
.TH "PUPPET\-GENERATE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-generate\fR \- Generates Puppet code from Ruby definitions\.
|
data/man/man8/puppet-help.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-HELP" "8" "
|
4
|
+
.TH "PUPPET\-HELP" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-help\fR \- Display Puppet help\.
|
data/man/man8/puppet-lookup.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-LOOKUP" "8" "
|
4
|
+
.TH "PUPPET\-LOOKUP" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-lookup\fR \- Interactive Hiera lookup
|
data/man/man8/puppet-module.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-MODULE" "8" "
|
4
|
+
.TH "PUPPET\-MODULE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-module\fR \- Creates, installs and searches for modules on the Puppet Forge\.
|
data/man/man8/puppet-node.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-NODE" "8" "
|
4
|
+
.TH "PUPPET\-NODE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-node\fR \- View and manage node definitions\.
|
data/man/man8/puppet-parser.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-PARSER" "8" "
|
4
|
+
.TH "PUPPET\-PARSER" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-parser\fR \- Interact directly with the parser\.
|
data/man/man8/puppet-plugin.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-PLUGIN" "8" "
|
4
|
+
.TH "PUPPET\-PLUGIN" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-plugin\fR \- Interact with the Puppet plugin system\.
|
data/man/man8/puppet-report.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-REPORT" "8" "
|
4
|
+
.TH "PUPPET\-REPORT" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-report\fR \- Create, display, and submit reports\.
|
data/man/man8/puppet-resource.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-RESOURCE" "8" "
|
4
|
+
.TH "PUPPET\-RESOURCE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-resource\fR \- The resource abstraction layer shell
|
data/man/man8/puppet-script.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-SCRIPT" "8" "
|
4
|
+
.TH "PUPPET\-SCRIPT" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-script\fR \- Run a puppet manifests as a script without compiling a catalog
|
data/man/man8/puppet-ssl.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET\-SSL" "8" "
|
4
|
+
.TH "PUPPET\-SSL" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-ssl\fR \- Manage SSL keys and certificates for puppet SSL clients
|
data/man/man8/puppet.8
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "PUPPET" "8" "
|
4
|
+
.TH "PUPPET" "8" "August 2023" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\fR
|
@@ -25,4 +25,4 @@ Specialized:
|
|
25
25
|
catalog Compile, save, view, and convert catalogs\. describe Display help about resource types device Manage remote network devices doc Generate Puppet references epp Interact directly with the EPP template parser/renderer\. facts Retrieve and store facts\. filebucket Store and retrieve files in a filebucket generate Generates Puppet code from Ruby definitions\. node View and manage node definitions\. parser Interact directly with the parser\. plugin Interact with the Puppet plugin system\. script Run a puppet manifests as a script without compiling a catalog ssl Manage SSL keys and certificates for puppet SSL clients
|
26
26
|
.
|
27
27
|
.P
|
28
|
-
See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v7\.
|
28
|
+
See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v7\.26\.0
|
@@ -755,5 +755,19 @@ class amod::bad_type {
|
|
755
755
|
.and output(/Notify\[runs before file\]/).to_stdout
|
756
756
|
.and output(/Validation of File.* failed: You cannot specify more than one of content, source, target/).to_stderr
|
757
757
|
end
|
758
|
+
|
759
|
+
it "applies deferred sensitive file content" do
|
760
|
+
manifest = <<~END
|
761
|
+
file { '#{deferred_file}':
|
762
|
+
ensure => file,
|
763
|
+
content => Deferred('new', [Sensitive, "hello\n"])
|
764
|
+
}
|
765
|
+
END
|
766
|
+
apply.command_line.args = ['-e', manifest]
|
767
|
+
expect {
|
768
|
+
apply.run
|
769
|
+
}.to exit_with(0)
|
770
|
+
.and output(/ensure: changed \[redacted\] to \[redacted\]/).to_stdout
|
771
|
+
end
|
758
772
|
end
|
759
773
|
end
|
@@ -175,6 +175,22 @@ describe Puppet::HTTP::Client, unless: Puppet::Util::Platform.jruby? do
|
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
178
|
+
context 'ensure that retrying does not attempt to read the body after closing the connection' do
|
179
|
+
let(:client) { Puppet::HTTP::Client.new(retry_limit: 1) }
|
180
|
+
it 'raises a retry error instead' do
|
181
|
+
response_proc = -> (req, res) {
|
182
|
+
res['Retry-After'] = 1
|
183
|
+
res.status = 503
|
184
|
+
}
|
185
|
+
|
186
|
+
https_server.start_server(response_proc: response_proc) do |port|
|
187
|
+
uri = URI("https://127.0.0.1:#{port}")
|
188
|
+
kwargs = {headers: {'Content-Type' => 'text/plain'}, options: {ssl_context: root_context}}
|
189
|
+
expect{client.post(uri, '', **kwargs)}.to raise_error(Puppet::HTTP::TooManyRetryAfters)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
178
194
|
context 'persistent connections' do
|
179
195
|
it "detects when the server has closed the connection and reconnects" do
|
180
196
|
Puppet[:http_debug] = true
|
data/spec/unit/defaults_spec.rb
CHANGED
@@ -3,46 +3,8 @@ require 'puppet/settings'
|
|
3
3
|
|
4
4
|
describe "Defaults" do
|
5
5
|
describe ".default_diffargs" do
|
6
|
-
|
7
|
-
|
8
|
-
allow(Facter).to receive(:value).with(:kernel).and_return("AIX")
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "on 5.3" do
|
12
|
-
before(:each) do
|
13
|
-
allow(Facter).to receive(:value).with(:kernelmajversion).and_return("5300")
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should be empty" do
|
17
|
-
expect(Puppet.default_diffargs).to eq("")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
[ "",
|
22
|
-
nil,
|
23
|
-
"6300",
|
24
|
-
"7300",
|
25
|
-
].each do |kernel_version|
|
26
|
-
describe "on kernel version #{kernel_version.inspect}" do
|
27
|
-
before(:each) do
|
28
|
-
allow(Facter).to receive(:value).with(:kernelmajversion).and_return(kernel_version)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should be '-u'" do
|
32
|
-
expect(Puppet.default_diffargs).to eq("-u")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe "on everything else" do
|
39
|
-
before(:each) do
|
40
|
-
allow(Facter).to receive(:value).with(:kernel).and_return("NOT_AIX")
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should be '-u'" do
|
44
|
-
expect(Puppet.default_diffargs).to eq("-u")
|
45
|
-
end
|
6
|
+
it "should be '-u'" do
|
7
|
+
expect(Puppet.default_diffargs).to eq("-u")
|
46
8
|
end
|
47
9
|
end
|
48
10
|
|
@@ -210,6 +210,19 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
210
210
|
handler.call(request, response)
|
211
211
|
}.to raise_error(not_found_error)
|
212
212
|
end
|
213
|
+
|
214
|
+
it "should raise FormatError if tries to fallback and pson serialization is not allowed" do
|
215
|
+
Puppet[:allow_pson_serialization] = false
|
216
|
+
data = Puppet::IndirectorTesting.new("my data")
|
217
|
+
indirection.save(data, "my data")
|
218
|
+
request = a_request_that_finds(data, :accept_header => "unknown, text/pson")
|
219
|
+
allow(data).to receive(:to_pson).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
|
220
|
+
|
221
|
+
expect {
|
222
|
+
handler.call(request, response)
|
223
|
+
}.to raise_error(Puppet::Network::FormatHandler::FormatError,
|
224
|
+
%r{Failed to serialize Puppet::IndirectorTesting for 'my data': Could not render to Puppet::Network::Format\[pson\]})
|
225
|
+
end
|
213
226
|
end
|
214
227
|
|
215
228
|
describe "when searching for model instances" do
|
@@ -250,6 +263,19 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
250
263
|
%r{No supported formats are acceptable \(Accept: application/json, text/pson\)})
|
251
264
|
end
|
252
265
|
|
266
|
+
it "raises FormatError if tries to fallback and pson serialization is not allowed" do
|
267
|
+
Puppet[:allow_pson_serialization] = false
|
268
|
+
data = Puppet::IndirectorTesting.new("my data")
|
269
|
+
indirection.save(data, "my data")
|
270
|
+
request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "unknown, text/pson")
|
271
|
+
allow(data).to receive(:to_pson).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
|
272
|
+
|
273
|
+
expect {
|
274
|
+
handler.call(request, response)
|
275
|
+
}.to raise_error(Puppet::Network::FormatHandler::FormatError,
|
276
|
+
%r{Failed to serialize Puppet::IndirectorTesting for 'my': Could not render_multiple to Puppet::Network::Format\[pson\]})
|
277
|
+
end
|
278
|
+
|
253
279
|
it "should return [] when searching returns an empty array" do
|
254
280
|
request = a_request_that_searches(Puppet::IndirectorTesting.new("nothing"), :accept_header => "unknown, application/json")
|
255
281
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.26.0
|
5
5
|
platform: universal-darwin
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facter
|
@@ -133,9 +133,6 @@ dependencies:
|
|
133
133
|
- - "~>"
|
134
134
|
- !ruby/object:Gem::Version
|
135
135
|
version: '1.0'
|
136
|
-
- - "<"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 1.2.0
|
139
136
|
type: :runtime
|
140
137
|
prerelease: false
|
141
138
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -143,9 +140,6 @@ dependencies:
|
|
143
140
|
- - "~>"
|
144
141
|
- !ruby/object:Gem::Version
|
145
142
|
version: '1.0'
|
146
|
-
- - "<"
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
version: 1.2.0
|
149
143
|
- !ruby/object:Gem::Dependency
|
150
144
|
name: deep_merge
|
151
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -2561,7 +2555,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2561
2555
|
- !ruby/object:Gem::Version
|
2562
2556
|
version: 1.3.1
|
2563
2557
|
requirements: []
|
2564
|
-
rubygems_version: 3.
|
2558
|
+
rubygems_version: 3.4.12
|
2565
2559
|
signing_key:
|
2566
2560
|
specification_version: 4
|
2567
2561
|
summary: Puppet, an automated configuration management tool
|