puppet 6.11.1 → 6.12.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +1 -1
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +16 -16
  5. data/README.md +1 -1
  6. data/ext/build_defaults.yaml +1 -0
  7. data/ext/windows/service/daemon.rb +22 -17
  8. data/lib/puppet/concurrent.rb +2 -0
  9. data/lib/puppet/concurrent/lock.rb +16 -0
  10. data/lib/puppet/concurrent/synchronized.rb +15 -0
  11. data/lib/puppet/concurrent/thread_local_singleton.rb +14 -0
  12. data/lib/puppet/configurer.rb +45 -31
  13. data/lib/puppet/defaults.rb +42 -3
  14. data/lib/puppet/environments.rb +3 -0
  15. data/lib/puppet/error.rb +9 -1
  16. data/lib/puppet/forge.rb +3 -3
  17. data/lib/puppet/forge/errors.rb +2 -2
  18. data/lib/puppet/forge/repository.rb +30 -86
  19. data/lib/puppet/functions/camelcase.rb +2 -2
  20. data/lib/puppet/functions/epp.rb +4 -4
  21. data/lib/puppet/functions/find_file.rb +9 -9
  22. data/lib/puppet/functions/find_template.rb +63 -0
  23. data/lib/puppet/functions/inline_epp.rb +5 -5
  24. data/lib/puppet/http.rb +2 -0
  25. data/lib/puppet/http/client.rb +89 -17
  26. data/lib/puppet/http/resolver.rb +14 -1
  27. data/lib/puppet/http/resolver/server_list.rb +38 -0
  28. data/lib/puppet/http/resolver/settings.rb +3 -2
  29. data/lib/puppet/http/resolver/srv.rb +10 -4
  30. data/lib/puppet/http/service.rb +32 -0
  31. data/lib/puppet/http/service/ca.rb +11 -10
  32. data/lib/puppet/http/service/report.rb +40 -0
  33. data/lib/puppet/http/session.rb +11 -32
  34. data/lib/puppet/network/http/base_pool.rb +13 -0
  35. data/lib/puppet/node/environment.rb +13 -7
  36. data/lib/puppet/pal/pal_impl.rb +5 -0
  37. data/lib/puppet/parser/functions/epp.rb +3 -3
  38. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  39. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  40. data/lib/puppet/pops/lookup/invocation.rb +10 -3
  41. data/lib/puppet/pops/model/pn_transformer.rb +5 -9
  42. data/lib/puppet/pops/parser/evaluating_parser.rb +3 -4
  43. data/lib/puppet/pops/serialization/json_path.rb +3 -3
  44. data/lib/puppet/pops/time/timespan.rb +3 -5
  45. data/lib/puppet/pops/types/string_converter.rb +6 -9
  46. data/lib/puppet/pops/types/type_calculator.rb +6 -10
  47. data/lib/puppet/pops/types/type_formatter.rb +9 -11
  48. data/lib/puppet/pops/types/type_parser.rb +3 -3
  49. data/lib/puppet/provider/package/portage.rb +3 -3
  50. data/lib/puppet/provider/package_targetable.rb +5 -4
  51. data/lib/puppet/provider/service/systemd.rb +1 -1
  52. data/lib/puppet/provider/user/hpux.rb +1 -1
  53. data/lib/puppet/runtime.rb +1 -0
  54. data/lib/puppet/ssl/ssl_provider.rb +20 -0
  55. data/lib/puppet/transaction.rb +33 -11
  56. data/lib/puppet/type.rb +1 -1
  57. data/lib/puppet/type/file/data_sync.rb +5 -1
  58. data/lib/puppet/type/group.rb +3 -2
  59. data/lib/puppet/type/user.rb +3 -2
  60. data/lib/puppet/util.rb +34 -11
  61. data/lib/puppet/util/logging.rb +30 -18
  62. data/lib/puppet/util/windows/adsi.rb +48 -18
  63. data/lib/puppet/version.rb +1 -1
  64. data/lib/puppet/x509/cert_provider.rb +9 -5
  65. data/locales/puppet.pot +155 -141
  66. data/man/man5/puppet.conf.5 +33 -3
  67. data/man/man8/puppet-agent.8 +1 -1
  68. data/man/man8/puppet-apply.8 +1 -1
  69. data/man/man8/puppet-catalog.8 +1 -1
  70. data/man/man8/puppet-config.8 +1 -1
  71. data/man/man8/puppet-describe.8 +1 -1
  72. data/man/man8/puppet-device.8 +1 -1
  73. data/man/man8/puppet-doc.8 +1 -1
  74. data/man/man8/puppet-epp.8 +1 -1
  75. data/man/man8/puppet-facts.8 +1 -1
  76. data/man/man8/puppet-filebucket.8 +1 -1
  77. data/man/man8/puppet-generate.8 +1 -1
  78. data/man/man8/puppet-help.8 +1 -1
  79. data/man/man8/puppet-key.8 +1 -1
  80. data/man/man8/puppet-lookup.8 +1 -1
  81. data/man/man8/puppet-man.8 +1 -1
  82. data/man/man8/puppet-module.8 +1 -1
  83. data/man/man8/puppet-node.8 +1 -1
  84. data/man/man8/puppet-parser.8 +1 -1
  85. data/man/man8/puppet-plugin.8 +1 -1
  86. data/man/man8/puppet-report.8 +1 -1
  87. data/man/man8/puppet-resource.8 +1 -1
  88. data/man/man8/puppet-script.8 +1 -1
  89. data/man/man8/puppet-ssl.8 +1 -1
  90. data/man/man8/puppet-status.8 +1 -1
  91. data/man/man8/puppet.8 +2 -2
  92. data/spec/fixtures/unit/forge/bacula.json +76 -0
  93. data/spec/integration/http/client_spec.rb +144 -0
  94. data/spec/integration/module_tool/forge_spec.rb +64 -0
  95. data/spec/lib/puppet_spec/https.rb +5 -3
  96. data/spec/spec_helper.rb +6 -2
  97. data/spec/unit/concurrent/lock_spec.rb +29 -0
  98. data/spec/unit/configurer_spec.rb +394 -399
  99. data/spec/unit/defaults_spec.rb +15 -4
  100. data/spec/unit/forge/errors_spec.rb +1 -1
  101. data/spec/unit/forge/forge_spec.rb +12 -54
  102. data/spec/unit/forge/module_release_spec.rb +19 -6
  103. data/spec/unit/forge/repository_spec.rb +63 -157
  104. data/spec/unit/forge_spec.rb +46 -116
  105. data/spec/unit/functions/find_template_spec.rb +69 -0
  106. data/spec/unit/http/client_spec.rb +138 -6
  107. data/spec/unit/http/resolver_spec.rb +49 -12
  108. data/spec/unit/http/service/ca_spec.rb +56 -5
  109. data/spec/unit/http/service/report_spec.rb +100 -0
  110. data/spec/unit/http/service_spec.rb +20 -0
  111. data/spec/unit/http/session_spec.rb +53 -18
  112. data/spec/unit/network/http/connection_spec.rb +0 -1
  113. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
  114. data/spec/unit/provider/package/portage_spec.rb +4 -4
  115. data/spec/unit/provider/package_targetable_spec.rb +60 -0
  116. data/spec/unit/provider/user/hpux_spec.rb +2 -2
  117. data/spec/unit/ssl/ssl_provider_spec.rb +71 -0
  118. data/spec/unit/transaction_spec.rb +46 -0
  119. data/spec/unit/type/file/content_spec.rb +9 -3
  120. data/spec/unit/util/log_spec.rb +0 -138
  121. data/spec/unit/util/logging_spec.rb +200 -0
  122. data/spec/unit/util/windows/adsi_spec.rb +51 -0
  123. data/spec/unit/x509/cert_provider_spec.rb +24 -4
  124. data/tasks/manpages.rake +1 -0
  125. metadata +24 -5
  126. data/spec/lib/puppet_spec/validators.rb +0 -37
@@ -1486,7 +1486,7 @@ class Type
1486
1486
  }
1487
1487
 
1488
1488
  Tags are useful for things like applying a subset of a host's configuration
1489
- with [the `tags` setting](/puppet/latest/configuration.html#tags)
1489
+ with [the `tags` setting](https://puppet.com/docs/puppet/latest/configuration.html#tags)
1490
1490
  (e.g. `puppet agent --test --tags bootstrap`)."
1491
1491
 
1492
1492
  munge do |tags|
@@ -42,7 +42,11 @@ module Puppet
42
42
  send resource[:loglevel], "[diff redacted]"
43
43
  else
44
44
  write_temporarily(param) do |path|
45
- send resource[:loglevel], "\n" + diff(resource[:path], path)
45
+ diff_output = diff(resource[:path], path)
46
+ if diff_output.encoding == Encoding::BINARY || !diff_output.valid_encoding?
47
+ diff_output = "Binary files #{resource[:path]} and #{path} differ"
48
+ end
49
+ send resource[:loglevel], "\n" + diff_output
46
50
  end
47
51
  end
48
52
  end
@@ -175,7 +175,8 @@ module Puppet
175
175
  end
176
176
 
177
177
  newparam(:ia_load_module, :required_features => :manages_aix_lam) do
178
- desc "The name of the I&A module to use to manage this user"
178
+ desc "The name of the I&A module to use to manage this group.
179
+ This should be set to `files` if managing local groups."
179
180
  end
180
181
 
181
182
  newproperty(:attributes, :parent => Puppet::Property::KeyValue, :required_features => :manages_aix_lam) do
@@ -216,7 +217,7 @@ module Puppet
216
217
  :required_features => :libuser,
217
218
  :parent => Puppet::Parameter::Boolean) do
218
219
  desc "Forces the management of local accounts when accounts are also
219
- being managed by some other Name Switch Service (NSS).
220
+ being managed by some other Name Switch Service (NSS). For AIX, refer to the `ia_load_module` parameter.
220
221
 
221
222
  This option relies on your operating system's implementation of `luser*` commands, such as `luseradd` , `lgroupadd`, and `lusermod`. The `forcelocal` option could behave unpredictably in some circumstances. If the tools it depends on are not available, it might have no effect at all."
222
223
  defaultto false
@@ -626,7 +626,8 @@ module Puppet
626
626
  end
627
627
 
628
628
  newparam(:ia_load_module, :required_features => :manages_aix_lam) do
629
- desc "The name of the I&A module to use to manage this user."
629
+ desc "The name of the I&A module to use to manage this user.
630
+ This should be set to `files` if managing local users."
630
631
  end
631
632
 
632
633
  newproperty(:attributes, :parent => Puppet::Property::KeyValue, :required_features => :manages_aix_lam) do
@@ -690,7 +691,7 @@ module Puppet
690
691
  :required_features => :libuser,
691
692
  :parent => Puppet::Parameter::Boolean) do
692
693
  desc "Forces the management of local accounts when accounts are also
693
- being managed by some other Name Service Switch (NSS).
694
+ being managed by some other Name Service Switch (NSS). For AIX, refer to the `ia_load_module` parameter.
694
695
 
695
696
  This option relies on your operating system's implementation of `luser*` commands, such as `luseradd` , and `lgroupadd`, `lusermod`. The `forcelocal` option could behave unpredictably in some circumstances. If the tools it depends on are not available, it might have no effect at all."
696
697
  defaultto false
@@ -526,21 +526,44 @@ module Util
526
526
 
527
527
  module_function :thinmark
528
528
 
529
+ PUPPET_STACK_INSERTION_FRAME = /.*puppet_stack\.rb.*in.*`stack'/
530
+
529
531
  # utility method to get the current call stack and format it to a human-readable string (which some IDEs/editors
530
532
  # will recognize as links to the line numbers in the trace)
531
- def self.pretty_backtrace(backtrace = caller(1))
532
- backtrace.collect do |line|
533
- _, path, rest = /^(.*):(\d+.*)$/.match(line).to_a
534
- # If the path doesn't exist - like in one test, and like could happen in
535
- # the world - we should just tolerate it and carry on. --daniel 2012-09-05
536
- # Also, if we don't match, just include the whole line.
537
- if path
538
- path = Pathname(path).realpath rescue path
539
- "#{path}:#{rest}"
533
+ def self.pretty_backtrace(backtrace = caller(1), puppetstack = [])
534
+ format_backtrace_array(backtrace, puppetstack).join("\n")
535
+ end
536
+
537
+ # arguments may be a Ruby stack, with an optional Puppet stack argument,
538
+ # or just a Puppet stack.
539
+ # stacks may be an Array of Strings "/foo.rb:0 in `blah'" or
540
+ # an Array of Arrays that represent a frame: ["/foo.pp", 0]
541
+ def self.format_backtrace_array(primary_stack, puppetstack = [])
542
+ primary_stack.flat_map do |frame|
543
+ frame = format_puppetstack_frame(frame) if frame.is_a?(Array)
544
+ primary_frame = resolve_stackframe(frame)
545
+
546
+ if primary_frame =~ PUPPET_STACK_INSERTION_FRAME && !puppetstack.empty?
547
+ [resolve_stackframe(format_puppetstack_frame(puppetstack.shift)),
548
+ primary_frame]
540
549
  else
541
- line
550
+ primary_frame
542
551
  end
543
- end.join("\n")
552
+ end
553
+ end
554
+
555
+ def self.resolve_stackframe(frame)
556
+ _, path, rest = /^(.*):(\d+.*)$/.match(frame).to_a
557
+ if path
558
+ path = Pathname(path).realpath rescue path
559
+ "#{path}:#{rest}"
560
+ else
561
+ frame
562
+ end
563
+ end
564
+
565
+ def self.format_puppetstack_frame(file_and_lineno)
566
+ file_and_lineno.join(':')
544
567
  end
545
568
 
546
569
  # Replace a file, securely. This takes a block, and passes it the file
@@ -48,12 +48,13 @@ module Logging
48
48
  # wish to log a message at all; in this case it is likely that you are only calling this method in order
49
49
  # to take advantage of the backtrace logging.
50
50
  def log_exception(exception, message = :default, options = {})
51
- trace = Puppet[:trace] || options[:trace]
52
51
  level = options[:level] || :err
52
+ combined_trace = Puppet[:trace] || options[:trace]
53
+ puppet_trace = Puppet[:puppet_trace] || options[:puppet_trace]
54
+
53
55
  if message == :default && exception.is_a?(Puppet::ParseErrorWithIssue)
54
56
  # Retain all detailed info and keep plain message and stacktrace separate
55
- backtrace = []
56
- build_exception_trace(backtrace, exception, trace)
57
+ backtrace = build_exception_trace(exception, combined_trace, puppet_trace)
57
58
  Puppet::Util::Log.create({
58
59
  :level => level,
59
60
  :source => log_source,
@@ -67,28 +68,27 @@ module Logging
67
68
  :node => exception.node
68
69
  }.merge(log_metadata))
69
70
  else
70
- send_log(level, format_exception(exception, message, trace))
71
+ send_log(level, format_exception(exception, message, combined_trace, puppet_trace))
71
72
  end
72
73
  end
73
74
 
74
- def build_exception_trace(arr, exception, trace = true)
75
- if trace and exception.backtrace
76
- exception.backtrace.each do |line|
77
- arr << line =~ /^(.+):(\d+.*)$/ ? ("#{Pathname($1).realpath}:#{$2}" rescue line) : line
78
- end
79
- end
75
+ def build_exception_trace(exception, combined_trace = true, puppet_trace = false)
76
+ built_trace = format_backtrace(exception, combined_trace, puppet_trace)
77
+
80
78
  if exception.respond_to?(:original)
81
79
  original = exception.original
82
80
  unless original.nil?
83
- arr << _('Wrapped exception:')
84
- arr << original.message
85
- build_exception_trace(arr, original, trace)
81
+ built_trace << _('Wrapped exception:')
82
+ built_trace << original.message
83
+ built_trace += build_exception_trace(original, combined_trace, puppet_trace)
86
84
  end
87
85
  end
86
+
87
+ built_trace
88
88
  end
89
89
  private :build_exception_trace
90
90
 
91
- def format_exception(exception, message = :default, trace = true)
91
+ def format_exception(exception, message = :default, combined_trace = true, puppet_trace = false)
92
92
  arr = []
93
93
  case message
94
94
  when :default
@@ -99,16 +99,28 @@ module Logging
99
99
  arr << message
100
100
  end
101
101
 
102
- if trace and exception.backtrace
103
- arr << Puppet::Util.pretty_backtrace(exception.backtrace)
104
- end
102
+ arr += format_backtrace(exception, combined_trace, puppet_trace)
103
+
105
104
  if exception.respond_to?(:original) and exception.original
106
105
  arr << _("Wrapped exception:")
107
- arr << format_exception(exception.original, :default, trace)
106
+ arr << format_exception(exception.original, :default, combined_trace, puppet_trace)
108
107
  end
108
+
109
109
  arr.flatten.join("\n")
110
110
  end
111
111
 
112
+ def format_backtrace(exception, combined_trace, puppet_trace)
113
+ puppetstack = exception.respond_to?(:puppetstack) ? exception.puppetstack : []
114
+
115
+ if combined_trace and exception.backtrace
116
+ Puppet::Util.format_backtrace_array(exception.backtrace, puppetstack)
117
+ elsif puppet_trace && !puppetstack.empty?
118
+ Puppet::Util.format_backtrace_array(puppetstack)
119
+ else
120
+ []
121
+ end
122
+ end
123
+
112
124
  def log_and_raise(exception, message)
113
125
  log_exception(exception, message)
114
126
  raise exception, message + "\n" + exception.to_s, exception.backtrace
@@ -1,6 +1,23 @@
1
1
  module Puppet::Util::Windows::ADSI
2
2
  require 'ffi'
3
3
 
4
+ # https://docs.microsoft.com/en-us/windows/win32/api/dsrole/ne-dsrole-dsrole_machine_role
5
+ STANDALONE_WORKSTATION = 0
6
+ MEMBER_WORKSTATION = 1
7
+ STANDALONE_SERVER = 2
8
+ MEMBER_SERVER = 3
9
+ BACKUP_DOMAIN_CONTROLLER = 4
10
+ PRIMARY_DOMAIN_CONTROLLER = 5
11
+
12
+ DOMAIN_ROLES = {
13
+ STANDALONE_WORKSTATION => :STANDALONE_WORKSTATION,
14
+ MEMBER_WORKSTATION => :MEMBER_WORKSTATION,
15
+ STANDALONE_SERVER => :STANDALONE_SERVER,
16
+ MEMBER_SERVER => :MEMBER_SERVER,
17
+ BACKUP_DOMAIN_CONTROLLER => :BACKUP_DOMAIN_CONTROLLER,
18
+ PRIMARY_DOMAIN_CONTROLLER => :PRIMARY_DOMAIN_CONTROLLER,
19
+ }
20
+
4
21
  class << self
5
22
  extend FFI::Library
6
23
 
@@ -94,6 +111,14 @@ module Puppet::Util::Windows::ADSI
94
111
  wmi_connection.execquery(query)
95
112
  end
96
113
 
114
+ def domain_role
115
+ unless @domain_role
116
+ query_result = Puppet::Util::Windows::ADSI.execquery('select DomainRole from Win32_ComputerSystem').to_enum.first
117
+ @domain_role = DOMAIN_ROLES[query_result.DomainRole] if query_result
118
+ end
119
+ @domain_role
120
+ end
121
+
97
122
  ffi_convention :stdcall
98
123
 
99
124
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms724295(v=vs.85).aspx
@@ -176,7 +201,12 @@ module Puppet::Util::Windows::ADSI
176
201
  well_known = false
177
202
  if (sid = Puppet::Util::Windows::SID.name_to_principal(name_or_sid))
178
203
  # Examples of SidType include SidTypeUser, SidTypeGroup
179
- return true if sid.account_type == "SidType#{@object_class.capitalize}".to_sym
204
+ if sid.account_type == "SidType#{@object_class.capitalize}".to_sym
205
+ # Check if we're getting back a local user when domain-joined
206
+ return true unless [:MEMBER_WORKSTATION, :MEMBER_SERVER].include?(Puppet::Util::Windows::ADSI.domain_role)
207
+ # The resource domain and the computer name are not always case-matching
208
+ return sid.domain.casecmp(Puppet::Util::Windows::ADSI.computer_name) == 0
209
+ end
180
210
 
181
211
  # 'well known group' is special as it can be a group like Everyone OR a user like SYSTEM
182
212
  # so try to resolve it
@@ -386,23 +416,23 @@ module Puppet::Util::Windows::ADSI
386
416
  ADS_UF_SCRIPT: 0x0001,
387
417
  ADS_UF_ACCOUNTDISABLE: 0x0002,
388
418
  ADS_UF_HOMEDIR_REQUIRED: 0x0008,
389
- ADS_UF_LOCKOUT: 0x0010,
390
- ADS_UF_PASSWD_NOTREQD: 0x0020,
391
- ADS_UF_PASSWD_CANT_CHANGE: 0x0040,
392
- ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: 0x0080,
393
- ADS_UF_TEMP_DUPLICATE_ACCOUNT: 0x0100,
394
- ADS_UF_NORMAL_ACCOUNT: 0x0200,
395
- ADS_UF_INTERDOMAIN_TRUST_ACCOUNT: 0x0800,
396
- ADS_UF_WORKSTATION_TRUST_ACCOUNT: 0x1000,
397
- ADS_UF_SERVER_TRUST_ACCOUNT: 0x2000,
398
- ADS_UF_DONT_EXPIRE_PASSWD: 0x10000,
399
- ADS_UF_MNS_LOGON_ACCOUNT: 0x20000,
400
- ADS_UF_SMARTCARD_REQUIRED: 0x40000,
401
- ADS_UF_TRUSTED_FOR_DELEGATION: 0x80000,
402
- ADS_UF_NOT_DELEGATED: 0x100000,
403
- ADS_UF_USE_DES_KEY_ONLY: 0x200000,
404
- ADS_UF_DONT_REQUIRE_PREAUTH: 0x400000,
405
- ADS_UF_PASSWORD_EXPIRED: 0x800000,
419
+ ADS_UF_LOCKOUT: 0x0010,
420
+ ADS_UF_PASSWD_NOTREQD: 0x0020,
421
+ ADS_UF_PASSWD_CANT_CHANGE: 0x0040,
422
+ ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: 0x0080,
423
+ ADS_UF_TEMP_DUPLICATE_ACCOUNT: 0x0100,
424
+ ADS_UF_NORMAL_ACCOUNT: 0x0200,
425
+ ADS_UF_INTERDOMAIN_TRUST_ACCOUNT: 0x0800,
426
+ ADS_UF_WORKSTATION_TRUST_ACCOUNT: 0x1000,
427
+ ADS_UF_SERVER_TRUST_ACCOUNT: 0x2000,
428
+ ADS_UF_DONT_EXPIRE_PASSWD: 0x10000,
429
+ ADS_UF_MNS_LOGON_ACCOUNT: 0x20000,
430
+ ADS_UF_SMARTCARD_REQUIRED: 0x40000,
431
+ ADS_UF_TRUSTED_FOR_DELEGATION: 0x80000,
432
+ ADS_UF_NOT_DELEGATED: 0x100000,
433
+ ADS_UF_USE_DES_KEY_ONLY: 0x200000,
434
+ ADS_UF_DONT_REQUIRE_PREAUTH: 0x400000,
435
+ ADS_UF_PASSWORD_EXPIRED: 0x800000,
406
436
  ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: 0x1000000
407
437
  }
408
438
 
@@ -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 = '6.11.1'
9
+ PUPPETVERSION = '6.12.0'
10
10
 
11
11
  ##
12
12
  # version is a public API method intended to always provide a fast and
@@ -16,12 +16,16 @@ class Puppet::X509::CertProvider
16
16
  crlpath: Puppet[:hostcrl],
17
17
  privatekeydir: Puppet[:privatekeydir],
18
18
  certdir: Puppet[:certdir],
19
- requestdir: Puppet[:requestdir])
19
+ requestdir: Puppet[:requestdir],
20
+ hostprivkey: Puppet.settings.set_by_config?(:hostprivkey) ? Puppet[:hostprivkey] : nil,
21
+ hostcert: Puppet.settings.set_by_config?(:hostcert) ? Puppet[:hostcert] : nil)
20
22
  @capath = capath
21
23
  @crlpath = crlpath
22
24
  @privatekeydir = privatekeydir
23
25
  @certdir = certdir
24
26
  @requestdir = requestdir
27
+ @hostprivkey = hostprivkey
28
+ @hostcert = hostcert
25
29
  end
26
30
 
27
31
  # Save `certs` to the configured `capath`.
@@ -146,7 +150,7 @@ class Puppet::X509::CertProvider
146
150
  else
147
151
  key.to_pem
148
152
  end
149
- path = to_path(@privatekeydir, name)
153
+ path = @hostprivkey || to_path(@privatekeydir, name)
150
154
  save_pem(pem, path, **permissions_for_setting(:hostprivkey))
151
155
  rescue SystemCallError => e
152
156
  raise Puppet::Error.new(_("Failed to save private key for '%{name}'") % {name: name}, e)
@@ -165,7 +169,7 @@ class Puppet::X509::CertProvider
165
169
  # @raise [Puppet::Error] if the private key cannot be loaded
166
170
  # @api private
167
171
  def load_private_key(name, required: false, password: nil)
168
- path = to_path(@privatekeydir, name)
172
+ path = @hostprivkey || to_path(@privatekeydir, name)
169
173
  pem = load_pem(path)
170
174
  if !pem && required
171
175
  raise Puppet::Error, _("The private key is missing from '%{path}'") % { path: path }
@@ -225,7 +229,7 @@ class Puppet::X509::CertProvider
225
229
  # @raise [Puppet::Error] if the client cert cannot be saved
226
230
  # @api private
227
231
  def save_client_cert(name, cert)
228
- path = to_path(@certdir, name)
232
+ path = @hostcert || to_path(@certdir, name)
229
233
  save_pem(cert.to_pem, path, **permissions_for_setting(:hostcert))
230
234
  rescue SystemCallError => e
231
235
  raise Puppet::Error.new(_("Failed to save client certificate for '%{name}'") % {name: name}, e)
@@ -240,7 +244,7 @@ class Puppet::X509::CertProvider
240
244
  # @raise [Puppet::Error] if the client cert cannot be loaded
241
245
  # @api private
242
246
  def load_client_cert(name, required: false)
243
- path = to_path(@certdir, name)
247
+ path = @hostcert || to_path(@certdir, name)
244
248
  pem = load_pem(path)
245
249
  if !pem && required
246
250
  raise Puppet::Error, _("The client certificate is missing from '%{path}'") % { path: path }
@@ -1,16 +1,16 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) 2019 Puppet, Inc.
2
+ # Copyright (C) 2020 Puppet, Inc.
3
3
  # This file is distributed under the same license as the Puppet automation framework package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: Puppet automation framework 6.10.1-308-g9fd2251\n"
9
+ "Project-Id-Version: Puppet automation framework 6.11.1-197-g539749b170\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2019-11-14 01:31+0000\n"
13
- "PO-Revision-Date: 2019-11-14 01:31+0000\n"
12
+ "POT-Creation-Date: 2020-01-07 15:20+0000\n"
13
+ "PO-Revision-Date: 2020-01-07 15:20+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -547,93 +547,94 @@ msgstr ""
547
547
  msgid "Not using cached catalog because its environment '%{catalog_env}' does not match '%{local_env}'"
548
548
  msgstr ""
549
549
 
550
- #: ../lib/puppet/configurer.rb:94 ../lib/puppet/configurer.rb:179
550
+ #: ../lib/puppet/configurer.rb:94 ../lib/puppet/configurer.rb:177
551
551
  msgid "Using cached catalog from environment '%{catalog_env}'"
552
552
  msgstr ""
553
553
 
554
- #: ../lib/puppet/configurer.rb:172
554
+ #: ../lib/puppet/configurer.rb:170
555
555
  msgid "Could not retrieve catalog; skipping run"
556
556
  msgstr ""
557
557
 
558
- #: ../lib/puppet/configurer.rb:192
558
+ #: ../lib/puppet/configurer.rb:186
559
559
  msgid "Applied catalog in %{seconds} seconds"
560
560
  msgstr ""
561
561
 
562
- #: ../lib/puppet/configurer.rb:232
562
+ #: ../lib/puppet/configurer.rb:226 ../lib/puppet/http/resolver/server_list.rb:19
563
563
  msgid "Could not select a functional puppet master from server_list: '%{server_list}'"
564
564
  msgstr ""
565
565
 
566
566
  #. TRANSLATORS 'server_list' is the name of a setting and should not be translated
567
- #: ../lib/puppet/configurer.rb:235
567
+ #: ../lib/puppet/configurer.rb:229
568
568
  msgid "Selected puppet server from the `server_list` setting: %{server}:%{port}"
569
569
  msgstr ""
570
570
 
571
- #: ../lib/puppet/configurer.rb:268
571
+ #: ../lib/puppet/configurer.rb:261
572
572
  msgid "Local environment: '%{local_env}' doesn't match the environment of the cached catalog '%{catalog_env}', switching agent to '%{catalog_env}'."
573
573
  msgstr ""
574
574
 
575
- #: ../lib/puppet/configurer.rb:313
575
+ #: ../lib/puppet/configurer.rb:306
576
576
  msgid "Local environment: '%{local_env}' doesn't match server specified node environment '%{node_env}', switching agent to '%{node_env}'."
577
577
  msgstr ""
578
578
 
579
- #: ../lib/puppet/configurer.rb:318
579
+ #: ../lib/puppet/configurer.rb:311
580
580
  msgid "Using configured environment '%{env}'"
581
581
  msgstr ""
582
582
 
583
- #: ../lib/puppet/configurer.rb:322
583
+ #: ../lib/puppet/configurer.rb:315
584
584
  msgid "Unable to fetch my node definition, but the agent run will continue:"
585
585
  msgstr ""
586
586
 
587
- #: ../lib/puppet/configurer.rb:351
587
+ #: ../lib/puppet/configurer.rb:344
588
588
  msgid "Not using catalog because its environment '%{catalog_env}' does not match agent specified environment '%{local_env}' and strict_environment_mode is set"
589
589
  msgstr ""
590
590
 
591
- #: ../lib/puppet/configurer.rb:362
591
+ #: ../lib/puppet/configurer.rb:355
592
592
  msgid "Catalog environment didn't stabilize after %{tries} fetches, aborting run"
593
593
  msgstr ""
594
594
 
595
- #: ../lib/puppet/configurer.rb:364
595
+ #: ../lib/puppet/configurer.rb:357
596
596
  msgid "Local environment: '%{local_env}' doesn't match server specified environment '%{catalog_env}', restarting agent run with environment '%{catalog_env}'"
597
597
  msgstr ""
598
598
 
599
- #: ../lib/puppet/configurer.rb:384
599
+ #: ../lib/puppet/configurer.rb:398
600
600
  msgid "Failed to apply catalog: %{detail}"
601
601
  msgstr ""
602
602
 
603
- #: ../lib/puppet/configurer.rb:417
603
+ #: ../lib/puppet/configurer.rb:431 ../lib/puppet/http/resolver/server_list.rb:29
604
604
  msgid "Puppet server %{host}:%{port} is unavailable: %{code} %{reason}"
605
605
  msgstr ""
606
606
 
607
607
  #. TRANSLATORS 'server_list' is the name of a setting and should not be translated
608
- #: ../lib/puppet/configurer.rb:421
608
+ #. TRANSLATORS 'server_list' is the name of a setting and should not be translated
609
+ #: ../lib/puppet/configurer.rb:435 ../lib/puppet/http/resolver/server_list.rb:35
609
610
  msgid "Unable to connect to server from server_list setting: %{detail}"
610
611
  msgstr ""
611
612
 
612
- #: ../lib/puppet/configurer.rb:433 ../lib/puppet/face/report.rb:47
613
+ #: ../lib/puppet/configurer.rb:447 ../lib/puppet/face/report.rb:47
613
614
  msgid "Could not send report: %{detail}"
614
615
  msgstr ""
615
616
 
616
- #: ../lib/puppet/configurer.rb:442
617
+ #: ../lib/puppet/configurer.rb:456
617
618
  msgid "Could not save last run local report: %{detail}"
618
619
  msgstr ""
619
620
 
620
- #: ../lib/puppet/configurer.rb:462
621
+ #: ../lib/puppet/configurer.rb:476
621
622
  msgid "Uploading facts for %{node} to %{server}"
622
623
  msgstr ""
623
624
 
624
- #: ../lib/puppet/configurer.rb:473
625
+ #: ../lib/puppet/configurer.rb:487
625
626
  msgid "Failed to submit facts: %{detail}"
626
627
  msgstr ""
627
628
 
628
- #: ../lib/puppet/configurer.rb:488
629
+ #: ../lib/puppet/configurer.rb:502
629
630
  msgid "Could not run command from %{setting}: %{detail}"
630
631
  msgstr ""
631
632
 
632
- #: ../lib/puppet/configurer.rb:506
633
+ #: ../lib/puppet/configurer.rb:520
633
634
  msgid "Could not retrieve catalog from cache: %{detail}"
634
635
  msgstr ""
635
636
 
636
- #: ../lib/puppet/configurer.rb:526
637
+ #: ../lib/puppet/configurer.rb:540
637
638
  msgid "Could not retrieve catalog from remote server: %{detail}"
638
639
  msgstr ""
639
640
 
@@ -697,38 +698,38 @@ msgstr ""
697
698
  msgid "a data type can only have one implementation"
698
699
  msgstr ""
699
700
 
700
- #: ../lib/puppet/defaults.rb:152
701
+ #: ../lib/puppet/defaults.rb:171
701
702
  msgid "Cannot disable unrecognized warning types %{invalid}."
702
703
  msgstr ""
703
704
 
704
- #: ../lib/puppet/defaults.rb:153
705
+ #: ../lib/puppet/defaults.rb:172
705
706
  msgid "Valid values are %{values}."
706
707
  msgstr ""
707
708
 
708
709
  #. TRANSLATORS 'data_binding_terminus' is a setting and should not be translated
709
- #: ../lib/puppet/defaults.rb:494
710
+ #: ../lib/puppet/defaults.rb:526
710
711
  msgid "Setting 'data_binding_terminus' is deprecated."
711
712
  msgstr ""
712
713
 
713
714
  #. TRANSLATORS 'hiera' should not be translated
714
- #: ../lib/puppet/defaults.rb:496
715
+ #: ../lib/puppet/defaults.rb:528
715
716
  msgid "Convert custom terminus to hiera 5 API."
716
717
  msgstr ""
717
718
 
718
719
  #. TRANSLATORS 'environment_data_provider' is a setting and should not be translated
719
- #: ../lib/puppet/defaults.rb:686
720
+ #: ../lib/puppet/defaults.rb:718
720
721
  msgid "Setting 'environment_data_provider' is deprecated."
721
722
  msgstr ""
722
723
 
723
- #: ../lib/puppet/defaults.rb:767
724
+ #: ../lib/puppet/defaults.rb:799
724
725
  msgid "Certificate names must be lower case"
725
726
  msgstr ""
726
727
 
727
- #: ../lib/puppet/defaults.rb:948
728
+ #: ../lib/puppet/defaults.rb:980
728
729
  msgid "Setting 'ssl_client_ca_auth' is deprecated."
729
730
  msgstr ""
730
731
 
731
- #: ../lib/puppet/defaults.rb:1027 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
732
+ #: ../lib/puppet/defaults.rb:1059 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
732
733
  msgid "Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'"
733
734
  msgstr ""
734
735
 
@@ -2221,24 +2222,24 @@ msgstr ""
2221
2222
  msgid "Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz"
2222
2223
  msgstr ""
2223
2224
 
2224
- #: ../lib/puppet/http/client.rb:31
2225
- msgid "Failed to connect to %{uri}: %{message}"
2225
+ #: ../lib/puppet/http/client.rb:32
2226
+ msgid "Request to %{uri} timed out connect operation after %{elapsed} seconds"
2226
2227
  msgstr ""
2227
2228
 
2228
- #: ../lib/puppet/http/client.rb:96
2229
- msgid "Sleeping for %{interval} seconds before retrying the request"
2229
+ #: ../lib/puppet/http/client.rb:34
2230
+ msgid "Request to %{uri} timed out read operation after %{elapsed} seconds"
2230
2231
  msgstr ""
2231
2232
 
2232
- #: ../lib/puppet/http/client.rb:125
2233
+ #: ../lib/puppet/http/client.rb:36
2233
2234
  msgid "Request to %{uri} interrupted after %{elapsed} seconds"
2234
2235
  msgstr ""
2235
2236
 
2236
- #: ../lib/puppet/http/client.rb:127
2237
- msgid "Request to %{uri} timed out after %{elapsed} seconds"
2237
+ #: ../lib/puppet/http/client.rb:42
2238
+ msgid "Request to %{uri} failed after %{elapsed} seconds: %{message}"
2238
2239
  msgstr ""
2239
2240
 
2240
- #: ../lib/puppet/http/client.rb:129
2241
- msgid "Request to %{uri} failed after %{elapsed} seconds: %{message}"
2241
+ #: ../lib/puppet/http/client.rb:157
2242
+ msgid "Sleeping for %{interval} seconds before retrying the request"
2242
2243
  msgstr ""
2243
2244
 
2244
2245
  #: ../lib/puppet/http/errors.rb:21
@@ -2261,6 +2262,11 @@ msgstr ""
2261
2262
  msgid "Failed to parse Retry-After header '%{retry_after}' as an integer or RFC 2822 date"
2262
2263
  msgstr ""
2263
2264
 
2265
+ #. TRANSLATORS "pson", "preffered_serialization_format", and "puppetserver" should not be translated
2266
+ #: ../lib/puppet/http/service/report.rb:35
2267
+ msgid "To submit reports to a server running puppetserver %{server_version}, set preferred_serialization_format to pson"
2268
+ msgstr ""
2269
+
2264
2270
  #: ../lib/puppet/indirector.rb:25
2265
2271
  msgid "Indirection %{indirection_name} does not exist"
2266
2272
  msgstr ""
@@ -4072,11 +4078,11 @@ msgstr ""
4072
4078
  msgid "Trusted node data modified for node %{name}"
4073
4079
  msgstr ""
4074
4080
 
4075
- #: ../lib/puppet/node/environment.rb:206
4081
+ #: ../lib/puppet/node/environment.rb:208
4076
4082
  msgid "The 'disable_per_environment_manifest' setting is true, and the '%{env_name}' environment has an environment.conf manifest that conflicts with the 'default_manifest' setting."
4077
4083
  msgstr ""
4078
4084
 
4079
- #: ../lib/puppet/node/environment.rb:545 ../lib/puppet/pops/loaders.rb:298
4085
+ #: ../lib/puppet/node/environment.rb:551 ../lib/puppet/pops/loaders.rb:298
4080
4086
  msgid "Could not parse for environment %{env}: %{detail}"
4081
4087
  msgstr ""
4082
4088
 
@@ -4108,54 +4114,54 @@ msgstr ""
4108
4114
 
4109
4115
  #. TRANSLATORS: do not translate the variable names in this error message
4110
4116
  #. TRANSLATORS: do not translate the variable names in this error message
4111
- #: ../lib/puppet/pal/pal_impl.rb:73 ../lib/puppet/pal/pal_impl.rb:166
4117
+ #: ../lib/puppet/pal/pal_impl.rb:73 ../lib/puppet/pal/pal_impl.rb:171
4112
4118
  msgid "manifest_file or code_string cannot be given when configured_by_env is true"
4113
4119
  msgstr ""
4114
4120
 
4115
- #: ../lib/puppet/pal/pal_impl.rb:214
4121
+ #: ../lib/puppet/pal/pal_impl.rb:219
4116
4122
  msgid "temporary environment name"
4117
4123
  msgstr ""
4118
4124
 
4119
4125
  #. TRANSLATORS: do not translate variable name string in these assertions
4120
- #: ../lib/puppet/pal/pal_impl.rb:219
4126
+ #: ../lib/puppet/pal/pal_impl.rb:224
4121
4127
  msgid "A block must be given to 'in_tmp_environment'"
4122
4128
  msgstr ""
4123
4129
 
4124
4130
  #. TRANSLATORS terms in the assertions below are names of terms in code
4125
- #: ../lib/puppet/pal/pal_impl.rb:273
4131
+ #: ../lib/puppet/pal/pal_impl.rb:278
4126
4132
  msgid "A block must be given to 'in_environment'"
4127
4133
  msgstr ""
4128
4134
 
4129
4135
  #. TRANSLATORS 'in_environment' is a name, do not translate
4130
- #: ../lib/puppet/pal/pal_impl.rb:278
4136
+ #: ../lib/puppet/pal/pal_impl.rb:283
4131
4137
  msgid "The environment directory '%{env_dir}' does not exist"
4132
4138
  msgstr ""
4133
4139
 
4134
- #: ../lib/puppet/pal/pal_impl.rb:301
4140
+ #: ../lib/puppet/pal/pal_impl.rb:306
4135
4141
  msgid "No directory found for the environment '%{env_name}' on the path '%{envpath}'"
4136
4142
  msgstr ""
4137
4143
 
4138
- #: ../lib/puppet/pal/pal_impl.rb:355
4144
+ #: ../lib/puppet/pal/pal_impl.rb:360
4139
4145
  msgid "Given variables must be a hash, got %{type}"
4140
4146
  msgstr ""
4141
4147
 
4142
- #: ../lib/puppet/pal/pal_impl.rb:361
4148
+ #: ../lib/puppet/pal/pal_impl.rb:366
4143
4149
  msgid "Given variable '%{varname}' has illegal name"
4144
4150
  msgstr ""
4145
4151
 
4146
- #: ../lib/puppet/pal/pal_impl.rb:365
4152
+ #: ../lib/puppet/pal/pal_impl.rb:370
4147
4153
  msgid "Given value for '%{varname}' has illegal type - got: %{type}"
4148
4154
  msgstr ""
4149
4155
 
4150
- #: ../lib/puppet/pal/pal_impl.rb:505
4156
+ #: ../lib/puppet/pal/pal_impl.rb:510
4151
4157
  msgid "Puppet Pal: %{what}"
4152
4158
  msgstr ""
4153
4159
 
4154
- #: ../lib/puppet/pal/pal_impl.rb:519
4160
+ #: ../lib/puppet/pal/pal_impl.rb:524
4155
4161
  msgid "Cannot use '%{a_term}' and '%{b_term}' at the same time"
4156
4162
  msgstr ""
4157
4163
 
4158
- #: ../lib/puppet/pal/pal_impl.rb:526
4164
+ #: ../lib/puppet/pal/pal_impl.rb:531
4159
4165
  msgid "A block must be given"
4160
4166
  msgstr ""
4161
4167
 
@@ -6111,35 +6117,35 @@ msgstr ""
6111
6117
  msgid "No Puppet Type found for %{klass}"
6112
6118
  msgstr ""
6113
6119
 
6114
- #: ../lib/puppet/pops/time/timespan.rb:112 ../lib/puppet/pops/time/timestamp.rb:83
6120
+ #: ../lib/puppet/pops/time/timespan.rb:114 ../lib/puppet/pops/time/timestamp.rb:83
6115
6121
  msgid "Unable to parse '%{str}' using any of the formats %{formats}"
6116
6122
  msgstr ""
6117
6123
 
6118
- #: ../lib/puppet/pops/time/timespan.rb:133
6124
+ #: ../lib/puppet/pops/time/timespan.rb:135
6119
6125
  msgid "%{klass} cannot be added to a Timespan"
6120
6126
  msgstr ""
6121
6127
 
6122
- #: ../lib/puppet/pops/time/timespan.rb:145
6128
+ #: ../lib/puppet/pops/time/timespan.rb:147
6123
6129
  msgid "%{klass} cannot be subtracted from a Timespan"
6124
6130
  msgstr ""
6125
6131
 
6126
- #: ../lib/puppet/pops/time/timespan.rb:158
6132
+ #: ../lib/puppet/pops/time/timespan.rb:160
6127
6133
  msgid "A Timestamp cannot be multiplied by %{klass}"
6128
6134
  msgstr ""
6129
6135
 
6130
- #: ../lib/puppet/pops/time/timespan.rb:169
6136
+ #: ../lib/puppet/pops/time/timespan.rb:171
6131
6137
  msgid "Can not do modulus on a Timespan using a %{klass}"
6132
6138
  msgstr ""
6133
6139
 
6134
- #: ../lib/puppet/pops/time/timespan.rb:189
6140
+ #: ../lib/puppet/pops/time/timespan.rb:191
6135
6141
  msgid "A Timespan cannot be divided by %{klass}"
6136
6142
  msgstr ""
6137
6143
 
6138
- #: ../lib/puppet/pops/time/timespan.rb:476
6144
+ #: ../lib/puppet/pops/time/timespan.rb:478
6139
6145
  msgid "Format specifiers %L and %N denotes fractions and must be used together with a specifier of higher magnitude"
6140
6146
  msgstr ""
6141
6147
 
6142
- #: ../lib/puppet/pops/time/timespan.rb:552 ../lib/puppet/pops/time/timespan.rb:558
6148
+ #: ../lib/puppet/pops/time/timespan.rb:554 ../lib/puppet/pops/time/timespan.rb:560
6143
6149
  msgid "Unable to parse '%{timespan}' using format '%{format}'"
6144
6150
  msgstr ""
6145
6151
 
@@ -7054,11 +7060,11 @@ msgstr ""
7054
7060
  msgid "Failed to update to version %{should}, got version %{version} instead"
7055
7061
  msgstr ""
7056
7062
 
7057
- #: ../lib/puppet/provider/package_targetable.rb:55
7063
+ #: ../lib/puppet/provider/package_targetable.rb:56
7058
7064
  msgid "Provider %{name} package command is not functional on this host"
7059
7065
  msgstr ""
7060
7066
 
7061
- #: ../lib/puppet/provider/package_targetable.rb:58
7067
+ #: ../lib/puppet/provider/package_targetable.rb:59
7062
7068
  msgid "Provider %{name} package command '%{cmd}' does not exist on this host"
7063
7069
  msgstr ""
7064
7070
 
@@ -7384,7 +7390,7 @@ msgstr ""
7384
7390
  msgid "Could not find resource %{resource} when converting %{message} resources"
7385
7391
  msgstr ""
7386
7392
 
7387
- #: ../lib/puppet/resource/status.rb:139 ../lib/puppet/transaction.rb:270
7393
+ #: ../lib/puppet/resource/status.rb:139 ../lib/puppet/transaction.rb:274
7388
7394
  msgid "Could not evaluate: %{detail}"
7389
7395
  msgstr ""
7390
7396
 
@@ -7724,7 +7730,7 @@ msgstr ""
7724
7730
  msgid "%{name} has not declared what class it wraps"
7725
7731
  msgstr ""
7726
7732
 
7727
- #: ../lib/puppet/ssl/base.rb:32 ../lib/puppet/x509/cert_provider.rb:338
7733
+ #: ../lib/puppet/ssl/base.rb:32 ../lib/puppet/x509/cert_provider.rb:342
7728
7734
  msgid "Certname %{name} must not contain unprintable or non-ASCII characters"
7729
7735
  msgstr ""
7730
7736
 
@@ -7932,79 +7938,79 @@ msgstr ""
7932
7938
  msgid "Error registering ssl custom OIDs mapping from file '%{custom_oid_file}': %{err}"
7933
7939
  msgstr ""
7934
7940
 
7935
- #: ../lib/puppet/ssl/ssl_provider.rb:65
7941
+ #: ../lib/puppet/ssl/ssl_provider.rb:85
7936
7942
  msgid "CA certs are missing"
7937
7943
  msgstr ""
7938
7944
 
7939
- #: ../lib/puppet/ssl/ssl_provider.rb:66
7945
+ #: ../lib/puppet/ssl/ssl_provider.rb:86
7940
7946
  msgid "CRLs are missing"
7941
7947
  msgstr ""
7942
7948
 
7943
- #: ../lib/puppet/ssl/ssl_provider.rb:67
7949
+ #: ../lib/puppet/ssl/ssl_provider.rb:87
7944
7950
  msgid "Private key is missing"
7945
7951
  msgstr ""
7946
7952
 
7947
- #: ../lib/puppet/ssl/ssl_provider.rb:68
7953
+ #: ../lib/puppet/ssl/ssl_provider.rb:88
7948
7954
  msgid "Client cert is missing"
7949
7955
  msgstr ""
7950
7956
 
7951
- #: ../lib/puppet/ssl/ssl_provider.rb:74
7957
+ #: ../lib/puppet/ssl/ssl_provider.rb:94
7952
7958
  msgid "Unsupported key '%{type}'"
7953
7959
  msgstr ""
7954
7960
 
7955
- #: ../lib/puppet/ssl/ssl_provider.rb:78
7961
+ #: ../lib/puppet/ssl/ssl_provider.rb:98
7956
7962
  msgid "The certificate for '%{name}' does not match its private key"
7957
7963
  msgstr ""
7958
7964
 
7959
- #: ../lib/puppet/ssl/ssl_provider.rb:117
7965
+ #: ../lib/puppet/ssl/ssl_provider.rb:137
7960
7966
  msgid "Failed to load private key for host '%{name}': %{message}"
7961
7967
  msgstr ""
7962
7968
 
7963
- #: ../lib/puppet/ssl/ssl_provider.rb:131
7969
+ #: ../lib/puppet/ssl/ssl_provider.rb:151
7964
7970
  msgid "The CSR for host '%{name}' does not match the public key"
7965
7971
  msgstr ""
7966
7972
 
7967
- #: ../lib/puppet/ssl/ssl_provider.rb:195
7973
+ #: ../lib/puppet/ssl/ssl_provider.rb:215
7968
7974
  msgid "The issuer '%{issuer}' of certificate '%{subject}' cannot be found locally"
7969
7975
  msgstr ""
7970
7976
 
7971
- #: ../lib/puppet/ssl/ssl_provider.rb:211
7977
+ #: ../lib/puppet/ssl/ssl_provider.rb:231
7972
7978
  msgid "The certificate '%{subject}' is not yet valid, verify time is synchronized"
7973
7979
  msgstr ""
7974
7980
 
7975
- #: ../lib/puppet/ssl/ssl_provider.rb:213
7981
+ #: ../lib/puppet/ssl/ssl_provider.rb:233
7976
7982
  msgid "The certificate '%{subject}' has expired, verify time is synchronized"
7977
7983
  msgstr ""
7978
7984
 
7979
- #: ../lib/puppet/ssl/ssl_provider.rb:215
7985
+ #: ../lib/puppet/ssl/ssl_provider.rb:235
7980
7986
  msgid "The CRL issued by '%{issuer}' is not yet valid, verify time is synchronized"
7981
7987
  msgstr ""
7982
7988
 
7983
- #: ../lib/puppet/ssl/ssl_provider.rb:217
7989
+ #: ../lib/puppet/ssl/ssl_provider.rb:237
7984
7990
  msgid "The CRL issued by '%{issuer}' has expired, verify time is synchronized"
7985
7991
  msgstr ""
7986
7992
 
7987
- #: ../lib/puppet/ssl/ssl_provider.rb:219
7993
+ #: ../lib/puppet/ssl/ssl_provider.rb:239
7988
7994
  msgid "Invalid signature for certificate '%{subject}'"
7989
7995
  msgstr ""
7990
7996
 
7991
- #: ../lib/puppet/ssl/ssl_provider.rb:221
7997
+ #: ../lib/puppet/ssl/ssl_provider.rb:241
7992
7998
  msgid "Invalid signature for CRL issued by '%{issuer}'"
7993
7999
  msgstr ""
7994
8000
 
7995
- #: ../lib/puppet/ssl/ssl_provider.rb:223
8001
+ #: ../lib/puppet/ssl/ssl_provider.rb:243
7996
8002
  msgid "The issuer '%{issuer}' of certificate '%{subject}' is missing"
7997
8003
  msgstr ""
7998
8004
 
7999
- #: ../lib/puppet/ssl/ssl_provider.rb:226
8005
+ #: ../lib/puppet/ssl/ssl_provider.rb:246
8000
8006
  msgid "The CRL issued by '%{issuer}' is missing"
8001
8007
  msgstr ""
8002
8008
 
8003
- #: ../lib/puppet/ssl/ssl_provider.rb:228
8009
+ #: ../lib/puppet/ssl/ssl_provider.rb:248
8004
8010
  msgid "Certificate '%{subject}' is revoked"
8005
8011
  msgstr ""
8006
8012
 
8007
- #: ../lib/puppet/ssl/ssl_provider.rb:232
8013
+ #: ../lib/puppet/ssl/ssl_provider.rb:252
8008
8014
  msgid "Certificate '%{subject}' failed verification (%{err}): %{err_utf8}"
8009
8015
  msgstr ""
8010
8016
 
@@ -8177,64 +8183,72 @@ msgstr ""
8177
8183
  msgid "PP syntax checker: \"%{message}\""
8178
8184
  msgstr ""
8179
8185
 
8180
- #: ../lib/puppet/transaction.rb:86
8186
+ #: ../lib/puppet/transaction.rb:90
8181
8187
  msgid "Some pre-run checks failed"
8182
8188
  msgstr ""
8183
8189
 
8184
- #: ../lib/puppet/transaction.rb:102
8190
+ #: ../lib/puppet/transaction.rb:106
8185
8191
  msgid "Applying configuration version '%{version}'"
8186
8192
  msgstr ""
8187
8193
 
8188
- #: ../lib/puppet/transaction.rb:125
8194
+ #: ../lib/puppet/transaction.rb:129
8189
8195
  msgid "Provider %{name} is not functional on this host"
8190
8196
  msgstr ""
8191
8197
 
8192
- #: ../lib/puppet/transaction.rb:141
8198
+ #: ../lib/puppet/transaction.rb:145
8193
8199
  msgid "Could not find a suitable provider for %{type}"
8194
8200
  msgstr ""
8195
8201
 
8196
- #: ../lib/puppet/transaction.rb:148
8202
+ #: ../lib/puppet/transaction.rb:152
8197
8203
  msgid "post_resource_eval failed for provider %{provider}"
8198
8204
  msgstr ""
8199
8205
 
8200
- #: ../lib/puppet/transaction.rb:165
8206
+ #: ../lib/puppet/transaction.rb:169
8201
8207
  msgid "resource is part of a dependency cycle"
8202
8208
  msgstr ""
8203
8209
 
8204
- #: ../lib/puppet/transaction.rb:167
8210
+ #: ../lib/puppet/transaction.rb:171
8205
8211
  msgid "One or more resource dependency cycles detected in graph"
8206
8212
  msgstr ""
8207
8213
 
8208
- #: ../lib/puppet/transaction.rb:182
8214
+ #: ../lib/puppet/transaction.rb:186
8209
8215
  msgid "Somehow left a component in the relationship graph"
8210
8216
  msgstr ""
8211
8217
 
8212
- #: ../lib/puppet/transaction.rb:185
8218
+ #: ../lib/puppet/transaction.rb:189
8213
8219
  msgid "Starting to evaluate the resource (%{progress} of %{total})"
8214
8220
  msgstr ""
8215
8221
 
8216
- #: ../lib/puppet/transaction.rb:188
8222
+ #: ../lib/puppet/transaction.rb:192
8217
8223
  msgid "Evaluated in %{seconds} seconds"
8218
8224
  msgstr ""
8219
8225
 
8220
- #: ../lib/puppet/transaction.rb:301
8226
+ #: ../lib/puppet/transaction.rb:308
8227
+ msgid "Class dependency %{dep} has failures: %{status}"
8228
+ msgstr ""
8229
+
8230
+ #: ../lib/puppet/transaction.rb:314
8221
8231
  msgid "Dependency %{dep} has failures: %{status}"
8222
8232
  msgstr ""
8223
8233
 
8224
- #: ../lib/puppet/transaction.rb:322
8234
+ #: ../lib/puppet/transaction.rb:336
8225
8235
  msgid "Prefetch failed for %{type_name} provider '%{name}'"
8226
8236
  msgstr ""
8227
8237
 
8228
8238
  #. TRANSLATORS `prefetch` is a function name and should not be translated
8229
- #: ../lib/puppet/transaction.rb:367 ../lib/puppet/transaction.rb:370
8239
+ #: ../lib/puppet/transaction.rb:381 ../lib/puppet/transaction.rb:384
8230
8240
  msgid "Could not prefetch %{type_name} provider '%{name}': %{detail}"
8231
8241
  msgstr ""
8232
8242
 
8233
- #: ../lib/puppet/transaction.rb:403
8243
+ #: ../lib/puppet/transaction.rb:421
8244
+ msgid "Skipping resources in class because of failed class dependencies"
8245
+ msgstr ""
8246
+
8247
+ #: ../lib/puppet/transaction.rb:425
8234
8248
  msgid "Skipping because of failed dependencies"
8235
8249
  msgstr ""
8236
8250
 
8237
- #: ../lib/puppet/transaction.rb:408
8251
+ #: ../lib/puppet/transaction.rb:430
8238
8252
  msgid "Skipping because provider prefetch failed"
8239
8253
  msgstr ""
8240
8254
 
@@ -8804,31 +8818,31 @@ msgstr ""
8804
8818
  msgid "Profile names must be provided as an array, not a comma-separated list"
8805
8819
  msgstr ""
8806
8820
 
8807
- #: ../lib/puppet/type/user.rb:702
8821
+ #: ../lib/puppet/type/user.rb:703
8808
8822
  msgid "Ssh_authorized_key type is not available. Cannot purge SSH keys."
8809
8823
  msgstr ""
8810
8824
 
8811
- #: ../lib/puppet/type/user.rb:740
8825
+ #: ../lib/puppet/type/user.rb:741
8812
8826
  msgid "Each entry for purge_ssh_keys must be a string, not a %{klass}"
8813
8827
  msgstr ""
8814
8828
 
8815
- #: ../lib/puppet/type/user.rb:743
8829
+ #: ../lib/puppet/type/user.rb:744
8816
8830
  msgid "Paths to keyfiles must be absolute, not %{entry}"
8817
8831
  msgstr ""
8818
8832
 
8819
- #: ../lib/puppet/type/user.rb:747
8833
+ #: ../lib/puppet/type/user.rb:748
8820
8834
  msgid "purge_ssh_keys must be true, false, or an array of file names, not %{value}"
8821
8835
  msgstr ""
8822
8836
 
8823
- #: ../lib/puppet/type/user.rb:759
8837
+ #: ../lib/puppet/type/user.rb:760
8824
8838
  msgid "purge_ssh_keys can only be true for users with a defined home directory"
8825
8839
  msgstr ""
8826
8840
 
8827
- #: ../lib/puppet/type/user.rb:766
8841
+ #: ../lib/puppet/type/user.rb:767
8828
8842
  msgid "purge_ssh_keys value '%{value}' meta character ~ or %{home_placeholder} only allowed for users with a defined home directory"
8829
8843
  msgstr ""
8830
8844
 
8831
- #: ../lib/puppet/type/user.rb:781
8845
+ #: ../lib/puppet/type/user.rb:782
8832
8846
  msgid "Class name must be provided."
8833
8847
  msgstr ""
8834
8848
 
@@ -9695,55 +9709,55 @@ msgstr ""
9695
9709
  msgid "Invalid tag '%{name}'"
9696
9710
  msgstr ""
9697
9711
 
9698
- #: ../lib/puppet/util/windows/adsi.rb:19
9712
+ #: ../lib/puppet/util/windows/adsi.rb:36
9699
9713
  msgid "ADSI connection error: %{e}"
9700
9714
  msgstr ""
9701
9715
 
9702
- #: ../lib/puppet/util/windows/adsi.rb:42
9716
+ #: ../lib/puppet/util/windows/adsi.rb:59
9703
9717
  msgid "Failed to get computer name"
9704
9718
  msgstr ""
9705
9719
 
9706
- #: ../lib/puppet/util/windows/adsi.rb:80
9720
+ #: ../lib/puppet/util/windows/adsi.rb:97
9707
9721
  msgid "Must use a valid SID::Principal"
9708
9722
  msgstr ""
9709
9723
 
9710
- #: ../lib/puppet/util/windows/adsi.rb:137
9724
+ #: ../lib/puppet/util/windows/adsi.rb:162
9711
9725
  msgid "Value must be in DOMAIN\\%{object_class} style syntax"
9712
9726
  msgstr ""
9713
9727
 
9714
- #: ../lib/puppet/util/windows/adsi.rb:163
9728
+ #: ../lib/puppet/util/windows/adsi.rb:188
9715
9729
  msgid "Could not resolve name: %{name}"
9716
9730
  msgstr ""
9717
9731
 
9718
- #: ../lib/puppet/util/windows/adsi.rb:200
9732
+ #: ../lib/puppet/util/windows/adsi.rb:229
9719
9733
  msgid "Subclass must implement class-level method 'list_all'!"
9720
9734
  msgstr ""
9721
9735
 
9722
- #: ../lib/puppet/util/windows/adsi.rb:253
9736
+ #: ../lib/puppet/util/windows/adsi.rb:282
9723
9737
  msgid "Puppet is not able to create/delete domain %{object_class} objects with the %{object_class} resource."
9724
9738
  msgstr ""
9725
9739
 
9726
- #: ../lib/puppet/util/windows/adsi.rb:257
9740
+ #: ../lib/puppet/util/windows/adsi.rb:286
9727
9741
  msgid "%{object_class} update failed: %{error}"
9728
9742
  msgstr ""
9729
9743
 
9730
- #: ../lib/puppet/util/windows/adsi.rb:283
9744
+ #: ../lib/puppet/util/windows/adsi.rb:312
9731
9745
  msgid "Cannot create user if group '%{name}' exists."
9732
9746
  msgstr ""
9733
9747
 
9734
- #: ../lib/puppet/util/windows/adsi.rb:423
9748
+ #: ../lib/puppet/util/windows/adsi.rb:452
9735
9749
  msgid "Unrecognized ADS UserFlags: %{unrecognized_flags}"
9736
9750
  msgstr ""
9737
9751
 
9738
- #: ../lib/puppet/util/windows/adsi.rb:467
9752
+ #: ../lib/puppet/util/windows/adsi.rb:496
9739
9753
  msgid "Failed to get user name"
9740
9754
  msgstr ""
9741
9755
 
9742
- #: ../lib/puppet/util/windows/adsi.rb:504
9756
+ #: ../lib/puppet/util/windows/adsi.rb:533
9743
9757
  msgid "Cannot delete user profile for '%{sid}' prior to Vista SP1"
9744
9758
  msgstr ""
9745
9759
 
9746
- #: ../lib/puppet/util/windows/adsi.rb:522
9760
+ #: ../lib/puppet/util/windows/adsi.rb:551
9747
9761
  msgid "Cannot create group if user '%{name}' exists."
9748
9762
  msgstr ""
9749
9763
 
@@ -10125,72 +10139,72 @@ msgstr ""
10125
10139
  msgid "Puppet::Util::Yaml.load_file is deprecated. Use safe_load_file instead."
10126
10140
  msgstr ""
10127
10141
 
10128
- #: ../lib/puppet/x509/cert_provider.rb:35
10142
+ #: ../lib/puppet/x509/cert_provider.rb:39
10129
10143
  msgid "Failed to save CA certificates to '%{capath}'"
10130
10144
  msgstr ""
10131
10145
 
10132
- #: ../lib/puppet/x509/cert_provider.rb:48
10146
+ #: ../lib/puppet/x509/cert_provider.rb:52
10133
10147
  msgid "The CA certificates are missing from '%{path}'"
10134
10148
  msgstr ""
10135
10149
 
10136
- #: ../lib/puppet/x509/cert_provider.rb:52
10150
+ #: ../lib/puppet/x509/cert_provider.rb:56
10137
10151
  msgid "Failed to load CA certificates from '%{capath}'"
10138
10152
  msgstr ""
10139
10153
 
10140
10154
  #. TRANSLATORS 'PEM' is an acronym and shouldn't be translated
10141
- #: ../lib/puppet/x509/cert_provider.rb:63
10155
+ #: ../lib/puppet/x509/cert_provider.rb:67
10142
10156
  msgid "Failed to parse CA certificates as PEM"
10143
10157
  msgstr ""
10144
10158
 
10145
- #: ../lib/puppet/x509/cert_provider.rb:78
10159
+ #: ../lib/puppet/x509/cert_provider.rb:82
10146
10160
  msgid "Failed to save CRLs to '%{crlpath}'"
10147
10161
  msgstr ""
10148
10162
 
10149
- #: ../lib/puppet/x509/cert_provider.rb:91
10163
+ #: ../lib/puppet/x509/cert_provider.rb:95
10150
10164
  msgid "The CRL is missing from '%{path}'"
10151
10165
  msgstr ""
10152
10166
 
10153
- #: ../lib/puppet/x509/cert_provider.rb:95
10167
+ #: ../lib/puppet/x509/cert_provider.rb:99
10154
10168
  msgid "Failed to load CRLs from '%{crlpath}'"
10155
10169
  msgstr ""
10156
10170
 
10157
10171
  #. TRANSLATORS 'PEM' is an acronym and shouldn't be translated
10158
- #: ../lib/puppet/x509/cert_provider.rb:106
10172
+ #: ../lib/puppet/x509/cert_provider.rb:110
10159
10173
  msgid "Failed to parse CRLs as PEM"
10160
10174
  msgstr ""
10161
10175
 
10162
- #: ../lib/puppet/x509/cert_provider.rb:152
10176
+ #: ../lib/puppet/x509/cert_provider.rb:156
10163
10177
  msgid "Failed to save private key for '%{name}'"
10164
10178
  msgstr ""
10165
10179
 
10166
- #: ../lib/puppet/x509/cert_provider.rb:171
10180
+ #: ../lib/puppet/x509/cert_provider.rb:175
10167
10181
  msgid "The private key is missing from '%{path}'"
10168
10182
  msgstr ""
10169
10183
 
10170
- #: ../lib/puppet/x509/cert_provider.rb:175
10184
+ #: ../lib/puppet/x509/cert_provider.rb:179
10171
10185
  msgid "Failed to load private key for '%{name}'"
10172
10186
  msgstr ""
10173
10187
 
10174
- #: ../lib/puppet/x509/cert_provider.rb:231
10188
+ #: ../lib/puppet/x509/cert_provider.rb:235
10175
10189
  msgid "Failed to save client certificate for '%{name}'"
10176
10190
  msgstr ""
10177
10191
 
10178
- #: ../lib/puppet/x509/cert_provider.rb:246
10192
+ #: ../lib/puppet/x509/cert_provider.rb:250
10179
10193
  msgid "The client certificate is missing from '%{path}'"
10180
10194
  msgstr ""
10181
10195
 
10182
- #: ../lib/puppet/x509/cert_provider.rb:250
10196
+ #: ../lib/puppet/x509/cert_provider.rb:254
10183
10197
  msgid "Failed to load client certificate for '%{name}'"
10184
10198
  msgstr ""
10185
10199
 
10186
- #: ../lib/puppet/x509/cert_provider.rb:296
10200
+ #: ../lib/puppet/x509/cert_provider.rb:300
10187
10201
  msgid "Failed to save certificate request for '%{name}'"
10188
10202
  msgstr ""
10189
10203
 
10190
- #: ../lib/puppet/x509/cert_provider.rb:311
10204
+ #: ../lib/puppet/x509/cert_provider.rb:315
10191
10205
  msgid "Failed to load certificate request for '%{name}'"
10192
10206
  msgstr ""
10193
10207
 
10194
- #: ../lib/puppet/x509/cert_provider.rb:322
10208
+ #: ../lib/puppet/x509/cert_provider.rb:326
10195
10209
  msgid "Failed to delete certificate request for '%{name}'"
10196
10210
  msgstr ""