puppet 8.6.0-x64-mingw32 → 8.7.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -2
- data/Gemfile.lock +42 -38
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- data/lib/puppet/daemon.rb +1 -0
- data/lib/puppet/pops/loader/static_loader.rb +2 -2
- data/lib/puppet/pops/lookup/module_data_provider.rb +9 -9
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +30 -9
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/scheduler/splay_job.rb +9 -0
- data/lib/puppet/type/exec.rb +8 -0
- data/lib/puppet/util/command_line/trollop.rb +20 -2
- data/lib/puppet/util/rpm_compare.rb +1 -1
- data/lib/puppet/util/windows/com.rb +2 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +604 -600
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +39 -25
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
data/ext/project_data.yaml
CHANGED
@@ -1,53 +1,8 @@
|
|
1
1
|
---
|
2
2
|
project: 'puppet'
|
3
|
-
author: 'Puppet Labs'
|
4
|
-
email: 'info@puppetlabs.com'
|
5
|
-
homepage: 'https://github.com/puppetlabs/puppet'
|
6
|
-
summary: 'Puppet, an automated configuration management tool'
|
7
|
-
description: 'Puppet, an automated configuration management tool'
|
8
|
-
version_file: 'lib/puppet/version.rb'
|
9
|
-
# files and gem_files are space separated lists
|
10
|
-
files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
|
11
|
-
# Make sure these gem requirements are in sync with the gemspec and Gemfile
|
12
|
-
gem_files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
|
13
|
-
gem_test_files:
|
14
|
-
gem_executables: 'puppet'
|
15
|
-
gem_default_executables: 'puppet'
|
16
|
-
gem_license: 'Apache-2.0'
|
17
|
-
gem_forge_project: 'puppet'
|
18
|
-
gem_required_ruby_version: '>= 3.1.0'
|
19
|
-
gem_required_rubygems_version: '> 1.3.1'
|
20
|
-
gem_runtime_dependencies:
|
21
|
-
facter: ['>= 4.3.0', '< 5']
|
22
|
-
semantic_puppet: '~> 1.0'
|
23
|
-
fast_gettext: ['>= 2.1', '< 3']
|
24
|
-
locale: '~> 2.1'
|
25
|
-
multi_json: '~> 1.13'
|
26
|
-
puppet-resource_api: '~>1.5'
|
27
|
-
concurrent-ruby: "~> 1.0"
|
28
|
-
deep_merge: '~> 1.0'
|
29
|
-
scanf: '~> 1.0'
|
30
3
|
gem_rdoc_options:
|
31
4
|
- --title
|
32
5
|
- "Puppet - Configuration Management"
|
33
6
|
- --main
|
34
7
|
- README.md
|
35
8
|
- --line-numbers
|
36
|
-
gem_platform_dependencies:
|
37
|
-
universal-darwin:
|
38
|
-
gem_runtime_dependencies:
|
39
|
-
CFPropertyList: '~> 2.2'
|
40
|
-
x86-mingw32:
|
41
|
-
gem_runtime_dependencies:
|
42
|
-
ffi: '1.15.5'
|
43
|
-
minitar: '~> 0.9'
|
44
|
-
x64-mingw32:
|
45
|
-
gem_runtime_dependencies:
|
46
|
-
ffi: '1.15.5'
|
47
|
-
minitar: '~> 0.9'
|
48
|
-
bundle_platforms:
|
49
|
-
universal-darwin: all
|
50
|
-
x86-mingw32: mingw
|
51
|
-
x64-mingw32: x64_mingw
|
52
|
-
pre_tasks:
|
53
|
-
'package:apple': 'cfpropertylist'
|
data/lib/puppet/daemon.rb
CHANGED
@@ -165,6 +165,7 @@ class Puppet::Daemon
|
|
165
165
|
reparse_run = Puppet::Scheduler.create_job(Puppet[:filetimeout]) do
|
166
166
|
Puppet.settings.reparse_config_files
|
167
167
|
agent_run.run_interval = Puppet[:runinterval]
|
168
|
+
agent_run.splay_limit = Puppet[:splaylimit] if Puppet[:splay]
|
168
169
|
if Puppet[:filetimeout] == 0
|
169
170
|
reparse_run.disable
|
170
171
|
else
|
@@ -46,9 +46,9 @@ class StaticLoader < Loader
|
|
46
46
|
|
47
47
|
def discover(type, error_collector = nil, name_authority = Pcore::RUNTIME_NAME_AUTHORITY)
|
48
48
|
# Static loader only contains runtime types
|
49
|
-
return EMPTY_ARRAY unless type == :type && name_authority ==
|
49
|
+
return EMPTY_ARRAY unless type == :type && name_authority == Pcore::RUNTIME_NAME_AUTHORITY
|
50
50
|
|
51
|
-
typed_names =
|
51
|
+
typed_names = @loaded.keys
|
52
52
|
block_given? ? typed_names.select { |tn| yield(tn) } : typed_names
|
53
53
|
end
|
54
54
|
|
@@ -47,16 +47,16 @@ class ModuleDataProvider < ConfiguredDataProvider
|
|
47
47
|
def validate_data_hash(data_hash)
|
48
48
|
super
|
49
49
|
module_prefix = "#{module_name}::"
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
50
|
+
data_hash_to_return = {}
|
51
|
+
data_hash.keys.each do |k|
|
52
|
+
if k == LOOKUP_OPTIONS || k.start_with?(module_prefix)
|
53
|
+
data_hash_to_return[k] = data_hash[k]
|
54
|
+
else
|
55
|
+
msg = "#{yield} must use keys qualified with the name of the module"
|
56
|
+
Puppet.warning("Module '#{module_name}': #{msg}; got #{k}")
|
57
|
+
end
|
58
58
|
end
|
59
|
-
|
59
|
+
data_hash_to_return
|
60
60
|
end
|
61
61
|
|
62
62
|
protected
|
@@ -131,7 +131,7 @@ class Puppet::Provider::AixObject < Puppet::Provider
|
|
131
131
|
|
132
132
|
# AIX will do the right validation to ensure numeric attributes
|
133
133
|
# can't be set to non-numeric values, so no need for the extra clutter.
|
134
|
-
info[:attribute_to_property] = lambda do |value|
|
134
|
+
info[:attribute_to_property] = lambda do |value| # rubocop:disable Style/SymbolProc
|
135
135
|
value.to_i
|
136
136
|
end
|
137
137
|
|
@@ -17,11 +17,20 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
17
17
|
value.is_a? Integer
|
18
18
|
end
|
19
19
|
|
20
|
-
optional_commands :localadd => "lgroupadd", :localdelete => "lgroupdel", :localmodify => "lgroupmod"
|
21
|
-
|
22
|
-
has_feature :manages_local_users_and_groups
|
23
|
-
|
24
|
-
|
20
|
+
optional_commands :localadd => "lgroupadd", :localdelete => "lgroupdel", :localmodify => "lgroupmod", :purgemember => "usermod"
|
21
|
+
|
22
|
+
has_feature :manages_local_users_and_groups if Puppet.features.libuser?
|
23
|
+
has_feature :manages_members if Puppet.features.libuser? ||
|
24
|
+
(Puppet.runtime[:facter].value('os.name') == "Fedora" &&
|
25
|
+
Puppet.runtime[:facter].value('os.release.major').to_i >= 40)
|
26
|
+
|
27
|
+
# Libuser's modify command 'lgroupmod' requires '-M' flag for member additions.
|
28
|
+
# 'groupmod' command requires the '-aU' flags for it.
|
29
|
+
if Puppet.features.libuser?
|
30
|
+
options :members, :flag => '-M', :method => :mem
|
31
|
+
else
|
32
|
+
options :members, :flag => '-aU', :method => :mem
|
33
|
+
end
|
25
34
|
|
26
35
|
def exists?
|
27
36
|
return !!localgid if @resource.forcelocal?
|
@@ -63,7 +72,8 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
63
72
|
end
|
64
73
|
|
65
74
|
def addcmd
|
66
|
-
|
75
|
+
# The localadd command (lgroupadd) must only be called when libuser is supported.
|
76
|
+
if Puppet.features.libuser? && @resource.forcelocal?
|
67
77
|
cmd = [command(:localadd)]
|
68
78
|
@custom_environment = Puppet::Util::Libuser.getenv
|
69
79
|
else
|
@@ -91,7 +101,8 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
91
101
|
end
|
92
102
|
|
93
103
|
def modifycmd(param, value)
|
94
|
-
|
104
|
+
# The localmodify command (lgroupmod) must only be called when libuser is supported.
|
105
|
+
if Puppet.features.libuser? && (@resource.forcelocal? || @resource[:members])
|
95
106
|
cmd = [command(:localmodify)]
|
96
107
|
@custom_environment = Puppet::Util::Libuser.getenv
|
97
108
|
else
|
@@ -114,7 +125,8 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
114
125
|
end
|
115
126
|
|
116
127
|
def deletecmd
|
117
|
-
|
128
|
+
# The localdelete command (lgroupdel) must only be called when libuser is supported.
|
129
|
+
if Puppet.features.libuser? && @resource.forcelocal?
|
118
130
|
@custom_environment = Puppet::Util::Libuser.getenv
|
119
131
|
[command(:localdelete), @resource[:name]]
|
120
132
|
else
|
@@ -133,7 +145,16 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
133
145
|
end
|
134
146
|
|
135
147
|
def purge_members
|
136
|
-
|
148
|
+
# The groupadd provider doesn't have the ability currently to remove members from a group, libuser does.
|
149
|
+
# Use libuser's lgroupmod command to achieve purging members if libuser is supported.
|
150
|
+
# Otherwise use the 'usermod' command.
|
151
|
+
if Puppet.features.libuser?
|
152
|
+
localmodify('-m', members_to_s(members), @resource.name)
|
153
|
+
else
|
154
|
+
members.each do |member|
|
155
|
+
purgemember('-rG', @resource.name, member)
|
156
|
+
end
|
157
|
+
end
|
137
158
|
end
|
138
159
|
|
139
160
|
private
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../puppet/provider/package"
|
4
|
+
|
5
|
+
Puppet::Type.type(:package).provide :xbps, :parent => Puppet::Provider::Package do
|
6
|
+
desc "Support for the Package Manager Utility (xbps) used in VoidLinux.
|
7
|
+
|
8
|
+
This provider supports the `install_options` attribute, which allows command-line flags to be passed to xbps-install.
|
9
|
+
These options should be specified as an array where each element is either a string or a hash."
|
10
|
+
|
11
|
+
commands :xbps_install => "/usr/bin/xbps-install"
|
12
|
+
commands :xbps_remove => "/usr/bin/xbps-remove"
|
13
|
+
commands :xbps_query => "/usr/bin/xbps-query"
|
14
|
+
commands :xbps_pkgdb => "/usr/bin/xbps-pkgdb"
|
15
|
+
|
16
|
+
confine 'os.name' => :void
|
17
|
+
defaultfor 'os.name' => :void
|
18
|
+
has_feature :install_options, :uninstall_options, :upgradeable, :holdable, :virtual_packages
|
19
|
+
|
20
|
+
def self.defaultto_allow_virtual
|
21
|
+
false
|
22
|
+
end
|
23
|
+
|
24
|
+
# Fetch the list of packages that are currently installed on the system.
|
25
|
+
def self.instances
|
26
|
+
packages = []
|
27
|
+
execpipe([command(:xbps_query), "-l"]) do |pipe|
|
28
|
+
# xbps-query -l output is 'ii package-name-version desc'
|
29
|
+
regex = /^\S+\s(\S+)-(\S+)\s+\S+/
|
30
|
+
pipe.each_line do |line|
|
31
|
+
match = regex.match(line.chomp)
|
32
|
+
if match
|
33
|
+
packages << new({ name: match.captures[0], ensure: match.captures[1], provider: name })
|
34
|
+
else
|
35
|
+
warning(_("Failed to match line '%{line}'") % { line: line })
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
packages
|
41
|
+
rescue Puppet::ExecutionFailure
|
42
|
+
fail(_("Error getting installed packages"))
|
43
|
+
end
|
44
|
+
|
45
|
+
# Install a package quietly (without confirmation or progress bar) using 'xbps-install'.
|
46
|
+
def install
|
47
|
+
resource_name = @resource[:name]
|
48
|
+
resource_source = @resource[:source]
|
49
|
+
|
50
|
+
cmd = %w[-S -y]
|
51
|
+
cmd += install_options if @resource[:install_options]
|
52
|
+
cmd << "--repository=#{resource_source}" if resource_source
|
53
|
+
cmd << resource_name
|
54
|
+
|
55
|
+
unhold if properties[:mark] == :hold
|
56
|
+
begin
|
57
|
+
xbps_install(*cmd)
|
58
|
+
ensure
|
59
|
+
hold if @resource[:mark] == :hold
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Because Voidlinux is a rolling release based distro, installing a package
|
64
|
+
# should always result in the newest release.
|
65
|
+
def update
|
66
|
+
install
|
67
|
+
end
|
68
|
+
|
69
|
+
# Removes a package from the system.
|
70
|
+
def uninstall
|
71
|
+
resource_name = @resource[:name]
|
72
|
+
|
73
|
+
cmd = %w[-R -y]
|
74
|
+
cmd += uninstall_options if @resource[:uninstall_options]
|
75
|
+
cmd << resource_name
|
76
|
+
|
77
|
+
xbps_remove(*cmd)
|
78
|
+
end
|
79
|
+
|
80
|
+
# The latest version of a given package
|
81
|
+
def latest
|
82
|
+
query&.[] :ensure
|
83
|
+
end
|
84
|
+
|
85
|
+
# Queries information for a package
|
86
|
+
def query
|
87
|
+
resource_name = @resource[:name]
|
88
|
+
installed_packages = self.class.instances
|
89
|
+
|
90
|
+
installed_packages.each do |pkg|
|
91
|
+
return pkg.properties if @resource[:name].casecmp(pkg.name).zero?
|
92
|
+
end
|
93
|
+
|
94
|
+
return nil unless @resource.allow_virtual?
|
95
|
+
|
96
|
+
# Search for virtual package
|
97
|
+
output = xbps_query("-Rs", resource_name).chomp
|
98
|
+
|
99
|
+
# xbps-query -Rs output is '[*] package-name-version description'
|
100
|
+
regex = /^\[\*\]+\s(\S+)-(\S+)\s+\S+/
|
101
|
+
match = regex.match(output)
|
102
|
+
|
103
|
+
return nil unless match
|
104
|
+
|
105
|
+
{ name: match.captures[0], ensure: match.captures[1], provider: self.class.name }
|
106
|
+
end
|
107
|
+
|
108
|
+
# Puts a package on hold, so it doesn't update by itself on system update
|
109
|
+
def hold
|
110
|
+
xbps_pkgdb("-m", "hold", @resource[:name])
|
111
|
+
end
|
112
|
+
|
113
|
+
# Puts a package out of hold
|
114
|
+
def unhold
|
115
|
+
xbps_pkgdb("-m", "unhold", @resource[:name])
|
116
|
+
end
|
117
|
+
|
118
|
+
private
|
119
|
+
|
120
|
+
def install_options
|
121
|
+
join_options(@resource[:install_options])
|
122
|
+
end
|
123
|
+
|
124
|
+
def uninstall_options
|
125
|
+
join_options(@resource[:uninstall_options])
|
126
|
+
end
|
127
|
+
end
|
@@ -25,6 +25,15 @@ module Puppet::Scheduler
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
# Recalculates splay.
|
29
|
+
#
|
30
|
+
# @param splay_limit [Integer] the maximum time (in seconds) to delay before an agent's first run.
|
31
|
+
# @return @splay [Integer] a random integer less than or equal to the splay limit that represents the seconds to
|
32
|
+
# delay before next agent run.
|
33
|
+
def splay_limit=(splay_limit)
|
34
|
+
@splay = calculate_splay(splay_limit)
|
35
|
+
end
|
36
|
+
|
28
37
|
private
|
29
38
|
|
30
39
|
def calculate_splay(limit)
|
data/lib/puppet/type/exec.rb
CHANGED
@@ -436,6 +436,14 @@ module Puppet
|
|
436
436
|
back by re-extracting the tarball. If `important.tar` does **not**
|
437
437
|
actually contain `myfile`, the exec will keep running every time
|
438
438
|
Puppet runs.
|
439
|
+
|
440
|
+
This parameter can also take an array of files and the command will
|
441
|
+
not run if **any** of these files exist. For example:
|
442
|
+
|
443
|
+
creates => ['/tmp/file1', '/tmp/file2'],
|
444
|
+
|
445
|
+
will only run the command if both files don't exist.
|
446
|
+
|
439
447
|
EOT
|
440
448
|
|
441
449
|
accept_arrays
|
@@ -335,9 +335,27 @@ class CommandLine
|
|
335
335
|
when /^-([^-])$/
|
336
336
|
@short[::Regexp.last_match(1)]
|
337
337
|
when /^--no-([^-]\S*)$/
|
338
|
-
@long["[no-]#{::Regexp.last_match(1)}"]
|
338
|
+
possible_match = @long["[no-]#{::Regexp.last_match(1)}"]
|
339
|
+
if !possible_match
|
340
|
+
partial_match = @long["[no-]#{::Regexp.last_match(1).tr('-', '_')}"] || @long["[no-]#{::Regexp.last_match(1).tr('_', '-')}"]
|
341
|
+
if partial_match
|
342
|
+
Puppet.deprecation_warning _("Partial argument match detected: correct argument is %{partial_match}, got %{arg}. Partial argument matching is deprecated and will be removed in a future release.") % { arg: arg, partial_match: partial_match }
|
343
|
+
end
|
344
|
+
partial_match
|
345
|
+
else
|
346
|
+
possible_match
|
347
|
+
end
|
339
348
|
when /^--([^-]\S*)$/
|
340
|
-
@long[::Regexp.last_match(1)] || @long["[no-]#{::Regexp.last_match(1)}"]
|
349
|
+
possible_match = @long[::Regexp.last_match(1)] || @long["[no-]#{::Regexp.last_match(1)}"]
|
350
|
+
if !possible_match
|
351
|
+
partial_match = @long[::Regexp.last_match(1).tr('-', '_')] || @long[::Regexp.last_match(1).tr('_', '-')] || @long["[no-]#{::Regexp.last_match(1).tr('-', '_')}"] || @long["[no-]#{::Regexp.last_match(1).tr('_', '-')}"]
|
352
|
+
if partial_match
|
353
|
+
Puppet.deprecation_warning _("Partial argument match detected: correct argument is %{partial_match}, got %{arg}. Partial argument matching is deprecated and will be removed in a future release.") % { arg: arg, partial_match: partial_match }
|
354
|
+
end
|
355
|
+
partial_match
|
356
|
+
else
|
357
|
+
possible_match
|
358
|
+
end
|
341
359
|
else
|
342
360
|
raise CommandlineError, _("invalid argument syntax: '%{arg}'") % { arg: arg }
|
343
361
|
end
|
@@ -7,7 +7,7 @@ module Puppet::Util::RpmCompare
|
|
7
7
|
armv5tejl armv6l armv7l m68kmint s390 s390x ia64 x86_64 sh3 sh4
|
8
8
|
].freeze
|
9
9
|
|
10
|
-
ARCH_REGEX = Regexp.new(ARCH_LIST.join('
|
10
|
+
ARCH_REGEX = Regexp.new(ARCH_LIST.map { |arch| "\\.#{arch}" }.join('|'))
|
11
11
|
|
12
12
|
# This is an attempt at implementing RPM's
|
13
13
|
# lib/rpmvercmp.c rpmvercmp(a, b) in Ruby.
|
@@ -141,7 +141,7 @@ module Puppet::Util::Windows::COM
|
|
141
141
|
|
142
142
|
self::VTBL.members.each do |name|
|
143
143
|
define_method(name) do |*args|
|
144
|
-
if Puppet::Util::Windows::COM.FAILED(result = @vtbl[name].call(self, *args))
|
144
|
+
if Puppet::Util::Windows::COM.FAILED((result = @vtbl[name].call(self, *args)))
|
145
145
|
raise Puppet::Util::Windows::Error.new(_("Failed to call %{klass}::%{name} with HRESULT: %{result}.") % { klass: self, name: name, result: result }, result)
|
146
146
|
end
|
147
147
|
|
@@ -183,7 +183,7 @@ module Puppet::Util::Windows::COM
|
|
183
183
|
|
184
184
|
self::VTBL.members.each do |name|
|
185
185
|
define_method(name) do |*args|
|
186
|
-
if Puppet::Util::Windows::COM.FAILED(result = @vtbl[name].call(self, *args))
|
186
|
+
if Puppet::Util::Windows::COM.FAILED((result = @vtbl[name].call(self, *args)))
|
187
187
|
raise Puppet::Util::Windows::Error.new(_("Failed to call %{klass}::%{name} with HRESULT: %{result}.") % { klass: self, name: name, result: result }, result)
|
188
188
|
end
|
189
189
|
|
data/lib/puppet/version.rb
CHANGED