puppet 6.21.0-x64-mingw32 → 6.24.0-x64-mingw32

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 (217) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +5 -5
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +29 -23
  5. data/README.md +4 -4
  6. data/ext/osx/puppet.plist +2 -0
  7. data/ext/project_data.yaml +3 -2
  8. data/lib/puppet.rb +3 -3
  9. data/lib/puppet/application/agent.rb +12 -5
  10. data/lib/puppet/application/apply.rb +2 -1
  11. data/lib/puppet/application/device.rb +2 -1
  12. data/lib/puppet/application/filebucket.rb +1 -0
  13. data/lib/puppet/application/resource.rb +17 -3
  14. data/lib/puppet/application/script.rb +2 -1
  15. data/lib/puppet/application/ssl.rb +12 -0
  16. data/lib/puppet/configurer/downloader.rb +2 -1
  17. data/lib/puppet/defaults.rb +27 -5
  18. data/lib/puppet/environments.rb +26 -1
  19. data/lib/puppet/face/facts.rb +128 -30
  20. data/lib/puppet/face/help/action.erb +1 -0
  21. data/lib/puppet/face/help/face.erb +1 -0
  22. data/lib/puppet/face/node/clean.rb +11 -0
  23. data/lib/puppet/file_serving/fileset.rb +14 -2
  24. data/lib/puppet/file_system/file_impl.rb +1 -1
  25. data/lib/puppet/file_system/memory_file.rb +8 -1
  26. data/lib/puppet/file_system/windows.rb +4 -2
  27. data/lib/puppet/forge.rb +3 -3
  28. data/lib/puppet/functions/all.rb +1 -1
  29. data/lib/puppet/functions/camelcase.rb +1 -1
  30. data/lib/puppet/functions/capitalize.rb +2 -2
  31. data/lib/puppet/functions/downcase.rb +2 -2
  32. data/lib/puppet/functions/empty.rb +8 -0
  33. data/lib/puppet/functions/get.rb +5 -5
  34. data/lib/puppet/functions/group_by.rb +13 -5
  35. data/lib/puppet/functions/lest.rb +1 -1
  36. data/lib/puppet/functions/new.rb +100 -100
  37. data/lib/puppet/functions/partition.rb +12 -4
  38. data/lib/puppet/functions/require.rb +5 -5
  39. data/lib/puppet/functions/sort.rb +3 -3
  40. data/lib/puppet/functions/strftime.rb +1 -0
  41. data/lib/puppet/functions/tree_each.rb +7 -9
  42. data/lib/puppet/functions/type.rb +4 -4
  43. data/lib/puppet/functions/unwrap.rb +17 -2
  44. data/lib/puppet/functions/upcase.rb +2 -2
  45. data/lib/puppet/http/resolver/server_list.rb +15 -4
  46. data/lib/puppet/http/service/compiler.rb +69 -0
  47. data/lib/puppet/http/service/file_server.rb +2 -1
  48. data/lib/puppet/indirector/catalog/compiler.rb +1 -0
  49. data/lib/puppet/indirector/facts/facter.rb +24 -3
  50. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  51. data/lib/puppet/indirector/resource/ral.rb +6 -1
  52. data/lib/puppet/interface/documentation.rb +1 -0
  53. data/lib/puppet/module_tool/applications/installer.rb +4 -0
  54. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  55. data/lib/puppet/network/formats.rb +67 -0
  56. data/lib/puppet/network/http/factory.rb +4 -0
  57. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  58. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  59. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  60. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  61. data/lib/puppet/provider/exec/posix.rb +16 -4
  62. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  63. data/lib/puppet/provider/package/nim.rb +11 -6
  64. data/lib/puppet/provider/package/pip.rb +15 -3
  65. data/lib/puppet/provider/parsedfile.rb +3 -0
  66. data/lib/puppet/provider/service/systemd.rb +14 -4
  67. data/lib/puppet/provider/service/windows.rb +38 -0
  68. data/lib/puppet/provider/user/directoryservice.rb +25 -12
  69. data/lib/puppet/provider/user/useradd.rb +9 -2
  70. data/lib/puppet/reference/configuration.rb +1 -1
  71. data/lib/puppet/settings.rb +30 -7
  72. data/lib/puppet/settings/environment_conf.rb +1 -0
  73. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  74. data/lib/puppet/type/exec.rb +16 -3
  75. data/lib/puppet/type/file.rb +19 -1
  76. data/lib/puppet/type/file/mode.rb +6 -0
  77. data/lib/puppet/type/file/selcontext.rb +1 -1
  78. data/lib/puppet/type/service.rb +18 -38
  79. data/lib/puppet/type/tidy.rb +22 -3
  80. data/lib/puppet/type/user.rb +38 -20
  81. data/lib/puppet/util/fact_dif.rb +36 -17
  82. data/lib/puppet/util/monkey_patches.rb +7 -0
  83. data/lib/puppet/util/selinux.rb +30 -4
  84. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  85. data/lib/puppet/util/windows/adsi.rb +46 -0
  86. data/lib/puppet/util/windows/api_types.rb +1 -1
  87. data/lib/puppet/util/windows/principal.rb +9 -2
  88. data/lib/puppet/util/windows/sid.rb +6 -2
  89. data/lib/puppet/version.rb +1 -1
  90. data/locales/puppet.pot +360 -280
  91. data/man/man5/puppet.conf.5 +279 -251
  92. data/man/man8/puppet-agent.8 +1 -1
  93. data/man/man8/puppet-apply.8 +1 -1
  94. data/man/man8/puppet-catalog.8 +9 -9
  95. data/man/man8/puppet-config.8 +1 -1
  96. data/man/man8/puppet-describe.8 +1 -1
  97. data/man/man8/puppet-device.8 +1 -1
  98. data/man/man8/puppet-doc.8 +1 -1
  99. data/man/man8/puppet-epp.8 +1 -1
  100. data/man/man8/puppet-facts.8 +65 -7
  101. data/man/man8/puppet-filebucket.8 +1 -1
  102. data/man/man8/puppet-generate.8 +1 -1
  103. data/man/man8/puppet-help.8 +1 -1
  104. data/man/man8/puppet-key.8 +7 -7
  105. data/man/man8/puppet-lookup.8 +1 -1
  106. data/man/man8/puppet-man.8 +1 -1
  107. data/man/man8/puppet-module.8 +1 -1
  108. data/man/man8/puppet-node.8 +5 -5
  109. data/man/man8/puppet-parser.8 +1 -1
  110. data/man/man8/puppet-plugin.8 +1 -1
  111. data/man/man8/puppet-report.8 +5 -5
  112. data/man/man8/puppet-resource.8 +1 -1
  113. data/man/man8/puppet-script.8 +1 -1
  114. data/man/man8/puppet-ssl.8 +5 -1
  115. data/man/man8/puppet-status.8 +4 -4
  116. data/man/man8/puppet.8 +2 -2
  117. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  118. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  119. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  120. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  121. data/spec/fixtures/ssl/ca.pem +57 -35
  122. data/spec/fixtures/ssl/crl.pem +28 -18
  123. data/spec/fixtures/ssl/ec-key.pem +11 -11
  124. data/spec/fixtures/ssl/ec.pem +33 -24
  125. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  126. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  127. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  128. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  129. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  130. data/spec/fixtures/ssl/intermediate.pem +57 -36
  131. data/spec/fixtures/ssl/oid-key.pem +117 -0
  132. data/spec/fixtures/ssl/oid.pem +69 -0
  133. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  134. data/spec/fixtures/ssl/pluto.pem +52 -30
  135. data/spec/fixtures/ssl/request-key.pem +107 -57
  136. data/spec/fixtures/ssl/request.pem +47 -26
  137. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  138. data/spec/fixtures/ssl/revoked.pem +52 -30
  139. data/spec/fixtures/ssl/signed-key.pem +107 -57
  140. data/spec/fixtures/ssl/signed.pem +52 -30
  141. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  142. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  143. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  144. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  145. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  146. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  147. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  148. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  149. data/spec/integration/application/filebucket_spec.rb +11 -0
  150. data/spec/integration/application/module_spec.rb +21 -0
  151. data/spec/integration/application/plugin_spec.rb +1 -1
  152. data/spec/integration/application/resource_spec.rb +64 -0
  153. data/spec/integration/application/ssl_spec.rb +20 -0
  154. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  155. data/spec/integration/http/client_spec.rb +12 -0
  156. data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
  157. data/spec/integration/indirector/facts/facter_spec.rb +90 -36
  158. data/spec/integration/type/exec_spec.rb +70 -45
  159. data/spec/integration/util/windows/adsi_spec.rb +18 -0
  160. data/spec/integration/util/windows/principal_spec.rb +21 -0
  161. data/spec/integration/util/windows/registry_spec.rb +6 -0
  162. data/spec/lib/puppet/test_ca.rb +7 -2
  163. data/spec/lib/puppet_spec/settings.rb +1 -0
  164. data/spec/spec_helper.rb +11 -1
  165. data/spec/unit/application/agent_spec.rb +7 -2
  166. data/spec/unit/application/facts_spec.rb +482 -3
  167. data/spec/unit/application/ssl_spec.rb +23 -0
  168. data/spec/unit/configurer/downloader_spec.rb +6 -0
  169. data/spec/unit/configurer_spec.rb +23 -0
  170. data/spec/unit/defaults_spec.rb +16 -0
  171. data/spec/unit/environments_spec.rb +199 -88
  172. data/spec/unit/face/facts_spec.rb +4 -0
  173. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  174. data/spec/unit/file_system_spec.rb +15 -0
  175. data/spec/unit/functions/assert_type_spec.rb +1 -1
  176. data/spec/unit/functions/empty_spec.rb +10 -0
  177. data/spec/unit/functions/unwrap_spec.rb +8 -0
  178. data/spec/unit/functions4_spec.rb +2 -2
  179. data/spec/unit/gettext/config_spec.rb +12 -0
  180. data/spec/unit/http/service/compiler_spec.rb +123 -0
  181. data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
  182. data/spec/unit/indirector/facts/facter_spec.rb +95 -0
  183. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  184. data/spec/unit/module_tool/applications/installer_spec.rb +12 -0
  185. data/spec/unit/network/formats_spec.rb +41 -0
  186. data/spec/unit/network/http/factory_spec.rb +19 -0
  187. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  188. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  189. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  190. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  191. data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
  192. data/spec/unit/provider/package/nim_spec.rb +42 -0
  193. data/spec/unit/provider/package/pip_spec.rb +37 -0
  194. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  195. data/spec/unit/provider/service/init_spec.rb +1 -0
  196. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  197. data/spec/unit/provider/service/systemd_spec.rb +53 -8
  198. data/spec/unit/provider/service/windows_spec.rb +202 -0
  199. data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
  200. data/spec/unit/provider/user/useradd_spec.rb +21 -6
  201. data/spec/unit/resource/catalog_spec.rb +1 -1
  202. data/spec/unit/settings_spec.rb +97 -56
  203. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  204. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  205. data/spec/unit/transaction_spec.rb +18 -20
  206. data/spec/unit/type/exec_spec.rb +76 -29
  207. data/spec/unit/type/file/selinux_spec.rb +3 -3
  208. data/spec/unit/type/file/source_spec.rb +4 -4
  209. data/spec/unit/type/service_spec.rb +59 -188
  210. data/spec/unit/type/tidy_spec.rb +24 -7
  211. data/spec/unit/type/user_spec.rb +45 -0
  212. data/spec/unit/util/selinux_spec.rb +87 -16
  213. data/spec/unit/util/windows/sid_spec.rb +41 -0
  214. data/tasks/generate_cert_fixtures.rake +12 -3
  215. metadata +24 -9
  216. data/spec/lib/matchers/include.rb +0 -27
  217. data/spec/lib/matchers/include_spec.rb +0 -32
@@ -1,15 +1,24 @@
1
1
  require 'json'
2
2
 
3
3
  class FactDif
4
- def initialize(old_output, new_output, exclude_list = [])
5
- @c_facter = JSON.parse(old_output)['values']
6
- @next_facter = JSON.parse(new_output)['values']
4
+ def initialize(old_output, new_output, exclude_list, save_structured)
5
+ @c_facter = JSON.parse(old_output)
6
+ @next_facter = JSON.parse(new_output)
7
7
  @exclude_list = exclude_list
8
+ @save_structured = save_structured
9
+ @flat_diff = []
8
10
  @diff = {}
9
11
  end
10
12
 
11
13
  def difs
12
- search_hash(@c_facter, [])
14
+ search_hash(((@c_facter.to_a - @next_facter.to_a) | (@next_facter.to_a - @c_facter.to_a)).to_h)
15
+
16
+ @flat_diff.sort_by { |a| a[0] }.each do |pair|
17
+ fact_path = pair[0]
18
+ value = pair[1]
19
+ compare(fact_path, value, @c_facter)
20
+ compare(fact_path, value, @next_facter)
21
+ end
13
22
 
14
23
  @diff
15
24
  end
@@ -28,29 +37,39 @@ class FactDif
28
37
  path.pop
29
38
  end
30
39
  else
31
- compare(path, sh)
40
+ @flat_diff.push([path.dup, sh])
32
41
  end
33
42
  end
34
43
 
35
- def compare(fact_path, old_value)
36
- new_value = @next_facter.dig(*fact_path)
37
- if different?(new_value, old_value) && !excluded?(fact_path.join('.'))
38
- @diff[fact_path.join('.')] = { new_value: new_value, old_value: old_value }
44
+ def compare(fact_path, given_value, compared_hash)
45
+ compared_value = compared_hash.dig(*fact_path)
46
+ if different?(compared_value, given_value) && !excluded?(fact_path.join('.'))
47
+ fact_path = fact_path.map{|f| f.to_s.include?('.') ? "\"#{f}\"" : f}.join('.') unless @save_structured
48
+ if compared_hash == @c_facter
49
+ bury(*fact_path, { :new_value => given_value, :old_value => compared_value }, @diff)
50
+ else
51
+ bury(*fact_path, { :new_value => compared_value, :old_value => given_value }, @diff)
52
+ end
53
+ end
54
+ end
55
+
56
+ def bury(*paths, value, hash)
57
+ if paths.count > 1
58
+ path = paths.shift
59
+ hash[path] = Hash.new unless hash.key?(path)
60
+ bury(*paths, value, hash[path])
61
+ else
62
+ hash[*paths] = value
39
63
  end
40
64
  end
41
65
 
42
66
  def different?(new, old)
43
- if old.is_a?(String) && new.is_a?(String)
67
+ if old.is_a?(String) && new.is_a?(String) && (old.include?(',') || new.include?(','))
44
68
  old_values = old.split(',')
45
69
  new_values = new.split(',')
46
70
 
47
- diff = old_values - new_values
48
- # also add new entries only available in Facter 4
49
- diff.concat(new_values - old_values)
50
-
51
- return true if diff.any?
52
-
53
- return false
71
+ diff = (old_values - new_values) | (new_values - old_values)
72
+ return diff.size.positive?
54
73
  end
55
74
 
56
75
  old != new
@@ -32,6 +32,13 @@ end
32
32
  # (#19151) Reject all SSLv2 ciphers and handshakes
33
33
  require 'puppet/ssl/openssl_loader'
34
34
  unless Puppet::Util::Platform.jruby_fips?
35
+ unless defined?(OpenSSL::SSL::TLS1_VERSION)
36
+ module OpenSSL::SSL
37
+ # see https://github.com/ruby/ruby/commit/609103dbb5fb182eec12f052226c43e39b907682#diff-09f822c26289f5347111795ca22ed7ed1cfadd6ebd28f987991d1d414eef565aR2755-R2759
38
+ OpenSSL::SSL::TLS1_VERSION = 0x301
39
+ end
40
+ end
41
+
35
42
  class OpenSSL::SSL::SSLContext
36
43
  if DEFAULT_PARAMS[:options]
37
44
  DEFAULT_PARAMS[:options] |= OpenSSL::SSL::OP_NO_SSLv2 | OpenSSL::SSL::OP_NO_SSLv3
@@ -13,6 +13,10 @@ require 'pathname'
13
13
 
14
14
  module Puppet::Util::SELinux
15
15
 
16
+ S_IFREG = 0100000
17
+ S_IFDIR = 0040000
18
+ S_IFLNK = 0120000
19
+
16
20
  def self.selinux_support?
17
21
  return false unless defined?(Selinux)
18
22
  if Selinux.is_selinux_enabled == 1
@@ -38,7 +42,7 @@ module Puppet::Util::SELinux
38
42
 
39
43
  # Retrieve and return the default context of the file. If we don't have
40
44
  # SELinux support or if the SELinux call fails to file a default then return nil.
41
- def get_selinux_default_context(file)
45
+ def get_selinux_default_context(file, resource_ensure=nil)
42
46
  return nil unless selinux_support?
43
47
  # If the filesystem has no support for SELinux labels, return a default of nil
44
48
  # instead of what matchpathcon would return
@@ -48,8 +52,14 @@ module Puppet::Util::SELinux
48
52
  begin
49
53
  filestat = file_lstat(file)
50
54
  mode = filestat.mode
51
- rescue Errno::EACCES, Errno::ENOENT
55
+ rescue Errno::EACCES
52
56
  mode = 0
57
+ rescue Errno::ENOENT
58
+ if resource_ensure
59
+ mode = get_create_mode(resource_ensure)
60
+ else
61
+ mode = 0
62
+ end
53
63
  end
54
64
 
55
65
  retval = Selinux.matchpathcon(file, mode)
@@ -136,8 +146,8 @@ module Puppet::Util::SELinux
136
146
  # Puppet uses. This will set the file's SELinux context to the policy's
137
147
  # default context (if any) if it differs from the context currently on
138
148
  # the file.
139
- def set_selinux_default_context(file)
140
- new_context = get_selinux_default_context(file)
149
+ def set_selinux_default_context(file, resource_ensure=nil)
150
+ new_context = get_selinux_default_context(file, resource_ensure)
141
151
  return nil unless new_context
142
152
  cur_context = get_selinux_current_context(file)
143
153
  if new_context != cur_context
@@ -198,6 +208,22 @@ module Puppet::Util::SELinux
198
208
  filesystems.include?(fstype)
199
209
  end
200
210
 
211
+ # Get mode file type bits set based on ensure on
212
+ # the file resource. This helps SELinux determine
213
+ # what context a new resource being created should have.
214
+ def get_create_mode(resource_ensure)
215
+ mode = 0
216
+ case resource_ensure
217
+ when :present, :file
218
+ mode |= S_IFREG
219
+ when :directory
220
+ mode |= S_IFDIR
221
+ when :link
222
+ mode |= S_IFLNK
223
+ end
224
+ mode
225
+ end
226
+
201
227
  # Internal helper function to read and parse /proc/mounts
202
228
  def read_mounts
203
229
  mounts = ""
@@ -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 = ''
@@ -504,6 +504,43 @@ module Puppet::Util::Windows::ADSI
504
504
  user_name
505
505
  end
506
506
 
507
+ # https://docs.microsoft.com/en-us/windows/win32/api/secext/ne-secext-extended_name_format
508
+ NameUnknown = 0
509
+ NameFullyQualifiedDN = 1
510
+ NameSamCompatible = 2
511
+ NameDisplay = 3
512
+ NameUniqueId = 6
513
+ NameCanonical = 7
514
+ NameUserPrincipal = 8
515
+ NameCanonicalEx = 9
516
+ NameServicePrincipal = 10
517
+ NameDnsDomain = 12
518
+ NameGivenName = 13
519
+ NameSurname = 14
520
+
521
+ def self.current_user_name_with_format(format)
522
+ user_name = ''
523
+ max_length = 1024
524
+
525
+ FFI::MemoryPointer.new(:lpwstr, max_length * 2 + 1) do |buffer|
526
+ FFI::MemoryPointer.new(:dword, 1) do |buffer_size|
527
+ buffer_size.write_dword(max_length + 1)
528
+
529
+ if GetUserNameExW(format.to_i, buffer, buffer_size) == FFI::WIN32_FALSE
530
+ raise Puppet::Util::Windows::Error.new(_("Failed to get user name"), FFI.errno)
531
+ end
532
+
533
+ user_name = buffer.read_wide_string(buffer_size.read_dword).chomp
534
+ end
535
+ end
536
+
537
+ user_name
538
+ end
539
+
540
+ def self.current_sam_compatible_user_name
541
+ current_user_name_with_format(NameSamCompatible)
542
+ end
543
+
507
544
  def self.current_user_sid
508
545
  Puppet::Util::Windows::SID.name_to_principal(current_user_name)
509
546
  end
@@ -518,6 +555,15 @@ module Puppet::Util::Windows::ADSI
518
555
  ffi_lib :advapi32
519
556
  attach_function_private :GetUserNameW,
520
557
  [:lpwstr, :lpdword], :win32_bool
558
+
559
+ # https://docs.microsoft.com/en-us/windows/win32/api/secext/nf-secext-getusernameexa
560
+ # BOOLEAN SEC_ENTRY GetUserNameExA(
561
+ # EXTENDED_NAME_FORMAT NameFormat,
562
+ # LPSTR lpNameBuffer,
563
+ # PULONG nSize
564
+ # );type
565
+ ffi_lib :secur32
566
+ attach_function_private :GetUserNameExW, [:uint16, :lpwstr, :pointer], :win32_bool
521
567
  end
522
568
 
523
569
  class UserProfile
@@ -19,7 +19,7 @@ module Puppet::Util::Windows::APITypes
19
19
 
20
20
  class ::FFI::Pointer
21
21
  NULL_HANDLE = 0
22
- WCHAR_NULL = "\0\0".encode('UTF-16LE').freeze
22
+ WCHAR_NULL = "\0\0".force_encoding('UTF-16LE').freeze
23
23
 
24
24
  def self.from_string_to_wide_string(str, &block)
25
25
  str = Puppet::Util::Windows::String.wide_string(str)
@@ -44,7 +44,8 @@ module Puppet::Util::Windows::SID
44
44
  ERROR_INVALID_PARAMETER = 87
45
45
  ERROR_INSUFFICIENT_BUFFER = 122
46
46
 
47
- def self.lookup_account_name(system_name = nil, account_name)
47
+ def self.lookup_account_name(system_name = nil, sanitize = true, account_name)
48
+ account_name = sanitize_account_name(account_name) if sanitize
48
49
  system_name_ptr = FFI::Pointer::NULL
49
50
  begin
50
51
  if system_name
@@ -146,6 +147,13 @@ module Puppet::Util::Windows::SID
146
147
  end
147
148
  end
148
149
 
150
+ # Sanitize the given account name for lookup to avoid known issues
151
+ def self.sanitize_account_name(account_name)
152
+ return account_name unless account_name.start_with?('APPLICATION PACKAGE AUTHORITY\\')
153
+ account_name.split('\\').last
154
+ end
155
+ private_class_method :sanitize_account_name
156
+
149
157
  ffi_convention :stdcall
150
158
 
151
159
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379601(v=vs.85).aspx
@@ -191,4 +199,3 @@ module Puppet::Util::Windows::SID
191
199
  [:lpcwstr, :pointer, :lpwstr, :lpdword, :lpwstr, :lpdword, :pointer], :win32_bool
192
200
  end
193
201
  end
194
-
@@ -74,11 +74,15 @@ module Puppet::Util::Windows
74
74
  string_to_sid_ptr(name) do |sid_ptr|
75
75
  raw_sid_bytes = sid_ptr.read_array_of_uchar(get_length_sid(sid_ptr))
76
76
  end
77
- rescue
77
+ rescue => e
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
78
81
  end
79
82
 
80
83
  raw_sid_bytes ? Principal.lookup_account_sid(raw_sid_bytes) : Principal.lookup_account_name(name)
81
- rescue
84
+ rescue => e
85
+ Puppet.debug("#{e.message}")
82
86
  (allow_unresolved && raw_sid_bytes) ? unresolved_principal(name, raw_sid_bytes) : nil
83
87
  end
84
88
  module_function :name_to_principal
@@ -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.21.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.19.1-133-gcc65fe8151\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-01-14 12:33+0000\n"
13
- "PO-Revision-Date: 2021-01-14 12: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"
@@ -184,19 +184,19 @@ msgstr ""
184
184
  msgid "The puppet agent daemon"
185
185
  msgstr ""
186
186
 
187
- #: ../lib/puppet/application/agent.rb:415
187
+ #: ../lib/puppet/application/agent.rb:422
188
188
  msgid "Fingerprint asked but neither the certificate, nor the certificate request have been issued"
189
189
  msgstr ""
190
190
 
191
- #: ../lib/puppet/application/agent.rb:420
191
+ #: ../lib/puppet/application/agent.rb:427
192
192
  msgid "Failed to generate fingerprint: %{message}"
193
193
  msgstr ""
194
194
 
195
- #: ../lib/puppet/application/agent.rb:443
195
+ #: ../lib/puppet/application/agent.rb:450
196
196
  msgid "Starting Puppet client version %{version}"
197
197
  msgstr ""
198
198
 
199
- #: ../lib/puppet/application/agent.rb:459
199
+ #: ../lib/puppet/application/agent.rb:466
200
200
  msgid "The puppet agent command does not take parameters"
201
201
  msgstr ""
202
202
 
@@ -206,35 +206,35 @@ msgstr ""
206
206
 
207
207
  #. TRANSLATORS "puppet apply" is a program command and should not be translated
208
208
  #. TRANSLATORS "puppet apply" is a program command and should not be translated
209
- #: ../lib/puppet/application/apply.rb:208 ../lib/puppet/application/apply.rb:321
209
+ #: ../lib/puppet/application/apply.rb:209 ../lib/puppet/application/apply.rb:322
210
210
  msgid "For puppet apply"
211
211
  msgstr ""
212
212
 
213
- #: ../lib/puppet/application/apply.rb:216
213
+ #: ../lib/puppet/application/apply.rb:217
214
214
  msgid "%{file} is not readable"
215
215
  msgstr ""
216
216
 
217
- #: ../lib/puppet/application/apply.rb:287 ../lib/puppet/application/script.rb:240
217
+ #: ../lib/puppet/application/apply.rb:288 ../lib/puppet/application/script.rb:241
218
218
  msgid "Exiting"
219
219
  msgstr ""
220
220
 
221
- #: ../lib/puppet/application/apply.rb:331
221
+ #: ../lib/puppet/application/apply.rb:332
222
222
  msgid "Could not deserialize catalog from %{format}: %{detail}"
223
223
  msgstr ""
224
224
 
225
- #: ../lib/puppet/application/apply.rb:352 ../lib/puppet/application/script.rb:145
225
+ #: ../lib/puppet/application/apply.rb:353 ../lib/puppet/application/script.rb:146
226
226
  msgid "Could not find facts for %{node}"
227
227
  msgstr ""
228
228
 
229
- #: ../lib/puppet/application/apply.rb:364 ../lib/puppet/application/script.rb:153
229
+ #: ../lib/puppet/application/apply.rb:365 ../lib/puppet/application/script.rb:154
230
230
  msgid "Could not find node %{node}"
231
231
  msgstr ""
232
232
 
233
- #: ../lib/puppet/application/apply.rb:377 ../lib/puppet/application/script.rb:138
233
+ #: ../lib/puppet/application/apply.rb:378 ../lib/puppet/application/script.rb:139
234
234
  msgid "Could not find file %{manifest}"
235
235
  msgstr ""
236
236
 
237
- #: ../lib/puppet/application/apply.rb:378
237
+ #: ../lib/puppet/application/apply.rb:379
238
238
  msgid "Only one file can be applied per run. Skipping %{files}"
239
239
  msgstr ""
240
240
 
@@ -250,47 +250,47 @@ msgstr ""
250
250
  msgid "Manage remote network devices"
251
251
  msgstr ""
252
252
 
253
- #: ../lib/puppet/application/device.rb:231
253
+ #: ../lib/puppet/application/device.rb:232
254
254
  msgid "resource command requires target"
255
255
  msgstr ""
256
256
 
257
- #: ../lib/puppet/application/device.rb:234
257
+ #: ../lib/puppet/application/device.rb:235
258
258
  msgid "facts command requires target"
259
259
  msgstr ""
260
260
 
261
- #: ../lib/puppet/application/device.rb:237
261
+ #: ../lib/puppet/application/device.rb:238
262
262
  msgid "missing argument: --target is required when using --apply"
263
263
  msgstr ""
264
264
 
265
- #: ../lib/puppet/application/device.rb:238
265
+ #: ../lib/puppet/application/device.rb:239
266
266
  msgid "%{file} does not exist, cannot apply"
267
267
  msgstr ""
268
268
 
269
- #: ../lib/puppet/application/device.rb:256
269
+ #: ../lib/puppet/application/device.rb:257
270
270
  msgid "Target device / certificate '%{target}' not found in %{config}"
271
271
  msgstr ""
272
272
 
273
- #: ../lib/puppet/application/device.rb:258
273
+ #: ../lib/puppet/application/device.rb:259
274
274
  msgid "No device found in %{config}"
275
275
  msgstr ""
276
276
 
277
- #: ../lib/puppet/application/device.rb:317
277
+ #: ../lib/puppet/application/device.rb:318
278
278
  msgid "retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}"
279
279
  msgstr ""
280
280
 
281
- #: ../lib/puppet/application/device.rb:332
281
+ #: ../lib/puppet/application/device.rb:333
282
282
  msgid "retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}"
283
283
  msgstr ""
284
284
 
285
- #: ../lib/puppet/application/device.rb:355
285
+ #: ../lib/puppet/application/device.rb:356
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:393 ../lib/puppet/application/resource.rb:196
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:394 ../lib/puppet/application/resource.rb:197
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:140
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:204
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:226
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
 
@@ -438,11 +438,11 @@ msgstr ""
438
438
  msgid "Run a puppet manifests as a script without compiling a catalog"
439
439
  msgstr ""
440
440
 
441
- #: ../lib/puppet/application/script.rb:125
441
+ #: ../lib/puppet/application/script.rb:126
442
442
  msgid "Bolt must be installed to use the script application"
443
443
  msgstr ""
444
444
 
445
- #: ../lib/puppet/application/script.rb:139
445
+ #: ../lib/puppet/application/script.rb:140
446
446
  msgid "Only one file can be used per run. Skipping %{files}"
447
447
  msgstr ""
448
448
 
@@ -450,59 +450,59 @@ msgstr ""
450
450
  msgid "Manage SSL keys and certificates for puppet SSL clients"
451
451
  msgstr ""
452
452
 
453
- #: ../lib/puppet/application/ssl.rb:103
453
+ #: ../lib/puppet/application/ssl.rb:106
454
454
  msgid "An action must be specified."
455
455
  msgstr ""
456
456
 
457
- #: ../lib/puppet/application/ssl.rb:126 ../lib/puppet/application/ssl.rb:133
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:144
461
+ #: ../lib/puppet/application/ssl.rb:148
462
462
  msgid "Completed SSL initialization"
463
463
  msgstr ""
464
464
 
465
- #: ../lib/puppet/application/ssl.rb:146
465
+ #: ../lib/puppet/application/ssl.rb:152
466
466
  msgid "Unknown action '%{action}'"
467
467
  msgstr ""
468
468
 
469
- #: ../lib/puppet/application/ssl.rb:154 ../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:157 ../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:167
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:170
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:172 ../lib/puppet/application/ssl.rb:175
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:183
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:187
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:200 ../lib/puppet/application/ssl.rb:203
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:232 ../lib/puppet/application/ssl.rb:235
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:239
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:262
513
+ #: ../lib/puppet/application/ssl.rb:274
514
514
  msgid "Removed %{label} %{path}"
515
515
  msgstr ""
516
516
 
@@ -587,44 +587,44 @@ msgstr ""
587
587
  msgid "Local environment: '%{local_env}' doesn't match server specified environment '%{catalog_env}', restarting agent run with environment '%{catalog_env}'"
588
588
  msgstr ""
589
589
 
590
- #: ../lib/puppet/configurer.rb:426
590
+ #: ../lib/puppet/configurer.rb:436
591
591
  msgid "Failed to apply catalog: %{detail}"
592
592
  msgstr ""
593
593
 
594
- #: ../lib/puppet/configurer.rb:455 ../lib/puppet/http/resolver/server_list.rb:67
594
+ #: ../lib/puppet/configurer.rb:465 ../lib/puppet/http/resolver/server_list.rb:68 ../lib/puppet/http/resolver/server_list.rb:72
595
595
  msgid "Puppet server %{host}:%{port} is unavailable: %{code} %{reason}"
596
596
  msgstr ""
597
597
 
598
598
  #. TRANSLATORS 'server_list' is the name of a setting and should not be translated
599
- #: ../lib/puppet/configurer.rb:459 ../lib/puppet/http/resolver/server_list.rb:70
599
+ #: ../lib/puppet/configurer.rb:469 ../lib/puppet/http/resolver/server_list.rb:77 ../lib/puppet/http/resolver/server_list.rb:80
600
600
  msgid "Unable to connect to server from server_list setting: %{detail}"
601
601
  msgstr ""
602
602
 
603
- #: ../lib/puppet/configurer.rb:470 ../lib/puppet/face/report.rb:47
603
+ #: ../lib/puppet/configurer.rb:480 ../lib/puppet/face/report.rb:47
604
604
  msgid "Could not send report: %{detail}"
605
605
  msgstr ""
606
606
 
607
- #: ../lib/puppet/configurer.rb:479
607
+ #: ../lib/puppet/configurer.rb:489
608
608
  msgid "Could not save last run local report: %{detail}"
609
609
  msgstr ""
610
610
 
611
- #: ../lib/puppet/configurer.rb:498
611
+ #: ../lib/puppet/configurer.rb:508
612
612
  msgid "Uploading facts for %{node} to %{server}"
613
613
  msgstr ""
614
614
 
615
- #: ../lib/puppet/configurer.rb:506
615
+ #: ../lib/puppet/configurer.rb:516
616
616
  msgid "Failed to submit facts: %{detail}"
617
617
  msgstr ""
618
618
 
619
- #: ../lib/puppet/configurer.rb:521
619
+ #: ../lib/puppet/configurer.rb:531
620
620
  msgid "Could not run command from %{setting}: %{detail}"
621
621
  msgstr ""
622
622
 
623
- #: ../lib/puppet/configurer.rb:539
623
+ #: ../lib/puppet/configurer.rb:549
624
624
  msgid "Could not retrieve catalog from cache: %{detail}"
625
625
  msgstr ""
626
626
 
627
- #: ../lib/puppet/configurer.rb:560
627
+ #: ../lib/puppet/configurer.rb:570
628
628
  msgid "Could not retrieve catalog from remote server: %{detail}"
629
629
  msgstr ""
630
630
 
@@ -692,47 +692,47 @@ msgstr ""
692
692
  msgid "a data type can only have one implementation"
693
693
  msgstr ""
694
694
 
695
- #: ../lib/puppet/defaults.rb:179
695
+ #: ../lib/puppet/defaults.rb:191
696
696
  msgid "Cannot disable unrecognized warning types '%{invalid}'."
697
697
  msgstr ""
698
698
 
699
- #: ../lib/puppet/defaults.rb:180
699
+ #: ../lib/puppet/defaults.rb:192
700
700
  msgid "Valid values are '%{values}'."
701
701
  msgstr ""
702
702
 
703
703
  #. TRANSLATORS 'data_binding_terminus' is a setting and should not be translated
704
- #: ../lib/puppet/defaults.rb:547
704
+ #: ../lib/puppet/defaults.rb:559
705
705
  msgid "Setting 'data_binding_terminus' is deprecated."
706
706
  msgstr ""
707
707
 
708
708
  #. TRANSLATORS 'hiera' should not be translated
709
- #: ../lib/puppet/defaults.rb:549
709
+ #: ../lib/puppet/defaults.rb:561
710
710
  msgid "Convert custom terminus to hiera 5 API."
711
711
  msgstr ""
712
712
 
713
713
  #. TRANSLATORS 'environment_data_provider' is a setting and should not be translated
714
- #: ../lib/puppet/defaults.rb:762
714
+ #: ../lib/puppet/defaults.rb:774
715
715
  msgid "Setting 'environment_data_provider' is deprecated."
716
716
  msgstr ""
717
717
 
718
- #: ../lib/puppet/defaults.rb:847
718
+ #: ../lib/puppet/defaults.rb:859
719
719
  msgid "Certificate names must be lower case"
720
720
  msgstr ""
721
721
 
722
- #: ../lib/puppet/defaults.rb:1042
722
+ #: ../lib/puppet/defaults.rb:1054
723
723
  msgid "Setting 'ssl_client_ca_auth' is deprecated."
724
724
  msgstr ""
725
725
 
726
- #: ../lib/puppet/defaults.rb:1121 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
726
+ #: ../lib/puppet/defaults.rb:1141 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
727
727
  msgid "Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'"
728
728
  msgstr ""
729
729
 
730
730
  #. TRANSLATORS 'pluginsync' is a setting and should not be translated
731
- #: ../lib/puppet/defaults.rb:1995
731
+ #: ../lib/puppet/defaults.rb:2017
732
732
  msgid "Setting 'pluginsync' is deprecated."
733
733
  msgstr ""
734
734
 
735
- #: ../lib/puppet/defaults.rb:2230
735
+ #: ../lib/puppet/defaults.rb:2252
736
736
  msgid "The 'func3x_check' setting is deprecated and will be removed in a future release."
737
737
  msgstr ""
738
738
 
@@ -778,7 +778,7 @@ msgstr ""
778
778
  msgid "no matching resources found"
779
779
  msgstr ""
780
780
 
781
- #: ../lib/puppet/face/config.rb:7 ../lib/puppet/face/epp.rb:8 ../lib/puppet/face/facts.rb:30 ../lib/puppet/face/generate.rb:7 ../lib/puppet/face/help.rb:9 ../lib/puppet/face/key.rb:5 ../lib/puppet/face/man.rb:8 ../lib/puppet/face/module.rb:9 ../lib/puppet/face/node.rb:4 ../lib/puppet/face/parser.rb:6 ../lib/puppet/face/plugin.rb:6 ../lib/puppet/face/report.rb:5 ../lib/puppet/face/resource.rb:5 ../lib/puppet/face/status.rb:5
781
+ #: ../lib/puppet/face/config.rb:7 ../lib/puppet/face/epp.rb:8 ../lib/puppet/face/facts.rb:22 ../lib/puppet/face/generate.rb:7 ../lib/puppet/face/help.rb:9 ../lib/puppet/face/key.rb:5 ../lib/puppet/face/man.rb:8 ../lib/puppet/face/module.rb:9 ../lib/puppet/face/node.rb:4 ../lib/puppet/face/parser.rb:6 ../lib/puppet/face/plugin.rb:6 ../lib/puppet/face/report.rb:5 ../lib/puppet/face/resource.rb:5 ../lib/puppet/face/status.rb:5
782
782
  msgid "Apache 2 license; see COPYING"
783
783
  msgstr ""
784
784
 
@@ -1015,34 +1015,86 @@ msgstr ""
1015
1015
  msgid "--values option must evaluate to a Hash or undef, got: '%{values_class}'"
1016
1016
  msgstr ""
1017
1017
 
1018
- #: ../lib/puppet/face/facts.rb:32
1018
+ #: ../lib/puppet/face/facts.rb:24
1019
1019
  msgid "Retrieve and store facts."
1020
1020
  msgstr ""
1021
1021
 
1022
- #: ../lib/puppet/face/facts.rb:40
1022
+ #: ../lib/puppet/face/facts.rb:32
1023
1023
  msgid "Retrieve a node's facts."
1024
1024
  msgstr ""
1025
1025
 
1026
- #: ../lib/puppet/face/facts.rb:41
1026
+ #: ../lib/puppet/face/facts.rb:33
1027
1027
  msgid "[<node_certname>]"
1028
1028
  msgstr ""
1029
1029
 
1030
- #: ../lib/puppet/face/facts.rb:64
1030
+ #: ../lib/puppet/face/facts.rb:56
1031
1031
  msgid "Upload local facts to the puppet master."
1032
1032
  msgstr ""
1033
1033
 
1034
- #: ../lib/puppet/face/facts.rb:106
1034
+ #: ../lib/puppet/face/facts.rb:98
1035
1035
  msgid "Uploading facts for '%{node}' to '%{server}'"
1036
1036
  msgstr ""
1037
1037
 
1038
- #: ../lib/puppet/face/facts.rb:116
1038
+ #: ../lib/puppet/face/facts.rb:108
1039
1039
  msgid "Compare Facter 3 output with Facter 4 output"
1040
1040
  msgstr ""
1041
1041
 
1042
- #: ../lib/puppet/face/facts.rb:145
1042
+ #: ../lib/puppet/face/facts.rb:122
1043
+ msgid "Render the different facts as structured."
1044
+ msgstr ""
1045
+
1046
+ #: ../lib/puppet/face/facts.rb:125
1047
+ msgid "<regex>"
1048
+ msgstr ""
1049
+
1050
+ #: ../lib/puppet/face/facts.rb:126
1051
+ msgid "Regex used to exclude specific facts from diff."
1052
+ msgstr ""
1053
+
1054
+ #: ../lib/puppet/face/facts.rb:151
1043
1055
  msgid "Already using Facter 4. To use `puppet facts diff` remove facterng from the .conf file or run `puppet config set facterng false`."
1044
1056
  msgstr ""
1045
1057
 
1058
+ #: ../lib/puppet/face/facts.rb:167
1059
+ msgid "Retrieve current node's facts."
1060
+ msgstr ""
1061
+
1062
+ #: ../lib/puppet/face/facts.rb:168
1063
+ msgid "[<facts>]"
1064
+ msgstr ""
1065
+
1066
+ #: ../lib/puppet/face/facts.rb:183 ../lib/puppet/face/facts.rb:188 ../lib/puppet/face/facts.rb:193 ../lib/puppet/face/module/changes.rb:21
1067
+ msgid "<path>"
1068
+ msgstr ""
1069
+
1070
+ #: ../lib/puppet/face/facts.rb:185
1071
+ msgid "The location of the config file for Facter."
1072
+ msgstr ""
1073
+
1074
+ #: ../lib/puppet/face/facts.rb:190
1075
+ msgid "The path to a directory that contains custom facts."
1076
+ msgstr ""
1077
+
1078
+ #: ../lib/puppet/face/facts.rb:195
1079
+ msgid "The path to a directory that contains external facts."
1080
+ msgstr ""
1081
+
1082
+ #: ../lib/puppet/face/facts.rb:199
1083
+ msgid "Disable fact blocking mechanism."
1084
+ msgstr ""
1085
+
1086
+ #: ../lib/puppet/face/facts.rb:203
1087
+ msgid "Disable fact caching mechanism."
1088
+ msgstr ""
1089
+
1090
+ #: ../lib/puppet/face/facts.rb:207
1091
+ msgid "Show legacy facts when querying all facts."
1092
+ msgstr ""
1093
+
1094
+ #: ../lib/puppet/face/facts.rb:211
1095
+ msgid "Show only the value when the action is called with a single query"
1096
+ msgstr ""
1097
+
1046
1098
  #: ../lib/puppet/face/generate.rb:9
1047
1099
  msgid "Generates Puppet code from Ruby definitions."
1048
1100
  msgstr ""
@@ -1206,10 +1258,6 @@ msgstr ""
1206
1258
  msgid "Array of strings representing paths of modified files."
1207
1259
  msgstr ""
1208
1260
 
1209
- #: ../lib/puppet/face/module/changes.rb:21
1210
- msgid "<path>"
1211
- msgstr ""
1212
-
1213
1261
  #: ../lib/puppet/face/module/changes.rb:27
1214
1262
  msgid "Could not find a valid module at %{path}"
1215
1263
  msgstr ""
@@ -1702,21 +1750,29 @@ msgstr ""
1702
1750
  msgid "Fileset paths must be fully qualified: %{path}"
1703
1751
  msgstr ""
1704
1752
 
1705
- #: ../lib/puppet/file_serving/fileset.rb:50
1753
+ #: ../lib/puppet/file_serving/fileset.rb:51
1706
1754
  msgid "Fileset paths must exist"
1707
1755
  msgstr ""
1708
1756
 
1709
1757
  #. TRANSLATORS "recurse" and "recurselimit" are parameter names and should not be translated
1710
- #: ../lib/puppet/file_serving/fileset.rb:52
1758
+ #: ../lib/puppet/file_serving/fileset.rb:53
1711
1759
  msgid "Fileset recurse parameter must not be a number anymore, please use recurselimit"
1712
1760
  msgstr ""
1713
1761
 
1762
+ #: ../lib/puppet/file_serving/fileset.rb:69
1763
+ msgid "The directory '%{path}' contains %{entries} entries, which exceeds the limit of %{munged_max_files} specified by the max_files parameter for this resource. The limit may be increased, but be aware that large number of file resources can result in excessive resource consumption and degraded performance. Consider using an alternate method to manage large directory trees"
1764
+ msgstr ""
1765
+
1766
+ #: ../lib/puppet/file_serving/fileset.rb:71
1767
+ msgid "The directory '%{path}' contains %{entries} entries, which exceeds the default soft limit %{soft_max_files} and may cause excessive resource consumption and degraded performance. To remove this warning set a value for `max_files` parameter or consider using an alternate method to manage large directory trees"
1768
+ msgstr ""
1769
+
1714
1770
  #. TRANSLATORS ":links" is a parameter name and should not be translated
1715
- #: ../lib/puppet/file_serving/fileset.rb:80
1771
+ #: ../lib/puppet/file_serving/fileset.rb:92
1716
1772
  msgid "Invalid :links value '%{links}'"
1717
1773
  msgstr ""
1718
1774
 
1719
- #: ../lib/puppet/file_serving/fileset.rb:93
1775
+ #: ../lib/puppet/file_serving/fileset.rb:105
1720
1776
  msgid "Invalid option '%{option}'"
1721
1777
  msgstr ""
1722
1778
 
@@ -1844,11 +1900,11 @@ msgstr ""
1844
1900
  msgid "%{dest} already exists and the :force option was not specified"
1845
1901
  msgstr ""
1846
1902
 
1847
- #: ../lib/puppet/file_system/windows.rb:202
1903
+ #: ../lib/puppet/file_system/windows.rb:204
1848
1904
  msgid "This version of Windows does not support symlinks. Windows Vista / 2008 or higher is required."
1849
1905
  msgstr ""
1850
1906
 
1851
- #: ../lib/puppet/file_system/windows.rb:207
1907
+ #: ../lib/puppet/file_system/windows.rb:209
1852
1908
  msgid "The current user does not have the necessary permission to manage symlinks."
1853
1909
  msgstr ""
1854
1910
 
@@ -2080,7 +2136,7 @@ msgstr ""
2080
2136
  msgid "The given data requires an Integer index at %{walked_path}, got '%{type}'"
2081
2137
  msgstr ""
2082
2138
 
2083
- #: ../lib/puppet/functions/empty.rb:74
2139
+ #: ../lib/puppet/functions/empty.rb:82
2084
2140
  msgid "Calling function empty() with %{arg_type} value is deprecated."
2085
2141
  msgstr ""
2086
2142
 
@@ -2170,7 +2226,7 @@ msgstr ""
2170
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}"
2171
2227
  msgstr ""
2172
2228
 
2173
- #: ../lib/puppet/functions/strftime.rb:207
2229
+ #: ../lib/puppet/functions/strftime.rb:208
2174
2230
  msgid "The argument signature (String format, [String timezone]) is deprecated for #strftime. See #strftime documentation and Timespan type for more info"
2175
2231
  msgstr ""
2176
2232
 
@@ -2288,6 +2344,10 @@ msgstr ""
2288
2344
  msgid "Location URI is invalid: %{detail}"
2289
2345
  msgstr ""
2290
2346
 
2347
+ #: ../lib/puppet/http/resolver/server_list.rb:70 ../lib/puppet/http/resolver/server_list.rb:78
2348
+ msgid "Trying with next server from server_list."
2349
+ msgstr ""
2350
+
2291
2351
  #: ../lib/puppet/http/retry_after_handler.rb:83
2292
2352
  msgid "Failed to parse Retry-After header '%{retry_after}' as an integer or RFC 2822 date"
2293
2353
  msgstr ""
@@ -2362,87 +2422,87 @@ msgstr ""
2362
2422
  msgid "Inlining file metadata"
2363
2423
  msgstr ""
2364
2424
 
2365
- #: ../lib/puppet/indirector/catalog/compiler.rb:259
2425
+ #: ../lib/puppet/indirector/catalog/compiler.rb:260
2366
2426
  msgid "Could not get metadata for %{resource}"
2367
2427
  msgstr ""
2368
2428
 
2369
- #: ../lib/puppet/indirector/catalog/compiler.rb:280
2429
+ #: ../lib/puppet/indirector/catalog/compiler.rb:281
2370
2430
  msgid "Unable to find a common checksum type between agent '%{agent_type}' and master '%{master_type}'."
2371
2431
  msgstr ""
2372
2432
 
2373
- #: ../lib/puppet/indirector/catalog/compiler.rb:287
2433
+ #: ../lib/puppet/indirector/catalog/compiler.rb:288
2374
2434
  msgid "Compiled static catalog for %{node} in environment %{environment} in %%{seconds} seconds"
2375
2435
  msgstr ""
2376
2436
 
2377
- #: ../lib/puppet/indirector/catalog/compiler.rb:288
2437
+ #: ../lib/puppet/indirector/catalog/compiler.rb:289
2378
2438
  msgid "Compiled static catalog for %{node} in environment %{environment}"
2379
2439
  msgstr ""
2380
2440
 
2381
- #: ../lib/puppet/indirector/catalog/compiler.rb:290
2441
+ #: ../lib/puppet/indirector/catalog/compiler.rb:291
2382
2442
  msgid "Compiled static catalog for %{node} in %%{seconds} seconds"
2383
2443
  msgstr ""
2384
2444
 
2385
- #: ../lib/puppet/indirector/catalog/compiler.rb:291
2445
+ #: ../lib/puppet/indirector/catalog/compiler.rb:292
2386
2446
  msgid "Compiled static catalog for %{node}"
2387
2447
  msgstr ""
2388
2448
 
2389
- #: ../lib/puppet/indirector/catalog/compiler.rb:296
2449
+ #: ../lib/puppet/indirector/catalog/compiler.rb:297
2390
2450
  msgid "Compiled catalog for %{node} in environment %{environment} in %%{seconds} seconds"
2391
2451
  msgstr ""
2392
2452
 
2393
- #: ../lib/puppet/indirector/catalog/compiler.rb:297
2453
+ #: ../lib/puppet/indirector/catalog/compiler.rb:298
2394
2454
  msgid "Compiled catalog for %{node} in environment %{environment}"
2395
2455
  msgstr ""
2396
2456
 
2397
- #: ../lib/puppet/indirector/catalog/compiler.rb:299
2457
+ #: ../lib/puppet/indirector/catalog/compiler.rb:300
2398
2458
  msgid "Compiled catalog for %{node} in %%{seconds} seconds"
2399
2459
  msgstr ""
2400
2460
 
2401
- #: ../lib/puppet/indirector/catalog/compiler.rb:300
2461
+ #: ../lib/puppet/indirector/catalog/compiler.rb:301
2402
2462
  msgid "Compiled catalog for %{node}"
2403
2463
  msgstr ""
2404
2464
 
2405
2465
  #. TRANSLATORS Inlined refers to adding additional metadata
2406
- #: ../lib/puppet/indirector/catalog/compiler.rb:322
2466
+ #: ../lib/puppet/indirector/catalog/compiler.rb:323
2407
2467
  msgid "Inlined resource metadata into static catalog for %{node} in environment %{environment} in %%{seconds} seconds"
2408
2468
  msgstr ""
2409
2469
 
2410
2470
  #. TRANSLATORS Inlined refers to adding additional metadata
2411
- #: ../lib/puppet/indirector/catalog/compiler.rb:324
2471
+ #: ../lib/puppet/indirector/catalog/compiler.rb:325
2412
2472
  msgid "Inlined resource metadata into static catalog for %{node} in environment %{environment}"
2413
2473
  msgstr ""
2414
2474
 
2415
2475
  #. TRANSLATORS Inlined refers to adding additional metadata
2416
- #: ../lib/puppet/indirector/catalog/compiler.rb:327
2476
+ #: ../lib/puppet/indirector/catalog/compiler.rb:328
2417
2477
  msgid "Inlined resource metadata into static catalog for %{node} in %%{seconds} seconds"
2418
2478
  msgstr ""
2419
2479
 
2420
2480
  #. TRANSLATORS Inlined refers to adding additional metadata
2421
- #: ../lib/puppet/indirector/catalog/compiler.rb:329
2481
+ #: ../lib/puppet/indirector/catalog/compiler.rb:330
2422
2482
  msgid "Inlined resource metadata into static catalog for %{node}"
2423
2483
  msgstr ""
2424
2484
 
2425
- #: ../lib/puppet/indirector/catalog/compiler.rb:346
2485
+ #: ../lib/puppet/indirector/catalog/compiler.rb:347
2426
2486
  msgid "Found node information"
2427
2487
  msgstr ""
2428
2488
 
2429
- #: ../lib/puppet/indirector/catalog/compiler.rb:354
2489
+ #: ../lib/puppet/indirector/catalog/compiler.rb:355
2430
2490
  msgid "Failed when searching for node %{name}: %{detail}"
2431
2491
  msgstr ""
2432
2492
 
2433
- #: ../lib/puppet/indirector/catalog/compiler.rb:374
2493
+ #: ../lib/puppet/indirector/catalog/compiler.rb:375
2434
2494
  msgid "Invalid option use_node for a remote request"
2435
2495
  msgstr ""
2436
2496
 
2437
- #: ../lib/puppet/indirector/catalog/compiler.rb:393
2497
+ #: ../lib/puppet/indirector/catalog/compiler.rb:394
2438
2498
  msgid "Could not find node '%{name}'; cannot compile"
2439
2499
  msgstr ""
2440
2500
 
2441
- #: ../lib/puppet/indirector/catalog/compiler.rb:426
2501
+ #: ../lib/puppet/indirector/catalog/compiler.rb:427
2442
2502
  msgid "Could not retrieve fact servername"
2443
2503
  msgstr ""
2444
2504
 
2445
- #: ../lib/puppet/indirector/catalog/compiler.rb:435
2505
+ #: ../lib/puppet/indirector/catalog/compiler.rb:436
2446
2506
  msgid "Could not retrieve either serverip or serverip6 fact"
2447
2507
  msgstr ""
2448
2508
 
@@ -2546,7 +2606,11 @@ msgstr ""
2546
2606
  msgid "You cannot save facts to the code store; it is only used for getting facts from Facter"
2547
2607
  msgstr ""
2548
2608
 
2549
- #: ../lib/puppet/indirector/facts/facter.rb:56
2609
+ #: ../lib/puppet/indirector/facts/facter.rb:36
2610
+ msgid "puppet facts show requires version 4.0.40 or greater of Facter."
2611
+ msgstr ""
2612
+
2613
+ #: ../lib/puppet/indirector/facts/facter.rb:62
2550
2614
  msgid "Loading facts"
2551
2615
  msgstr ""
2552
2616
 
@@ -2833,7 +2897,7 @@ msgstr ""
2833
2897
  msgid "Could not understand URL %{key}: %{detail}"
2834
2898
  msgstr ""
2835
2899
 
2836
- #: ../lib/puppet/indirector/resource/ral.rb:59
2900
+ #: ../lib/puppet/indirector/resource/ral.rb:64
2837
2901
  msgid "Could not find type %{request_type}"
2838
2902
  msgstr ""
2839
2903
 
@@ -3051,43 +3115,43 @@ msgid "Face summary should be a single line; put the long text in 'description'
3051
3115
  msgstr ""
3052
3116
 
3053
3117
  #. TRANSLATORS 'author' is an attribute name and should not be translated
3054
- #: ../lib/puppet/interface/documentation.rb:205
3118
+ #: ../lib/puppet/interface/documentation.rb:206
3055
3119
  msgid "author must be a string; use multiple statements for multiple authors"
3056
3120
  msgstr ""
3057
3121
 
3058
3122
  #. TRANSLATORS 'author' is an attribute name and should not be translated
3059
- #: ../lib/puppet/interface/documentation.rb:210
3123
+ #: ../lib/puppet/interface/documentation.rb:211
3060
3124
  msgid "author should be a single line; use multiple statements for multiple authors"
3061
3125
  msgstr ""
3062
3126
 
3063
3127
  #. TRANSLATORS 'author' is an attribute name and should not be translated
3064
- #: ../lib/puppet/interface/documentation.rb:230
3128
+ #: ../lib/puppet/interface/documentation.rb:231
3065
3129
  msgid "author should be a single line; use multiple statements"
3066
3130
  msgstr ""
3067
3131
 
3068
3132
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3069
- #: ../lib/puppet/interface/documentation.rb:251
3133
+ #: ../lib/puppet/interface/documentation.rb:252
3070
3134
  msgid "copyright takes the owners names, then the years covered"
3071
3135
  msgstr ""
3072
3136
 
3073
3137
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3074
- #: ../lib/puppet/interface/documentation.rb:275
3138
+ #: ../lib/puppet/interface/documentation.rb:276
3075
3139
  msgid "copyright owner must be a string or an array of strings"
3076
3140
  msgstr ""
3077
3141
 
3078
3142
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3079
- #: ../lib/puppet/interface/documentation.rb:312
3143
+ #: ../lib/puppet/interface/documentation.rb:313
3080
3144
  msgid "copyright with a year %{value} is very strange; did you accidentally add or subtract two years?"
3081
3145
  msgstr ""
3082
3146
 
3083
3147
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3084
3148
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3085
- #: ../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
3086
3150
  msgid "%{value} is not a good copyright year or range"
3087
3151
  msgstr ""
3088
3152
 
3089
3153
  #. TRANSLATORS 'copyright' is an attribute name and should not be translated
3090
- #: ../lib/puppet/interface/documentation.rb:352
3154
+ #: ../lib/puppet/interface/documentation.rb:353
3091
3155
  msgid "%{value} is not a good copyright year, set, or range"
3092
3156
  msgstr ""
3093
3157
 
@@ -3348,19 +3412,19 @@ msgstr ""
3348
3412
  msgid "No file containing checksums found."
3349
3413
  msgstr ""
3350
3414
 
3351
- #: ../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
3352
3416
  msgid "Downloading from %{host} ..."
3353
3417
  msgstr ""
3354
3418
 
3355
- #: ../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
3356
3420
  msgid "Resolving dependencies ..."
3357
3421
  msgstr ""
3358
3422
 
3359
- #: ../lib/puppet/module_tool/applications/installer.rb:208
3423
+ #: ../lib/puppet/module_tool/applications/installer.rb:212
3360
3424
  msgid "Preparing to install ..."
3361
3425
  msgstr ""
3362
3426
 
3363
- #: ../lib/puppet/module_tool/applications/installer.rb:211
3427
+ #: ../lib/puppet/module_tool/applications/installer.rb:215
3364
3428
  msgid "Installing -- do not interrupt ..."
3365
3429
  msgstr ""
3366
3430
 
@@ -3483,7 +3547,7 @@ msgstr ""
3483
3547
  msgid "Could not %{action} '%{module_name}' (%{version}); no version satisfies all dependencies"
3484
3548
  msgstr ""
3485
3549
 
3486
- #: ../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
3487
3551
  msgid "Could not %{action} module '%{module_name}' (%{version})"
3488
3552
  msgstr ""
3489
3553
 
@@ -3573,68 +3637,80 @@ msgid " No version of '%{module_name}' will satisfy dependencies"
3573
3637
  msgstr ""
3574
3638
 
3575
3639
  #: ../lib/puppet/module_tool/errors/shared.rb:135
3576
- msgid "Could not %{action} '%{module_name}'; module is not installed"
3640
+ msgid "Could not %{action} '%{module_name}', did you mean '%{suggestion}'?"
3577
3641
  msgstr ""
3578
3642
 
3579
- #: ../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
3580
3644
  msgid "Could not %{action} module '%{module_name}'"
3581
3645
  msgstr ""
3582
3646
 
3583
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
3584
3660
  msgid " Module '%{module_name}' is not installed"
3585
3661
  msgstr ""
3586
3662
 
3587
3663
  #. TRANSLATORS `puppet module %{action} %{suggestion}` is a command line and should not be translated
3588
- #: ../lib/puppet/module_tool/errors/shared.rb:144
3664
+ #: ../lib/puppet/module_tool/errors/shared.rb:161
3589
3665
  msgid " You may have meant `puppet module %{action} %{suggestion}`"
3590
3666
  msgstr ""
3591
3667
 
3592
3668
  #. TRANSLATORS `puppet module install` is a command line and should not be translated
3593
- #: ../lib/puppet/module_tool/errors/shared.rb:147
3669
+ #: ../lib/puppet/module_tool/errors/shared.rb:164
3594
3670
  msgid " Use `puppet module install` to install this module"
3595
3671
  msgstr ""
3596
3672
 
3597
3673
  #. TRANSLATORS "module path" refers to a set of directories where modules may be installed
3598
- #: ../lib/puppet/module_tool/errors/shared.rb:158
3674
+ #: ../lib/puppet/module_tool/errors/shared.rb:175
3599
3675
  msgid "Could not %{action} '%{module_name}'; module appears in multiple places in the module path"
3600
3676
  msgstr ""
3601
3677
 
3602
- #: ../lib/puppet/module_tool/errors/shared.rb:164
3678
+ #: ../lib/puppet/module_tool/errors/shared.rb:181
3603
3679
  msgid " Module '%{module_name}' appears multiple places in the module path"
3604
3680
  msgstr ""
3605
3681
 
3606
3682
  #. TRANSLATORS This is repeats as separate lines as a list under "Module '%{module_name}' appears multiple places in the module path"
3607
- #: ../lib/puppet/module_tool/errors/shared.rb:167
3683
+ #: ../lib/puppet/module_tool/errors/shared.rb:184
3608
3684
  msgid " '%{module_name}' (%{version}) was found in %{path}"
3609
3685
  msgstr ""
3610
3686
 
3611
3687
  #. TRANSLATORS `--modulepath` is command line option and should not be translated
3612
- #: ../lib/puppet/module_tool/errors/shared.rb:170
3688
+ #: ../lib/puppet/module_tool/errors/shared.rb:187
3613
3689
  msgid " Use the `--modulepath` option to limit the search to specific directories"
3614
3690
  msgstr ""
3615
3691
 
3616
- #: ../lib/puppet/module_tool/errors/shared.rb:181
3692
+ #: ../lib/puppet/module_tool/errors/shared.rb:198
3617
3693
  msgid "Could not %{action} '%{module_name}'; module has had changes made locally"
3618
3694
  msgstr ""
3619
3695
 
3620
- #: ../lib/puppet/module_tool/errors/shared.rb:187
3696
+ #: ../lib/puppet/module_tool/errors/shared.rb:204
3621
3697
  msgid " Installed module has had changes made locally"
3622
3698
  msgstr ""
3623
3699
 
3624
3700
  #. TRANSLATORS `puppet module %{action} --ignore-changes` is a command line and should not be translated
3625
- #: ../lib/puppet/module_tool/errors/shared.rb:189
3701
+ #: ../lib/puppet/module_tool/errors/shared.rb:206
3626
3702
  msgid " Use `puppet module %{action} --ignore-changes` to %{action} this module anyway"
3627
3703
  msgstr ""
3628
3704
 
3629
- #: ../lib/puppet/module_tool/errors/shared.rb:199
3705
+ #: ../lib/puppet/module_tool/errors/shared.rb:216
3630
3706
  msgid "Could not %{action} '%{module_name}'; %{error}"
3631
3707
  msgstr ""
3632
3708
 
3633
- #: ../lib/puppet/module_tool/errors/shared.rb:205
3709
+ #: ../lib/puppet/module_tool/errors/shared.rb:222
3634
3710
  msgid " Failure trying to parse metadata"
3635
3711
  msgstr ""
3636
3712
 
3637
- #: ../lib/puppet/module_tool/errors/shared.rb:206
3713
+ #: ../lib/puppet/module_tool/errors/shared.rb:223
3638
3714
  msgid " Original message was: %{message}"
3639
3715
  msgstr ""
3640
3716
 
@@ -6652,15 +6728,15 @@ msgstr ""
6652
6728
  msgid "'%{exe}' is not qualified and no path was specified. Please qualify the command or specify a path."
6653
6729
  msgstr ""
6654
6730
 
6655
- #: ../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
6656
6732
  msgid "Could not find command '%{exe}'"
6657
6733
  msgstr ""
6658
6734
 
6659
- #: ../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
6660
6736
  msgid "'%{exe}' is a %{klass}, not a file"
6661
6737
  msgstr ""
6662
6738
 
6663
- #: ../lib/puppet/provider/exec/posix.rb:25
6739
+ #: ../lib/puppet/provider/exec/posix.rb:37
6664
6740
  msgid "'%{exe}' is not executable"
6665
6741
  msgstr ""
6666
6742
 
@@ -6824,26 +6900,30 @@ msgstr ""
6824
6900
  msgid "Mac OS X packages must specify a package source"
6825
6901
  msgstr ""
6826
6902
 
6827
- #: ../lib/puppet/provider/package/apt.rb:85
6903
+ #: ../lib/puppet/provider/package/apt.rb:89
6828
6904
  msgid "/etc/apt/sources.list contains a cdrom source; not installing. Use 'allowcdrom' to override this failure."
6829
6905
  msgstr ""
6830
6906
 
6831
- #: ../lib/puppet/provider/package/apt.rb:167 ../lib/puppet/provider/package/fink.rb:55
6907
+ #: ../lib/puppet/provider/package/apt.rb:172 ../lib/puppet/provider/package/aptitude.rb:21 ../lib/puppet/provider/package/ports.rb:20 ../lib/puppet/provider/package/portupgrade.rb:94 ../lib/puppet/provider/package/portupgrade.rb:152 ../lib/puppet/provider/package/rug.rb:28 ../lib/puppet/provider/package/up2date.rb:17 ../lib/puppet/provider/package/yum.rb:312 ../lib/puppet/provider/package/zypper.rb:146
6908
+ msgid "Could not find package %{name}"
6909
+ msgstr ""
6910
+
6911
+ #: ../lib/puppet/provider/package/apt.rb:176 ../lib/puppet/provider/package/yum.rb:317
6912
+ msgid "Failed to update to version %{should}, got version %{version} instead"
6913
+ msgstr ""
6914
+
6915
+ #: ../lib/puppet/provider/package/apt.rb:189 ../lib/puppet/provider/package/fink.rb:55
6832
6916
  msgid "Could not find latest version"
6833
6917
  msgstr ""
6834
6918
 
6835
- #: ../lib/puppet/provider/package/apt.rb:178 ../lib/puppet/provider/package/fink.rb:66
6919
+ #: ../lib/puppet/provider/package/apt.rb:200 ../lib/puppet/provider/package/fink.rb:66
6836
6920
  msgid "Preseeding %{response} to debconf-set-selections"
6837
6921
  msgstr ""
6838
6922
 
6839
- #: ../lib/puppet/provider/package/apt.rb:182 ../lib/puppet/provider/package/fink.rb:70
6923
+ #: ../lib/puppet/provider/package/apt.rb:204 ../lib/puppet/provider/package/fink.rb:70
6840
6924
  msgid "No responsefile specified or non existent, not preseeding anything"
6841
6925
  msgstr ""
6842
6926
 
6843
- #: ../lib/puppet/provider/package/aptitude.rb:21 ../lib/puppet/provider/package/ports.rb:20 ../lib/puppet/provider/package/portupgrade.rb:94 ../lib/puppet/provider/package/portupgrade.rb:152 ../lib/puppet/provider/package/rug.rb:28 ../lib/puppet/provider/package/up2date.rb:17 ../lib/puppet/provider/package/yum.rb:312 ../lib/puppet/provider/package/zypper.rb:146
6844
- msgid "Could not find package %{name}"
6845
- msgstr ""
6846
-
6847
6927
  #: ../lib/puppet/provider/package/aptrpm.rb:53
6848
6928
  msgid "Could not match version '%{version}'"
6849
6929
  msgstr ""
@@ -6936,31 +7016,31 @@ msgstr ""
6936
7016
  msgid "NIM package provider is unable to downgrade packages"
6937
7017
  msgstr ""
6938
7018
 
6939
- #: ../lib/puppet/provider/package/nim.rb:212
7019
+ #: ../lib/puppet/provider/package/nim.rb:217
6940
7020
  msgid ""
6941
7021
  "Unable to parse output from nimclient showres: line does not match expected package header format:\n"
6942
7022
  "'%{line}'"
6943
7023
  msgstr ""
6944
7024
 
6945
- #: ../lib/puppet/provider/package/nim.rb:219
7025
+ #: ../lib/puppet/provider/package/nim.rb:224
6946
7026
  msgid ""
6947
7027
  "Unable to parse output from nimclient showres: package string does not match expected installp package string format:\n"
6948
7028
  "'%{package_string}'"
6949
7029
  msgstr ""
6950
7030
 
6951
- #: ../lib/puppet/provider/package/nim.rb:229
7031
+ #: ../lib/puppet/provider/package/nim.rb:234
6952
7032
  msgid ""
6953
7033
  "Unable to parse output from nimclient showres: package string does not match expected rpm package string format:\n"
6954
7034
  "'%{package_string}'"
6955
7035
  msgstr ""
6956
7036
 
6957
- #: ../lib/puppet/provider/package/nim.rb:239
7037
+ #: ../lib/puppet/provider/package/nim.rb:244
6958
7038
  msgid ""
6959
7039
  "Unable to parse output from nimclient showres: line does not match expected package line format:\n"
6960
7040
  "'%{line}'"
6961
7041
  msgstr ""
6962
7042
 
6963
- #: ../lib/puppet/provider/package/nim.rb:251
7043
+ #: ../lib/puppet/provider/package/nim.rb:256
6964
7044
  msgid ""
6965
7045
  "Unrecognized package type specifier: '%{package_type_flag}' in package line:\n"
6966
7046
  "'%{line}'"
@@ -7179,10 +7259,6 @@ msgstr ""
7179
7259
  msgid "Could not find package %{wanted}"
7180
7260
  msgstr ""
7181
7261
 
7182
- #: ../lib/puppet/provider/package/yum.rb:317
7183
- msgid "Failed to update to version %{should}, got version %{version} instead"
7184
- msgstr ""
7185
-
7186
7262
  #: ../lib/puppet/provider/package_targetable.rb:56
7187
7263
  msgid "Provider %{name} package command is not functional on this host"
7188
7264
  msgstr ""
@@ -7199,19 +7275,19 @@ msgstr ""
7199
7275
  msgid "Failed to read %{target}'s records when prefetching them. Reason: %{detail}"
7200
7276
  msgstr ""
7201
7277
 
7202
- #: ../lib/puppet/provider/parsedfile.rb:291
7203
- 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"
7204
7280
  msgstr ""
7205
7281
 
7206
- #: ../lib/puppet/provider/parsedfile.rb:305
7207
- 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"
7208
7284
  msgstr ""
7209
7285
 
7210
- #: ../lib/puppet/provider/parsedfile.rb:378
7286
+ #: ../lib/puppet/provider/parsedfile.rb:381
7211
7287
  msgid "Parsed Providers must define a default target"
7212
7288
  msgstr ""
7213
7289
 
7214
- #: ../lib/puppet/provider/parsedfile.rb:469
7290
+ #: ../lib/puppet/provider/parsedfile.rb:472
7215
7291
  msgid "Somehow got told to prefetch with no resource set"
7216
7292
  msgstr ""
7217
7293
 
@@ -7669,49 +7745,57 @@ msgstr ""
7669
7745
  msgid "Invalid setting type '%{type}'"
7670
7746
  msgstr ""
7671
7747
 
7672
- #: ../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
7673
7757
  msgid "Unknown searchpath case: %{source_type} for the %{source} settings path element."
7674
7758
  msgstr ""
7675
7759
 
7676
- #: ../lib/puppet/settings.rb:978
7760
+ #: ../lib/puppet/settings.rb:1001
7677
7761
  msgid "setting definition for '%{name}' is not a hash!"
7678
7762
  msgstr ""
7679
7763
 
7680
- #: ../lib/puppet/settings.rb:983
7764
+ #: ../lib/puppet/settings.rb:1006
7681
7765
  msgid "Setting %{name} is already defined"
7682
7766
  msgstr ""
7683
7767
 
7684
- #: ../lib/puppet/settings.rb:989
7768
+ #: ../lib/puppet/settings.rb:1012
7685
7769
  msgid "Setting %{name} is already using short name '%{short}'"
7686
7770
  msgstr ""
7687
7771
 
7688
- #: ../lib/puppet/settings.rb:1253
7772
+ #: ../lib/puppet/settings.rb:1276
7689
7773
  msgid "Setting %{name} is deprecated."
7690
7774
  msgstr ""
7691
7775
 
7692
7776
  #. TRANSLATORS 'puppet.conf' is a file name and should not be translated
7693
- #: ../lib/puppet/settings.rb:1258
7777
+ #: ../lib/puppet/settings.rb:1281
7694
7778
  msgid "Setting %{name} is deprecated in puppet.conf."
7695
7779
  msgstr ""
7696
7780
 
7697
- #: ../lib/puppet/settings.rb:1435
7781
+ #: ../lib/puppet/settings.rb:1468
7698
7782
  msgid "Error converting value for param '%{name}': %{detail}"
7699
7783
  msgstr ""
7700
7784
 
7701
- #: ../lib/puppet/settings.rb:1459
7785
+ #: ../lib/puppet/settings.rb:1492
7702
7786
  msgid "Could not find value for %{expression}"
7703
7787
  msgstr ""
7704
7788
 
7705
7789
  #. TRANSLATORS '$environment' is a Puppet specific variable and should not be translated
7706
- #: ../lib/puppet/settings.rb:1469
7790
+ #: ../lib/puppet/settings.rb:1502
7707
7791
  msgid "You cannot interpolate $environment within '%{setting_name}' when using directory environments."
7708
7792
  msgstr ""
7709
7793
 
7710
- #: ../lib/puppet/settings.rb:1470
7794
+ #: ../lib/puppet/settings.rb:1503
7711
7795
  msgid "Its value will remain %{value}."
7712
7796
  msgstr ""
7713
7797
 
7714
- #: ../lib/puppet/settings.rb:1501
7798
+ #: ../lib/puppet/settings.rb:1534
7715
7799
  msgid "Attempt to assign a value to unknown setting %{name}"
7716
7800
  msgstr ""
7717
7801
 
@@ -7805,19 +7889,19 @@ msgid "Invalid duration format '%{value}' for parameter: %{name}"
7805
7889
  msgstr ""
7806
7890
 
7807
7891
  #. TRANSLATORS 'disable_per_environment_manifest' is a setting and 'environment.conf' is a file name and should not be translated
7808
- #: ../lib/puppet/settings/environment_conf.rb:69
7892
+ #: ../lib/puppet/settings/environment_conf.rb:70
7809
7893
  msgid "The 'disable_per_environment_manifest' setting is true, but the environment located at %{path_to_env} has a manifest setting in its environment.conf of '%{environment_conf}' which does not match the default_manifest setting '%{puppet_conf}'."
7810
7894
  msgstr ""
7811
7895
 
7812
- #: ../lib/puppet/settings/environment_conf.rb:71
7896
+ #: ../lib/puppet/settings/environment_conf.rb:72
7813
7897
  msgid "If this environment is expecting to find modules in '%{environment_conf}', they will not be available!"
7814
7898
  msgstr ""
7815
7899
 
7816
- #: ../lib/puppet/settings/environment_conf.rb:141
7900
+ #: ../lib/puppet/settings/environment_conf.rb:142
7817
7901
  msgid "Invalid sections in environment.conf at '%{path_to_conf_file}'. Environment conf may not have sections. The following sections are being ignored: '%{sections}'"
7818
7902
  msgstr ""
7819
7903
 
7820
- #: ../lib/puppet/settings/environment_conf.rb:153
7904
+ #: ../lib/puppet/settings/environment_conf.rb:154
7821
7905
  msgid "Invalid settings in environment.conf at '%{path_to_conf_file}'. The following unknown setting(s) are being ignored: %{ignored_settings}"
7822
7906
  msgstr ""
7823
7907
 
@@ -8598,56 +8682,56 @@ msgstr ""
8598
8682
  msgid "'%{cmd}' returned %{status} instead of one of [%{expected}]"
8599
8683
  msgstr ""
8600
8684
 
8601
- #: ../lib/puppet/type/exec.rb:204
8602
- 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}"
8603
8687
  msgstr ""
8604
8688
 
8605
- #: ../lib/puppet/type/exec.rb:236
8689
+ #: ../lib/puppet/type/exec.rb:238
8606
8690
  msgid "Unable to execute commands as other users on Windows"
8607
8691
  msgstr ""
8608
8692
 
8609
- #: ../lib/puppet/type/exec.rb:238
8693
+ #: ../lib/puppet/type/exec.rb:240
8610
8694
  msgid "Only root can execute commands as other users"
8611
8695
  msgstr ""
8612
8696
 
8613
- #: ../lib/puppet/type/exec.rb:294
8697
+ #: ../lib/puppet/type/exec.rb:296
8614
8698
  msgid "Invalid environment setting '%{value}'"
8615
8699
  msgstr ""
8616
8700
 
8617
- #: ../lib/puppet/type/exec.rb:307
8701
+ #: ../lib/puppet/type/exec.rb:309
8618
8702
  msgid "The umask specification is invalid: %{value}"
8619
8703
  msgstr ""
8620
8704
 
8621
- #: ../lib/puppet/type/exec.rb:323
8705
+ #: ../lib/puppet/type/exec.rb:325
8622
8706
  msgid "The timeout must be a number."
8623
8707
  msgstr ""
8624
8708
 
8625
- #: ../lib/puppet/type/exec.rb:340
8709
+ #: ../lib/puppet/type/exec.rb:342
8626
8710
  msgid "Tries must be an integer"
8627
8711
  msgstr ""
8628
8712
 
8629
- #: ../lib/puppet/type/exec.rb:344
8713
+ #: ../lib/puppet/type/exec.rb:346
8630
8714
  msgid "Tries must be an integer >= 1"
8631
8715
  msgstr ""
8632
8716
 
8633
- #: ../lib/puppet/type/exec.rb:357
8717
+ #: ../lib/puppet/type/exec.rb:359
8634
8718
  msgid "try_sleep must be a number"
8635
8719
  msgstr ""
8636
8720
 
8637
- #: ../lib/puppet/type/exec.rb:361
8721
+ #: ../lib/puppet/type/exec.rb:363
8638
8722
  msgid "try_sleep cannot be a negative number"
8639
8723
  msgstr ""
8640
8724
 
8641
8725
  #. TRANSLATORS 'creates' is a parameter name and should not be translated
8642
- #: ../lib/puppet/type/exec.rb:433
8726
+ #: ../lib/puppet/type/exec.rb:435
8643
8727
  msgid "Checking that 'creates' path '%{creates_path}' exists"
8644
8728
  msgstr ""
8645
8729
 
8646
- #: ../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
8647
8731
  msgid "Check %{value} exceeded timeout"
8648
8732
  msgstr ""
8649
8733
 
8650
- #: ../lib/puppet/type/exec.rb:623
8734
+ #: ../lib/puppet/type/exec.rb:636
8651
8735
  msgid "'%{cmd}' won't be executed because of failed check '%{check}'"
8652
8736
  msgstr ""
8653
8737
 
@@ -8667,74 +8751,74 @@ msgstr ""
8667
8751
  msgid "Invalid recurselimit value %{value}"
8668
8752
  msgstr ""
8669
8753
 
8670
- #: ../lib/puppet/type/file.rb:418
8754
+ #: ../lib/puppet/type/file.rb:435
8671
8755
  msgid "You cannot specify more than one of %{creators}"
8672
8756
  msgstr ""
8673
8757
 
8674
- #: ../lib/puppet/type/file.rb:420
8758
+ #: ../lib/puppet/type/file.rb:437
8675
8759
  msgid "You cannot specify a remote recursion without a source"
8676
8760
  msgstr ""
8677
8761
 
8678
- #: ../lib/puppet/type/file.rb:422
8762
+ #: ../lib/puppet/type/file.rb:439
8679
8763
  msgid "You cannot specify source when using checksum 'none'"
8680
8764
  msgstr ""
8681
8765
 
8682
- #: ../lib/puppet/type/file.rb:425
8766
+ #: ../lib/puppet/type/file.rb:442
8683
8767
  msgid "You cannot specify content when using checksum '%{checksum_type}'"
8684
8768
  msgstr ""
8685
8769
 
8686
- #: ../lib/puppet/type/file.rb:428
8770
+ #: ../lib/puppet/type/file.rb:445
8687
8771
  msgid "Possible error: recurselimit is set but not recurse, no recursion will happen"
8688
8772
  msgstr ""
8689
8773
 
8690
- #: ../lib/puppet/type/file.rb:436
8774
+ #: ../lib/puppet/type/file.rb:453
8691
8775
  msgid "Checksum value '%{value}' is not a valid checksum type %{checksum}"
8692
8776
  msgstr ""
8693
8777
 
8694
- #: ../lib/puppet/type/file.rb:439
8778
+ #: ../lib/puppet/type/file.rb:456
8695
8779
  msgid "Checksum value is ignored unless content or source are specified"
8696
8780
  msgstr ""
8697
8781
 
8698
- #: ../lib/puppet/type/file.rb:477
8782
+ #: ../lib/puppet/type/file.rb:494
8699
8783
  msgid "Can not find filebucket for backups without a catalog"
8700
8784
  msgstr ""
8701
8785
 
8702
- #: ../lib/puppet/type/file.rb:482
8786
+ #: ../lib/puppet/type/file.rb:499
8703
8787
  msgid "Could not find filebucket %{backup} specified in backup"
8704
8788
  msgstr ""
8705
8789
 
8706
- #: ../lib/puppet/type/file.rb:780
8790
+ #: ../lib/puppet/type/file.rb:798
8707
8791
  msgid "Could not back up file of type %{current_type}"
8708
8792
  msgstr ""
8709
8793
 
8710
- #: ../lib/puppet/type/file.rb:795
8794
+ #: ../lib/puppet/type/file.rb:813
8711
8795
  msgid "Could not remove files of type %{current_type}"
8712
8796
  msgstr ""
8713
8797
 
8714
8798
  #. TRANSLATORS "source_permissions => ignore" should not be translated
8715
- #: ../lib/puppet/type/file.rb:806
8799
+ #: ../lib/puppet/type/file.rb:824
8716
8800
  msgid "Copying owner/mode/group from the source file on Windows is not supported; use source_permissions => ignore."
8717
8801
  msgstr ""
8718
8802
 
8719
8803
  #. TRANSLATORS "stat" is a program name and should not be translated
8720
- #: ../lib/puppet/type/file.rb:887 ../lib/puppet/type/tidy.rb:352
8804
+ #: ../lib/puppet/type/file.rb:905 ../lib/puppet/type/tidy.rb:371
8721
8805
  msgid "Could not stat; permission denied"
8722
8806
  msgstr ""
8723
8807
 
8724
- #: ../lib/puppet/type/file.rb:890
8808
+ #: ../lib/puppet/type/file.rb:908
8725
8809
  msgid "Could not stat; invalid pathname"
8726
8810
  msgstr ""
8727
8811
 
8728
- #: ../lib/puppet/type/file.rb:1018
8812
+ #: ../lib/puppet/type/file.rb:1036
8729
8813
  msgid "Not removing directory; use 'force' to override"
8730
8814
  msgstr ""
8731
8815
 
8732
8816
  #. TRANSLATORS refers to a file which could not be backed up
8733
- #: ../lib/puppet/type/file.rb:1043
8817
+ #: ../lib/puppet/type/file.rb:1061
8734
8818
  msgid "Could not back up; will not remove"
8735
8819
  msgstr ""
8736
8820
 
8737
- #: ../lib/puppet/type/file.rb:1058
8821
+ #: ../lib/puppet/type/file.rb:1076
8738
8822
  msgid "File written to disk did not match desired checksum; discarding changes (%{content_checksum} vs %{desired_checksum})"
8739
8823
  msgstr ""
8740
8824
 
@@ -8771,7 +8855,7 @@ msgstr ""
8771
8855
  msgid "Ensure set to :present but file type is %{file_type} so no content will be synced"
8772
8856
  msgstr ""
8773
8857
 
8774
- #: ../lib/puppet/type/file/mode.rb:126
8858
+ #: ../lib/puppet/type/file/mode.rb:132
8775
8859
  msgid "Not managing symlink mode"
8776
8860
  msgstr ""
8777
8861
 
@@ -8884,128 +8968,124 @@ msgstr ""
8884
8968
  msgid "%{value} is not a valid day of the week"
8885
8969
  msgstr ""
8886
8970
 
8887
- #: ../lib/puppet/type/service.rb:96
8888
- msgid "Setting enable to %{value} is only supported on Microsoft Windows."
8889
- msgstr ""
8890
-
8891
- #: ../lib/puppet/type/service.rb:166
8892
- msgid "The 'logonaccount' parameter is mandatory when setting 'logonpassword'."
8893
- msgstr ""
8894
-
8895
- #: ../lib/puppet/type/service.rb:167 ../lib/puppet/type/user.rb:271
8971
+ #: ../lib/puppet/type/service.rb:151 ../lib/puppet/type/user.rb:272
8896
8972
  msgid "Passwords cannot include ':'"
8897
8973
  msgstr ""
8898
8974
 
8899
- #: ../lib/puppet/type/service.rb:304
8975
+ #: ../lib/puppet/type/service.rb:278
8900
8976
  msgid "\"%{value}\" is not a positive integer: the timeout parameter must be specified as a positive integer"
8901
8977
  msgstr ""
8902
8978
 
8903
- #: ../lib/puppet/type/tidy.rb:85
8979
+ #: ../lib/puppet/type/service.rb:300
8980
+ msgid "The 'logonaccount' parameter is mandatory when setting 'logonpassword'."
8981
+ msgstr ""
8982
+
8983
+ #: ../lib/puppet/type/tidy.rb:101
8904
8984
  msgid "Tidy can't use matches with recurse 0, false, or undef"
8905
8985
  msgstr ""
8906
8986
 
8907
- #: ../lib/puppet/type/tidy.rb:125
8987
+ #: ../lib/puppet/type/tidy.rb:141
8908
8988
  msgid "Invalid age unit '%{unit}'"
8909
8989
  msgstr ""
8910
8990
 
8911
8991
  #. TRANSLATORS tidy is the name of a program and should not be translated
8912
- #: ../lib/puppet/type/tidy.rb:145
8992
+ #: ../lib/puppet/type/tidy.rb:161
8913
8993
  msgid "Invalid tidy age %{age}"
8914
8994
  msgstr ""
8915
8995
 
8916
- #: ../lib/puppet/type/tidy.rb:167
8996
+ #: ../lib/puppet/type/tidy.rb:183
8917
8997
  msgid "Invalid size unit '%{unit}'"
8918
8998
  msgstr ""
8919
8999
 
8920
9000
  #. TRANSLATORS tidy is the name of a program and should not be translated
8921
- #: ../lib/puppet/type/tidy.rb:185
9001
+ #: ../lib/puppet/type/tidy.rb:201
8922
9002
  msgid "Invalid tidy size %{age}"
8923
9003
  msgstr ""
8924
9004
 
8925
9005
  #. TRANSLATORS "Tidy" is a program name and should not be translated
8926
- #: ../lib/puppet/type/tidy.rb:275
9006
+ #: ../lib/puppet/type/tidy.rb:294
8927
9007
  msgid "Tidying %{count} files"
8928
9008
  msgstr ""
8929
9009
 
8930
- #: ../lib/puppet/type/tidy.rb:348
9010
+ #: ../lib/puppet/type/tidy.rb:367
8931
9011
  msgid "File does not exist"
8932
9012
  msgstr ""
8933
9013
 
8934
- #: ../lib/puppet/type/user.rb:182
9014
+ #: ../lib/puppet/type/user.rb:183
8935
9015
  msgid "Could not find group(s) %{groups}"
8936
9016
  msgstr ""
8937
9017
 
8938
- #: ../lib/puppet/type/user.rb:291
9018
+ #: ../lib/puppet/type/user.rb:292
8939
9019
  msgid "Password minimum age must be provided as a number."
8940
9020
  msgstr ""
8941
9021
 
8942
- #: ../lib/puppet/type/user.rb:310
9022
+ #: ../lib/puppet/type/user.rb:311
8943
9023
  msgid "Password maximum age must be provided as a number."
8944
9024
  msgstr ""
8945
9025
 
8946
- #: ../lib/puppet/type/user.rb:341
9026
+ #: ../lib/puppet/type/user.rb:342
8947
9027
  msgid "Group names must be provided, not GID numbers."
8948
9028
  msgstr ""
8949
9029
 
8950
- #: ../lib/puppet/type/user.rb:343
9030
+ #: ../lib/puppet/type/user.rb:344
8951
9031
  msgid "Group names must be provided as an array, not a comma-separated list."
8952
9032
  msgstr ""
8953
9033
 
8954
- #: ../lib/puppet/type/user.rb:344
9034
+ #: ../lib/puppet/type/user.rb:345
8955
9035
  msgid "Group names must not be empty. If you want to specify \"no groups\" pass an empty array"
8956
9036
  msgstr ""
8957
9037
 
8958
- #: ../lib/puppet/type/user.rb:437
9038
+ #: ../lib/puppet/type/user.rb:438
8959
9039
  msgid "User provider %{name} can not manage home directories"
8960
9040
  msgstr ""
8961
9041
 
8962
9042
  #. TRANSLATORS YYYY-MM-DD represents a date with a four-digit year, a two-digit month, and a two-digit day,
8963
9043
  #. TRANSLATORS separated by dashes.
8964
- #: ../lib/puppet/type/user.rb:454
9044
+ #: ../lib/puppet/type/user.rb:455
8965
9045
  msgid "Expiry dates must be YYYY-MM-DD or the string \"absent\""
8966
9046
  msgstr ""
8967
9047
 
8968
- #: ../lib/puppet/type/user.rb:521
9048
+ #: ../lib/puppet/type/user.rb:522
8969
9049
  msgid "Role names must be provided, not numbers"
8970
9050
  msgstr ""
8971
9051
 
8972
- #: ../lib/puppet/type/user.rb:523
9052
+ #: ../lib/puppet/type/user.rb:524
8973
9053
  msgid "Role names must be provided as an array, not a comma-separated list"
8974
9054
  msgstr ""
8975
9055
 
8976
- #: ../lib/puppet/type/user.rb:560
9056
+ #: ../lib/puppet/type/user.rb:561
8977
9057
  msgid "Auth names must be provided, not numbers"
8978
9058
  msgstr ""
8979
9059
 
8980
- #: ../lib/puppet/type/user.rb:562
9060
+ #: ../lib/puppet/type/user.rb:563
8981
9061
  msgid "Auth names must be provided as an array, not a comma-separated list"
8982
9062
  msgstr ""
8983
9063
 
8984
- #: ../lib/puppet/type/user.rb:586
9064
+ #: ../lib/puppet/type/user.rb:587
8985
9065
  msgid "Profile names must be provided, not numbers"
8986
9066
  msgstr ""
8987
9067
 
8988
- #: ../lib/puppet/type/user.rb:588
9068
+ #: ../lib/puppet/type/user.rb:589
8989
9069
  msgid "Profile names must be provided as an array, not a comma-separated list"
8990
9070
  msgstr ""
8991
9071
 
8992
- #: ../lib/puppet/type/user.rb:699
9072
+ #: ../lib/puppet/type/user.rb:701
8993
9073
  msgid "Ssh_authorized_key type is not available. Cannot purge SSH keys."
8994
9074
  msgstr ""
8995
9075
 
8996
- #: ../lib/puppet/type/user.rb:737
9076
+ #: ../lib/puppet/type/user.rb:739
8997
9077
  msgid "Each entry for purge_ssh_keys must be a string, not a %{klass}"
8998
9078
  msgstr ""
8999
9079
 
9000
- #: ../lib/puppet/type/user.rb:740
9080
+ #: ../lib/puppet/type/user.rb:742
9001
9081
  msgid "Paths to keyfiles must be absolute, not %{entry}"
9002
9082
  msgstr ""
9003
9083
 
9004
- #: ../lib/puppet/type/user.rb:744
9084
+ #: ../lib/puppet/type/user.rb:746
9005
9085
  msgid "purge_ssh_keys must be true, false, or an array of file names, not %{value}"
9006
9086
  msgstr ""
9007
9087
 
9008
- #: ../lib/puppet/type/user.rb:772
9088
+ #: ../lib/puppet/type/user.rb:755
9009
9089
  msgid "Class name must be provided."
9010
9090
  msgstr ""
9011
9091
 
@@ -9764,31 +9844,31 @@ msgstr ""
9764
9844
  msgid "Caught exception %{klass}:%{error} retrying"
9765
9845
  msgstr ""
9766
9846
 
9767
- #: ../lib/puppet/util/selinux.rb:71
9847
+ #: ../lib/puppet/util/selinux.rb:81
9768
9848
  msgid "Invalid context to parse: %{context}"
9769
9849
  msgstr ""
9770
9850
 
9771
- #: ../lib/puppet/util/selinux.rb:83
9851
+ #: ../lib/puppet/util/selinux.rb:93
9772
9852
  msgid "Invalid SELinux parameter type"
9773
9853
  msgstr ""
9774
9854
 
9775
- #: ../lib/puppet/util/selinux.rb:104
9855
+ #: ../lib/puppet/util/selinux.rb:114
9776
9856
  msgid "Can't set SELinux context on file unless the file already has some kind of context"
9777
9857
  msgstr ""
9778
9858
 
9779
- #: ../lib/puppet/util/selinux.rb:118
9859
+ #: ../lib/puppet/util/selinux.rb:128
9780
9860
  msgid "set_selinux_context component must be one of :seluser, :selrole, :seltype, or :selrange"
9781
9861
  msgstr ""
9782
9862
 
9783
- #: ../lib/puppet/util/selinux.rb:129
9863
+ #: ../lib/puppet/util/selinux.rb:139
9784
9864
  msgid "Failed to set SELinux context %{context} on %{file}"
9785
9865
  msgstr ""
9786
9866
 
9787
- #: ../lib/puppet/util/selinux.rb:180
9867
+ #: ../lib/puppet/util/selinux.rb:190
9788
9868
  msgid "Could not open SELinux category translation file %{path}."
9789
9869
  msgstr ""
9790
9870
 
9791
- #: ../lib/puppet/util/selinux.rb:250
9871
+ #: ../lib/puppet/util/selinux.rb:276
9792
9872
  msgid "got a relative path in SELinux find_fs: %{path}"
9793
9873
  msgstr ""
9794
9874
 
@@ -9832,39 +9912,39 @@ msgstr ""
9832
9912
  msgid "Invalid %{klass}: %{id}"
9833
9913
  msgstr ""
9834
9914
 
9835
- #: ../lib/puppet/util/symbolic_file_mode.rb:37
9915
+ #: ../lib/puppet/util/symbolic_file_mode.rb:49
9836
9916
  msgid "An empty mode string is illegal"
9837
9917
  msgstr ""
9838
9918
 
9839
- #: ../lib/puppet/util/symbolic_file_mode.rb:41
9919
+ #: ../lib/puppet/util/symbolic_file_mode.rb:53
9840
9920
  msgid "Numeric modes must be in octal, not decimal!"
9841
9921
  msgstr ""
9842
9922
 
9843
- #: ../lib/puppet/util/symbolic_file_mode.rb:44
9923
+ #: ../lib/puppet/util/symbolic_file_mode.rb:56
9844
9924
  msgid "non-numeric current mode (%{mode})"
9845
9925
  msgstr ""
9846
9926
 
9847
- #: ../lib/puppet/util/symbolic_file_mode.rb:64
9927
+ #: ../lib/puppet/util/symbolic_file_mode.rb:76
9848
9928
  msgid "Missing action"
9849
9929
  msgstr ""
9850
9930
 
9851
- #: ../lib/puppet/util/symbolic_file_mode.rb:79
9931
+ #: ../lib/puppet/util/symbolic_file_mode.rb:91
9852
9932
  msgid "Missing operation (-, =, or +)"
9853
9933
  msgstr ""
9854
9934
 
9855
- #: ../lib/puppet/util/symbolic_file_mode.rb:101
9935
+ #: ../lib/puppet/util/symbolic_file_mode.rb:113
9856
9936
  msgid "X only works with the '+' operator"
9857
9937
  msgstr ""
9858
9938
 
9859
- #: ../lib/puppet/util/symbolic_file_mode.rb:112
9939
+ #: ../lib/puppet/util/symbolic_file_mode.rb:124
9860
9940
  msgid "internal error"
9861
9941
  msgstr ""
9862
9942
 
9863
- #: ../lib/puppet/util/symbolic_file_mode.rb:116
9943
+ #: ../lib/puppet/util/symbolic_file_mode.rb:128
9864
9944
  msgid "Unknown operation"
9865
9945
  msgstr ""
9866
9946
 
9867
- #: ../lib/puppet/util/symbolic_file_mode.rb:131
9947
+ #: ../lib/puppet/util/symbolic_file_mode.rb:143
9868
9948
  msgid "%{error}%{rest} in symbolic mode %{modification}"
9869
9949
  msgstr ""
9870
9950
 
@@ -9912,15 +9992,15 @@ msgstr ""
9912
9992
  msgid "Unrecognized ADS UserFlags: %{unrecognized_flags}"
9913
9993
  msgstr ""
9914
9994
 
9915
- #: ../lib/puppet/util/windows/adsi.rb:497
9995
+ #: ../lib/puppet/util/windows/adsi.rb:497 ../lib/puppet/util/windows/adsi.rb:530
9916
9996
  msgid "Failed to get user name"
9917
9997
  msgstr ""
9918
9998
 
9919
- #: ../lib/puppet/util/windows/adsi.rb:534
9999
+ #: ../lib/puppet/util/windows/adsi.rb:580
9920
10000
  msgid "Cannot delete user profile for '%{sid}' prior to Vista SP1"
9921
10001
  msgstr ""
9922
10002
 
9923
- #: ../lib/puppet/util/windows/adsi.rb:552
10003
+ #: ../lib/puppet/util/windows/adsi.rb:598
9924
10004
  msgid "Cannot create group if user '%{name}' exists."
9925
10005
  msgstr ""
9926
10006
 
@@ -9983,20 +10063,20 @@ msgstr ""
9983
10063
  msgid "Failed to call GetLongPathName"
9984
10064
  msgstr ""
9985
10065
 
9986
- #: ../lib/puppet/util/windows/principal.rb:67 ../lib/puppet/util/windows/principal.rb:74
10066
+ #: ../lib/puppet/util/windows/principal.rb:68 ../lib/puppet/util/windows/principal.rb:75
9987
10067
  msgid "Failed to call LookupAccountNameW with account: %{account_name}"
9988
10068
  msgstr ""
9989
10069
 
9990
10070
  #. TRANSLATORS `lookup_account_sid` is a variable name and should not be translated
9991
- #: ../lib/puppet/util/windows/principal.rb:97
10071
+ #: ../lib/puppet/util/windows/principal.rb:98
9992
10072
  msgid "Byte array for lookup_account_sid must not be nil and must be at least 1 byte long"
9993
10073
  msgstr ""
9994
10074
 
9995
- #: ../lib/puppet/util/windows/principal.rb:114
10075
+ #: ../lib/puppet/util/windows/principal.rb:115
9996
10076
  msgid "Byte array for lookup_account_sid is invalid: %{sid_bytes}"
9997
10077
  msgstr ""
9998
10078
 
9999
- #: ../lib/puppet/util/windows/principal.rb:122 ../lib/puppet/util/windows/principal.rb:129
10079
+ #: ../lib/puppet/util/windows/principal.rb:123 ../lib/puppet/util/windows/principal.rb:130
10000
10080
  msgid "Failed to call LookupAccountSidW with bytes: %{sid_bytes}"
10001
10081
  msgstr ""
10002
10082
 
@@ -10106,7 +10186,7 @@ msgstr ""
10106
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"
10107
10187
  msgstr ""
10108
10188
 
10109
- #: ../lib/puppet/util/windows/security.rb:433 ../lib/puppet/util/windows/security.rb:450 ../lib/puppet/util/windows/sid.rb:155 ../lib/puppet/util/windows/sid.rb:217 ../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
10110
10190
  msgid "Invalid SID"
10111
10191
  msgstr ""
10112
10192
 
@@ -10262,19 +10342,19 @@ msgstr ""
10262
10342
  msgid "Timed out while waiting for the pending transition from %{pending_state} to %{final_state} to finish. The current state is %{current_state}."
10263
10343
  msgstr ""
10264
10344
 
10265
- #: ../lib/puppet/util/windows/sid.rb:94
10345
+ #: ../lib/puppet/util/windows/sid.rb:98
10266
10346
  msgid "Octet string must be an array of bytes"
10267
10347
  msgstr ""
10268
10348
 
10269
- #: ../lib/puppet/util/windows/sid.rb:161
10349
+ #: ../lib/puppet/util/windows/sid.rb:165
10270
10350
  msgid "Failed to convert binary SID"
10271
10351
  msgstr ""
10272
10352
 
10273
- #: ../lib/puppet/util/windows/sid.rb:166
10353
+ #: ../lib/puppet/util/windows/sid.rb:170
10274
10354
  msgid "ConvertSidToStringSidW failed to allocate buffer for sid"
10275
10355
  msgstr ""
10276
10356
 
10277
- #: ../lib/puppet/util/windows/sid.rb:186
10357
+ #: ../lib/puppet/util/windows/sid.rb:190
10278
10358
  msgid "Failed to convert string SID: %{string_sid}"
10279
10359
  msgstr ""
10280
10360