puppet 6.23.0 → 6.24.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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +5 -5
  3. data/Gemfile.lock +8 -8
  4. data/README.md +4 -4
  5. data/ext/project_data.yaml +1 -0
  6. data/lib/puppet.rb +3 -3
  7. data/lib/puppet/application/filebucket.rb +1 -0
  8. data/lib/puppet/application/resource.rb +15 -2
  9. data/lib/puppet/application/ssl.rb +1 -0
  10. data/lib/puppet/environments.rb +10 -0
  11. data/lib/puppet/face/help/action.erb +1 -0
  12. data/lib/puppet/face/help/face.erb +1 -0
  13. data/lib/puppet/face/node/clean.rb +11 -0
  14. data/lib/puppet/file_system/file_impl.rb +1 -1
  15. data/lib/puppet/file_system/windows.rb +2 -2
  16. data/lib/puppet/forge.rb +3 -3
  17. data/lib/puppet/functions/empty.rb +8 -0
  18. data/lib/puppet/functions/strftime.rb +1 -0
  19. data/lib/puppet/functions/unwrap.rb +17 -2
  20. data/lib/puppet/indirector/resource/ral.rb +6 -1
  21. data/lib/puppet/interface/documentation.rb +1 -0
  22. data/lib/puppet/module_tool/applications/installer.rb +4 -0
  23. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  24. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  25. data/lib/puppet/provider/exec/posix.rb +16 -4
  26. data/lib/puppet/provider/package/pip.rb +15 -3
  27. data/lib/puppet/provider/parsedfile.rb +3 -0
  28. data/lib/puppet/settings.rb +30 -7
  29. data/lib/puppet/type/exec.rb +16 -3
  30. data/lib/puppet/type/file/mode.rb +6 -0
  31. data/lib/puppet/type/tidy.rb +1 -1
  32. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  33. data/lib/puppet/util/windows/sid.rb +3 -1
  34. data/lib/puppet/version.rb +1 -1
  35. data/locales/puppet.pot +154 -134
  36. data/man/man5/puppet.conf.5 +2 -2
  37. data/man/man8/puppet-agent.8 +1 -1
  38. data/man/man8/puppet-apply.8 +1 -1
  39. data/man/man8/puppet-catalog.8 +9 -9
  40. data/man/man8/puppet-config.8 +1 -1
  41. data/man/man8/puppet-describe.8 +1 -1
  42. data/man/man8/puppet-device.8 +1 -1
  43. data/man/man8/puppet-doc.8 +1 -1
  44. data/man/man8/puppet-epp.8 +1 -1
  45. data/man/man8/puppet-facts.8 +8 -8
  46. data/man/man8/puppet-filebucket.8 +1 -1
  47. data/man/man8/puppet-generate.8 +1 -1
  48. data/man/man8/puppet-help.8 +1 -1
  49. data/man/man8/puppet-key.8 +7 -7
  50. data/man/man8/puppet-lookup.8 +1 -1
  51. data/man/man8/puppet-man.8 +1 -1
  52. data/man/man8/puppet-module.8 +1 -1
  53. data/man/man8/puppet-node.8 +5 -5
  54. data/man/man8/puppet-parser.8 +1 -1
  55. data/man/man8/puppet-plugin.8 +1 -1
  56. data/man/man8/puppet-report.8 +5 -5
  57. data/man/man8/puppet-resource.8 +1 -1
  58. data/man/man8/puppet-script.8 +1 -1
  59. data/man/man8/puppet-ssl.8 +1 -1
  60. data/man/man8/puppet-status.8 +4 -4
  61. data/man/man8/puppet.8 +2 -2
  62. data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
  63. data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
  64. data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
  65. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
  66. data/spec/fixtures/ssl/ca.pem +52 -52
  67. data/spec/fixtures/ssl/crl.pem +25 -25
  68. data/spec/fixtures/ssl/ec-key.pem +11 -11
  69. data/spec/fixtures/ssl/ec.pem +32 -32
  70. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  71. data/spec/fixtures/ssl/encrypted-key.pem +107 -107
  72. data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
  73. data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
  74. data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
  75. data/spec/fixtures/ssl/intermediate.pem +51 -51
  76. data/spec/fixtures/ssl/oid-key.pem +117 -0
  77. data/spec/fixtures/ssl/oid.pem +69 -0
  78. data/spec/fixtures/ssl/pluto-key.pem +106 -106
  79. data/spec/fixtures/ssl/pluto.pem +50 -50
  80. data/spec/fixtures/ssl/request-key.pem +106 -106
  81. data/spec/fixtures/ssl/request.pem +45 -45
  82. data/spec/fixtures/ssl/revoked-key.pem +106 -106
  83. data/spec/fixtures/ssl/revoked.pem +49 -49
  84. data/spec/fixtures/ssl/signed-key.pem +106 -106
  85. data/spec/fixtures/ssl/signed.pem +47 -47
  86. data/spec/fixtures/ssl/tampered-cert.pem +49 -49
  87. data/spec/fixtures/ssl/tampered-csr.pem +45 -45
  88. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  89. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
  90. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
  91. data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
  92. data/spec/fixtures/ssl/unknown-ca.pem +52 -52
  93. data/spec/integration/application/filebucket_spec.rb +11 -0
  94. data/spec/integration/application/module_spec.rb +21 -0
  95. data/spec/integration/application/resource_spec.rb +35 -1
  96. data/spec/integration/application/ssl_spec.rb +20 -0
  97. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  98. data/spec/integration/indirector/facts/facter_spec.rb +90 -36
  99. data/spec/integration/type/exec_spec.rb +70 -45
  100. data/spec/lib/puppet/test_ca.rb +5 -0
  101. data/spec/lib/puppet_spec/settings.rb +1 -0
  102. data/spec/unit/environments_spec.rb +35 -0
  103. data/spec/unit/file_system_spec.rb +6 -0
  104. data/spec/unit/functions/assert_type_spec.rb +1 -1
  105. data/spec/unit/functions/empty_spec.rb +10 -0
  106. data/spec/unit/functions/unwrap_spec.rb +8 -0
  107. data/spec/unit/functions4_spec.rb +2 -2
  108. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  109. data/spec/unit/module_tool/applications/installer_spec.rb +12 -0
  110. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  111. data/spec/unit/provider/package/pip_spec.rb +37 -0
  112. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  113. data/spec/unit/settings_spec.rb +97 -56
  114. data/spec/unit/type/exec_spec.rb +76 -29
  115. data/spec/unit/type/file/source_spec.rb +4 -4
  116. data/spec/unit/type/tidy_spec.rb +7 -0
  117. data/spec/unit/util/windows/sid_spec.rb +39 -4
  118. data/tasks/generate_cert_fixtures.rake +10 -1
  119. metadata +12 -3
@@ -640,7 +640,7 @@ module Types
640
640
  result = ["#{label} expects (#{signature_string(sig)})"]
641
641
  result.concat(error_arrays[0].map { |e| " rejected:#{e.chop_path(0).format}" })
642
642
  else
643
- result = ["#{label} expects one of:"]
643
+ result = ["The function #{label} was called with arguments it does not accept. It expects one of:"]
644
644
  signatures.each_with_index do |sg, index|
645
645
  result << " (#{signature_string(sg)})"
646
646
  result.concat(error_arrays[index].map { |e| " rejected:#{e.chop_path(0).format}" })
@@ -6,10 +6,22 @@ Puppet::Type.type(:exec).provide :posix, :parent => Puppet::Provider::Exec do
6
6
  defaultfor :feature => :posix
7
7
 
8
8
  desc <<-EOT
9
- Executes external binaries directly, without passing through a shell or
10
- performing any interpolation. This is a safer and more predictable way
11
- to execute most commands, but prevents the use of globbing and shell
12
- built-ins (including control logic like "for" and "if" statements).
9
+ Executes external binaries by invoking Ruby's `Kernel.exec`.
10
+ When the command is a string, it will be executed directly,
11
+ without a shell, if it follows these rules:
12
+ - no meta characters
13
+ - no shell reserved word and no special built-in
14
+
15
+ When the command is an Array of Strings, passed as `[cmdname, arg1, ...]`
16
+ it will be executed directly(the first element is taken as a command name
17
+ and the rest are passed as parameters to command with no shell expansion)
18
+ This is a safer and more predictable way to execute most commands,
19
+ but prevents the use of globbing and shell built-ins (including control
20
+ logic like "for" and "if" statements).
21
+
22
+ If the use of globbing and shell built-ins is desired, please check
23
+ the `shell` provider
24
+
13
25
  EOT
14
26
 
15
27
  # Verify that we have the executable
@@ -127,7 +127,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
127
127
  if self.class.compare_pip_versions(command_version, '1.5.4') == -1
128
128
  available_versions_with_old_pip.last
129
129
  else
130
- available_versions_with_new_pip.last
130
+ available_versions_with_new_pip(command_version).last
131
131
  end
132
132
  end
133
133
 
@@ -150,15 +150,17 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
150
150
  if self.class.compare_pip_versions(command_version, '1.5.4') == -1
151
151
  available_versions_with_old_pip
152
152
  else
153
- available_versions_with_new_pip
153
+ available_versions_with_new_pip(command_version)
154
154
  end
155
155
  end
156
156
 
157
- def available_versions_with_new_pip
157
+ def available_versions_with_new_pip(command_version)
158
158
  command = resource_or_provider_command
159
159
  self.class.validate_command(command)
160
160
 
161
161
  command_and_options = [self.class.quote(command), 'install', "#{@resource[:name]}==versionplease"]
162
+ extra_arg = list_extra_flags(command_version)
163
+ command_and_options << extra_arg if extra_arg
162
164
  command_and_options << install_options if @resource[:install_options]
163
165
  execpipe command_and_options do |process|
164
166
  process.collect do |line|
@@ -329,4 +331,14 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
329
331
  path
330
332
  end
331
333
  end
334
+
335
+ private
336
+
337
+ def list_extra_flags(command_version)
338
+ klass = self.class
339
+ if klass.compare_pip_versions(command_version, '20.2.4') == 1 &&
340
+ klass.compare_pip_versions(command_version, '21.1') == -1
341
+ '--use-deprecated=legacy-resolver'
342
+ end
343
+ end
332
344
  end
@@ -280,6 +280,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
280
280
  def self.prefetch_target(target)
281
281
  begin
282
282
  target_records = retrieve(target)
283
+ unless target_records
284
+ raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: self.name }
285
+ end
283
286
  rescue Puppet::Util::FileType::FileReadError => detail
284
287
  if @raise_prefetch_errors
285
288
  # We will raise an error later in flush_target. This way,
@@ -862,7 +862,11 @@ class Puppet::Settings
862
862
  if self[:user]
863
863
  user = Puppet::Type.type(:user).new :name => self[:user], :audit => :ensure
864
864
 
865
- @service_user_available = user.exists?
865
+ if user.suitable?
866
+ @service_user_available = user.exists?
867
+ else
868
+ raise Puppet::Error, (_("Cannot manage owner permissions, because the provider for '%{name}' is not functional") % { name: user })
869
+ end
866
870
  else
867
871
  @service_user_available = false
868
872
  end
@@ -874,7 +878,11 @@ class Puppet::Settings
874
878
  if self[:group]
875
879
  group = Puppet::Type.type(:group).new :name => self[:group], :audit => :ensure
876
880
 
877
- @service_group_available = group.exists?
881
+ if group.suitable?
882
+ @service_group_available = group.exists?
883
+ else
884
+ raise Puppet::Error, (_("Cannot manage group permissions, because the provider for '%{name}' is not functional") % { name: group })
885
+ end
878
886
  else
879
887
  @service_group_available = false
880
888
  end
@@ -883,9 +891,16 @@ class Puppet::Settings
883
891
  # Allow later inspection to determine if the setting was set on the
884
892
  # command line, or through some other code path. Used for the
885
893
  # `dns_alt_names` option during cert generate. --daniel 2011-10-18
886
- def set_by_cli?(param)
894
+ #
895
+ # @param param [String, Symbol] the setting to look up
896
+ # @return [Object, nil] the value of the setting or nil if unset
897
+ def set_by_cli(param)
887
898
  param = param.to_sym
888
- !@value_sets[:cli].lookup(param).nil?
899
+ @value_sets[:cli].lookup(param)
900
+ end
901
+
902
+ def set_by_cli?(param)
903
+ !!set_by_cli(param)
889
904
  end
890
905
 
891
906
  # Get values from a search path entry.
@@ -918,9 +933,13 @@ class Puppet::Settings
918
933
  end
919
934
  end
920
935
 
921
- # Allow later inspection to determine if the setting was set by user
922
- # config, rather than a default setting.
923
- def set_in_section?(param, section)
936
+ # Allow later inspection to determine if the setting was set in a specific
937
+ # section
938
+ #
939
+ # @param param [String, Symbol] the setting to look up
940
+ # @param section [Symbol] the section in which to look up the setting
941
+ # @return [Object, nil] the value of the setting or nil if unset
942
+ def set_in_section(param, section)
924
943
  param = param.to_sym
925
944
  vals = searchpath_values(SearchPathElement.new(section, :section))
926
945
  if vals
@@ -928,6 +947,10 @@ class Puppet::Settings
928
947
  end
929
948
  end
930
949
 
950
+ def set_in_section?(param, section)
951
+ !!set_in_section(param, section)
952
+ end
953
+
931
954
  # Patches the value for a param in a section.
932
955
  # This method is required to support the use case of unifying --dns-alt-names and
933
956
  # --dns_alt_names in the certificate face. Ideally this should be cleaned up.
@@ -201,7 +201,9 @@ module Puppet
201
201
  only uses the resource title to ensure `exec`s are unique."
202
202
 
203
203
  validate do |command|
204
- raise ArgumentError, _("Command must be a String, got value of class %{klass}") % { klass: command.class } unless command.is_a? String
204
+ unless command.is_a?(String) || command.is_a?(Array)
205
+ raise ArgumentError, _("Command must be a String or Array<String>, got value of class %{klass}") % { klass: command.class }
206
+ end
205
207
  end
206
208
  end
207
209
 
@@ -458,6 +460,10 @@ module Puppet
458
460
 
459
461
  unless => ['test -f /tmp/file1', 'test -f /tmp/file2'],
460
462
 
463
+ or an array of arrays. For example:
464
+
465
+ unless => [['test', '-f', '/tmp/file1'], 'test -f /tmp/file2']
466
+
461
467
  This `exec` would only run if every command in the array has a
462
468
  non-zero exit code.
463
469
  EOT
@@ -514,6 +520,10 @@ module Puppet
514
520
 
515
521
  onlyif => ['test -f /tmp/file1', 'test -f /tmp/file2'],
516
522
 
523
+ or an array of arrays. For example:
524
+
525
+ onlyif => [['test', '-f', '/tmp/file1'], 'test -f /tmp/file2']
526
+
517
527
  This `exec` would only run if every command in the array has an
518
528
  exit code of 0 (success).
519
529
  EOT
@@ -562,12 +572,14 @@ module Puppet
562
572
  reqs << self[:cwd] if self[:cwd]
563
573
 
564
574
  file_regex = Puppet::Util::Platform.windows? ? %r{^([a-zA-Z]:[\\/]\S+)} : %r{^(/\S+)}
575
+ cmd = self[:command]
576
+ cmd = cmd[0] if cmd.is_a? Array
565
577
 
566
- self[:command].scan(file_regex) { |str|
578
+ cmd.scan(file_regex) { |str|
567
579
  reqs << str
568
580
  }
569
581
 
570
- self[:command].scan(/^"([^"]+)"/) { |str|
582
+ cmd.scan(/^"([^"]+)"/) { |str|
571
583
  reqs << str
572
584
  }
573
585
 
@@ -583,6 +595,7 @@ module Puppet
583
595
  # fully qualified. It might not be a bad idea to add
584
596
  # unqualified files, but, well, that's a bit more annoying
585
597
  # to do.
598
+ line = line[0] if line.is_a? Array
586
599
  reqs += line.scan(file_regex)
587
600
  end
588
601
  }
@@ -90,9 +90,15 @@ module Puppet
90
90
  raise Puppet::Error, "The file mode specification is invalid: #{value.inspect}"
91
91
  end
92
92
 
93
+ # normalizes to symbolic form, e.g. u+a, an octal string without leading 0
93
94
  normalize_symbolic_mode(value)
94
95
  end
95
96
 
97
+ unmunge do |value|
98
+ # return symbolic form or octal string *with* leading 0's
99
+ display_mode(value) if value
100
+ end
101
+
96
102
  def desired_mode_from_current(desired, current)
97
103
  current = current.to_i(8) if current.is_a? String
98
104
  is_a_directory = @resource.stat && @resource.stat.directory?
@@ -144,7 +144,7 @@ Puppet::Type.newtype(:tidy) do
144
144
 
145
145
  def tidy?(path, stat)
146
146
  # If the file's older than we allow, we should get rid of it.
147
- (Time.now.to_i - stat.send(resource[:type]).to_i) > value
147
+ (Time.now.to_i - stat.send(resource[:type]).to_i) >= value
148
148
  end
149
149
 
150
150
  munge do |age|
@@ -19,25 +19,37 @@ module SymbolicFileMode
19
19
  return false
20
20
  end
21
21
 
22
+ def display_mode(value)
23
+ if value =~ /^0?[0-7]{1,4}$/
24
+ value.rjust(4, "0")
25
+ else
26
+ value
27
+ end
28
+ end
29
+
22
30
  def normalize_symbolic_mode(value)
23
31
  return nil if value.nil?
24
32
 
25
33
  # We need to treat integers as octal numbers.
26
- if value.is_a? Numeric then
27
- return value.to_s(8)
28
- elsif value =~ /^0?[0-7]{1,4}$/ then
29
- return value.to_i(8).to_s(8)
34
+ #
35
+ # "A numeric mode is from one to four octal digits (0-7), derived by adding
36
+ # up the bits with values 4, 2, and 1. Omitted digits are assumed to be
37
+ # leading zeros."
38
+ if value.is_a? Numeric
39
+ value.to_s(8)
40
+ elsif value =~ /^0?[0-7]{1,4}$/
41
+ value.to_i(8).to_s(8) # strip leading 0's
30
42
  else
31
- return value
43
+ value
32
44
  end
33
45
  end
34
46
 
35
47
  def symbolic_mode_to_int(modification, to_mode = 0, is_a_directory = false)
36
- if modification.nil? or modification == '' then
48
+ if modification.nil? or modification == ''
37
49
  raise Puppet::Error, _("An empty mode string is illegal")
38
- end
39
- if modification =~ /^[0-7]+$/ then return modification.to_i(8) end
40
- if modification =~ /^\d+$/ then
50
+ elsif modification =~ /^[0-7]+$/
51
+ return modification.to_i(8)
52
+ elsif modification =~ /^\d+$/
41
53
  raise Puppet::Error, _("Numeric modes must be in octal, not decimal!")
42
54
  end
43
55
 
@@ -84,31 +96,31 @@ module SymbolicFileMode
84
96
 
85
97
  dsl.split('').each do |op|
86
98
  case op
87
- when /[-+=]/ then
99
+ when /[-+=]/
88
100
  action = op
89
101
  # Clear all bits, if this is assignment
90
102
  value = 0 if op == '='
91
103
 
92
- when /[ugo]/ then
104
+ when /[ugo]/
93
105
  value = actions[action].call(value, snapshot_mode[op])
94
106
 
95
- when /[rwx]/ then
107
+ when /[rwx]/
96
108
  value = actions[action].call(value, SymbolicMode[op])
97
109
 
98
- when 'X' then
110
+ when 'X'
99
111
  # Only meaningful in combination with "set" actions.
100
- if action != '+' then
112
+ if action != '+'
101
113
  raise Puppet::Error, _("X only works with the '+' operator")
102
114
  end
103
115
 
104
116
  # As per the BSD manual page, set if this is a directory, or if
105
117
  # any execute bit is set on the original (unmodified) mode.
106
118
  # Ignored otherwise; it is "add if", not "add or clear".
107
- if is_a_directory or original_mode['any x?'] then
119
+ if is_a_directory or original_mode['any x?']
108
120
  value = actions[action].call(value, ExecBit)
109
121
  end
110
122
 
111
- when /[st]/ then
123
+ when /[st]/
112
124
  bit = SymbolicSpecialToBit[op][who] or fail _("internal error")
113
125
  final_mode['s'] = actions[action].call(final_mode['s'], bit)
114
126
 
@@ -122,7 +134,7 @@ module SymbolicFileMode
122
134
  end
123
135
 
124
136
  rescue Puppet::Error => e
125
- if part.inspect != modification.inspect then
137
+ if part.inspect != modification.inspect
126
138
  rest = " at #{part.inspect}"
127
139
  else
128
140
  rest = ''
@@ -75,7 +75,9 @@ module Puppet::Util::Windows
75
75
  raw_sid_bytes = sid_ptr.read_array_of_uchar(get_length_sid(sid_ptr))
76
76
  end
77
77
  rescue => e
78
- Puppet.debug("Could not retrieve raw SID bytes from '#{name}': #{e.message}")
78
+ # Avoid debug logs pollution with valid account names
79
+ # https://docs.microsoft.com/en-us/windows/win32/api/sddl/nf-sddl-convertstringsidtosidw#return-value
80
+ Puppet.debug("Could not retrieve raw SID bytes from '#{name}': #{e.message}") unless e.code == ERROR_INVALID_SID_STRUCTURE
79
81
  end
80
82
 
81
83
  raw_sid_bytes ? Principal.lookup_account_sid(raw_sid_bytes) : Principal.lookup_account_name(name)
@@ -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.23.0'
9
+ PUPPETVERSION = '6.24.0'
10
10
 
11
11
  ##
12
12
  # version is a public API method intended to always provide a fast and
data/locales/puppet.pot CHANGED
@@ -6,11 +6,11 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: Puppet automation framework 6.22.1-63-ga15932f0d4\n"
9
+ "Project-Id-Version: Puppet automation framework 6.23.0-71-gd3d8d38898\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2021-05-25 15:33+0000\n"
13
- "PO-Revision-Date: 2021-05-25 15:33+0000\n"
12
+ "POT-Creation-Date: 2021-07-06 11:17+0000\n"
13
+ "PO-Revision-Date: 2021-07-06 11:17+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -286,11 +286,11 @@ msgstr ""
286
286
  msgid "starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}"
287
287
  msgstr ""
288
288
 
289
- #: ../lib/puppet/application/device.rb:394 ../lib/puppet/application/resource.rb:197
289
+ #: ../lib/puppet/application/device.rb:394 ../lib/puppet/application/resource.rb:201
290
290
  msgid "You must specify the type to display"
291
291
  msgstr ""
292
292
 
293
- #: ../lib/puppet/application/device.rb:395 ../lib/puppet/application/resource.rb:198
293
+ #: ../lib/puppet/application/device.rb:395 ../lib/puppet/application/resource.rb:202
294
294
  msgid "Could not find type %{type}"
295
295
  msgstr ""
296
296
 
@@ -352,31 +352,31 @@ msgstr ""
352
352
  msgid "Try 'puppet help %{face} %{action}' for usage"
353
353
  msgstr ""
354
354
 
355
- #: ../lib/puppet/application/filebucket.rb:16
355
+ #: ../lib/puppet/application/filebucket.rb:17
356
356
  msgid "Store and retrieve files in a filebucket"
357
357
  msgstr ""
358
358
 
359
- #: ../lib/puppet/application/filebucket.rb:221
359
+ #: ../lib/puppet/application/filebucket.rb:222
360
360
  msgid "You must specify a file to back up"
361
361
  msgstr ""
362
362
 
363
- #: ../lib/puppet/application/filebucket.rb:225
363
+ #: ../lib/puppet/application/filebucket.rb:226
364
364
  msgid "%{file}: no such file"
365
365
  msgstr ""
366
366
 
367
- #: ../lib/puppet/application/filebucket.rb:229
367
+ #: ../lib/puppet/application/filebucket.rb:230
368
368
  msgid "%{file}: cannot read file"
369
369
  msgstr ""
370
370
 
371
- #: ../lib/puppet/application/filebucket.rb:251 ../lib/puppet/application/filebucket.rb:274
371
+ #: ../lib/puppet/application/filebucket.rb:252 ../lib/puppet/application/filebucket.rb:275
372
372
  msgid "Need exactly two arguments: filebucket diff <file_a> <file_b>"
373
373
  msgstr ""
374
374
 
375
- #: ../lib/puppet/application/filebucket.rb:271
375
+ #: ../lib/puppet/application/filebucket.rb:272
376
376
  msgid "Comparing %{checksum_a} %{checksum_b} %{file_a} %{file_b}"
377
377
  msgstr ""
378
378
 
379
- #: ../lib/puppet/application/filebucket.rb:285
379
+ #: ../lib/puppet/application/filebucket.rb:286
380
380
  msgid "Cancelling"
381
381
  msgstr ""
382
382
 
@@ -418,19 +418,19 @@ msgstr ""
418
418
  msgid "Incorrect formatted data in %{fact_file} given via the --facts flag"
419
419
  msgstr ""
420
420
 
421
- #: ../lib/puppet/application/resource.rb:32
421
+ #: ../lib/puppet/application/resource.rb:34
422
422
  msgid "The resource abstraction layer shell"
423
423
  msgstr ""
424
424
 
425
- #: ../lib/puppet/application/resource.rb:141
425
+ #: ../lib/puppet/application/resource.rb:145
426
426
  msgid "Editing with Yaml output is not supported"
427
427
  msgstr ""
428
428
 
429
- #: ../lib/puppet/application/resource.rb:205
429
+ #: ../lib/puppet/application/resource.rb:209
430
430
  msgid "Invalid parameter setting %{setting}"
431
431
  msgstr ""
432
432
 
433
- #: ../lib/puppet/application/resource.rb:227
433
+ #: ../lib/puppet/application/resource.rb:240
434
434
  msgid "Listing all file instances is not supported. Please specify a file or directory, e.g. puppet resource file /etc"
435
435
  msgstr ""
436
436
 
@@ -454,55 +454,55 @@ msgstr ""
454
454
  msgid "An action must be specified."
455
455
  msgstr ""
456
456
 
457
- #: ../lib/puppet/application/ssl.rb:129 ../lib/puppet/application/ssl.rb:136
457
+ #: ../lib/puppet/application/ssl.rb:130 ../lib/puppet/application/ssl.rb:137
458
458
  msgid "The certificate for '%{name}' has not yet been signed"
459
459
  msgstr ""
460
460
 
461
- #: ../lib/puppet/application/ssl.rb:147
461
+ #: ../lib/puppet/application/ssl.rb:148
462
462
  msgid "Completed SSL initialization"
463
463
  msgstr ""
464
464
 
465
- #: ../lib/puppet/application/ssl.rb:151
465
+ #: ../lib/puppet/application/ssl.rb:152
466
466
  msgid "Unknown action '%{action}'"
467
467
  msgstr ""
468
468
 
469
- #: ../lib/puppet/application/ssl.rb:165 ../lib/puppet/ssl/state_machine.rb:180
469
+ #: ../lib/puppet/application/ssl.rb:166 ../lib/puppet/ssl/state_machine.rb:180
470
470
  msgid "Creating a new EC SSL key for %{name} using curve %{curve}"
471
471
  msgstr ""
472
472
 
473
- #: ../lib/puppet/application/ssl.rb:168 ../lib/puppet/ssl/key.rb:26
473
+ #: ../lib/puppet/application/ssl.rb:169 ../lib/puppet/ssl/key.rb:26
474
474
  msgid "Creating a new SSL key for %{name}"
475
475
  msgstr ""
476
476
 
477
- #: ../lib/puppet/application/ssl.rb:178
477
+ #: ../lib/puppet/application/ssl.rb:179
478
478
  msgid "Submitted certificate request for '%{name}' to %{url}"
479
479
  msgstr ""
480
480
 
481
- #: ../lib/puppet/application/ssl.rb:181
481
+ #: ../lib/puppet/application/ssl.rb:182
482
482
  msgid "Could not submit certificate request for '%{name}' to %{url} due to a conflict on the server"
483
483
  msgstr ""
484
484
 
485
- #: ../lib/puppet/application/ssl.rb:183 ../lib/puppet/application/ssl.rb:186
485
+ #: ../lib/puppet/application/ssl.rb:184 ../lib/puppet/application/ssl.rb:187
486
486
  msgid "Failed to submit certificate request: %{message}"
487
487
  msgstr ""
488
488
 
489
- #: ../lib/puppet/application/ssl.rb:194
489
+ #: ../lib/puppet/application/ssl.rb:195
490
490
  msgid "Downloading certificate '%{name}' from %{url}"
491
491
  msgstr ""
492
492
 
493
- #: ../lib/puppet/application/ssl.rb:198
493
+ #: ../lib/puppet/application/ssl.rb:199
494
494
  msgid "Downloaded certificate '%{name}' with fingerprint %{fingerprint}"
495
495
  msgstr ""
496
496
 
497
- #: ../lib/puppet/application/ssl.rb:211 ../lib/puppet/application/ssl.rb:214
497
+ #: ../lib/puppet/application/ssl.rb:212 ../lib/puppet/application/ssl.rb:215
498
498
  msgid "Failed to download certificate: %{message}"
499
499
  msgstr ""
500
500
 
501
- #: ../lib/puppet/application/ssl.rb:243 ../lib/puppet/application/ssl.rb:246
501
+ #: ../lib/puppet/application/ssl.rb:244 ../lib/puppet/application/ssl.rb:247
502
502
  msgid "Failed to connect to the CA to determine if certificate %{certname} has been cleaned"
503
503
  msgstr ""
504
504
 
505
- #: ../lib/puppet/application/ssl.rb:250
505
+ #: ../lib/puppet/application/ssl.rb:251
506
506
  msgid ""
507
507
  "The certificate %{certname} must be cleaned from the CA first. To fix this,\n"
508
508
  "run the following commands on the CA:\n"
@@ -510,7 +510,7 @@ msgid ""
510
510
  " puppet ssl clean\n"
511
511
  msgstr ""
512
512
 
513
- #: ../lib/puppet/application/ssl.rb:273
513
+ #: ../lib/puppet/application/ssl.rb:274
514
514
  msgid "Removed %{label} %{path}"
515
515
  msgstr ""
516
516
 
@@ -2136,7 +2136,7 @@ msgstr ""
2136
2136
  msgid "The given data requires an Integer index at %{walked_path}, got '%{type}'"
2137
2137
  msgstr ""
2138
2138
 
2139
- #: ../lib/puppet/functions/empty.rb:74
2139
+ #: ../lib/puppet/functions/empty.rb:82
2140
2140
  msgid "Calling function empty() with %{arg_type} value is deprecated."
2141
2141
  msgstr ""
2142
2142
 
@@ -2226,7 +2226,7 @@ msgstr ""
2226
2226
  msgid "slice(): block must define one parameter, or the same number of parameters as the given size of the slice (%{slice_size}). Block has %{serving_size}; %{parameter_names}"
2227
2227
  msgstr ""
2228
2228
 
2229
- #: ../lib/puppet/functions/strftime.rb:207
2229
+ #: ../lib/puppet/functions/strftime.rb:208
2230
2230
  msgid "The argument signature (String format, [String timezone]) is deprecated for #strftime. See #strftime documentation and Timespan type for more info"
2231
2231
  msgstr ""
2232
2232
 
@@ -2897,7 +2897,7 @@ msgstr ""
2897
2897
  msgid "Could not understand URL %{key}: %{detail}"
2898
2898
  msgstr ""
2899
2899
 
2900
- #: ../lib/puppet/indirector/resource/ral.rb:59
2900
+ #: ../lib/puppet/indirector/resource/ral.rb:64
2901
2901
  msgid "Could not find type %{request_type}"
2902
2902
  msgstr ""
2903
2903
 
@@ -3115,43 +3115,43 @@ msgid "Face summary should be a single line; put the long text in 'description'
3115
3115
  msgstr ""
3116
3116
 
3117
3117
  #. TRANSLATORS 'author' is an attribute name and should not be translated
3118
- #: ../lib/puppet/interface/documentation.rb:205
3118
+ #: ../lib/puppet/interface/documentation.rb:206
3119
3119
  msgid "author must be a string; use multiple statements for multiple authors"
3120
3120
  msgstr ""
3121
3121
 
3122
3122
  #. TRANSLATORS 'author' is an attribute name and should not be translated
3123
- #: ../lib/puppet/interface/documentation.rb:210
3123
+ #: ../lib/puppet/interface/documentation.rb:211
3124
3124
  msgid "author should be a single line; use multiple statements for multiple authors"
3125
3125
  msgstr ""
3126
3126
 
3127
3127
  #. TRANSLATORS 'author' is an attribute name and should not be translated
3128
- #: ../lib/puppet/interface/documentation.rb:230
3128
+ #: ../lib/puppet/interface/documentation.rb:231
3129
3129
  msgid "author should be a single line; use multiple statements"
3130
3130
  msgstr ""
3131
3131
 
3132
3132
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3133
- #: ../lib/puppet/interface/documentation.rb:251
3133
+ #: ../lib/puppet/interface/documentation.rb:252
3134
3134
  msgid "copyright takes the owners names, then the years covered"
3135
3135
  msgstr ""
3136
3136
 
3137
3137
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3138
- #: ../lib/puppet/interface/documentation.rb:275
3138
+ #: ../lib/puppet/interface/documentation.rb:276
3139
3139
  msgid "copyright owner must be a string or an array of strings"
3140
3140
  msgstr ""
3141
3141
 
3142
3142
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3143
- #: ../lib/puppet/interface/documentation.rb:312
3143
+ #: ../lib/puppet/interface/documentation.rb:313
3144
3144
  msgid "copyright with a year %{value} is very strange; did you accidentally add or subtract two years?"
3145
3145
  msgstr ""
3146
3146
 
3147
3147
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3148
3148
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3149
- #: ../lib/puppet/interface/documentation.rb:328 ../lib/puppet/interface/documentation.rb:333
3149
+ #: ../lib/puppet/interface/documentation.rb:329 ../lib/puppet/interface/documentation.rb:334
3150
3150
  msgid "%{value} is not a good copyright year or range"
3151
3151
  msgstr ""
3152
3152
 
3153
3153
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3154
- #: ../lib/puppet/interface/documentation.rb:352
3154
+ #: ../lib/puppet/interface/documentation.rb:353
3155
3155
  msgid "%{value} is not a good copyright year, set, or range"
3156
3156
  msgstr ""
3157
3157
 
@@ -3412,19 +3412,19 @@ msgstr ""
3412
3412
  msgid "No file containing checksums found."
3413
3413
  msgstr ""
3414
3414
 
3415
- #: ../lib/puppet/module_tool/applications/installer.rb:84 ../lib/puppet/module_tool/applications/upgrader.rb:102
3415
+ #: ../lib/puppet/module_tool/applications/installer.rb:88 ../lib/puppet/module_tool/applications/upgrader.rb:102
3416
3416
  msgid "Downloading from %{host} ..."
3417
3417
  msgstr ""
3418
3418
 
3419
- #: ../lib/puppet/module_tool/applications/installer.rb:132 ../lib/puppet/module_tool/applications/upgrader.rb:140
3419
+ #: ../lib/puppet/module_tool/applications/installer.rb:136 ../lib/puppet/module_tool/applications/upgrader.rb:140
3420
3420
  msgid "Resolving dependencies ..."
3421
3421
  msgstr ""
3422
3422
 
3423
- #: ../lib/puppet/module_tool/applications/installer.rb:208
3423
+ #: ../lib/puppet/module_tool/applications/installer.rb:212
3424
3424
  msgid "Preparing to install ..."
3425
3425
  msgstr ""
3426
3426
 
3427
- #: ../lib/puppet/module_tool/applications/installer.rb:211
3427
+ #: ../lib/puppet/module_tool/applications/installer.rb:215
3428
3428
  msgid "Installing -- do not interrupt ..."
3429
3429
  msgstr ""
3430
3430
 
@@ -3547,7 +3547,7 @@ msgstr ""
3547
3547
  msgid "Could not %{action} '%{module_name}' (%{version}); no version satisfies all dependencies"
3548
3548
  msgstr ""
3549
3549
 
3550
- #: ../lib/puppet/module_tool/errors/shared.rb:17 ../lib/puppet/module_tool/errors/shared.rb:186 ../lib/puppet/module_tool/errors/upgrader.rb:58
3550
+ #: ../lib/puppet/module_tool/errors/shared.rb:17 ../lib/puppet/module_tool/errors/shared.rb:203 ../lib/puppet/module_tool/errors/upgrader.rb:58
3551
3551
  msgid "Could not %{action} module '%{module_name}' (%{version})"
3552
3552
  msgstr ""
3553
3553
 
@@ -3637,68 +3637,80 @@ msgid " No version of '%{module_name}' will satisfy dependencies"
3637
3637
  msgstr ""
3638
3638
 
3639
3639
  #: ../lib/puppet/module_tool/errors/shared.rb:135
3640
- msgid "Could not %{action} '%{module_name}'; module is not installed"
3640
+ msgid "Could not %{action} '%{module_name}', did you mean '%{suggestion}'?"
3641
3641
  msgstr ""
3642
3642
 
3643
- #: ../lib/puppet/module_tool/errors/shared.rb:140 ../lib/puppet/module_tool/errors/shared.rb:163 ../lib/puppet/module_tool/errors/shared.rb:204
3643
+ #: ../lib/puppet/module_tool/errors/shared.rb:140 ../lib/puppet/module_tool/errors/shared.rb:157 ../lib/puppet/module_tool/errors/shared.rb:180 ../lib/puppet/module_tool/errors/shared.rb:221
3644
3644
  msgid "Could not %{action} module '%{module_name}'"
3645
3645
  msgstr ""
3646
3646
 
3647
3647
  #: ../lib/puppet/module_tool/errors/shared.rb:141
3648
+ msgid " The name '%{module_name}' is invalid"
3649
+ msgstr ""
3650
+
3651
+ #: ../lib/puppet/module_tool/errors/shared.rb:142
3652
+ msgid " Did you mean `puppet module %{action} %{suggestion}`?"
3653
+ msgstr ""
3654
+
3655
+ #: ../lib/puppet/module_tool/errors/shared.rb:152
3656
+ msgid "Could not %{action} '%{module_name}'; module is not installed"
3657
+ msgstr ""
3658
+
3659
+ #: ../lib/puppet/module_tool/errors/shared.rb:158
3648
3660
  msgid " Module '%{module_name}' is not installed"
3649
3661
  msgstr ""
3650
3662
 
3651
3663
  #. TRANSLATORS `puppet module %{action} %{suggestion}` is a command line and should not be translated
3652
- #: ../lib/puppet/module_tool/errors/shared.rb:144
3664
+ #: ../lib/puppet/module_tool/errors/shared.rb:161
3653
3665
  msgid " You may have meant `puppet module %{action} %{suggestion}`"
3654
3666
  msgstr ""
3655
3667
 
3656
3668
  #. TRANSLATORS `puppet module install` is a command line and should not be translated
3657
- #: ../lib/puppet/module_tool/errors/shared.rb:147
3669
+ #: ../lib/puppet/module_tool/errors/shared.rb:164
3658
3670
  msgid " Use `puppet module install` to install this module"
3659
3671
  msgstr ""
3660
3672
 
3661
3673
  #. TRANSLATORS "module path" refers to a set of directories where modules may be installed
3662
- #: ../lib/puppet/module_tool/errors/shared.rb:158
3674
+ #: ../lib/puppet/module_tool/errors/shared.rb:175
3663
3675
  msgid "Could not %{action} '%{module_name}'; module appears in multiple places in the module path"
3664
3676
  msgstr ""
3665
3677
 
3666
- #: ../lib/puppet/module_tool/errors/shared.rb:164
3678
+ #: ../lib/puppet/module_tool/errors/shared.rb:181
3667
3679
  msgid " Module '%{module_name}' appears multiple places in the module path"
3668
3680
  msgstr ""
3669
3681
 
3670
3682
  #. TRANSLATORS This is repeats as separate lines as a list under "Module '%{module_name}' appears multiple places in the module path"
3671
- #: ../lib/puppet/module_tool/errors/shared.rb:167
3683
+ #: ../lib/puppet/module_tool/errors/shared.rb:184
3672
3684
  msgid " '%{module_name}' (%{version}) was found in %{path}"
3673
3685
  msgstr ""
3674
3686
 
3675
3687
  #. TRANSLATORS `--modulepath` is command line option and should not be translated
3676
- #: ../lib/puppet/module_tool/errors/shared.rb:170
3688
+ #: ../lib/puppet/module_tool/errors/shared.rb:187
3677
3689
  msgid " Use the `--modulepath` option to limit the search to specific directories"
3678
3690
  msgstr ""
3679
3691
 
3680
- #: ../lib/puppet/module_tool/errors/shared.rb:181
3692
+ #: ../lib/puppet/module_tool/errors/shared.rb:198
3681
3693
  msgid "Could not %{action} '%{module_name}'; module has had changes made locally"
3682
3694
  msgstr ""
3683
3695
 
3684
- #: ../lib/puppet/module_tool/errors/shared.rb:187
3696
+ #: ../lib/puppet/module_tool/errors/shared.rb:204
3685
3697
  msgid " Installed module has had changes made locally"
3686
3698
  msgstr ""
3687
3699
 
3688
3700
  #. TRANSLATORS `puppet module %{action} --ignore-changes` is a command line and should not be translated
3689
- #: ../lib/puppet/module_tool/errors/shared.rb:189
3701
+ #: ../lib/puppet/module_tool/errors/shared.rb:206
3690
3702
  msgid " Use `puppet module %{action} --ignore-changes` to %{action} this module anyway"
3691
3703
  msgstr ""
3692
3704
 
3693
- #: ../lib/puppet/module_tool/errors/shared.rb:199
3705
+ #: ../lib/puppet/module_tool/errors/shared.rb:216
3694
3706
  msgid "Could not %{action} '%{module_name}'; %{error}"
3695
3707
  msgstr ""
3696
3708
 
3697
- #: ../lib/puppet/module_tool/errors/shared.rb:205
3709
+ #: ../lib/puppet/module_tool/errors/shared.rb:222
3698
3710
  msgid " Failure trying to parse metadata"
3699
3711
  msgstr ""
3700
3712
 
3701
- #: ../lib/puppet/module_tool/errors/shared.rb:206
3713
+ #: ../lib/puppet/module_tool/errors/shared.rb:223
3702
3714
  msgid " Original message was: %{message}"
3703
3715
  msgstr ""
3704
3716
 
@@ -6716,15 +6728,15 @@ msgstr ""
6716
6728
  msgid "'%{exe}' is not qualified and no path was specified. Please qualify the command or specify a path."
6717
6729
  msgstr ""
6718
6730
 
6719
- #: ../lib/puppet/provider/exec/posix.rb:21 ../lib/puppet/provider/exec/posix.rb:38 ../lib/puppet/provider/exec/windows.rb:40 ../lib/puppet/provider/exec/windows.rb:53
6731
+ #: ../lib/puppet/provider/exec/posix.rb:33 ../lib/puppet/provider/exec/posix.rb:50 ../lib/puppet/provider/exec/windows.rb:40 ../lib/puppet/provider/exec/windows.rb:53
6720
6732
  msgid "Could not find command '%{exe}'"
6721
6733
  msgstr ""
6722
6734
 
6723
- #: ../lib/puppet/provider/exec/posix.rb:23 ../lib/puppet/provider/exec/windows.rb:42
6735
+ #: ../lib/puppet/provider/exec/posix.rb:35 ../lib/puppet/provider/exec/windows.rb:42
6724
6736
  msgid "'%{exe}' is a %{klass}, not a file"
6725
6737
  msgstr ""
6726
6738
 
6727
- #: ../lib/puppet/provider/exec/posix.rb:25
6739
+ #: ../lib/puppet/provider/exec/posix.rb:37
6728
6740
  msgid "'%{exe}' is not executable"
6729
6741
  msgstr ""
6730
6742
 
@@ -7004,31 +7016,31 @@ msgstr ""
7004
7016
  msgid "NIM package provider is unable to downgrade packages"
7005
7017
  msgstr ""
7006
7018
 
7007
- #: ../lib/puppet/provider/package/nim.rb:212
7019
+ #: ../lib/puppet/provider/package/nim.rb:217
7008
7020
  msgid ""
7009
7021
  "Unable to parse output from nimclient showres: line does not match expected package header format:\n"
7010
7022
  "'%{line}'"
7011
7023
  msgstr ""
7012
7024
 
7013
- #: ../lib/puppet/provider/package/nim.rb:219
7025
+ #: ../lib/puppet/provider/package/nim.rb:224
7014
7026
  msgid ""
7015
7027
  "Unable to parse output from nimclient showres: package string does not match expected installp package string format:\n"
7016
7028
  "'%{package_string}'"
7017
7029
  msgstr ""
7018
7030
 
7019
- #: ../lib/puppet/provider/package/nim.rb:229
7031
+ #: ../lib/puppet/provider/package/nim.rb:234
7020
7032
  msgid ""
7021
7033
  "Unable to parse output from nimclient showres: package string does not match expected rpm package string format:\n"
7022
7034
  "'%{package_string}'"
7023
7035
  msgstr ""
7024
7036
 
7025
- #: ../lib/puppet/provider/package/nim.rb:239
7037
+ #: ../lib/puppet/provider/package/nim.rb:244
7026
7038
  msgid ""
7027
7039
  "Unable to parse output from nimclient showres: line does not match expected package line format:\n"
7028
7040
  "'%{line}'"
7029
7041
  msgstr ""
7030
7042
 
7031
- #: ../lib/puppet/provider/package/nim.rb:251
7043
+ #: ../lib/puppet/provider/package/nim.rb:256
7032
7044
  msgid ""
7033
7045
  "Unrecognized package type specifier: '%{package_type_flag}' in package line:\n"
7034
7046
  "'%{line}'"
@@ -7263,19 +7275,19 @@ msgstr ""
7263
7275
  msgid "Failed to read %{target}'s records when prefetching them. Reason: %{detail}"
7264
7276
  msgstr ""
7265
7277
 
7266
- #: ../lib/puppet/provider/parsedfile.rb:291
7267
- msgid "Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty"
7278
+ #: ../lib/puppet/provider/parsedfile.rb:284 ../lib/puppet/provider/parsedfile.rb:308
7279
+ msgid "Prefetching %{target} for provider %{name} returned nil"
7268
7280
  msgstr ""
7269
7281
 
7270
- #: ../lib/puppet/provider/parsedfile.rb:305
7271
- msgid "Prefetching %{target} for provider %{name} returned nil"
7282
+ #: ../lib/puppet/provider/parsedfile.rb:294
7283
+ msgid "Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty"
7272
7284
  msgstr ""
7273
7285
 
7274
- #: ../lib/puppet/provider/parsedfile.rb:378
7286
+ #: ../lib/puppet/provider/parsedfile.rb:381
7275
7287
  msgid "Parsed Providers must define a default target"
7276
7288
  msgstr ""
7277
7289
 
7278
- #: ../lib/puppet/provider/parsedfile.rb:469
7290
+ #: ../lib/puppet/provider/parsedfile.rb:472
7279
7291
  msgid "Somehow got told to prefetch with no resource set"
7280
7292
  msgstr ""
7281
7293
 
@@ -7733,49 +7745,57 @@ msgstr ""
7733
7745
  msgid "Invalid setting type '%{type}'"
7734
7746
  msgstr ""
7735
7747
 
7736
- #: ../lib/puppet/settings.rb:905
7748
+ #: ../lib/puppet/settings.rb:868
7749
+ msgid "Cannot manage owner permissions, because the provider for '%{name}' is not functional"
7750
+ msgstr ""
7751
+
7752
+ #: ../lib/puppet/settings.rb:884
7753
+ msgid "Cannot manage group permissions, because the provider for '%{name}' is not functional"
7754
+ msgstr ""
7755
+
7756
+ #: ../lib/puppet/settings.rb:920
7737
7757
  msgid "Unknown searchpath case: %{source_type} for the %{source} settings path element."
7738
7758
  msgstr ""
7739
7759
 
7740
- #: ../lib/puppet/settings.rb:978
7760
+ #: ../lib/puppet/settings.rb:1001
7741
7761
  msgid "setting definition for '%{name}' is not a hash!"
7742
7762
  msgstr ""
7743
7763
 
7744
- #: ../lib/puppet/settings.rb:983
7764
+ #: ../lib/puppet/settings.rb:1006
7745
7765
  msgid "Setting %{name} is already defined"
7746
7766
  msgstr ""
7747
7767
 
7748
- #: ../lib/puppet/settings.rb:989
7768
+ #: ../lib/puppet/settings.rb:1012
7749
7769
  msgid "Setting %{name} is already using short name '%{short}'"
7750
7770
  msgstr ""
7751
7771
 
7752
- #: ../lib/puppet/settings.rb:1253
7772
+ #: ../lib/puppet/settings.rb:1276
7753
7773
  msgid "Setting %{name} is deprecated."
7754
7774
  msgstr ""
7755
7775
 
7756
7776
  #. TRANSLATORS 'puppet.conf' is a file name and should not be translated
7757
- #: ../lib/puppet/settings.rb:1258
7777
+ #: ../lib/puppet/settings.rb:1281
7758
7778
  msgid "Setting %{name} is deprecated in puppet.conf."
7759
7779
  msgstr ""
7760
7780
 
7761
- #: ../lib/puppet/settings.rb:1445
7781
+ #: ../lib/puppet/settings.rb:1468
7762
7782
  msgid "Error converting value for param '%{name}': %{detail}"
7763
7783
  msgstr ""
7764
7784
 
7765
- #: ../lib/puppet/settings.rb:1469
7785
+ #: ../lib/puppet/settings.rb:1492
7766
7786
  msgid "Could not find value for %{expression}"
7767
7787
  msgstr ""
7768
7788
 
7769
7789
  #. TRANSLATORS '$environment' is a Puppet specific variable and should not be translated
7770
- #: ../lib/puppet/settings.rb:1479
7790
+ #: ../lib/puppet/settings.rb:1502
7771
7791
  msgid "You cannot interpolate $environment within '%{setting_name}' when using directory environments."
7772
7792
  msgstr ""
7773
7793
 
7774
- #: ../lib/puppet/settings.rb:1480
7794
+ #: ../lib/puppet/settings.rb:1503
7775
7795
  msgid "Its value will remain %{value}."
7776
7796
  msgstr ""
7777
7797
 
7778
- #: ../lib/puppet/settings.rb:1511
7798
+ #: ../lib/puppet/settings.rb:1534
7779
7799
  msgid "Attempt to assign a value to unknown setting %{name}"
7780
7800
  msgstr ""
7781
7801
 
@@ -8662,56 +8682,56 @@ msgstr ""
8662
8682
  msgid "'%{cmd}' returned %{status} instead of one of [%{expected}]"
8663
8683
  msgstr ""
8664
8684
 
8665
- #: ../lib/puppet/type/exec.rb:204
8666
- msgid "Command must be a String, got value of class %{klass}"
8685
+ #: ../lib/puppet/type/exec.rb:205
8686
+ msgid "Command must be a String or Array<String>, got value of class %{klass}"
8667
8687
  msgstr ""
8668
8688
 
8669
- #: ../lib/puppet/type/exec.rb:236
8689
+ #: ../lib/puppet/type/exec.rb:238
8670
8690
  msgid "Unable to execute commands as other users on Windows"
8671
8691
  msgstr ""
8672
8692
 
8673
- #: ../lib/puppet/type/exec.rb:238
8693
+ #: ../lib/puppet/type/exec.rb:240
8674
8694
  msgid "Only root can execute commands as other users"
8675
8695
  msgstr ""
8676
8696
 
8677
- #: ../lib/puppet/type/exec.rb:294
8697
+ #: ../lib/puppet/type/exec.rb:296
8678
8698
  msgid "Invalid environment setting '%{value}'"
8679
8699
  msgstr ""
8680
8700
 
8681
- #: ../lib/puppet/type/exec.rb:307
8701
+ #: ../lib/puppet/type/exec.rb:309
8682
8702
  msgid "The umask specification is invalid: %{value}"
8683
8703
  msgstr ""
8684
8704
 
8685
- #: ../lib/puppet/type/exec.rb:323
8705
+ #: ../lib/puppet/type/exec.rb:325
8686
8706
  msgid "The timeout must be a number."
8687
8707
  msgstr ""
8688
8708
 
8689
- #: ../lib/puppet/type/exec.rb:340
8709
+ #: ../lib/puppet/type/exec.rb:342
8690
8710
  msgid "Tries must be an integer"
8691
8711
  msgstr ""
8692
8712
 
8693
- #: ../lib/puppet/type/exec.rb:344
8713
+ #: ../lib/puppet/type/exec.rb:346
8694
8714
  msgid "Tries must be an integer >= 1"
8695
8715
  msgstr ""
8696
8716
 
8697
- #: ../lib/puppet/type/exec.rb:357
8717
+ #: ../lib/puppet/type/exec.rb:359
8698
8718
  msgid "try_sleep must be a number"
8699
8719
  msgstr ""
8700
8720
 
8701
- #: ../lib/puppet/type/exec.rb:361
8721
+ #: ../lib/puppet/type/exec.rb:363
8702
8722
  msgid "try_sleep cannot be a negative number"
8703
8723
  msgstr ""
8704
8724
 
8705
8725
  #. TRANSLATORS 'creates' is a parameter name and should not be translated
8706
- #: ../lib/puppet/type/exec.rb:433
8726
+ #: ../lib/puppet/type/exec.rb:435
8707
8727
  msgid "Checking that 'creates' path '%{creates_path}' exists"
8708
8728
  msgstr ""
8709
8729
 
8710
- #: ../lib/puppet/type/exec.rb:478 ../lib/puppet/type/exec.rb:534
8730
+ #: ../lib/puppet/type/exec.rb:484 ../lib/puppet/type/exec.rb:544
8711
8731
  msgid "Check %{value} exceeded timeout"
8712
8732
  msgstr ""
8713
8733
 
8714
- #: ../lib/puppet/type/exec.rb:623
8734
+ #: ../lib/puppet/type/exec.rb:636
8715
8735
  msgid "'%{cmd}' won't be executed because of failed check '%{check}'"
8716
8736
  msgstr ""
8717
8737
 
@@ -8835,7 +8855,7 @@ msgstr ""
8835
8855
  msgid "Ensure set to :present but file type is %{file_type} so no content will be synced"
8836
8856
  msgstr ""
8837
8857
 
8838
- #: ../lib/puppet/type/file/mode.rb:126
8858
+ #: ../lib/puppet/type/file/mode.rb:132
8839
8859
  msgid "Not managing symlink mode"
8840
8860
  msgstr ""
8841
8861
 
@@ -8948,7 +8968,7 @@ msgstr ""
8948
8968
  msgid "%{value} is not a valid day of the week"
8949
8969
  msgstr ""
8950
8970
 
8951
- #: ../lib/puppet/type/service.rb:151 ../lib/puppet/type/user.rb:271
8971
+ #: ../lib/puppet/type/service.rb:151 ../lib/puppet/type/user.rb:272
8952
8972
  msgid "Passwords cannot include ':'"
8953
8973
  msgstr ""
8954
8974
 
@@ -8991,81 +9011,81 @@ msgstr ""
8991
9011
  msgid "File does not exist"
8992
9012
  msgstr ""
8993
9013
 
8994
- #: ../lib/puppet/type/user.rb:182
9014
+ #: ../lib/puppet/type/user.rb:183
8995
9015
  msgid "Could not find group(s) %{groups}"
8996
9016
  msgstr ""
8997
9017
 
8998
- #: ../lib/puppet/type/user.rb:291
9018
+ #: ../lib/puppet/type/user.rb:292
8999
9019
  msgid "Password minimum age must be provided as a number."
9000
9020
  msgstr ""
9001
9021
 
9002
- #: ../lib/puppet/type/user.rb:310
9022
+ #: ../lib/puppet/type/user.rb:311
9003
9023
  msgid "Password maximum age must be provided as a number."
9004
9024
  msgstr ""
9005
9025
 
9006
- #: ../lib/puppet/type/user.rb:341
9026
+ #: ../lib/puppet/type/user.rb:342
9007
9027
  msgid "Group names must be provided, not GID numbers."
9008
9028
  msgstr ""
9009
9029
 
9010
- #: ../lib/puppet/type/user.rb:343
9030
+ #: ../lib/puppet/type/user.rb:344
9011
9031
  msgid "Group names must be provided as an array, not a comma-separated list."
9012
9032
  msgstr ""
9013
9033
 
9014
- #: ../lib/puppet/type/user.rb:344
9034
+ #: ../lib/puppet/type/user.rb:345
9015
9035
  msgid "Group names must not be empty. If you want to specify \"no groups\" pass an empty array"
9016
9036
  msgstr ""
9017
9037
 
9018
- #: ../lib/puppet/type/user.rb:437
9038
+ #: ../lib/puppet/type/user.rb:438
9019
9039
  msgid "User provider %{name} can not manage home directories"
9020
9040
  msgstr ""
9021
9041
 
9022
9042
  #. TRANSLATORS YYYY-MM-DD represents a date with a four-digit year, a two-digit month, and a two-digit day,
9023
9043
  #. TRANSLATORS separated by dashes.
9024
- #: ../lib/puppet/type/user.rb:454
9044
+ #: ../lib/puppet/type/user.rb:455
9025
9045
  msgid "Expiry dates must be YYYY-MM-DD or the string \"absent\""
9026
9046
  msgstr ""
9027
9047
 
9028
- #: ../lib/puppet/type/user.rb:521
9048
+ #: ../lib/puppet/type/user.rb:522
9029
9049
  msgid "Role names must be provided, not numbers"
9030
9050
  msgstr ""
9031
9051
 
9032
- #: ../lib/puppet/type/user.rb:523
9052
+ #: ../lib/puppet/type/user.rb:524
9033
9053
  msgid "Role names must be provided as an array, not a comma-separated list"
9034
9054
  msgstr ""
9035
9055
 
9036
- #: ../lib/puppet/type/user.rb:560
9056
+ #: ../lib/puppet/type/user.rb:561
9037
9057
  msgid "Auth names must be provided, not numbers"
9038
9058
  msgstr ""
9039
9059
 
9040
- #: ../lib/puppet/type/user.rb:562
9060
+ #: ../lib/puppet/type/user.rb:563
9041
9061
  msgid "Auth names must be provided as an array, not a comma-separated list"
9042
9062
  msgstr ""
9043
9063
 
9044
- #: ../lib/puppet/type/user.rb:586
9064
+ #: ../lib/puppet/type/user.rb:587
9045
9065
  msgid "Profile names must be provided, not numbers"
9046
9066
  msgstr ""
9047
9067
 
9048
- #: ../lib/puppet/type/user.rb:588
9068
+ #: ../lib/puppet/type/user.rb:589
9049
9069
  msgid "Profile names must be provided as an array, not a comma-separated list"
9050
9070
  msgstr ""
9051
9071
 
9052
- #: ../lib/puppet/type/user.rb:699
9072
+ #: ../lib/puppet/type/user.rb:701
9053
9073
  msgid "Ssh_authorized_key type is not available. Cannot purge SSH keys."
9054
9074
  msgstr ""
9055
9075
 
9056
- #: ../lib/puppet/type/user.rb:737
9076
+ #: ../lib/puppet/type/user.rb:739
9057
9077
  msgid "Each entry for purge_ssh_keys must be a string, not a %{klass}"
9058
9078
  msgstr ""
9059
9079
 
9060
- #: ../lib/puppet/type/user.rb:740
9080
+ #: ../lib/puppet/type/user.rb:742
9061
9081
  msgid "Paths to keyfiles must be absolute, not %{entry}"
9062
9082
  msgstr ""
9063
9083
 
9064
- #: ../lib/puppet/type/user.rb:744
9084
+ #: ../lib/puppet/type/user.rb:746
9065
9085
  msgid "purge_ssh_keys must be true, false, or an array of file names, not %{value}"
9066
9086
  msgstr ""
9067
9087
 
9068
- #: ../lib/puppet/type/user.rb:772
9088
+ #: ../lib/puppet/type/user.rb:755
9069
9089
  msgid "Class name must be provided."
9070
9090
  msgstr ""
9071
9091
 
@@ -9892,39 +9912,39 @@ msgstr ""
9892
9912
  msgid "Invalid %{klass}: %{id}"
9893
9913
  msgstr ""
9894
9914
 
9895
- #: ../lib/puppet/util/symbolic_file_mode.rb:37
9915
+ #: ../lib/puppet/util/symbolic_file_mode.rb:49
9896
9916
  msgid "An empty mode string is illegal"
9897
9917
  msgstr ""
9898
9918
 
9899
- #: ../lib/puppet/util/symbolic_file_mode.rb:41
9919
+ #: ../lib/puppet/util/symbolic_file_mode.rb:53
9900
9920
  msgid "Numeric modes must be in octal, not decimal!"
9901
9921
  msgstr ""
9902
9922
 
9903
- #: ../lib/puppet/util/symbolic_file_mode.rb:44
9923
+ #: ../lib/puppet/util/symbolic_file_mode.rb:56
9904
9924
  msgid "non-numeric current mode (%{mode})"
9905
9925
  msgstr ""
9906
9926
 
9907
- #: ../lib/puppet/util/symbolic_file_mode.rb:64
9927
+ #: ../lib/puppet/util/symbolic_file_mode.rb:76
9908
9928
  msgid "Missing action"
9909
9929
  msgstr ""
9910
9930
 
9911
- #: ../lib/puppet/util/symbolic_file_mode.rb:79
9931
+ #: ../lib/puppet/util/symbolic_file_mode.rb:91
9912
9932
  msgid "Missing operation (-, =, or +)"
9913
9933
  msgstr ""
9914
9934
 
9915
- #: ../lib/puppet/util/symbolic_file_mode.rb:101
9935
+ #: ../lib/puppet/util/symbolic_file_mode.rb:113
9916
9936
  msgid "X only works with the '+' operator"
9917
9937
  msgstr ""
9918
9938
 
9919
- #: ../lib/puppet/util/symbolic_file_mode.rb:112
9939
+ #: ../lib/puppet/util/symbolic_file_mode.rb:124
9920
9940
  msgid "internal error"
9921
9941
  msgstr ""
9922
9942
 
9923
- #: ../lib/puppet/util/symbolic_file_mode.rb:116
9943
+ #: ../lib/puppet/util/symbolic_file_mode.rb:128
9924
9944
  msgid "Unknown operation"
9925
9945
  msgstr ""
9926
9946
 
9927
- #: ../lib/puppet/util/symbolic_file_mode.rb:131
9947
+ #: ../lib/puppet/util/symbolic_file_mode.rb:143
9928
9948
  msgid "%{error}%{rest} in symbolic mode %{modification}"
9929
9949
  msgstr ""
9930
9950
 
@@ -10166,7 +10186,7 @@ msgstr ""
10166
10186
  msgid "An attempt to set mode %{mode} on item %{path} would result in the group, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control"
10167
10187
  msgstr ""
10168
10188
 
10169
- #: ../lib/puppet/util/windows/security.rb:433 ../lib/puppet/util/windows/security.rb:450 ../lib/puppet/util/windows/sid.rb:157 ../lib/puppet/util/windows/sid.rb:219 ../lib/puppet/util/windows/user.rb:59
10189
+ #: ../lib/puppet/util/windows/security.rb:433 ../lib/puppet/util/windows/security.rb:450 ../lib/puppet/util/windows/sid.rb:159 ../lib/puppet/util/windows/sid.rb:221 ../lib/puppet/util/windows/user.rb:59
10170
10190
  msgid "Invalid SID"
10171
10191
  msgstr ""
10172
10192
 
@@ -10322,19 +10342,19 @@ msgstr ""
10322
10342
  msgid "Timed out while waiting for the pending transition from %{pending_state} to %{final_state} to finish. The current state is %{current_state}."
10323
10343
  msgstr ""
10324
10344
 
10325
- #: ../lib/puppet/util/windows/sid.rb:96
10345
+ #: ../lib/puppet/util/windows/sid.rb:98
10326
10346
  msgid "Octet string must be an array of bytes"
10327
10347
  msgstr ""
10328
10348
 
10329
- #: ../lib/puppet/util/windows/sid.rb:163
10349
+ #: ../lib/puppet/util/windows/sid.rb:165
10330
10350
  msgid "Failed to convert binary SID"
10331
10351
  msgstr ""
10332
10352
 
10333
- #: ../lib/puppet/util/windows/sid.rb:168
10353
+ #: ../lib/puppet/util/windows/sid.rb:170
10334
10354
  msgid "ConvertSidToStringSidW failed to allocate buffer for sid"
10335
10355
  msgstr ""
10336
10356
 
10337
- #: ../lib/puppet/util/windows/sid.rb:188
10357
+ #: ../lib/puppet/util/windows/sid.rb:190
10338
10358
  msgid "Failed to convert string SID: %{string_sid}"
10339
10359
  msgstr ""
10340
10360