puppet 7.31.0 → 7.33.0

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +33 -30
  3. data/ext/project_data.yaml +12 -0
  4. data/ext/windows/service/daemon.rb +9 -2
  5. data/lib/puppet/application/lookup.rb +2 -0
  6. data/lib/puppet/daemon.rb +0 -1
  7. data/lib/puppet/face/catalog.rb +24 -8
  8. data/lib/puppet/file_serving/http_metadata.rb +3 -1
  9. data/lib/puppet/functions/hiera.rb +1 -0
  10. data/lib/puppet/functions/yaml_data.rb +1 -0
  11. data/lib/puppet/indirector/catalog/compiler.rb +2 -36
  12. data/lib/puppet/interface/action_manager.rb +1 -1
  13. data/lib/puppet/node/server_facts.rb +43 -0
  14. data/lib/puppet/pops/evaluator/deferred_resolver.rb +44 -8
  15. data/lib/puppet/provider/package/pacman.rb +9 -10
  16. data/lib/puppet/scheduler/splay_job.rb +0 -9
  17. data/lib/puppet/util/windows/daemon.rb +15 -32
  18. data/lib/puppet/version.rb +1 -1
  19. data/man/man5/puppet.conf.5 +2 -2
  20. data/man/man8/puppet-agent.8 +1 -1
  21. data/man/man8/puppet-apply.8 +1 -1
  22. data/man/man8/puppet-catalog.8 +7 -4
  23. data/man/man8/puppet-config.8 +1 -1
  24. data/man/man8/puppet-describe.8 +1 -1
  25. data/man/man8/puppet-device.8 +1 -1
  26. data/man/man8/puppet-doc.8 +1 -1
  27. data/man/man8/puppet-epp.8 +1 -1
  28. data/man/man8/puppet-facts.8 +1 -1
  29. data/man/man8/puppet-filebucket.8 +1 -1
  30. data/man/man8/puppet-generate.8 +1 -1
  31. data/man/man8/puppet-help.8 +1 -1
  32. data/man/man8/puppet-lookup.8 +1 -1
  33. data/man/man8/puppet-module.8 +1 -1
  34. data/man/man8/puppet-node.8 +1 -1
  35. data/man/man8/puppet-parser.8 +1 -1
  36. data/man/man8/puppet-plugin.8 +1 -1
  37. data/man/man8/puppet-report.8 +1 -1
  38. data/man/man8/puppet-resource.8 +1 -1
  39. data/man/man8/puppet-script.8 +1 -1
  40. data/man/man8/puppet-ssl.8 +1 -1
  41. data/man/man8/puppet.8 +2 -2
  42. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8945e5986c2abfa27a9d3257df13b7818aec4ee34d253865e35ce4a8b959b82
4
- data.tar.gz: 909ae35e1385b5aa891b64fe0ff46e4b74b99ed0af787778a4bcd7a4d1315575
3
+ metadata.gz: 52dde94f3674a284c61af7344ae4ecf49d9a65d9f16b9f0d48db0b467ded126b
4
+ data.tar.gz: 5b4c6487b9618f11eb38ae3d78e7c4abdab4073937069834e0bce0dc87d762d9
5
5
  SHA512:
6
- metadata.gz: 937aada5593580f08e2b47131294e128e1a7747376e870ebf47bbdc6ec53d1d33870222685f9a8f3ffef8eb06c9eb25da0043a35cabea3a6e1dc06877d675f3e
7
- data.tar.gz: 789fd8d5d36d16bb77f180fc146eda333bb39ddd98af8b4bb6c5a4cf592ffcd63a4a0ab7d50571786f37ade268bfd6a27995f0aa49c95f9fb5d41f6c53e0a363
6
+ metadata.gz: 9acdf0cadff26c11093a3bd2bb8a1c010f80682ac8b560c90b55343c48c1d11f8764e59f2c55f780f877254eb476caf91b0cae3e6f2fa89c6159f155e9f9adc4
7
+ data.tar.gz: 3448a80f38a52577b4f029e87d413057aa45a074495668c6a9fedbae961c705e2cb82e0205b02a718cb6ebce6a85bb19372786e34fc358f9f9da651be6d18c05
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puppet (7.31.0)
4
+ puppet (7.33.0)
5
5
  concurrent-ruby (~> 1.0)
6
6
  deep_merge (~> 1.0)
7
7
  facter (> 2.0.1, < 5)
@@ -17,14 +17,14 @@ GEM
17
17
  remote: https://artifactory.delivery.puppetlabs.net/artifactory/api/gems/rubygems/
18
18
  specs:
19
19
  CFPropertyList (2.3.6)
20
- addressable (2.8.6)
21
- public_suffix (>= 2.0.2, < 6.0)
20
+ addressable (2.8.7)
21
+ public_suffix (>= 2.0.2, < 7.0)
22
22
  artifactory (3.0.17)
23
23
  ast (2.4.2)
24
24
  base64 (0.2.0)
25
25
  bigdecimal (3.1.8)
26
26
  coderay (1.1.3)
27
- concurrent-ruby (1.3.1)
27
+ concurrent-ruby (1.3.4)
28
28
  crack (1.0.0)
29
29
  bigdecimal
30
30
  rexml
@@ -35,12 +35,13 @@ GEM
35
35
  digest-crc (0.6.5)
36
36
  rake (>= 12.0.0, < 14.0.0)
37
37
  docopt (0.6.1)
38
- facter (4.7.0)
38
+ facter (4.9.0)
39
39
  hocon (~> 1.3)
40
40
  thor (>= 1.0.1, < 1.3)
41
- faraday (2.9.1)
42
- faraday-net_http (>= 2.0, < 3.2)
43
- faraday-net_http (3.1.0)
41
+ faraday (2.11.0)
42
+ faraday-net_http (>= 2.0, < 3.4)
43
+ logger
44
+ faraday-net_http (3.3.0)
44
45
  net-http
45
46
  fast_gettext (1.1.2)
46
47
  ffi (1.16.3)
@@ -51,22 +52,22 @@ GEM
51
52
  fast_gettext (~> 1.1.0)
52
53
  gettext (>= 3.0.2, < 3.3.0)
53
54
  locale
54
- google-apis-core (0.15.0)
55
+ google-apis-core (0.15.1)
55
56
  addressable (~> 2.5, >= 2.5.1)
56
57
  googleauth (~> 1.9)
57
- httpclient (>= 2.8.1, < 3.a)
58
+ httpclient (>= 2.8.3, < 3.a)
58
59
  mini_mime (~> 1.0)
60
+ mutex_m
59
61
  representable (~> 3.0)
60
62
  retriable (>= 2.0, < 4.a)
61
- rexml
62
63
  google-apis-iamcredentials_v1 (0.21.0)
63
64
  google-apis-core (>= 0.15.0, < 2.a)
64
- google-apis-storage_v1 (0.39.0)
65
+ google-apis-storage_v1 (0.44.0)
65
66
  google-apis-core (>= 0.15.0, < 2.a)
66
- google-cloud-core (1.7.0)
67
+ google-cloud-core (1.7.1)
67
68
  google-cloud-env (>= 1.0, < 3.a)
68
69
  google-cloud-errors (~> 1.0)
69
- google-cloud-env (2.1.1)
70
+ google-cloud-env (2.2.0)
70
71
  faraday (>= 1.0, < 3.a)
71
72
  google-cloud-errors (1.4.0)
72
73
  google-cloud-storage (1.52.0)
@@ -85,7 +86,7 @@ GEM
85
86
  multi_json (~> 1.11)
86
87
  os (>= 0.9, < 2.0)
87
88
  signet (>= 0.16, < 2.a)
88
- hashdiff (1.1.0)
89
+ hashdiff (1.1.1)
89
90
  hiera (3.12.0)
90
91
  hiera-eyaml (4.1.0)
91
92
  highline (~> 2.1)
@@ -96,35 +97,39 @@ GEM
96
97
  httpclient (2.8.3)
97
98
  json-schema (2.8.1)
98
99
  addressable (>= 2.4)
99
- jwt (2.8.1)
100
+ jwt (2.8.2)
100
101
  base64
101
102
  locale (2.1.4)
102
- memory_profiler (1.0.1)
103
+ logger (1.6.1)
104
+ memory_profiler (1.0.2)
103
105
  method_source (1.1.0)
104
106
  mini_mime (1.1.5)
105
- minitar (0.9)
107
+ minitar (0.12.1)
106
108
  msgpack (1.7.2)
107
109
  multi_json (1.15.0)
108
110
  mustache (1.1.1)
111
+ mutex_m (0.2.0)
109
112
  net-http (0.4.1)
110
113
  uri
111
114
  optimist (3.1.0)
112
115
  os (1.1.4)
113
- packaging (0.120.0)
116
+ packaging (0.122.0)
114
117
  artifactory (~> 3)
115
118
  csv (>= 3.1.5)
116
119
  google-cloud-storage
117
120
  googleauth
118
121
  rake (>= 12.3)
119
122
  release-metrics
120
- parallel (1.24.0)
121
- parser (3.3.2.0)
123
+ retriable (~> 3.1, >= 3.1.2)
124
+ rexml
125
+ parallel (1.26.3)
126
+ parser (3.3.5.0)
122
127
  ast (~> 2.4.1)
123
128
  racc
124
129
  pry (0.14.2)
125
130
  coderay (~> 1.1)
126
131
  method_source (~> 1.0)
127
- public_suffix (5.0.5)
132
+ public_suffix (6.0.1)
128
133
  puppet-resource_api (1.9.0)
129
134
  hocon (>= 1.0)
130
135
  puppetserver-ca (2.7.0)
@@ -143,8 +148,7 @@ GEM
143
148
  trailblazer-option (>= 0.1.1, < 0.2.0)
144
149
  uber (< 0.2.0)
145
150
  retriable (3.1.2)
146
- rexml (3.2.8)
147
- strscan (>= 3.0.9)
151
+ rexml (3.3.7)
148
152
  ronn (0.7.3)
149
153
  hpricot (>= 0.8.2)
150
154
  mustache (>= 0.7.0)
@@ -153,9 +157,9 @@ GEM
153
157
  rspec-core (~> 3.13.0)
154
158
  rspec-expectations (~> 3.13.0)
155
159
  rspec-mocks (~> 3.13.0)
156
- rspec-core (3.13.0)
160
+ rspec-core (3.13.1)
157
161
  rspec-support (~> 3.13.0)
158
- rspec-expectations (3.13.0)
162
+ rspec-expectations (3.13.2)
159
163
  diff-lcs (>= 1.2.0, < 2.0)
160
164
  rspec-support (~> 3.13.0)
161
165
  rspec-its (1.3.0)
@@ -174,7 +178,7 @@ GEM
174
178
  rubocop-ast (>= 1.17.0, < 2.0)
175
179
  ruby-progressbar (~> 1.7)
176
180
  unicode-display_width (>= 1.4.0, < 3.0)
177
- rubocop-ast (1.31.3)
181
+ rubocop-ast (1.32.3)
178
182
  parser (>= 3.3.1.0)
179
183
  rubocop-i18n (3.0.0)
180
184
  rubocop (~> 1.0)
@@ -187,20 +191,19 @@ GEM
187
191
  faraday (>= 0.17.5, < 3.a)
188
192
  jwt (>= 1.5, < 3.0)
189
193
  multi_json (~> 1.10)
190
- strscan (3.1.0)
191
194
  text (1.3.1)
192
195
  thor (1.2.2)
193
196
  trailblazer-option (0.1.2)
194
197
  uber (0.1.0)
195
198
  unicode-display_width (2.5.0)
196
- uri (0.13.0)
199
+ uri (0.13.1)
197
200
  vcr (5.1.0)
198
201
  webmock (3.23.1)
199
202
  addressable (>= 2.8.0)
200
203
  crack (>= 0.3.2)
201
204
  hashdiff (>= 0.4.0, < 2.0.0)
202
205
  webrick (1.8.1)
203
- yard (0.9.36)
206
+ yard (0.9.37)
204
207
 
205
208
  PLATFORMS
206
209
  x86_64-linux
@@ -6,3 +6,15 @@ gem_rdoc_options:
6
6
  - --main
7
7
  - README.md
8
8
  - --line-numbers
9
+ # Array of files to include when building source tarballs
10
+ files:
11
+ - '[A-Z]*'
12
+ - install.rb
13
+ - bin
14
+ - lib
15
+ - conf
16
+ - man
17
+ - examples
18
+ - ext
19
+ - tasks
20
+ - locales
@@ -159,12 +159,19 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
159
159
  end
160
160
  end
161
161
 
162
+ # Parses runinterval.
163
+ #
164
+ # @param puppet_path [String] The file path for the Puppet executable.
165
+ # @return runinterval [Integer] How often to do a Puppet run, in seconds.
162
166
  def parse_runinterval(puppet_path)
163
167
  begin
164
- runinterval = %x{ #{puppet_path} config --section agent --log_level notice print runinterval }.to_i
165
- if runinterval == 0
168
+ runinterval = %x(#{puppet_path} config --section agent --log_level notice print runinterval).chomp
169
+ if runinterval == ''
166
170
  runinterval = 1800
167
171
  log_err("Failed to determine runinterval, defaulting to #{runinterval} seconds")
172
+ else
173
+ # Use Kernel#Integer because to_i will return 0 with non-numeric strings.
174
+ runinterval = Integer(runinterval)
168
175
  end
169
176
  rescue Exception => e
170
177
  log_exception(e)
@@ -1,6 +1,7 @@
1
1
  require_relative '../../puppet/application'
2
2
  require_relative '../../puppet/pops'
3
3
  require_relative '../../puppet/node'
4
+ require_relative '../../puppet/node/server_facts'
4
5
  require_relative '../../puppet/parser/compiler'
5
6
 
6
7
  class Puppet::Application::Lookup < Puppet::Application
@@ -406,6 +407,7 @@ Copyright (c) 2015 Puppet Inc., LLC Licensed under the Apache 2.0 License
406
407
  node.add_extra_facts(given_facts) if given_facts
407
408
  end
408
409
  node.environment = Puppet[:environment] if Puppet.settings.set_by_cli?(:environment)
410
+ node.add_server_facts(Puppet::Node::ServerFacts.load)
409
411
  Puppet[:code] = 'undef' unless options[:compile]
410
412
  compiler = Puppet::Parser::Compiler.new(node)
411
413
  if options[:node]
data/lib/puppet/daemon.rb CHANGED
@@ -161,7 +161,6 @@ class Puppet::Daemon
161
161
  reparse_run = Puppet::Scheduler.create_job(Puppet[:filetimeout]) do
162
162
  Puppet.settings.reparse_config_files
163
163
  agent_run.run_interval = Puppet[:runinterval]
164
- agent_run.splay_limit = Puppet[:splaylimit] if Puppet[:splay]
165
164
  if Puppet[:filetimeout] == 0
166
165
  reparse_run.disable
167
166
  else
@@ -23,13 +23,27 @@ Puppet::Indirector::Face.define(:catalog, '0.0.1') do
23
23
 
24
24
  deactivate_action(:destroy)
25
25
  deactivate_action(:search)
26
- find = get_action(:find)
27
- find.summary "Retrieve the catalog for the node from which the command is run."
28
- find.arguments "<certname>"
29
- find.returns <<-'EOT'
30
- A serialized catalog. When used from the Ruby API, returns a
31
- Puppet::Resource::Catalog object.
32
- EOT
26
+ action(:find) do
27
+ summary _("Retrieve the catalog for the node from which the comamand is run.")
28
+ arguments "<certname>, <facts>"
29
+ option("--facts_for_catalog") do
30
+ summary _("Not yet implemented for the CLI; facts will be collected internally.")
31
+ end
32
+ returns <<-'EOT'
33
+ A serialized catalog. When used from the Ruby API, returns a
34
+ Puppet::Resource::Catalog object.
35
+ EOT
36
+
37
+ when_invoked do |*args|
38
+ # Default the key to Puppet[:certname] if none is supplied
39
+ if args.length == 1
40
+ key = Puppet[:certname]
41
+ else
42
+ key = args.shift
43
+ end
44
+ call_indirection_method :find, key, args.first
45
+ end
46
+ end
33
47
 
34
48
  action(:apply) do
35
49
  summary "Find and apply a catalog."
@@ -133,9 +147,11 @@ Puppet::Indirector::Face.define(:catalog, '0.0.1') do
133
147
  when_invoked do |options|
134
148
  Puppet::Resource::Catalog.indirection.terminus_class = :rest
135
149
  Puppet::Resource::Catalog.indirection.cache_class = nil
150
+ facts = Puppet::Face[:facts, '0.0.1'].find(Puppet[:certname])
136
151
  catalog = nil
137
152
  retrieval_duration = thinmark do
138
- catalog = Puppet::Face[:catalog, '0.0.1'].find(Puppet[:certname])
153
+ catalog = Puppet::Face[:catalog, '0.0.1'].find(Puppet[:certname],
154
+ { facts_for_catalog: facts })
139
155
  end
140
156
  catalog.retrieval_duration = retrieval_duration
141
157
  catalog.write_class_file
@@ -51,7 +51,9 @@ class Puppet::FileServing::HttpMetadata < Puppet::FileServing::Metadata
51
51
  def collect
52
52
  # Prefer the checksum_type from the indirector request options
53
53
  # but fall back to the alternative otherwise
54
- [ @checksum_type, :sha256, :sha1, :md5, :mtime ].each do |type|
54
+ [@checksum_type, :sha256, :sha1, :md5, :mtime].each do |type|
55
+ next if type == :md5 && Puppet::Util::Platform.fips_enabled?
56
+
55
57
  @checksum_type = type
56
58
  @checksum = @checksums[type]
57
59
  break if @checksum
@@ -1,4 +1,5 @@
1
1
  require 'hiera/puppet_function'
2
+
2
3
  # Performs a standard priority lookup of the hierarchy and returns the most specific value
3
4
  # for a given key. The returned value can be any type of data.
4
5
  #
@@ -1,5 +1,6 @@
1
1
 
2
2
  require 'yaml'
3
+
3
4
  # The `yaml_data` is a hiera 5 `data_hash` data provider function.
4
5
  # See [the configuration guide documentation](https://puppet.com/docs/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-built-in-backends) for
5
6
  # how to use this function.
@@ -1,5 +1,6 @@
1
1
  require_relative '../../../puppet/environments'
2
2
  require_relative '../../../puppet/node'
3
+ require_relative '../../../puppet/node/server_facts'
3
4
  require_relative '../../../puppet/resource/catalog'
4
5
  require_relative '../../../puppet/indirector/code'
5
6
  require_relative '../../../puppet/util/profiler'
@@ -425,41 +426,6 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
425
426
  #
426
427
  # See also set_server_facts in Puppet::Server::Compiler in puppetserver.
427
428
  def set_server_facts
428
- @server_facts = {}
429
-
430
- # Add our server Puppet Enterprise version, if available.
431
- pe_version_file = '/opt/puppetlabs/server/pe_version'
432
- if File.readable?(pe_version_file) and !File.zero?(pe_version_file)
433
- @server_facts['pe_serverversion'] = File.read(pe_version_file).chomp
434
- end
435
-
436
- # Add our server version to the fact list
437
- @server_facts["serverversion"] = Puppet.version.to_s
438
-
439
- # And then add the server name and IP
440
- {"servername" => "fqdn",
441
- "serverip" => "ipaddress",
442
- "serverip6" => "ipaddress6"
443
- }.each do |var, fact|
444
- value = Puppet.runtime[:facter].value(fact)
445
- if !value.nil?
446
- @server_facts[var] = value
447
- end
448
- end
449
-
450
- if @server_facts["servername"].nil?
451
- host = Puppet.runtime[:facter].value(:hostname)
452
- if host.nil?
453
- Puppet.warning _("Could not retrieve fact servername")
454
- elsif domain = Puppet.runtime[:facter].value(:domain) #rubocop:disable Lint/AssignmentInCondition
455
- @server_facts["servername"] = [host, domain].join(".")
456
- else
457
- @server_facts["servername"] = host
458
- end
459
- end
460
-
461
- if @server_facts["serverip"].nil? && @server_facts["serverip6"].nil?
462
- Puppet.warning _("Could not retrieve either serverip or serverip6 fact")
463
- end
429
+ @server_facts = Puppet::Node::ServerFacts.load
464
430
  end
465
431
  end
@@ -17,7 +17,7 @@ module Puppet::Interface::ActionManager
17
17
  # @dsl Faces
18
18
  def action(name, &block)
19
19
  @actions ||= {}
20
- Puppet.warning _("Redefining action %{name} for %{self}") % { name: name, self: self } if action?(name)
20
+ Puppet.debug _("Redefining action %{name} for %{self}") % { name: name, self: self } if action?(name)
21
21
 
22
22
  action = Puppet::Interface::ActionBuilder.build(self, name, &block)
23
23
 
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Puppet::Node::ServerFacts
4
+ def self.load
5
+ server_facts = {}
6
+
7
+ # Add our server Puppet Enterprise version, if available.
8
+ pe_version_file = '/opt/puppetlabs/server/pe_version'
9
+ if File.readable?(pe_version_file) and !File.zero?(pe_version_file)
10
+ server_facts['pe_serverversion'] = File.read(pe_version_file).chomp
11
+ end
12
+
13
+ # Add our server version to the fact list
14
+ server_facts["serverversion"] = Puppet.version.to_s
15
+
16
+ # And then add the server name and IP
17
+ {"servername" => "fqdn",
18
+ "serverip" => "ipaddress",
19
+ "serverip6" => "ipaddress6"}.each do |var, fact|
20
+ value = Puppet.runtime[:facter].value(fact)
21
+ if !value.nil?
22
+ server_facts[var] = value
23
+ end
24
+ end
25
+
26
+ if server_facts["servername"].nil?
27
+ host = Puppet.runtime[:facter].value(:hostname)
28
+ if host.nil?
29
+ Puppet.warning _("Could not retrieve fact servername")
30
+ elsif domain = Puppet.runtime[:facter].value(:domain) #rubocop:disable Lint/AssignmentInCondition
31
+ server_facts["servername"] = [host, domain].join(".")
32
+ else
33
+ server_facts["servername"] = host
34
+ end
35
+ end
36
+
37
+ if server_facts["serverip"].nil? && server_facts["serverip6"].nil?
38
+ Puppet.warning _("Could not retrieve either serverip or serverip6 fact")
39
+ end
40
+
41
+ server_facts
42
+ end
43
+ end
@@ -88,16 +88,25 @@ class DeferredResolver
88
88
  overrides = {}
89
89
  r.parameters.each_pair do |k, v|
90
90
  resolved = resolve(v)
91
- # If the value is instance of Sensitive - assign the unwrapped value
92
- # and mark it as sensitive if not already marked
93
- #
94
- if resolved.is_a?(Puppet::Pops::Types::PSensitiveType::Sensitive)
91
+ case resolved
92
+ when Puppet::Pops::Types::PSensitiveType::Sensitive
93
+ # If the resolved value is instance of Sensitive - assign the unwrapped value
94
+ # and mark it as sensitive if not already marked
95
+ #
95
96
  resolved = resolved.unwrap
96
97
  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)}
98
+
99
+ when Puppet::Pops::Evaluator::DeferredValue
100
+ # If the resolved value is a DeferredValue and it has an argument of type
101
+ # PSensitiveType, mark it as sensitive. Since DeferredValues can nest,
102
+ # we must walk all arguments, e.g. the DeferredValue may call the `epp`
103
+ # function, where one of its arguments is a DeferredValue to call the
104
+ # `vault:lookup` function.
105
+ #
106
+ # The DeferredValue.resolve method will unwrap the sensitive during
107
+ # catalog application
108
+ #
109
+ if contains_sensitive_args?(v)
101
110
  mark_sensitive_parameters(r, k)
102
111
  end
103
112
  end
@@ -107,6 +116,33 @@ class DeferredResolver
107
116
  end
108
117
  end
109
118
 
119
+ # Return true if x contains an argument that is an instance of PSensitiveType:
120
+ #
121
+ # Deferred('new', [Sensitive, 'password'])
122
+ #
123
+ # Or an instance of PSensitiveType::Sensitive:
124
+ #
125
+ # Deferred('join', [['a', Sensitive('b')], ':'])
126
+ #
127
+ # Since deferred values can nest, descend into Arrays and Hash keys and values,
128
+ # short-circuiting when the first occurrence is found.
129
+ #
130
+ def contains_sensitive_args?(x)
131
+ case x
132
+ when @deferred_class
133
+ contains_sensitive_args?(x.arguments)
134
+ when Array
135
+ x.any? { |v| contains_sensitive_args?(v) }
136
+ when Hash
137
+ x.any? { |k, v| contains_sensitive_args?(k) || contains_sensitive_args?(v) }
138
+ when Puppet::Pops::Types::PSensitiveType, Puppet::Pops::Types::PSensitiveType::Sensitive
139
+ true
140
+ else
141
+ false
142
+ end
143
+ end
144
+ private :contains_sensitive_args?
145
+
110
146
  def mark_sensitive_parameters(r, k)
111
147
  unless r.sensitive_parameters.include?(k.to_sym)
112
148
  r.sensitive_parameters = (r.sensitive_parameters + [k.to_sym]).freeze
@@ -28,7 +28,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
28
28
  # Checks if a given name is a group
29
29
  def self.group?(name)
30
30
  begin
31
- !pacman("-Sg", name).empty?
31
+ !pacman('--sync', '--groups', name).empty?
32
32
  rescue Puppet::ExecutionFailure
33
33
  # pacman returns an expected non-zero exit code when the name is not a group
34
34
  false
@@ -75,7 +75,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
75
75
  def self.get_installed_packages
76
76
  begin
77
77
  packages = {}
78
- execpipe([command(:pacman), "-Q"]) do |pipe|
78
+ execpipe([command(:pacman), "--query"]) do |pipe|
79
79
  # pacman -Q output is 'packagename version-rel'
80
80
  regex = %r{^(\S+)\s(\S+)}
81
81
  pipe.each_line do |line|
@@ -98,7 +98,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
98
98
  groups = {}
99
99
  begin
100
100
  # Build a hash of group name => list of packages
101
- command = [command(:pacman), "-Sgg"]
101
+ command = [command(:pacman), '--sync', '-gg']
102
102
  command << filter if filter
103
103
  execpipe(command) do |pipe|
104
104
  pipe.each_line do |line|
@@ -136,14 +136,14 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
136
136
  resource_name = @resource[:name]
137
137
 
138
138
  # If target is a group, construct the group version
139
- return pacman("-Sp", "--print-format", "%n %v", resource_name).lines.map{ |line| line.chomp }.sort.join(', ') if self.class.group?(resource_name)
139
+ return pacman("--sync", "--print", "--print-format", "%n %v", resource_name).lines.map{ |line| line.chomp }.sort.join(', ') if self.class.group?(resource_name)
140
140
 
141
141
  # Start by querying with pacman first
142
142
  # If that fails, retry using yaourt against the AUR
143
143
  pacman_check = true
144
144
  begin
145
145
  if pacman_check
146
- output = pacman "-Sp", "--print-format", "%v", resource_name
146
+ output = pacman "--sync", "--print", "--print-format", "%v", resource_name
147
147
  return output.chomp
148
148
  else
149
149
  output = yaourt "-Qma", resource_name
@@ -212,8 +212,8 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
212
212
 
213
213
  cmd = %w{--noconfirm --noprogressbar}
214
214
  cmd += uninstall_options if @resource[:uninstall_options]
215
- cmd << "-R"
216
- cmd << '-s' if is_group
215
+ cmd << "--remove"
216
+ cmd << '--recursive' if is_group
217
217
  cmd << '--nosave' if purge_configs
218
218
  cmd << resource_name
219
219
 
@@ -250,8 +250,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
250
250
  else
251
251
  fail _("Source %{source} is not supported by pacman") % { source: source }
252
252
  end
253
- pacman "--noconfirm", "--noprogressbar", "-S"
254
- pacman "--noconfirm", "--noprogressbar", "-U", source
253
+ pacman "--noconfirm", "--noprogressbar", "--update", source
255
254
  end
256
255
 
257
256
  def install_from_repo
@@ -262,7 +261,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
262
261
 
263
262
  cmd = %w{--noconfirm --needed --noprogressbar}
264
263
  cmd += install_options if @resource[:install_options]
265
- cmd << "-S" << resource_name
264
+ cmd << "--sync" << resource_name
266
265
 
267
266
  if self.class.yaourt?
268
267
  yaourt(*cmd)
@@ -23,15 +23,6 @@ module Puppet::Scheduler
23
23
  end
24
24
  end
25
25
 
26
- # Recalculates splay.
27
- #
28
- # @param splay_limit [Integer] the maximum time (in seconds) to delay before an agent's first run.
29
- # @return @splay [Integer] a random integer less than or equal to the splay limit that represents the seconds to
30
- # delay before next agent run.
31
- def splay_limit=(splay_limit)
32
- @splay = calculate_splay(splay_limit)
33
- end
34
-
35
26
  private
36
27
 
37
28
  def calculate_splay(limit)
@@ -188,25 +188,6 @@ module Puppet::Util::Windows
188
188
  end
189
189
  end
190
190
 
191
- ThreadProc = FFI::Function.new(:ulong,[:pointer]) do |lpParameter|
192
- ste = FFI::MemoryPointer.new(SERVICE_TABLE_ENTRYW, 2)
193
-
194
- s = SERVICE_TABLE_ENTRYW.new(ste[0])
195
- s[:lpServiceName] = FFI::MemoryPointer.from_string('')
196
- s[:lpServiceProc] = lpParameter
197
-
198
- s = SERVICE_TABLE_ENTRYW.new(ste[1])
199
- s[:lpServiceName] = nil
200
- s[:lpServiceProc] = nil
201
-
202
- # No service to step, no service handle, no ruby exceptions, just terminate the thread..
203
- if !StartServiceCtrlDispatcherW(ste)
204
- return 1
205
- end
206
-
207
- return 0
208
- end
209
-
210
191
  # This is a shortcut for Daemon.new + Daemon#mainloop.
211
192
  #
212
193
  def self.mainloop
@@ -256,26 +237,28 @@ module Puppet::Util::Windows
256
237
  raise SystemCallError.new('CreateEvent', FFI.errno)
257
238
  end
258
239
 
259
- hThread = CreateThread(nil, 0, ThreadProc, Service_Main, 0, nil)
240
+ hThread = Thread.new do
241
+ ste = FFI::MemoryPointer.new(SERVICE_TABLE_ENTRYW, 2)
260
242
 
261
- if hThread == 0
262
- raise SystemCallError.new('CreateThread', FFI.errno)
263
- end
243
+ s = SERVICE_TABLE_ENTRYW.new(ste[0])
244
+ s[:lpServiceName] = FFI::MemoryPointer.from_string("")
245
+ s[:lpServiceProc] = Service_Main
264
246
 
265
- events = FFI::MemoryPointer.new(:pointer, 2)
266
- events.put_pointer(0, FFI::Pointer.new(hThread))
267
- events.put_pointer(FFI::Pointer.size, FFI::Pointer.new(@@hStartEvent))
247
+ s = SERVICE_TABLE_ENTRYW.new(ste[1])
248
+ s[:lpServiceName] = nil
249
+ s[:lpServiceProc] = nil
268
250
 
269
- while ((index = WaitForMultipleObjects(2, events, 0, 1000)) == WAIT_TIMEOUT) do
251
+ # No service to step, no service handle, no ruby exceptions, just terminate the thread..
252
+ StartServiceCtrlDispatcherW(ste)
270
253
  end
271
254
 
272
- if index == WAIT_FAILED
273
- raise SystemCallError.new('WaitForMultipleObjects', FFI.errno)
255
+ while (index = WaitForSingleObject(@@hStartEvent, 1000)) == WAIT_TIMEOUT
256
+ # The thread exited, so the show is off.
257
+ raise "Service_Main thread exited abnormally" unless hThread.alive?
274
258
  end
275
259
 
276
- # The thread exited, so the show is off.
277
- if index == WAIT_OBJECT_0
278
- raise "Service_Main thread exited abnormally"
260
+ if index == WAIT_FAILED
261
+ raise SystemCallError.new("WaitForSingleObject", FFI.errno)
279
262
  end
280
263
 
281
264
  thr = Thread.new do
@@ -6,7 +6,7 @@
6
6
  # Raketasks and such to set the version based on the output of `git describe`
7
7
 
8
8
  module Puppet
9
- PUPPETVERSION = '7.31.0'
9
+ PUPPETVERSION = '7.33.0'
10
10
 
11
11
  ##
12
12
  # version is a public API method intended to always provide a fast and
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPETCONF" "5" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  \fBThis page is autogenerated; any changes will get overwritten\fR
6
6
  .
7
7
  .SH "Configuration settings"
@@ -945,7 +945,7 @@ The time to wait for data to be read from an HTTP connection\. If nothing is rea
945
945
  The HTTP User\-Agent string to send when making network requests\.
946
946
  .
947
947
  .IP "\(bu" 4
948
- \fIDefault\fR: \fBPuppet/7\.31\.0 Ruby/3\.1\.1\-p18 (x86_64\-linux)\fR
948
+ \fIDefault\fR: \fBPuppet/7\.33\.0 Ruby/3\.1\.1\-p18 (x86_64\-linux)\fR
949
949
  .
950
950
  .IP "" 0
951
951
  .
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-AGENT" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-agent\fR \- The puppet agent daemon
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-APPLY" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-apply\fR \- Apply Puppet manifests locally
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-CATALOG" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-catalog\fR \- Compile, save, view, and convert catalogs\.
@@ -113,17 +113,20 @@ Nothing\.
113
113
  When used from the Ruby API, this action has a side effect of leaving Puppet::Resource::Catalog\.indirection\.terminus_class set to yaml\. The terminus must be explicitly re\-set for subsequent catalog actions\.
114
114
  .
115
115
  .TP
116
- \fBfind\fR \- Retrieve the catalog for the node from which the command is run\.
116
+ \fBfind\fR \- Retrieve the catalog for the node from which the comamand is run\.
117
117
  \fBSYNOPSIS\fR
118
118
  .
119
119
  .IP
120
- puppet catalog find [\-\-terminus _TERMINUS] \fIcertname\fR
120
+ puppet catalog find [\-\-terminus _TERMINUS] [\-\-facts_for_catalog] \fIcertname\fR, \fIfacts\fR
121
121
  .
122
122
  .IP
123
123
  \fBDESCRIPTION\fR
124
124
  .
125
125
  .IP
126
- Retrieve the catalog for the node from which the command is run\.
126
+ Retrieve the catalog for the node from which the comamand is run\.
127
+ .
128
+ .IP
129
+ \fBOPTIONS\fR \fI\-\-facts_for_catalog\fR \- Not yet implemented for the CLI; facts will be collected internally\.
127
130
  .
128
131
  .IP
129
132
  \fBRETURNS\fR
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-CONFIG" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-config\fR \- Interact with Puppet\'s settings\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DESCRIBE" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-describe\fR \- Display help about resource types
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DEVICE" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-device\fR \- Manage remote network devices
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DOC" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-doc\fR \- Generate Puppet references
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-EPP" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-epp\fR \- Interact directly with the EPP template parser/renderer\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-FACTS" "8" "August 2024" "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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-FILEBUCKET" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-filebucket\fR \- Store and retrieve files in a filebucket
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-GENERATE" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-generate\fR \- Generates Puppet code from Ruby definitions\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-HELP" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-help\fR \- Display Puppet help\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-LOOKUP" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-lookup\fR \- Interactive Hiera lookup
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-MODULE" "8" "August 2024" "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\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-NODE" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-node\fR \- View and manage node definitions\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PARSER" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-parser\fR \- Interact directly with the parser\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PLUGIN" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-plugin\fR \- Interact with the Puppet plugin system\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-REPORT" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-report\fR \- Create, display, and submit reports\.
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-RESOURCE" "8" "August 2024" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-resource\fR \- The resource abstraction layer shell
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SCRIPT" "8" "August 2024" "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
@@ -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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SSL" "8" "August 2024" "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" "June 2024" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET" "8" "August 2024" "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\.31\.0
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\.33\.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.31.0
4
+ version: 7.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
@@ -651,6 +651,7 @@ files:
651
651
  - lib/puppet/node.rb
652
652
  - lib/puppet/node/environment.rb
653
653
  - lib/puppet/node/facts.rb
654
+ - lib/puppet/node/server_facts.rb
654
655
  - lib/puppet/pal/catalog_compiler.rb
655
656
  - lib/puppet/pal/compiler.rb
656
657
  - lib/puppet/pal/function_signature.rb