puppet 8.6.0-universal-darwin → 8.7.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +23 -27
- 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