puppet 7.31.0-universal-darwin → 7.33.0-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.
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: 1f73756c0bf4d24a233fc7f920f4c79f46237283748d304b9de0e7d2e8f6261c
4
- data.tar.gz: ed008208235f076f8cdb89ef06bf3a3182b74b87934da515288ce75c09ff2c55
3
+ metadata.gz: f2e1bc64c743282b6cad753869da5fb3b60210db7b72a555d653ea4b60dff9e9
4
+ data.tar.gz: 298981a4f2e65f80a5e5b99ae89b50eb396963ba1ef17a23af567c966a8823d6
5
5
  SHA512:
6
- metadata.gz: 5691780693e508b0c1033b614462ca3bc2f4f563aa84edbccdf380759fa9005de91b60ea5de2563dcff50f7eeccee1778c2922209a8f650f092915a9fabc573d
7
- data.tar.gz: f9632ca813cdc89759b7ecef41af6367a4e1d3c1b329ea6e1a0ded610b545de218ce223babdb739f7048987aa23a780eb0e700b647d6be695b3da648cc2eea24
6
+ metadata.gz: ca318a3bd2ee2d90ad5b3be79fdbb43290fede117b77bd367a5d1566bd34850aebda7b75cda7369f7215552e319abdfc8a0b89ac9e90cc1b1011d323d0e18983
7
+ data.tar.gz: 5460a36e96031602535f87021cf92c57aa2fb65cb50508767d8036bf6ec139a89b8157819886854ab61ccc61074c0e4cdc9a79478c76a61bf15fab2a9e5a31fc
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: universal-darwin
6
6
  authors:
7
7
  - Puppet Labs
@@ -665,6 +665,7 @@ files:
665
665
  - lib/puppet/node.rb
666
666
  - lib/puppet/node/environment.rb
667
667
  - lib/puppet/node/facts.rb
668
+ - lib/puppet/node/server_facts.rb
668
669
  - lib/puppet/pal/catalog_compiler.rb
669
670
  - lib/puppet/pal/compiler.rb
670
671
  - lib/puppet/pal/function_signature.rb