puppet 5.5.21 → 5.5.22

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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +13 -14
  4. data/lib/puppet/configurer.rb +20 -3
  5. data/lib/puppet/configurer/downloader.rb +31 -10
  6. data/lib/puppet/defaults.rb +7 -1
  7. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  8. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  9. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  10. data/lib/puppet/functions/new.rb +8 -3
  11. data/lib/puppet/functions/reverse_each.rb +1 -1
  12. data/lib/puppet/functions/step.rb +1 -1
  13. data/lib/puppet/indirector/hiera.rb +4 -0
  14. data/lib/puppet/node/environment.rb +7 -1
  15. data/lib/puppet/parser/functions.rb +13 -9
  16. data/lib/puppet/pops/adaptable.rb +7 -13
  17. data/lib/puppet/pops/adapters.rb +8 -4
  18. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  19. data/lib/puppet/pops/types/iterable.rb +34 -8
  20. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  21. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  22. data/lib/puppet/pops/validation/checker4_0.rb +19 -15
  23. data/lib/puppet/provider/package/gem.rb +4 -2
  24. data/lib/puppet/provider/package/puppet_gem.rb +5 -0
  25. data/lib/puppet/provider/package/yum.rb +1 -0
  26. data/lib/puppet/resource/type.rb +2 -1
  27. data/lib/puppet/test/test_helper.rb +5 -2
  28. data/lib/puppet/util.rb +13 -12
  29. data/lib/puppet/util/autoload.rb +9 -7
  30. data/lib/puppet/version.rb +1 -1
  31. data/locales/puppet.pot +33 -29
  32. data/man/man5/puppet.conf.5 +10 -2
  33. data/man/man8/puppet-agent.8 +1 -1
  34. data/man/man8/puppet-apply.8 +1 -1
  35. data/man/man8/puppet-ca.8 +1 -1
  36. data/man/man8/puppet-catalog.8 +1 -1
  37. data/man/man8/puppet-cert.8 +1 -1
  38. data/man/man8/puppet-certificate.8 +1 -1
  39. data/man/man8/puppet-certificate_request.8 +1 -1
  40. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  41. data/man/man8/puppet-config.8 +1 -1
  42. data/man/man8/puppet-describe.8 +1 -1
  43. data/man/man8/puppet-device.8 +1 -1
  44. data/man/man8/puppet-doc.8 +1 -1
  45. data/man/man8/puppet-epp.8 +1 -1
  46. data/man/man8/puppet-facts.8 +1 -1
  47. data/man/man8/puppet-filebucket.8 +1 -1
  48. data/man/man8/puppet-generate.8 +1 -1
  49. data/man/man8/puppet-help.8 +1 -1
  50. data/man/man8/puppet-key.8 +1 -1
  51. data/man/man8/puppet-lookup.8 +1 -1
  52. data/man/man8/puppet-man.8 +1 -1
  53. data/man/man8/puppet-master.8 +1 -1
  54. data/man/man8/puppet-module.8 +1 -1
  55. data/man/man8/puppet-node.8 +1 -1
  56. data/man/man8/puppet-parser.8 +1 -1
  57. data/man/man8/puppet-plugin.8 +1 -1
  58. data/man/man8/puppet-report.8 +1 -1
  59. data/man/man8/puppet-resource.8 +1 -1
  60. data/man/man8/puppet-script.8 +1 -1
  61. data/man/man8/puppet-status.8 +1 -1
  62. data/man/man8/puppet.8 +2 -2
  63. data/spec/integration/configurer_spec.rb +14 -0
  64. data/spec/integration/data_binding_spec.rb +1 -0
  65. data/spec/integration/faces/plugin_spec.rb +29 -47
  66. data/spec/shared_contexts/types_setup.rb +2 -0
  67. data/spec/unit/configurer/downloader_spec.rb +10 -0
  68. data/spec/unit/configurer_spec.rb +65 -30
  69. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  70. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  71. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  72. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
  73. data/spec/unit/provider/package/yum_spec.rb +31 -0
  74. data/spec/unit/ssl/host_spec.rb +2 -0
  75. metadata +2 -2
@@ -85,6 +85,13 @@ module Adapters
85
85
 
86
86
  class PathsAndNameCacheAdapter < Puppet::Pops::Adaptable::Adapter
87
87
  attr_accessor :cache, :paths
88
+
89
+ def self.create_adapter(env)
90
+ adapter = super(env)
91
+ adapter.paths = env.modulepath.map { |p| Pathname.new(p) }
92
+ adapter.cache = {}
93
+ adapter
94
+ end
88
95
  end
89
96
 
90
97
  # Attempts to find the module that `instance` originates from by looking at it's {SourcePosAdapter} and
@@ -103,10 +110,7 @@ module Adapters
103
110
  def self.loader_name_by_source(environment, instance, file)
104
111
  file = instance.file if file.nil?
105
112
  return nil if file.nil? || EMPTY_STRING == file
106
- pn_adapter = PathsAndNameCacheAdapter.adapt(environment) do |a|
107
- a.paths ||= environment.modulepath.map { |p| Pathname.new(p) }
108
- a.cache ||= {}
109
- end
113
+ pn_adapter = PathsAndNameCacheAdapter.adapt(environment)
110
114
  dir = File.dirname(file)
111
115
  pn_adapter.cache.fetch(dir) do |key|
112
116
  mod = find_module_for_dir(environment, pn_adapter.paths, dir)
@@ -45,9 +45,7 @@ class Puppet::Pops::Evaluator::Collectors::AbstractCollector
45
45
  return false if objects.empty?
46
46
 
47
47
  if @overrides and !objects.empty?
48
- overrides[:source].meta_def(:child_of?) do |klass|
49
- true
50
- end
48
+ overrides[:source].override = true
51
49
 
52
50
  objects.each do |res|
53
51
  unless @collected.include?(res.ref)
@@ -23,13 +23,16 @@ module Puppet::Pops::Types
23
23
  #
24
24
  # An `ArgumentError` is raised for all other objects.
25
25
  #
26
- # @param o [Object] The object to produce an `Iterable` for
26
+ # @param my_caller [Object] The calling object to reference in errors
27
+ # @param obj [Object] The object to produce an `Iterable` for
28
+ # @param infer_elements [Boolean] Whether or not to recursively infer all elements of obj. Optional
29
+ #
27
30
  # @return [Iterable,nil] The produced `Iterable`
28
31
  # @raise [ArgumentError] In case an `Iterable` cannot be produced
29
32
  # @api public
30
- def self.asserted_iterable(caller, obj)
31
- iter = self.on(obj)
32
- raise ArgumentError, "#{caller.class}(): wrong argument type (#{obj.class}; is not Iterable." if iter.nil?
33
+ def self.asserted_iterable(my_caller, obj, infer_elements = false)
34
+ iter = self.on(obj, nil, infer_elements)
35
+ raise ArgumentError, "#{my_caller.class}(): wrong argument type (#{obj.class}; is not Iterable." if iter.nil?
33
36
  iter
34
37
  end
35
38
 
@@ -48,11 +51,14 @@ module Puppet::Pops::Types
48
51
  # The value `nil` is returned for all other objects.
49
52
  #
50
53
  # @param o [Object] The object to produce an `Iterable` for
51
- # @param element_type [PAnyType] the element type for the iterator. Optional (inferred if not provided)
54
+ # @param element_type [PAnyType] the element type for the iterator. Optional
55
+ # @param infer_elements [Boolean] if element_type is nil, whether or not to recursively
56
+ # infer types for the entire collection. Optional
57
+ #
52
58
  # @return [Iterable,nil] The produced `Iterable` or `nil` if it couldn't be produced
53
59
  #
54
60
  # @api public
55
- def self.on(o, element_type = nil)
61
+ def self.on(o, element_type = nil, infer_elements = true)
56
62
  case o
57
63
  when IteratorProducer
58
64
  o.iterator
@@ -64,7 +70,7 @@ module Puppet::Pops::Types
64
70
  if o.empty?
65
71
  Iterator.new(PUnitType::DEFAULT, o.each)
66
72
  else
67
- if element_type.nil?
73
+ if element_type.nil? && infer_elements
68
74
  tc = TypeCalculator.singleton
69
75
  element_type = PVariantType.maybe_create(o.map {|e| tc.infer_set(e) })
70
76
  end
@@ -75,7 +81,7 @@ module Puppet::Pops::Types
75
81
  if o.empty?
76
82
  HashIterator.new(PHashType::DEFAULT_KEY_PAIR_TUPLE, o.each)
77
83
  else
78
- if element_type.nil?
84
+ if element_type.nil? && infer_elements
79
85
  tc = TypeCalculator.singleton
80
86
  element_type = PTupleType.new([
81
87
  PVariantType.maybe_create(o.keys.map {|e| tc.infer_set(e) }),
@@ -202,6 +208,26 @@ module Puppet::Pops::Types
202
208
  @enumeration.send(name, *arguments, &block)
203
209
  end
204
210
 
211
+ def next
212
+ @enumeration.next
213
+ end
214
+
215
+ def map(*args, &block)
216
+ @enumeration.map(*args, &block)
217
+ end
218
+
219
+ def reduce(*args, &block)
220
+ @enumeration.reduce(*args, &block)
221
+ end
222
+
223
+ def all?(&block)
224
+ @enumeration.all?(&block)
225
+ end
226
+
227
+ def any?(&block)
228
+ @enumeration.any?(&block)
229
+ end
230
+
205
231
  def step(step, &block)
206
232
  raise ArgumentError if step <= 0
207
233
  r = self
@@ -22,7 +22,7 @@ class PMetaType < PAnyType
22
22
  end
23
23
 
24
24
  def instance?(o, guard = nil)
25
- assignable?(TypeCalculator.infer(o), guard)
25
+ raise NotImplementedError, "Subclass of PMetaType should implement 'instance?'"
26
26
  end
27
27
 
28
28
  # Called from the TypeParser once it has found a type using the Loader. The TypeParser will
@@ -349,6 +349,10 @@ class PTypeSetType < PMetaType
349
349
  self.class == o.class && @name_authority == o.name_authority && @name == o.name && @version == o.version
350
350
  end
351
351
 
352
+ def instance?(o, guard = nil)
353
+ o.is_a?(PTypeSetType)
354
+ end
355
+
352
356
  DEFAULT = self.new({
353
357
  KEY_NAME => 'DefaultTypeSet',
354
358
  KEY_NAME_AUTHORITY => Pcore::RUNTIME_NAME_AUTHORITY,
@@ -581,36 +581,40 @@ class Checker4_0 < Evaluator::LiteralEvaluator
581
581
  # @api private
582
582
  class Puppet::Util::FileNamespaceAdapter < Puppet::Pops::Adaptable::Adapter
583
583
  attr_accessor :file_to_namespace
584
+
585
+ def self.create_adapter(env)
586
+ adapter = super(env)
587
+ adapter.file_to_namespace = {}
588
+ adapter
589
+ end
584
590
  end
585
591
 
586
592
  def namespace_for_file(file)
587
593
  env = Puppet.lookup(:current_environment)
588
594
  return NO_NAMESPACE if env.nil?
589
595
 
590
- Puppet::Util::FileNamespaceAdapter.adapt(env) do |adapter|
591
- adapter.file_to_namespace ||= {}
596
+ adapter = Puppet::Util::FileNamespaceAdapter.adapt(env)
592
597
 
593
- file_namespace = adapter.file_to_namespace[file]
594
- return file_namespace unless file_namespace.nil? # No cache entry, so we do the calculation
598
+ file_namespace = adapter.file_to_namespace[file]
599
+ return file_namespace unless file_namespace.nil? # No cache entry, so we do the calculation
595
600
 
596
- path = Pathname.new(file)
601
+ path = Pathname.new(file)
597
602
 
598
- return adapter.file_to_namespace[file] = NO_NAMESPACE if path.extname != ".pp"
603
+ return adapter.file_to_namespace[file] = NO_NAMESPACE if path.extname != ".pp"
599
604
 
600
- path = path.expand_path
605
+ path = path.expand_path
601
606
 
602
- return adapter.file_to_namespace[file] = NO_NAMESPACE if initial_manifest?(path, env.manifest)
607
+ return adapter.file_to_namespace[file] = NO_NAMESPACE if initial_manifest?(path, env.manifest)
603
608
 
604
- #All auto-loaded files from modules come from a module search path dir
605
- relative_path = get_module_relative_path(path, env.full_modulepath)
609
+ #All auto-loaded files from modules come from a module search path dir
610
+ relative_path = get_module_relative_path(path, env.full_modulepath)
606
611
 
607
- return adapter.file_to_namespace[file] = NO_NAMESPACE if relative_path == NO_PATH
612
+ return adapter.file_to_namespace[file] = NO_NAMESPACE if relative_path == NO_PATH
608
613
 
609
- #If a file comes from a module, but isn't in the right place, always error
610
- names = dir_to_names(relative_path)
614
+ #If a file comes from a module, but isn't in the right place, always error
615
+ names = dir_to_names(relative_path)
611
616
 
612
- return adapter.file_to_namespace[file] = (names == BAD_MODULE_FILE ? BAD_MODULE_FILE : names.join("::").freeze)
613
- end
617
+ return adapter.file_to_namespace[file] = (names == BAD_MODULE_FILE ? BAD_MODULE_FILE : names.join("::").freeze)
614
618
  end
615
619
 
616
620
  def initial_manifest?(path, manifest_setting)
@@ -48,11 +48,13 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
48
48
  #
49
49
  # In this case, causing the puppet_gem provider to inherit the parent gem provider's convenience gemcmd() methods, with the wrong path.
50
50
 
51
- def self.execute_gem_command(command, command_options)
51
+ def self.execute_gem_command(command, command_options, custom_environment = {})
52
52
  validate_command(command)
53
53
  cmd = [command] << command_options
54
54
 
55
- execute(cmd, {:failonfail => true, :combine => true, :custom_environment => {"HOME"=>ENV["HOME"]}})
55
+ custom_environment = {'HOME'=>Puppet::Util.get_env('HOME')}.merge(custom_environment)
56
+
57
+ execute(cmd, {:failonfail => true, :combine => true, :custom_environment => custom_environment})
56
58
  end
57
59
 
58
60
  def self.instances(target_command = nil)
@@ -14,4 +14,9 @@ Puppet::Type.type(:package).provide :puppet_gem, :parent => :gem do
14
14
  else
15
15
  commands :gemcmd => "/opt/puppetlabs/puppet/bin/gem"
16
16
  end
17
+
18
+ def self.execute_gem_command(command, command_options, custom_environment = {})
19
+ custom_environment['PKG_CONFIG_PATH'] = '/opt/puppetlabs/puppet/lib/pkgconfig' unless Puppet::Util::Platform.windows?
20
+ super(command, command_options, custom_environment)
21
+ end
17
22
  end
@@ -251,6 +251,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
251
251
  return "#{upd[:epoch]}:#{upd[:version]}-#{upd[:release]}"
252
252
  else
253
253
  # Yum didn't find updates, pretend the current version is the latest
254
+ self.debug "Yum didn't find updates, current version (#{properties[:ensure]}) is the latest"
254
255
  version = properties[:ensure]
255
256
  raise Puppet::DevError, _("Tried to get latest on a missing package") if version == :absent || version == :purged
256
257
  return version
@@ -34,7 +34,7 @@ class Puppet::Resource::Type
34
34
  DOUBLE_COLON = '::'.freeze
35
35
  EMPTY_ARRAY = [].freeze
36
36
 
37
- attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection
37
+ attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection, :override
38
38
  attr_reader :namespace, :arguments, :behaves_like, :module_name
39
39
 
40
40
  # The attributes 'produces' and 'consumes' are arrays of the blueprints
@@ -63,6 +63,7 @@ class Puppet::Resource::Type
63
63
  # Are we a child of the passed class? Do a recursive search up our
64
64
  # parentage tree to figure it out.
65
65
  def child_of?(klass)
66
+ return true if override
66
67
  return false unless parent
67
68
 
68
69
  return(klass == parent_type ? true : parent_type.child_of?(klass))
@@ -120,8 +120,11 @@ module Puppet::Test
120
120
  indirections = Puppet::Indirector::Indirection.send(:class_variable_get, :@@indirections)
121
121
  indirections.each do |indirector|
122
122
  $saved_indirection_state[indirector.name] = {
123
- :@terminus_class => indirector.instance_variable_get(:@terminus_class),
124
- :@cache_class => indirector.instance_variable_get(:@cache_class)
123
+ :@terminus_class => indirector.instance_variable_get(:@terminus_class),
124
+ :@cache_class => indirector.instance_variable_get(:@cache_class),
125
+ # dup the termini hash so termini created and registered during
126
+ # the test aren't stored in our saved_indirection_state
127
+ :@termini => indirector.instance_variable_get(:@termini).dup
125
128
  }
126
129
  end
127
130
 
@@ -27,20 +27,21 @@ module Util
27
27
 
28
28
  extend Puppet::Util::SymbolicFileMode
29
29
 
30
- DEFAULT_ENV = if Puppet::Util::Platform.windows?
31
- :windows
32
- else
33
- :posix
34
- end.freeze
30
+ def default_env
31
+ Puppet.features.microsoft_windows? ?
32
+ :windows :
33
+ :posix
34
+ end
35
+ module_function :default_env
35
36
 
36
37
  # @param name [String] The name of the environment variable to retrieve
37
38
  # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
38
39
  # @return [String] Value of the specified environment variable. nil if it does not exist
39
40
  # @api private
40
- def get_env(name, mode = DEFAULT_ENV)
41
+ def get_env(name, mode = default_env)
41
42
  if mode == :windows
42
- Puppet::Util::Windows::Process.get_environment_strings.find do |key, value|
43
- if name.casecmp(key) == 0
43
+ Puppet::Util::Windows::Process.get_environment_strings.each do |key, value |
44
+ if name.casecmp(key) == 0 then
44
45
  return value
45
46
  end
46
47
  end
@@ -54,7 +55,7 @@ module Util
54
55
  # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
55
56
  # @return [Hash] A hashtable of all environment variables
56
57
  # @api private
57
- def get_environment(mode = DEFAULT_ENV)
58
+ def get_environment(mode = default_env)
58
59
  case mode
59
60
  when :posix
60
61
  ENV.to_hash
@@ -69,7 +70,7 @@ module Util
69
70
  # Removes all environment variables
70
71
  # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
71
72
  # @api private
72
- def clear_environment(mode = DEFAULT_ENV)
73
+ def clear_environment(mode = default_env)
73
74
  case mode
74
75
  when :posix
75
76
  ENV.clear
@@ -87,7 +88,7 @@ module Util
87
88
  # @param value [String] The value to set the variable to. nil deletes the environment variable
88
89
  # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
89
90
  # @api private
90
- def set_env(name, value = nil, mode = DEFAULT_ENV)
91
+ def set_env(name, value = nil, mode = default_env)
91
92
  case mode
92
93
  when :posix
93
94
  ENV[name] = value
@@ -102,7 +103,7 @@ module Util
102
103
  # @param name [Hash] Environment variables to merge into the existing environment. nil values will remove the variable
103
104
  # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
104
105
  # @api private
105
- def merge_environment(env_hash, mode = DEFAULT_ENV)
106
+ def merge_environment(env_hash, mode = default_env)
106
107
  case mode
107
108
  when :posix
108
109
  env_hash.each { |name, val| ENV[name.to_s] = val }
@@ -10,6 +10,14 @@ require 'puppet/pops/adaptable'
10
10
  # @api private
11
11
  class Puppet::Util::ModuleDirectoriesAdapter < Puppet::Pops::Adaptable::Adapter
12
12
  attr_accessor :directories
13
+
14
+ def self.create_adapter(env)
15
+ adapter = super(env)
16
+ adapter.directories = env.modulepath.flat_map do |dir|
17
+ Dir.glob(File.join(dir, '*', 'lib'))
18
+ end
19
+ adapter
20
+ end
13
21
  end
14
22
 
15
23
  # Autoload paths, either based on names or all at once.
@@ -132,13 +140,7 @@ class Puppet::Util::Autoload
132
140
 
133
141
  if env
134
142
  # if the app defaults have been initialized then it should be safe to access the module path setting.
135
- Puppet::Util::ModuleDirectoriesAdapter.adapt(env) do |a|
136
- a.directories ||= env.modulepath.collect do |dir|
137
- Dir.entries(dir).reject { |f| f =~ /^\./ }.collect { |f| File.join(dir, f, "lib") }
138
- end.flatten.find_all do |d|
139
- FileTest.directory?(d)
140
- end
141
- end.directories
143
+ Puppet::Util::ModuleDirectoriesAdapter.adapt(env).directories
142
144
  else
143
145
  []
144
146
  end
@@ -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 = '5.5.21'
9
+ PUPPETVERSION = '5.5.22'
10
10
 
11
11
  ##
12
12
  # version is a public API method intended to always provide a fast and
@@ -6,11 +6,11 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: Puppet automation framework 5.5.20-62-g352a8c16bd\n"
9
+ "Project-Id-Version: Puppet automation framework 5.5.21-20-gfdd7102523\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2020-06-19 16:16+0000\n"
13
- "PO-Revision-Date: 2020-06-19 16:16+0000\n"
12
+ "POT-Creation-Date: 2020-07-29 14:16+0000\n"
13
+ "PO-Revision-Date: 2020-07-29 14:16+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -44,7 +44,7 @@ msgstr ""
44
44
  msgid "Please supply a parameter to perform a Hiera lookup"
45
45
  msgstr ""
46
46
 
47
- #: ../lib/hiera_puppet.rb:74 ../lib/puppet/indirector/hiera.rb:81
47
+ #: ../lib/hiera_puppet.rb:74 ../lib/puppet/indirector/hiera.rb:85
48
48
  msgid "Config file %{hiera_config} not found, using Hiera defaults"
49
49
  msgstr ""
50
50
 
@@ -614,7 +614,11 @@ msgstr ""
614
614
  msgid "Retrieving %{name}"
615
615
  msgstr ""
616
616
 
617
- #: ../lib/puppet/configurer/downloader.rb:20
617
+ #: ../lib/puppet/configurer/downloader.rb:21
618
+ msgid "Failed to retrieve %{name}: %{detail}"
619
+ msgstr ""
620
+
621
+ #: ../lib/puppet/configurer/downloader.rb:32
618
622
  msgid "Could not retrieve %{name}: %{detail}"
619
623
  msgstr ""
620
624
 
@@ -718,7 +722,7 @@ msgid "Setting %{name} is deprecated."
718
722
  msgstr ""
719
723
 
720
724
  #. TRANSLATORS 'pluginsync' is a setting and should not be translated
721
- #: ../lib/puppet/defaults.rb:1905
725
+ #: ../lib/puppet/defaults.rb:1904
722
726
  msgid "Setting 'pluginsync' is deprecated."
723
727
  msgstr ""
724
728
 
@@ -2726,12 +2730,12 @@ msgid "Could not find filesystem info for file '%{request}' in environment %{env
2726
2730
  msgstr ""
2727
2731
 
2728
2732
  #. TRANSLATORS "Hiera" is the name of a code library and should not be translated
2729
- #: ../lib/puppet/indirector/hiera.rb:8
2733
+ #: ../lib/puppet/indirector/hiera.rb:12
2730
2734
  msgid "Hiera terminus not supported without hiera library"
2731
2735
  msgstr ""
2732
2736
 
2733
2737
  #. TRANSLATORS "merge" is a parameter name and should not be translated
2734
- #: ../lib/puppet/indirector/hiera.rb:68
2738
+ #: ../lib/puppet/indirector/hiera.rb:72
2735
2739
  msgid "Unrecognized value for request 'merge' parameter: '%{merge}'"
2736
2740
  msgstr ""
2737
2741
 
@@ -7054,27 +7058,27 @@ msgstr ""
7054
7058
  msgid "source is defined but does not have trailing slash, ignoring %{source}"
7055
7059
  msgstr ""
7056
7060
 
7057
- #: ../lib/puppet/provider/package/gem.rb:94
7061
+ #: ../lib/puppet/provider/package/gem.rb:96
7058
7062
  msgid "Could not list gems: %{detail}"
7059
7063
  msgstr ""
7060
7064
 
7061
- #: ../lib/puppet/provider/package/gem.rb:120
7065
+ #: ../lib/puppet/provider/package/gem.rb:122
7062
7066
  msgid "Could not match %{desc}"
7063
7067
  msgstr ""
7064
7068
 
7065
- #: ../lib/puppet/provider/package/gem.rb:168
7069
+ #: ../lib/puppet/provider/package/gem.rb:170
7066
7070
  msgid "Invalid source '%{uri}': %{detail}"
7067
7071
  msgstr ""
7068
7072
 
7069
- #: ../lib/puppet/provider/package/gem.rb:179
7073
+ #: ../lib/puppet/provider/package/gem.rb:181
7070
7074
  msgid "puppet:// URLs are not supported as gem sources"
7071
7075
  msgstr ""
7072
7076
 
7073
- #: ../lib/puppet/provider/package/gem.rb:195
7077
+ #: ../lib/puppet/provider/package/gem.rb:197
7074
7078
  msgid "Could not install: %{output}"
7075
7079
  msgstr ""
7076
7080
 
7077
- #: ../lib/puppet/provider/package/gem.rb:221
7081
+ #: ../lib/puppet/provider/package/gem.rb:223
7078
7082
  msgid "Could not uninstall: %{output}"
7079
7083
  msgstr ""
7080
7084
 
@@ -10161,11 +10165,11 @@ msgstr ""
10161
10165
  msgid "Cannot create group if user '%{name}' exists."
10162
10166
  msgstr ""
10163
10167
 
10164
- #: ../lib/puppet/util/windows/api_types.rb:79
10168
+ #: ../lib/puppet/util/windows/api_types.rb:85
10165
10169
  msgid "Unable to read wide strings with %{null_terminator} terminal nulls"
10166
10170
  msgstr ""
10167
10171
 
10168
- #: ../lib/puppet/util/windows/api_types.rb:210
10172
+ #: ../lib/puppet/util/windows/api_types.rb:216
10169
10173
  msgid "Bad GUID format."
10170
10174
  msgstr ""
10171
10175
 
@@ -10220,20 +10224,20 @@ msgstr ""
10220
10224
  msgid "Failed to call GetLongPathName"
10221
10225
  msgstr ""
10222
10226
 
10223
- #: ../lib/puppet/util/windows/principal.rb:69 ../lib/puppet/util/windows/principal.rb:76
10227
+ #: ../lib/puppet/util/windows/principal.rb:67 ../lib/puppet/util/windows/principal.rb:74
10224
10228
  msgid "Failed to call LookupAccountNameW with account: %{account_name}"
10225
10229
  msgstr ""
10226
10230
 
10227
10231
  #. TRANSLATORS `lookup_account_sid` is a variable name and should not be translated
10228
- #: ../lib/puppet/util/windows/principal.rb:99
10232
+ #: ../lib/puppet/util/windows/principal.rb:97
10229
10233
  msgid "Byte array for lookup_account_sid must not be nil and must be at least 1 byte long"
10230
10234
  msgstr ""
10231
10235
 
10232
- #: ../lib/puppet/util/windows/principal.rb:118
10236
+ #: ../lib/puppet/util/windows/principal.rb:114
10233
10237
  msgid "Byte array for lookup_account_sid is invalid: %{sid_bytes}"
10234
10238
  msgstr ""
10235
10239
 
10236
- #: ../lib/puppet/util/windows/principal.rb:126 ../lib/puppet/util/windows/principal.rb:133
10240
+ #: ../lib/puppet/util/windows/principal.rb:122 ../lib/puppet/util/windows/principal.rb:129
10237
10241
  msgid "Failed to call LookupAccountSidW with bytes: %{sid_bytes}"
10238
10242
  msgstr ""
10239
10243
 
@@ -10269,39 +10273,39 @@ msgstr ""
10269
10273
  msgid "Failed to open registry key '%{key}\\%{path}'"
10270
10274
  msgstr ""
10271
10275
 
10272
- #: ../lib/puppet/util/windows/registry.rb:130
10276
+ #: ../lib/puppet/util/windows/registry.rb:133
10273
10277
  msgid "Failed to enumerate %{key} registry keys at index %{index}"
10274
10278
  msgstr ""
10275
10279
 
10276
- #: ../lib/puppet/util/windows/registry.rb:161
10280
+ #: ../lib/puppet/util/windows/registry.rb:167
10277
10281
  msgid "Failed to enumerate %{key} registry values at index %{index}"
10278
10282
  msgstr ""
10279
10283
 
10280
- #: ../lib/puppet/util/windows/registry.rb:191
10284
+ #: ../lib/puppet/util/windows/registry.rb:197
10281
10285
  msgid "Failed to query registry %{key} for sizes"
10282
10286
  msgstr ""
10283
10287
 
10284
- #: ../lib/puppet/util/windows/registry.rb:227
10288
+ #: ../lib/puppet/util/windows/registry.rb:233
10285
10289
  msgid "Type mismatch (expect %{rtype} but %{type} present)"
10286
10290
  msgstr ""
10287
10291
 
10288
- #: ../lib/puppet/util/windows/registry.rb:249
10292
+ #: ../lib/puppet/util/windows/registry.rb:255
10289
10293
  msgid "Type %{type} is not supported."
10290
10294
  msgstr ""
10291
10295
 
10292
- #: ../lib/puppet/util/windows/registry.rb:254
10296
+ #: ../lib/puppet/util/windows/registry.rb:260
10293
10297
  msgid "A value in the registry key %{parent_key_name}%{key} is corrupt or invalid"
10294
10298
  msgstr ""
10295
10299
 
10296
- #: ../lib/puppet/util/windows/registry.rb:276
10300
+ #: ../lib/puppet/util/windows/registry.rb:282
10297
10301
  msgid "Failed to read registry value %{value} at %{key}"
10298
10302
  msgstr ""
10299
10303
 
10300
- #: ../lib/puppet/util/windows/registry.rb:294
10304
+ #: ../lib/puppet/util/windows/registry.rb:300
10301
10305
  msgid "Failed to delete registry value %{name} at %{key}"
10302
10306
  msgstr ""
10303
10307
 
10304
- #: ../lib/puppet/util/windows/registry.rb:309
10308
+ #: ../lib/puppet/util/windows/registry.rb:315
10305
10309
  msgid "Failed to delete registry key %{name} at %{key}"
10306
10310
  msgstr ""
10307
10311