puppet 6.2.0-x86-mingw32 → 6.3.0-x86-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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +70 -0
  3. data/Gemfile.lock +7 -7
  4. data/lib/puppet/application.rb +1 -1
  5. data/lib/puppet/application/lookup.rb +1 -1
  6. data/lib/puppet/confine/boolean.rb +45 -0
  7. data/lib/puppet/confine/false.rb +7 -1
  8. data/lib/puppet/confine/true.rb +7 -1
  9. data/lib/puppet/defaults.rb +0 -18
  10. data/lib/puppet/functions/call.rb +2 -1
  11. data/lib/puppet/functions/group_by.rb +54 -0
  12. data/lib/puppet/functions/index.rb +167 -0
  13. data/lib/puppet/functions/partition.rb +54 -0
  14. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  15. data/lib/puppet/pops/issues.rb +4 -0
  16. data/lib/puppet/pops/model/factory.rb +38 -4
  17. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  18. data/lib/puppet/pops/parser/eparser.rb +2 -2
  19. data/lib/puppet/pops/parser/heredoc_support.rb +17 -7
  20. data/lib/puppet/pops/parser/lexer2.rb +6 -1
  21. data/lib/puppet/pops/parser/locator.rb +106 -86
  22. data/lib/puppet/pops/parser/parser_support.rb +11 -2
  23. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  24. data/lib/puppet/pops/validation/checker4_0.rb +2 -2
  25. data/lib/puppet/provider/group/windows_adsi.rb +4 -1
  26. data/lib/puppet/provider/package/apt.rb +2 -2
  27. data/lib/puppet/provider/package/dnf.rb +2 -2
  28. data/lib/puppet/provider/package/gem.rb +2 -2
  29. data/lib/puppet/provider/package/openbsd.rb +2 -2
  30. data/lib/puppet/provider/package/pacman.rb +1 -2
  31. data/lib/puppet/provider/package/pip.rb +1 -2
  32. data/lib/puppet/provider/package/pip3.rb +1 -2
  33. data/lib/puppet/provider/package/pkg.rb +2 -4
  34. data/lib/puppet/provider/package/portage.rb +1 -2
  35. data/lib/puppet/provider/package/rpm.rb +1 -2
  36. data/lib/puppet/provider/package/sun.rb +2 -2
  37. data/lib/puppet/provider/package/windows.rb +2 -2
  38. data/lib/puppet/provider/package/yum.rb +1 -2
  39. data/lib/puppet/provider/package/zypper.rb +2 -2
  40. data/lib/puppet/provider/service/upstart.rb +16 -6
  41. data/lib/puppet/transaction/resource_harness.rb +1 -0
  42. data/lib/puppet/type/file.rb +6 -1
  43. data/lib/puppet/util/log.rb +7 -2
  44. data/lib/puppet/util/pidlock.rb +14 -1
  45. data/lib/puppet/util/windows/process.rb +73 -5
  46. data/lib/puppet/version.rb +1 -1
  47. data/locales/puppet.pot +92 -92
  48. data/man/man5/puppet.conf.5 +2 -2
  49. data/man/man8/puppet-agent.8 +1 -1
  50. data/man/man8/puppet-apply.8 +1 -1
  51. data/man/man8/puppet-catalog.8 +1 -1
  52. data/man/man8/puppet-config.8 +1 -1
  53. data/man/man8/puppet-describe.8 +1 -1
  54. data/man/man8/puppet-device.8 +1 -1
  55. data/man/man8/puppet-doc.8 +1 -1
  56. data/man/man8/puppet-epp.8 +1 -1
  57. data/man/man8/puppet-facts.8 +1 -1
  58. data/man/man8/puppet-filebucket.8 +1 -1
  59. data/man/man8/puppet-generate.8 +1 -1
  60. data/man/man8/puppet-help.8 +1 -1
  61. data/man/man8/puppet-key.8 +1 -1
  62. data/man/man8/puppet-lookup.8 +2 -2
  63. data/man/man8/puppet-man.8 +1 -1
  64. data/man/man8/puppet-module.8 +1 -1
  65. data/man/man8/puppet-node.8 +1 -1
  66. data/man/man8/puppet-parser.8 +1 -1
  67. data/man/man8/puppet-plugin.8 +1 -1
  68. data/man/man8/puppet-report.8 +1 -1
  69. data/man/man8/puppet-resource.8 +1 -1
  70. data/man/man8/puppet-script.8 +1 -1
  71. data/man/man8/puppet-ssl.8 +1 -1
  72. data/man/man8/puppet-status.8 +1 -1
  73. data/man/man8/puppet.8 +2 -2
  74. data/spec/unit/application_spec.rb +8 -1
  75. data/spec/unit/confine/false_spec.rb +27 -0
  76. data/spec/unit/confine/true_spec.rb +27 -0
  77. data/spec/unit/defaults_spec.rb +0 -14
  78. data/spec/unit/functions/group_by_spec.rb +40 -0
  79. data/spec/unit/functions/index_spec.rb +184 -0
  80. data/spec/unit/functions/partition_spec.rb +40 -0
  81. data/spec/unit/pops/loaders/loaders_spec.rb +5 -0
  82. data/spec/unit/pops/parser/locator_spec.rb +45 -0
  83. data/spec/unit/pops/parser/parse_heredoc_spec.rb +111 -15
  84. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +9 -0
  85. data/spec/unit/provider/group/windows_adsi_spec.rb +7 -1
  86. data/spec/unit/transaction/resource_harness_spec.rb +26 -0
  87. data/spec/unit/util/execution_spec.rb +2 -2
  88. data/spec/unit/util/log_spec.rb +15 -0
  89. data/spec/unit/util/pidlock_spec.rb +21 -1
  90. metadata +13 -2
@@ -114,8 +114,17 @@ class Parser
114
114
  pos = nil
115
115
  if token != 0
116
116
  file = value[:file]
117
- line = value[:line]
118
- pos = value[:pos]
117
+ locator = value.locator
118
+ if locator.is_a?(Puppet::Pops::Parser::Locator::SubLocator)
119
+ # The error occurs when doing sub-parsing and the token must be transformed
120
+ # Transpose the local offset, length to global "coordinates"
121
+ global_offset, _ = locator.to_global(value.offset, value.length)
122
+ line = locator.locator.line_for_offset(global_offset)
123
+ pos = locator.locator.pos_on_line(global_offset)
124
+ else
125
+ line = value[:line]
126
+ pos = value[:pos]
127
+ end
119
128
  else
120
129
  # At end of input, use what the lexer thinks is the source file
121
130
  file = lexer.file
@@ -753,7 +753,7 @@ module Types
753
753
  end
754
754
 
755
755
  def describe_POptionalType(expected, original, actual, path)
756
- return EMPTY_ARRAY if actual.is_a?(PUndefType)
756
+ return EMPTY_ARRAY if actual.is_a?(PUndefType) || expected.optional_type.nil?
757
757
  internal_describe(expected.optional_type, original.is_a?(PTypeAliasType) ? original : expected, actual, path)
758
758
  end
759
759
 
@@ -330,8 +330,8 @@ class Checker4_0 < Evaluator::LiteralEvaluator
330
330
  end
331
331
 
332
332
  def check_HeredocExpression(o)
333
- # Only check static text in heredoc
334
- expr = o.text_expr.expr # Always a SublocatedExpression with an expression
333
+ # Only syntax check static text in heredoc during validation - dynamic text is validated by the evaluator.
334
+ expr = o.text_expr
335
335
  if expr.is_a?(Model::LiteralString)
336
336
  assert_external_syntax(nil, expr.value, o.syntax, o.text_expr)
337
337
  end
@@ -67,7 +67,10 @@ Puppet::Type.type(:group).provide :windows_adsi do
67
67
 
68
68
  def members
69
69
  @members ||= Puppet::Util::Windows::ADSI::Group.name_sid_hash(group.members)
70
- @members.keys
70
+
71
+ # @members.keys returns an array of SIDs. We need to convert those SIDs into
72
+ # names so that `puppet resource` prints the right output.
73
+ members_to_s(@members.keys).split(',')
71
74
  end
72
75
 
73
76
  def members=(members)
@@ -5,8 +5,8 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
5
5
  desc "Package management via `apt-get`.
6
6
 
7
7
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to apt-get.
8
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
9
- or an array where each element is either a string or a hash."
8
+ These options should be specified as an array where each element is either a
9
+ string or a hash."
10
10
 
11
11
  has_feature :versionable, :install_options
12
12
 
@@ -6,8 +6,8 @@ Puppet::Type.type(:package).provide :dnf, :parent => :yum do
6
6
  feature is destructive and should be used with the utmost care.
7
7
 
8
8
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to dnf.
9
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
10
- or an array where each element is either a string or a hash."
9
+ These options should be specified as an array where each element is either
10
+ a string or a hash."
11
11
 
12
12
  has_feature :install_options, :versionable, :virtual_packages
13
13
 
@@ -12,8 +12,8 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package d
12
12
 
13
13
  This provider supports the `install_options` and `uninstall_options` attributes,
14
14
  which allow command-line flags to be passed to the gem command.
15
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
16
- or an array where each element is either a string or a hash."
15
+ These options should be specified as an array where each element is either a
16
+ string or a hash."
17
17
 
18
18
  has_feature :versionable, :install_options, :uninstall_options
19
19
 
@@ -6,8 +6,8 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
6
6
 
7
7
  This provider supports the `install_options` and `uninstall_options`
8
8
  attributes, which allow command-line flags to be passed to pkg_add and pkg_delete.
9
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
10
- or an array where each element is either a string or a hash."
9
+ These options should be specified as an array where each element is either a
10
+ string or a hash."
11
11
 
12
12
  commands :pkginfo => "pkg_info",
13
13
  :pkgadd => "pkg_add",
@@ -6,8 +6,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
6
6
  desc "Support for the Package Manager Utility (pacman) used in Archlinux.
7
7
 
8
8
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to pacman.
9
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
10
- or an array where each element is either a string or a hash."
9
+ These options should be specified as an array where each element is either a string or a hash."
11
10
 
12
11
  # If yaourt is installed, we can make use of it
13
12
  def self.yaourt?
@@ -10,8 +10,7 @@ Puppet::Type.type(:package).provide :pip,
10
10
  desc "Python packages via `pip`.
11
11
 
12
12
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to pip.
13
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
14
- or an array where each element is either a string or a hash."
13
+ These options should be specified as an array where each element is either a string or a hash."
15
14
 
16
15
  has_feature :installable, :uninstallable, :upgradeable, :versionable, :install_options
17
16
 
@@ -9,8 +9,7 @@ Puppet::Type.type(:package).provide :pip3,
9
9
  desc "Python packages via `pip3`.
10
10
 
11
11
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to pip3.
12
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
13
- or an array where each element is either a string or a hash."
12
+ These options should be specified as an array where each element is either a string or a hash."
14
13
 
15
14
  has_feature :installable, :uninstallable, :upgradeable, :versionable, :install_options
16
15
 
@@ -4,10 +4,8 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
4
4
  desc "OpenSolaris image packaging system. See pkg(5) for more information.
5
5
 
6
6
  This provider supports the `install_options` attribute, which allows
7
- command-line flags to be passed to pkg. These options should be specified:
8
- - as a string (for example, '--flag'), or
9
- - as a hash (for example, {'--flag' => 'value'}), or
10
- - as an array where each element is either a string or a hash."
7
+ command-line flags to be passed to pkg. These options should be specified as an
8
+ array where each element is either a string or a hash."
11
9
 
12
10
  # https://docs.oracle.com/cd/E19963-01/html/820-6572/managepkgs.html
13
11
  # A few notes before we start:
@@ -5,8 +5,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
5
5
  desc "Provides packaging support for Gentoo's portage system.
6
6
 
7
7
  This provider supports the `install_options` and `uninstall_options` attributes, which allows command-line
8
- flags to be passed to emerge. These options should be specified as a string (e.g. '--flag'), a hash
9
- (e.g. {'--flag' => 'value'}), or an array where each element is either a string or a hash."
8
+ flags to be passed to emerge. These options should be specified as an array where each element is either a string or a hash."
10
9
 
11
10
  has_features :install_options, :purgeable, :reinstallable, :uninstall_options, :versionable, :virtual_packages
12
11
 
@@ -7,8 +7,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
7
7
 
8
8
  This provider supports the `install_options` and `uninstall_options`
9
9
  attributes, which allow command-line flags to be passed to rpm.
10
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
11
- or an array where each element is either a string or a hash."
10
+ These options should be specified as an array where each element is either a string or a hash."
12
11
 
13
12
  has_feature :versionable
14
13
  has_feature :install_options
@@ -7,8 +7,8 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
7
7
  the packages you're managing.
8
8
 
9
9
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to pkgadd.
10
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
11
- or an array where each element is either a string or a hash."
10
+ These options should be specified as an array where each element is either a string
11
+ or a hash."
12
12
 
13
13
  commands :pkginfo => "/usr/bin/pkginfo",
14
14
  :pkgadd => "/usr/sbin/pkgadd",
@@ -12,8 +12,8 @@ Puppet::Type.type(:package).provide(:windows, :parent => Puppet::Provider::Packa
12
12
 
13
13
  This provider supports the `install_options` and `uninstall_options`
14
14
  attributes, which allow command-line flags to be passed to the installer.
15
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
16
- or an array where each element is either a string or a hash.
15
+ These options should be specified as an array where each element is either
16
+ a string or a hash.
17
17
 
18
18
  If the executable requires special arguments to perform a silent install or
19
19
  uninstall, then the appropriate arguments should be specified using the
@@ -6,8 +6,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
6
6
  feature is destructive and should be used with the utmost care.
7
7
 
8
8
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to yum.
9
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
10
- or an array where each element is either a string or a hash."
9
+ These options should be specified as an array where each element is either a string or a hash."
11
10
 
12
11
  has_feature :install_options, :versionable, :virtual_packages
13
12
 
@@ -2,8 +2,8 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
2
2
  desc "Support for SuSE `zypper` package manager. Found in SLES10sp2+ and SLES11.
3
3
 
4
4
  This provider supports the `install_options` attribute, which allows command-line flags to be passed to zypper.
5
- These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
6
- or an array where each element is either a string or a hash."
5
+ These options should be specified as an array where each element is either a
6
+ string or a hash."
7
7
 
8
8
  has_feature :versionable, :install_options, :virtual_packages
9
9
 
@@ -28,12 +28,22 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
28
28
  # We only want to use upstart as our provider if the upstart daemon is running.
29
29
  # This can be checked by running `initctl version --quiet` on a machine that has
30
30
  # upstart installed.
31
- confine :true => begin
32
- initctl('version', '--quiet')
33
- true
34
- rescue
35
- false
36
- end
31
+ confine :true => lambda {
32
+ # Puppet::Util::Execution.execute does not currently work on jRuby.
33
+ # Unfortunately, since this confine is invoked whenever we check for
34
+ # provider suitability and since provider suitability is still checked
35
+ # on the master, this confine will still be invoked on the master. Thus
36
+ # to avoid raising an exception, we do an early return if we're running
37
+ # on jRuby.
38
+ next false if Puppet::Util::Platform.jruby?
39
+
40
+ begin
41
+ initctl('version', '--quiet')
42
+ true
43
+ rescue
44
+ false
45
+ end
46
+ }
37
47
 
38
48
  # upstart developer haven't implemented initctl enable/disable yet:
39
49
  # http://www.linuxplanet.com/linuxplanet/tutorials/7033/2/
@@ -161,6 +161,7 @@ class Puppet::Transaction::ResourceHarness
161
161
  name = param.name.to_s
162
162
  event.message ||= _("could not create change error message for %{name}") % { name: name }
163
163
  event.calculate_corrective_change(@persistence.get_system_value(context.resource.ref, name))
164
+ event.message << ' (corrective)' if event.corrective_change
164
165
  context.record(event)
165
166
  event.send_log
166
167
  context.synced_params << param.name
@@ -31,7 +31,12 @@ Puppet::Type.newtype(:file) do
31
31
 
32
32
  **Autorequires:** If Puppet is managing the user or group that owns a
33
33
  file, the file resource will autorequire them. If Puppet is managing any
34
- parent directories of a file, the file resource will autorequire them."
34
+ parent directories of a file, the file resource autorequires them.
35
+
36
+ Warning: Enabling `recurse` on directories containing large numbers of
37
+ files slows agent runs. To manage file attributes for many files,
38
+ consider using alternative methods such as the `chmod_r`, `chown_r`,
39
+ or `recursive_file_permissions` modules from the Forge."
35
40
 
36
41
  feature :manages_symlinks,
37
42
  "The provider can manage symbolic links."
@@ -60,7 +60,7 @@ class Puppet::Util::Log
60
60
  end
61
61
 
62
62
  def self.close_all
63
- destinations.keys.each { |dest|
63
+ @destinations.keys.each { |dest|
64
64
  close(dest)
65
65
  }
66
66
  #TRANSLATORS "Log.close_all" is a method name and should not be translated
@@ -147,7 +147,12 @@ class Puppet::Util::Log
147
147
  Puppet.log_exception(detail)
148
148
 
149
149
  # If this was our only destination, then add the console back in.
150
- newdestination(:console) if @destinations.empty? and (dest != :console and dest != "console")
150
+ if destinations.empty? && dest.intern != :console
151
+ newdestination(:console)
152
+ end
153
+
154
+ # Re-raise (end exit Puppet) because we could not set up logging correctly.
155
+ raise detail
151
156
  end
152
157
  end
153
158
 
@@ -54,7 +54,20 @@ class Puppet::Util::Pidlock
54
54
  begin
55
55
  Process.kill(0, lock_pid)
56
56
  rescue *errors
57
- @lockfile.unlock
57
+ return @lockfile.unlock
58
+ end
59
+
60
+ # Ensure the process associated with this pid is our process. If
61
+ # not, we can unlock the lockfile. For now this is only done on
62
+ # POSIX and Windows platforms (PUP-9247).
63
+ if Puppet.features.posix?
64
+ procname = Puppet::Util::Execution.execute(["ps", "-p", lock_pid, "-o", "comm="]).strip
65
+ @lockfile.unlock unless procname =~ /puppet$/
66
+ elsif Puppet.features.microsoft_windows?
67
+ # On Windows, we're checking if the filesystem path name of the running
68
+ # process is our vendored ruby:
69
+ exe_path = Puppet::Util::Windows::Process::get_process_image_name_by_pid(lock_pid)
70
+ @lockfile.unlock unless exe_path =~ /Puppet\\puppet\\bin\\ruby.exe/
58
71
  end
59
72
  end
60
73
  private :clear_if_stale
@@ -10,6 +10,10 @@ module Puppet::Util::Windows::Process
10
10
  WAIT_INTERVAL = 200
11
11
  # https://docs.microsoft.com/en-us/windows/desktop/ProcThread/process-creation-flags
12
12
  CREATE_NO_WINDOW = 0x08000000
13
+ # https://docs.microsoft.com/en-us/windows/desktop/ProcThread/process-security-and-access-rights
14
+ PROCESS_QUERY_INFORMATION = 0x0400
15
+ # https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation
16
+ MAX_PATH_LENGTH = 32767
13
17
 
14
18
  def execute(command, arguments, stdin, stdout, stderr)
15
19
  create_args = {
@@ -24,12 +28,10 @@ module Puppet::Util::Windows::Process
24
28
  if arguments[:suppress_window]
25
29
  create_args[:creation_flags] = CREATE_NO_WINDOW
26
30
  end
27
- cwd = arguments[:cwd]
28
- if cwd
29
- Dir.chdir(cwd) { Process.create(create_args) }
30
- else
31
- Process.create(create_args)
31
+ if arguments[:cwd]
32
+ create_args[:cwd] = arguments[:cwd]
32
33
  end
34
+ Process.create(create_args)
33
35
  end
34
36
  module_function :execute
35
37
 
@@ -62,6 +64,26 @@ module Puppet::Util::Windows::Process
62
64
  end
63
65
  module_function :get_current_process
64
66
 
67
+ def open_process(desired_access, inherit_handle, process_id, &block)
68
+ phandle = nil
69
+ inherit = inherit_handle ? FFI::WIN32_TRUE : FFI::WIN32_FALSE
70
+ begin
71
+ phandle = OpenProcess(desired_access, inherit, process_id)
72
+ if phandle == FFI::Pointer::NULL_HANDLE
73
+ raise Puppet::Util::Windows::Error.new(
74
+ "OpenProcess(#{desired_access.to_s(8)}, #{inherit}, #{process_id})")
75
+ end
76
+
77
+ yield phandle
78
+ ensure
79
+ FFI::WIN32.CloseHandle(phandle) if phandle
80
+ end
81
+
82
+ # phandle has had CloseHandle called against it, so nothing to return
83
+ nil
84
+ end
85
+ module_function :open_process
86
+
65
87
  def open_process_token(handle, desired_access, &block)
66
88
  token_handle = nil
67
89
  begin
@@ -97,6 +119,32 @@ module Puppet::Util::Windows::Process
97
119
  end
98
120
  module_function :with_process_token
99
121
 
122
+ def get_process_image_name_by_pid(pid)
123
+ image_name = ""
124
+
125
+ open_process(PROCESS_QUERY_INFORMATION, false, pid) do |phandle|
126
+
127
+ FFI::MemoryPointer.new(:dword, 1) do |exe_name_length_ptr|
128
+ # Add 1 for the null terminator, and UTF is 2 bytes/char:
129
+ max_path_length = (MAX_PATH_LENGTH + 1) * 2
130
+ exe_name_length_ptr.write_dword(max_path_length)
131
+ FFI::MemoryPointer.new(max_path_length) do |exe_name_ptr|
132
+ use_win32_path_format = 0
133
+ result = QueryFullProcessImageNameW(phandle, use_win32_path_format, exe_name_ptr, exe_name_length_ptr)
134
+ if result == FFI::WIN32_FALSE
135
+ raise Puppet::Util::Windows::Error.new(
136
+ "QueryFullProcessImageNameW(phandle, #{use_win32_path_format}, " +
137
+ "exe_name_ptr, #{max_path_length}")
138
+ end
139
+ image_name = exe_name_ptr.read_wide_string(MAX_PATH_LENGTH + 1)
140
+ end
141
+ end
142
+ end
143
+
144
+ image_name
145
+ end
146
+ module_function :get_process_image_name_by_pid
147
+
100
148
  def lookup_privilege_value(name, system_name = '', &block)
101
149
  FFI::MemoryPointer.new(LUID.size) do |luid_ptr|
102
150
  result = LookupPrivilegeValueW(
@@ -366,6 +414,16 @@ module Puppet::Util::Windows::Process
366
414
  attach_function_private :SetEnvironmentVariableW,
367
415
  [:lpcwstr, :lpcwstr], :win32_bool
368
416
 
417
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
418
+ # HANDLE WINAPI OpenProcess(
419
+ # _In_ DWORD DesiredAccess,
420
+ # _In_ BOOL InheritHandle,
421
+ # _In_ DWORD ProcessId
422
+ # );
423
+ ffi_lib :kernel32
424
+ attach_function_private :OpenProcess,
425
+ [:dword, :win32_bool, :dword], :handle
426
+
369
427
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379295(v=vs.85).aspx
370
428
  # BOOL WINAPI OpenProcessToken(
371
429
  # _In_ HANDLE ProcessHandle,
@@ -376,6 +434,16 @@ module Puppet::Util::Windows::Process
376
434
  attach_function_private :OpenProcessToken,
377
435
  [:handle, :dword, :phandle], :win32_bool
378
436
 
437
+ # https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-queryfullprocessimagenamew
438
+ # BOOL WINAPI QueryFullProcessImageName(
439
+ # _In_ HANDLE hProcess,
440
+ # _In_ DWORD dwFlags,
441
+ # _Out_ LPWSTR lpExeName,
442
+ # _In_ PDWORD lpdwSize,
443
+ # );
444
+ ffi_lib :kernel32
445
+ attach_function_private :QueryFullProcessImageNameW,
446
+ [:handle, :dword, :lpwstr, :pdword], :win32_bool
379
447
 
380
448
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379261(v=vs.85).aspx
381
449
  # typedef struct _LUID {
@@ -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.2.0'
9
+ PUPPETVERSION = '6.3.0'
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 6.1.0-99-g8d13182\n"
9
+ "Project-Id-Version: Puppet automation framework 6.2.0-46-gd0b3885\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2019-01-22 21:33+0000\n"
13
- "PO-Revision-Date: 2019-01-22 21:33+0000\n"
12
+ "POT-Creation-Date: 2019-02-02 21:03+0000\n"
13
+ "PO-Revision-Date: 2019-02-02 21:03+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -160,6 +160,10 @@ msgstr ""
160
160
  msgid "No valid command or main"
161
161
  msgstr ""
162
162
 
163
+ #: ../lib/puppet/application.rb:428
164
+ msgid "Could not set logdest to %{dest}."
165
+ msgstr ""
166
+
163
167
  #: ../lib/puppet/application.rb:504
164
168
  msgid "No help available for puppet %{app_name}"
165
169
  msgstr ""
@@ -705,14 +709,6 @@ msgstr ""
705
709
  msgid "Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'"
706
710
  msgstr ""
707
711
 
708
- #: ../lib/puppet/defaults.rb:1459 ../lib/puppet/defaults.rb:1474
709
- msgid "Attempted to set both server and server_list."
710
- msgstr ""
711
-
712
- #: ../lib/puppet/defaults.rb:1460 ../lib/puppet/defaults.rb:1475
713
- msgid "Server setting will not be used."
714
- msgstr ""
715
-
716
712
  #: ../lib/puppet/error.rb:69
717
713
  msgid "Could not parse for environment %{environment}: %{message}"
718
714
  msgstr ""
@@ -5361,150 +5357,154 @@ msgid "An escape char for @() may only appear once. Got '%{escapes}'"
5361
5357
  msgstr ""
5362
5358
 
5363
5359
  #: ../lib/puppet/pops/issues.rb:763
5364
- msgid "Illegal %{format} Byte Order mark at beginning of input: %{bom} - remove these from the puppet source"
5360
+ msgid "Heredoc with text in the margin is not allowed (line %{heredoc_line} in this heredoc)"
5365
5361
  msgstr ""
5366
5362
 
5367
5363
  #: ../lib/puppet/pops/issues.rb:767
5368
- msgid "No such file or directory: %{file}"
5364
+ msgid "Illegal %{format} Byte Order mark at beginning of input: %{bom} - remove these from the puppet source"
5369
5365
  msgstr ""
5370
5366
 
5371
5367
  #: ../lib/puppet/pops/issues.rb:771
5368
+ msgid "No such file or directory: %{file}"
5369
+ msgstr ""
5370
+
5371
+ #: ../lib/puppet/pops/issues.rb:775
5372
5372
  msgid "%{file} is not a file"
5373
5373
  msgstr ""
5374
5374
 
5375
- #: ../lib/puppet/pops/issues.rb:776
5375
+ #: ../lib/puppet/pops/issues.rb:780
5376
5376
  msgid "%{expression} resulted in a value outside of Puppet Integer max range, got '%{value}'"
5377
5377
  msgstr ""
5378
5378
 
5379
- #: ../lib/puppet/pops/issues.rb:778
5379
+ #: ../lib/puppet/pops/issues.rb:782
5380
5380
  msgid "%{expression} resulted in a value outside of Puppet Integer min range, got '%{value}'"
5381
5381
  msgstr ""
5382
5382
 
5383
- #: ../lib/puppet/pops/issues.rb:783
5383
+ #: ../lib/puppet/pops/issues.rb:787
5384
5384
  msgid "This runtime does not support hiera.yaml version %{version}"
5385
5385
  msgstr ""
5386
5386
 
5387
- #: ../lib/puppet/pops/issues.rb:787
5387
+ #: ../lib/puppet/pops/issues.rb:791
5388
5388
  msgid "hiera.yaml version 3 cannot be used in %{location}"
5389
5389
  msgstr ""
5390
5390
 
5391
- #: ../lib/puppet/pops/issues.rb:791
5391
+ #: ../lib/puppet/pops/issues.rb:795
5392
5392
  msgid "hiera.yaml version 4 cannot be used in the global layer"
5393
5393
  msgstr ""
5394
5394
 
5395
- #: ../lib/puppet/pops/issues.rb:795
5395
+ #: ../lib/puppet/pops/issues.rb:799
5396
5396
  msgid "Undefined variable '%{name}'"
5397
5397
  msgstr ""
5398
5398
 
5399
- #: ../lib/puppet/pops/issues.rb:799
5399
+ #: ../lib/puppet/pops/issues.rb:803
5400
5400
  msgid "Backend '%{name}' is defined more than once."
5401
5401
  msgstr ""
5402
5402
 
5403
- #: ../lib/puppet/pops/issues.rb:802 ../lib/puppet/pops/issues.rb:815
5403
+ #: ../lib/puppet/pops/issues.rb:806 ../lib/puppet/pops/issues.rb:819
5404
5404
  msgid "First defined at %{error_location}"
5405
5405
  msgstr ""
5406
5406
 
5407
- #: ../lib/puppet/pops/issues.rb:808
5407
+ #: ../lib/puppet/pops/issues.rb:812
5408
5408
  msgid "No data provider is registered for backend '%{name}'"
5409
5409
  msgstr ""
5410
5410
 
5411
- #: ../lib/puppet/pops/issues.rb:812
5411
+ #: ../lib/puppet/pops/issues.rb:816
5412
5412
  msgid "Hierarchy name '%{name}' defined more than once."
5413
5413
  msgstr ""
5414
5414
 
5415
- #: ../lib/puppet/pops/issues.rb:821
5415
+ #: ../lib/puppet/pops/issues.rb:825
5416
5416
  msgid "'hiera3_backend' is only allowed in the global layer"
5417
5417
  msgstr ""
5418
5418
 
5419
- #: ../lib/puppet/pops/issues.rb:825
5419
+ #: ../lib/puppet/pops/issues.rb:829
5420
5420
  msgid "'default_hierarchy' is only allowed in the module layer"
5421
5421
  msgstr ""
5422
5422
 
5423
- #: ../lib/puppet/pops/issues.rb:829
5423
+ #: ../lib/puppet/pops/issues.rb:833
5424
5424
  msgid "Use \"data_hash: %{function_name}_data\" instead of \"hiera3_backend: %{function_name}\""
5425
5425
  msgstr ""
5426
5426
 
5427
- #: ../lib/puppet/pops/issues.rb:833
5427
+ #: ../lib/puppet/pops/issues.rb:837
5428
5428
  msgid "One of %{keys} must be defined in hierarchy '%{name}'"
5429
5429
  msgstr ""
5430
5430
 
5431
- #: ../lib/puppet/pops/issues.rb:837 ../lib/puppet/pops/issues.rb:845
5431
+ #: ../lib/puppet/pops/issues.rb:841 ../lib/puppet/pops/issues.rb:849
5432
5432
  msgid "Only one of %{keys} can be defined in hierarchy '%{name}'"
5433
5433
  msgstr ""
5434
5434
 
5435
- #: ../lib/puppet/pops/issues.rb:841
5435
+ #: ../lib/puppet/pops/issues.rb:845
5436
5436
  msgid "Only one of %{keys} can be defined in defaults"
5437
5437
  msgstr ""
5438
5438
 
5439
- #: ../lib/puppet/pops/issues.rb:849
5439
+ #: ../lib/puppet/pops/issues.rb:853
5440
5440
  msgid "Option key '%{key}' used in hierarchy '%{name}' is reserved by Puppet"
5441
5441
  msgstr ""
5442
5442
 
5443
- #: ../lib/puppet/pops/issues.rb:853
5443
+ #: ../lib/puppet/pops/issues.rb:857
5444
5444
  msgid "Option key '%{key}' used in defaults is reserved by Puppet"
5445
5445
  msgstr ""
5446
5446
 
5447
- #: ../lib/puppet/pops/issues.rb:857
5447
+ #: ../lib/puppet/pops/issues.rb:861
5448
5448
  msgid "Unable to find '%{function_type}' function named '%{function_name}'"
5449
5449
  msgstr ""
5450
5450
 
5451
- #: ../lib/puppet/pops/issues.rb:861
5451
+ #: ../lib/puppet/pops/issues.rb:865
5452
5452
  msgid "'alias' interpolation is only permitted if the expression is equal to the entire string"
5453
5453
  msgstr ""
5454
5454
 
5455
- #: ../lib/puppet/pops/issues.rb:865
5455
+ #: ../lib/puppet/pops/issues.rb:869
5456
5456
  msgid "Unknown interpolation method '%{name}'"
5457
5457
  msgstr ""
5458
5458
 
5459
- #: ../lib/puppet/pops/issues.rb:869
5459
+ #: ../lib/puppet/pops/issues.rb:873
5460
5460
  msgid "Interpolation using method syntax is not allowed in this context"
5461
5461
  msgstr ""
5462
5462
 
5463
- #: ../lib/puppet/pops/issues.rb:873
5463
+ #: ../lib/puppet/pops/issues.rb:877
5464
5464
  msgid "Endless recursion detected when attempting to serialize value of class %{type_name}"
5465
5465
  msgstr ""
5466
5466
 
5467
- #: ../lib/puppet/pops/issues.rb:877
5467
+ #: ../lib/puppet/pops/issues.rb:881
5468
5468
  msgid "%{path} contains the special value default. It will be converted to the String 'default'"
5469
5469
  msgstr ""
5470
5470
 
5471
- #: ../lib/puppet/pops/issues.rb:881
5471
+ #: ../lib/puppet/pops/issues.rb:885
5472
5472
  msgid "%{path} contains %{klass} value. It will be converted to the String '%{value}'"
5473
5473
  msgstr ""
5474
5474
 
5475
- #: ../lib/puppet/pops/issues.rb:885
5475
+ #: ../lib/puppet/pops/issues.rb:889
5476
5476
  msgid "%{path} contains a hash with %{klass} key. It will be converted to the String '%{value}'"
5477
5477
  msgstr ""
5478
5478
 
5479
- #: ../lib/puppet/pops/issues.rb:889
5479
+ #: ../lib/puppet/pops/issues.rb:893
5480
5480
  msgid "The feature '%{feature}' is only available when compiling a catalog"
5481
5481
  msgstr ""
5482
5482
 
5483
- #: ../lib/puppet/pops/issues.rb:893
5483
+ #: ../lib/puppet/pops/issues.rb:897
5484
5484
  msgid "The catalog operation '%{operation}' is only available when compiling a catalog"
5485
5485
  msgstr ""
5486
5486
 
5487
- #: ../lib/puppet/pops/issues.rb:897
5487
+ #: ../lib/puppet/pops/issues.rb:901
5488
5488
  msgid "%{expr} is only available when compiling a catalog"
5489
5489
  msgstr ""
5490
5490
 
5491
- #: ../lib/puppet/pops/issues.rb:901
5491
+ #: ../lib/puppet/pops/issues.rb:905
5492
5492
  msgid "The task operation '%{operation}' is not available when compiling a catalog"
5493
5493
  msgstr ""
5494
5494
 
5495
- #: ../lib/puppet/pops/issues.rb:905
5495
+ #: ../lib/puppet/pops/issues.rb:909
5496
5496
  msgid "%{expr} is not available when compiling a catalog"
5497
5497
  msgstr ""
5498
5498
 
5499
- #: ../lib/puppet/pops/issues.rb:909
5499
+ #: ../lib/puppet/pops/issues.rb:913
5500
5500
  msgid "The 'bolt' library is required to %{action}"
5501
5501
  msgstr ""
5502
5502
 
5503
- #: ../lib/puppet/pops/issues.rb:913
5503
+ #: ../lib/puppet/pops/issues.rb:917
5504
5504
  msgid "Task not found: %{type_name}"
5505
5505
  msgstr ""
5506
5506
 
5507
- #: ../lib/puppet/pops/issues.rb:917
5507
+ #: ../lib/puppet/pops/issues.rb:921
5508
5508
  msgid "Failed to load: %{type_name}"
5509
5509
  msgstr ""
5510
5510
 
@@ -5834,19 +5834,19 @@ msgid "Unacceptable transform - found an Object without a rule: %{klass}"
5834
5834
  msgstr ""
5835
5835
 
5836
5836
  #. TRANSLATORS 'NUMBER' refers to a method name and the 'name_or_numeric' was the passed in value and should not be translated
5837
- #: ../lib/puppet/pops/model/factory.rb:814
5837
+ #: ../lib/puppet/pops/model/factory.rb:848
5838
5838
  msgid "Internal Error, NUMBER token does not contain a valid number, %{name_or_numeric}"
5839
5839
  msgstr ""
5840
5840
 
5841
- #: ../lib/puppet/pops/model/factory.rb:1130
5841
+ #: ../lib/puppet/pops/model/factory.rb:1164
5842
5842
  msgid "can only concatenate strings, got %{class_name}"
5843
5843
  msgstr ""
5844
5844
 
5845
- #: ../lib/puppet/pops/parser/parser_support.rb:195
5845
+ #: ../lib/puppet/pops/parser/parser_support.rb:204
5846
5846
  msgid "attempt to pass argument list to the function '%{name}' which cannot be called without parentheses"
5847
5847
  msgstr ""
5848
5848
 
5849
- #: ../lib/puppet/pops/parser/parser_support.rb:197
5849
+ #: ../lib/puppet/pops/parser/parser_support.rb:206
5850
5850
  msgid "illegal comma separated argument list"
5851
5851
  msgstr ""
5852
5852
 
@@ -7973,23 +7973,23 @@ msgstr ""
7973
7973
  msgid "could not create change error message for %{name}"
7974
7974
  msgstr ""
7975
7975
 
7976
- #: ../lib/puppet/transaction/resource_harness.rb:214
7976
+ #: ../lib/puppet/transaction/resource_harness.rb:215
7977
7977
  msgid "audit change: previously recorded value %s has been changed to %s"
7978
7978
  msgstr ""
7979
7979
 
7980
- #: ../lib/puppet/transaction/resource_harness.rb:224
7980
+ #: ../lib/puppet/transaction/resource_harness.rb:225
7981
7981
  msgid " (previously recorded value was %s)"
7982
7982
  msgstr ""
7983
7983
 
7984
- #: ../lib/puppet/transaction/resource_harness.rb:231
7984
+ #: ../lib/puppet/transaction/resource_harness.rb:232
7985
7985
  msgid "current_value %s, should be %s (noop)"
7986
7986
  msgstr ""
7987
7987
 
7988
- #: ../lib/puppet/transaction/resource_harness.rb:240
7988
+ #: ../lib/puppet/transaction/resource_harness.rb:241
7989
7989
  msgid "changed %s to %s"
7990
7990
  msgstr ""
7991
7991
 
7992
- #: ../lib/puppet/transaction/resource_harness.rb:263
7992
+ #: ../lib/puppet/transaction/resource_harness.rb:264
7993
7993
  msgid "audit change: newly-recorded value %s"
7994
7994
  msgstr ""
7995
7995
 
@@ -8127,90 +8127,90 @@ msgstr ""
8127
8127
  msgid "Check %{value} exceeded timeout"
8128
8128
  msgstr ""
8129
8129
 
8130
- #: ../lib/puppet/type/file.rb:56
8130
+ #: ../lib/puppet/type/file.rb:61
8131
8131
  msgid "File paths must be fully qualified, not '%{path}'"
8132
8132
  msgstr ""
8133
8133
 
8134
- #: ../lib/puppet/type/file.rb:124
8134
+ #: ../lib/puppet/type/file.rb:129
8135
8135
  msgid "Invalid backup type %{value}"
8136
8136
  msgstr ""
8137
8137
 
8138
- #: ../lib/puppet/type/file.rb:168 ../lib/puppet/type/tidy.rb:48
8138
+ #: ../lib/puppet/type/file.rb:173 ../lib/puppet/type/tidy.rb:48
8139
8139
  msgid "Invalid recurse value %{value}"
8140
8140
  msgstr ""
8141
8141
 
8142
- #: ../lib/puppet/type/file.rb:200
8142
+ #: ../lib/puppet/type/file.rb:205
8143
8143
  msgid "Invalid recurselimit value %{value}"
8144
8144
  msgstr ""
8145
8145
 
8146
- #: ../lib/puppet/type/file.rb:370
8146
+ #: ../lib/puppet/type/file.rb:375
8147
8147
  msgid "You cannot specify more than one of %{creators}"
8148
8148
  msgstr ""
8149
8149
 
8150
- #: ../lib/puppet/type/file.rb:372
8150
+ #: ../lib/puppet/type/file.rb:377
8151
8151
  msgid "You cannot specify a remote recursion without a source"
8152
8152
  msgstr ""
8153
8153
 
8154
- #: ../lib/puppet/type/file.rb:374
8154
+ #: ../lib/puppet/type/file.rb:379
8155
8155
  msgid "You cannot specify source when using checksum 'none'"
8156
8156
  msgstr ""
8157
8157
 
8158
- #: ../lib/puppet/type/file.rb:377
8158
+ #: ../lib/puppet/type/file.rb:382
8159
8159
  msgid "You cannot specify content when using checksum '%{checksum_type}'"
8160
8160
  msgstr ""
8161
8161
 
8162
- #: ../lib/puppet/type/file.rb:380
8162
+ #: ../lib/puppet/type/file.rb:385
8163
8163
  msgid "Possible error: recurselimit is set but not recurse, no recursion will happen"
8164
8164
  msgstr ""
8165
8165
 
8166
- #: ../lib/puppet/type/file.rb:388
8166
+ #: ../lib/puppet/type/file.rb:393
8167
8167
  msgid "Checksum value '%{value}' is not a valid checksum type %{checksum}"
8168
8168
  msgstr ""
8169
8169
 
8170
- #: ../lib/puppet/type/file.rb:391
8170
+ #: ../lib/puppet/type/file.rb:396
8171
8171
  msgid "Checksum value is ignored unless content or source are specified"
8172
8172
  msgstr ""
8173
8173
 
8174
- #: ../lib/puppet/type/file.rb:429
8174
+ #: ../lib/puppet/type/file.rb:434
8175
8175
  msgid "Can not find filebucket for backups without a catalog"
8176
8176
  msgstr ""
8177
8177
 
8178
- #: ../lib/puppet/type/file.rb:433
8178
+ #: ../lib/puppet/type/file.rb:438
8179
8179
  msgid "Could not find filebucket %{backup} specified in backup"
8180
8180
  msgstr ""
8181
8181
 
8182
- #: ../lib/puppet/type/file.rb:729
8182
+ #: ../lib/puppet/type/file.rb:734
8183
8183
  msgid "Could not back up file of type %{current_type}"
8184
8184
  msgstr ""
8185
8185
 
8186
- #: ../lib/puppet/type/file.rb:744
8186
+ #: ../lib/puppet/type/file.rb:749
8187
8187
  msgid "Could not remove files of type %{current_type}"
8188
8188
  msgstr ""
8189
8189
 
8190
8190
  #. TRANSLATORS "source_permissions => ignore" should not be translated
8191
- #: ../lib/puppet/type/file.rb:755
8191
+ #: ../lib/puppet/type/file.rb:760
8192
8192
  msgid "Copying owner/mode/group from the source file on Windows is not supported; use source_permissions => ignore."
8193
8193
  msgstr ""
8194
8194
 
8195
8195
  #. TRANSLATORS "stat" is a program name and should not be translated
8196
- #: ../lib/puppet/type/file.rb:836 ../lib/puppet/type/tidy.rb:345
8196
+ #: ../lib/puppet/type/file.rb:841 ../lib/puppet/type/tidy.rb:345
8197
8197
  msgid "Could not stat; permission denied"
8198
8198
  msgstr ""
8199
8199
 
8200
- #: ../lib/puppet/type/file.rb:839
8200
+ #: ../lib/puppet/type/file.rb:844
8201
8201
  msgid "Could not stat; invalid pathname"
8202
8202
  msgstr ""
8203
8203
 
8204
- #: ../lib/puppet/type/file.rb:964
8204
+ #: ../lib/puppet/type/file.rb:969
8205
8205
  msgid "Not removing directory; use 'force' to override"
8206
8206
  msgstr ""
8207
8207
 
8208
8208
  #. TRANSLATORS refers to a file which could not be backed up
8209
- #: ../lib/puppet/type/file.rb:989
8209
+ #: ../lib/puppet/type/file.rb:994
8210
8210
  msgid "Could not back up; will not remove"
8211
8211
  msgstr ""
8212
8212
 
8213
- #: ../lib/puppet/type/file.rb:1003
8213
+ #: ../lib/puppet/type/file.rb:1008
8214
8214
  msgid "File written to disk did not match checksum; discarding changes (%{content_checksum} vs %{newsum})"
8215
8215
  msgstr ""
8216
8216
 
@@ -9011,7 +9011,7 @@ msgstr ""
9011
9011
  msgid "Logs require a level"
9012
9012
  msgstr ""
9013
9013
 
9014
- #: ../lib/puppet/util/log.rb:87 ../lib/puppet/util/log.rb:370 ../lib/puppet/util/windows/eventlog.rb:99
9014
+ #: ../lib/puppet/util/log.rb:87 ../lib/puppet/util/log.rb:375 ../lib/puppet/util/windows/eventlog.rb:99
9015
9015
  msgid "Invalid log level %{level}"
9016
9016
  msgstr ""
9017
9017
 
@@ -9023,40 +9023,40 @@ msgstr ""
9023
9023
  msgid "Unknown destination type %{dest}"
9024
9024
  msgstr ""
9025
9025
 
9026
- #: ../lib/puppet/util/log.rb:171
9026
+ #: ../lib/puppet/util/log.rb:176
9027
9027
  msgid "Received a Log attribute with invalid encoding:%{log_message}"
9028
9028
  msgstr ""
9029
9029
 
9030
- #: ../lib/puppet/util/log.rb:173
9030
+ #: ../lib/puppet/util/log.rb:178
9031
9031
  msgid ""
9032
9032
  "Backtrace:\n"
9033
9033
  "%{backtrace}"
9034
9034
  msgstr ""
9035
9035
 
9036
- #: ../lib/puppet/util/log.rb:227
9036
+ #: ../lib/puppet/util/log.rb:232
9037
9037
  msgid "Reopening log files"
9038
9038
  msgstr ""
9039
9039
 
9040
9040
  #. TRANSLATORS 'Puppet::Util::Log' refers to a Puppet source code class
9041
- #: ../lib/puppet/util/log.rb:360
9041
+ #: ../lib/puppet/util/log.rb:365
9042
9042
  msgid "Puppet::Util::Log requires a message"
9043
9043
  msgstr ""
9044
9044
 
9045
9045
  #. TRANSLATORS 'Puppet::Util::Log' refers to a Puppet source code class
9046
- #: ../lib/puppet/util/log.rb:366
9046
+ #: ../lib/puppet/util/log.rb:371
9047
9047
  msgid "Puppet::Util::Log requires a log level"
9048
9048
  msgstr ""
9049
9049
 
9050
9050
  #. TRANSLATORS 'Puppet::Util::Log' refers to a Puppet source code class
9051
- #: ../lib/puppet/util/log.rb:368
9051
+ #: ../lib/puppet/util/log.rb:373
9052
9052
  msgid "Puppet::Util::Log requires a symbol or string"
9053
9053
  msgstr ""
9054
9054
 
9055
- #: ../lib/puppet/util/log.rb:399
9055
+ #: ../lib/puppet/util/log.rb:404
9056
9056
  msgid "Could not parse for environment %{environment}: %{msg}"
9057
9057
  msgstr ""
9058
9058
 
9059
- #: ../lib/puppet/util/log.rb:401
9059
+ #: ../lib/puppet/util/log.rb:406
9060
9060
  msgid "%{msg} on node %{node}"
9061
9061
  msgstr ""
9062
9062
 
@@ -9437,27 +9437,27 @@ msgstr ""
9437
9437
  msgid "Failed to call LookupAccountSidW with bytes: %{sid_bytes}"
9438
9438
  msgstr ""
9439
9439
 
9440
- #: ../lib/puppet/util/windows/process.rb:44
9440
+ #: ../lib/puppet/util/windows/process.rb:46
9441
9441
  msgid "Failed to get child process exit code"
9442
9442
  msgstr ""
9443
9443
 
9444
- #: ../lib/puppet/util/windows/process.rb:237
9444
+ #: ../lib/puppet/util/windows/process.rb:285
9445
9445
  msgid "GetVersionEx failed"
9446
9446
  msgstr ""
9447
9447
 
9448
- #: ../lib/puppet/util/windows/process.rb:266
9448
+ #: ../lib/puppet/util/windows/process.rb:314
9449
9449
  msgid "Discarding environment variable %{string} which contains invalid bytes"
9450
9450
  msgstr ""
9451
9451
 
9452
- #: ../lib/puppet/util/windows/process.rb:282
9452
+ #: ../lib/puppet/util/windows/process.rb:330
9453
9453
  msgid "environment variable name must not be nil or empty"
9454
9454
  msgstr ""
9455
9455
 
9456
- #: ../lib/puppet/util/windows/process.rb:287
9456
+ #: ../lib/puppet/util/windows/process.rb:335
9457
9457
  msgid "Failed to remove environment variable: %{name}"
9458
9458
  msgstr ""
9459
9459
 
9460
- #: ../lib/puppet/util/windows/process.rb:292
9460
+ #: ../lib/puppet/util/windows/process.rb:340
9461
9461
  msgid "Failed to set environment variable: %{name}"
9462
9462
  msgstr ""
9463
9463