puppet 6.0.9 → 6.0.10
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -16
- data/lib/hiera/scope.rb +7 -0
- data/lib/puppet.rb +1 -1
- data/lib/puppet/application/device.rb +13 -3
- data/lib/puppet/application/ssl.rb +2 -0
- data/lib/puppet/configurer.rb +1 -1
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/factory.rb +5 -0
- data/lib/puppet/pops/types/types.rb +5 -3
- data/lib/puppet/provider.rb +1 -2
- data/lib/puppet/provider/package.rb +2 -0
- data/lib/puppet/provider/package/dpkg.rb +15 -2
- data/lib/puppet/provider/package/gem.rb +65 -29
- data/lib/puppet/provider/package/pip.rb +135 -111
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +27 -16
- data/lib/puppet/provider/package/yum.rb +2 -1
- data/lib/puppet/provider/package_targetable.rb +68 -0
- data/lib/puppet/provider/service/upstart.rb +5 -3
- data/lib/puppet/provider/user/useradd.rb +16 -13
- data/lib/puppet/settings/server_list_setting.rb +9 -0
- data/lib/puppet/ssl/host.rb +0 -11
- data/lib/puppet/ssl/validator/default_validator.rb +31 -0
- data/lib/puppet/type/package.rb +46 -9
- data/lib/puppet/util/pidlock.rb +3 -2
- data/lib/puppet/util/windows/process.rb +8 -8
- data/lib/puppet/util/windows/registry.rb +7 -1
- data/lib/puppet/util/windows/user.rb +14 -4
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +83 -79
- 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-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.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-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/network/http_pool_spec.rb +120 -0
- data/spec/integration/type/package_spec.rb +1 -1
- data/spec/integration/util/windows/registry_spec.rb +52 -0
- data/spec/integration/util/windows/user_spec.rb +19 -0
- data/spec/lib/puppet_spec/https.rb +166 -0
- data/spec/unit/application/ssl_spec.rb +5 -0
- data/spec/unit/configurer_spec.rb +1 -1
- data/spec/unit/functions/new_spec.rb +15 -0
- data/spec/unit/hiera/scope_spec.rb +7 -0
- data/spec/unit/indirector/resource/ral_spec.rb +1 -0
- data/spec/unit/network/http/connection_spec.rb +0 -96
- data/spec/unit/network/http/factory_spec.rb +6 -0
- data/spec/unit/provider/package/dpkg_spec.rb +18 -1
- data/spec/unit/provider/package/gem_spec.rb +101 -48
- data/spec/unit/provider/package/pip3_spec.rb +17 -0
- data/spec/unit/provider/package/pip_spec.rb +57 -67
- data/spec/unit/provider/package/puppet_gem_spec.rb +22 -6
- data/spec/unit/provider/package/rpm_spec.rb +116 -27
- data/spec/unit/provider/service/upstart_spec.rb +3 -22
- data/spec/unit/settings/server_list_setting_spec.rb +21 -0
- data/spec/unit/ssl/validator_spec.rb +2 -0
- data/spec/unit/util/pidlock_spec.rb +26 -0
- metadata +9 -5
- data/lib/puppet/rest/client.rb +0 -83
- data/spec/unit/rest/client_spec.rb +0 -166
@@ -28,14 +28,16 @@ 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 => lambda {
|
31
|
+
confine :true => lambda { has_initctl? }
|
32
|
+
|
33
|
+
def self.has_initctl?
|
32
34
|
# Puppet::Util::Execution.execute does not currently work on jRuby.
|
33
35
|
# Unfortunately, since this confine is invoked whenever we check for
|
34
36
|
# provider suitability and since provider suitability is still checked
|
35
37
|
# on the master, this confine will still be invoked on the master. Thus
|
36
38
|
# to avoid raising an exception, we do an early return if we're running
|
37
39
|
# on jRuby.
|
38
|
-
|
40
|
+
return false if Puppet::Util::Platform.jruby?
|
39
41
|
|
40
42
|
begin
|
41
43
|
initctl('version', '--quiet')
|
@@ -43,7 +45,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
43
45
|
rescue
|
44
46
|
false
|
45
47
|
end
|
46
|
-
|
48
|
+
end
|
47
49
|
|
48
50
|
# upstart developer haven't implemented initctl enable/disable yet:
|
49
51
|
# http://www.linuxplanet.com/linuxplanet/tutorials/7033/2/
|
@@ -105,11 +105,11 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
105
105
|
# because by default duplicates are allowed. This check is
|
106
106
|
# to ensure consistent behaviour of the useradd provider when
|
107
107
|
# using both useradd and luseradd
|
108
|
-
if
|
109
|
-
if @resource.should(:uid)
|
108
|
+
if (!@resource.allowdupe?) && @resource.forcelocal?
|
109
|
+
if @resource.should(:uid) && finduser('uid', @resource.should(:uid).to_s)
|
110
110
|
raise(Puppet::Error, "UID #{@resource.should(:uid).to_s} already exists, use allowdupe to force user creation")
|
111
111
|
end
|
112
|
-
elsif @resource.allowdupe?
|
112
|
+
elsif @resource.allowdupe? && (!@resource.forcelocal?)
|
113
113
|
return ["-o"]
|
114
114
|
end
|
115
115
|
[]
|
@@ -126,16 +126,16 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
126
126
|
|
127
127
|
def check_manage_home
|
128
128
|
cmd = []
|
129
|
-
if @resource.managehome?
|
129
|
+
if @resource.managehome? && (!@resource.forcelocal?)
|
130
130
|
cmd << "-m"
|
131
|
-
elsif
|
131
|
+
elsif (!@resource.managehome?) && Facter.value(:osfamily) == 'RedHat'
|
132
132
|
cmd << "-M"
|
133
133
|
end
|
134
134
|
cmd
|
135
135
|
end
|
136
136
|
|
137
137
|
def check_system_users
|
138
|
-
if self.class.system_users?
|
138
|
+
if self.class.system_users? && resource.system?
|
139
139
|
["-r"]
|
140
140
|
else
|
141
141
|
[]
|
@@ -149,11 +149,11 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
149
149
|
Puppet::Type.type(:user).validproperties.sort.each do |property|
|
150
150
|
next if property == :ensure
|
151
151
|
next if property_manages_password_age?(property)
|
152
|
-
next if property == :groups
|
153
|
-
next if property == :expiry
|
152
|
+
next if (property == :groups) && @resource.forcelocal?
|
153
|
+
next if (property == :expiry) && @resource.forcelocal?
|
154
154
|
# the value needs to be quoted, mostly because -c might
|
155
155
|
# have spaces in it
|
156
|
-
if value = @resource.should(property)
|
156
|
+
if (value = @resource.should(property)) && (value != "")
|
157
157
|
cmd << flag(property) << munge(property, value)
|
158
158
|
end
|
159
159
|
end
|
@@ -167,7 +167,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
167
167
|
else
|
168
168
|
cmd = [command(:add)]
|
169
169
|
end
|
170
|
-
if
|
170
|
+
if (!@resource.should(:gid)) && Puppet::Util.gid(@resource[:name])
|
171
171
|
cmd += ["-g", @resource[:name]]
|
172
172
|
end
|
173
173
|
cmd += add_properties
|
@@ -203,7 +203,10 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
203
203
|
else
|
204
204
|
cmd = [command(:delete)]
|
205
205
|
end
|
206
|
-
|
206
|
+
# Solaris `userdel -r` will fail if the homedir does not exist.
|
207
|
+
if @resource.managehome? && (('Solaris' != Facter.value(:operatingsystem)) || Dir.exist?(Dir.home(@resource[:name])))
|
208
|
+
cmd << '-r'
|
209
|
+
end
|
207
210
|
cmd << @resource[:name]
|
208
211
|
end
|
209
212
|
|
@@ -239,10 +242,10 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
239
242
|
check_valid_shell
|
240
243
|
end
|
241
244
|
super
|
242
|
-
if @resource.forcelocal?
|
245
|
+
if @resource.forcelocal? && self.groups?
|
243
246
|
set(:groups, @resource[:groups])
|
244
247
|
end
|
245
|
-
if @resource.forcelocal?
|
248
|
+
if @resource.forcelocal? && @resource[:expiry]
|
246
249
|
set(:expiry, @resource[:expiry])
|
247
250
|
end
|
248
251
|
end
|
@@ -4,6 +4,15 @@ class Puppet::Settings::ServerListSetting < Puppet::Settings::ArraySetting
|
|
4
4
|
:server_list
|
5
5
|
end
|
6
6
|
|
7
|
+
def print(value)
|
8
|
+
if value.is_a?(Array)
|
9
|
+
#turn into a string
|
10
|
+
value.map {|item| item.join(":") }.join(",")
|
11
|
+
else
|
12
|
+
value
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
7
16
|
def munge(value)
|
8
17
|
servers = super
|
9
18
|
servers.map! { |server|
|
data/lib/puppet/ssl/host.rb
CHANGED
@@ -6,13 +6,6 @@ require 'puppet/ssl/certificate_request_attributes'
|
|
6
6
|
require 'puppet/rest/errors'
|
7
7
|
require 'puppet/rest/routes'
|
8
8
|
require 'puppet/rest/ssl_context'
|
9
|
-
begin
|
10
|
-
# This may fail when being loaded from Puppet Server. However loading the
|
11
|
-
# client monkey patches the SSL Store and we need to have those monkey
|
12
|
-
# patches in as soon as possible on the agent.
|
13
|
-
require 'puppet/rest/client'
|
14
|
-
rescue LoadError
|
15
|
-
end
|
16
9
|
|
17
10
|
# The class that manages all aspects of our SSL certificates --
|
18
11
|
# private keys, public keys, requests, etc.
|
@@ -123,10 +116,6 @@ class Puppet::SSL::Host
|
|
123
116
|
true
|
124
117
|
end
|
125
118
|
|
126
|
-
def http_client(ssl_context)
|
127
|
-
Puppet::Rest::Client.new(ssl_context: ssl_context)
|
128
|
-
end
|
129
|
-
|
130
119
|
def certificate
|
131
120
|
unless @certificate
|
132
121
|
generate_key unless key
|
@@ -9,6 +9,7 @@ require 'puppet/ssl'
|
|
9
9
|
class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
|
10
10
|
attr_reader :peer_certs
|
11
11
|
attr_reader :verify_errors
|
12
|
+
attr_reader :last_error
|
12
13
|
|
13
14
|
FIVE_MINUTES_AS_SECONDS = 5 * 60
|
14
15
|
|
@@ -33,6 +34,8 @@ class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
|
|
33
34
|
def reset!
|
34
35
|
@peer_certs = []
|
35
36
|
@verify_errors = []
|
37
|
+
@hostname = nil
|
38
|
+
@last_error = nil
|
36
39
|
end
|
37
40
|
|
38
41
|
# Performs verification of the SSL connection and collection of the
|
@@ -78,6 +81,32 @@ class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
|
|
78
81
|
error_string = store_context.error_string || "OpenSSL error #{error}"
|
79
82
|
|
80
83
|
case error
|
84
|
+
when OpenSSL::X509::V_OK
|
85
|
+
if @hostname
|
86
|
+
# chain is from leaf to root, opposite of the order that `call` is invoked
|
87
|
+
chain_cert = store_context.chain.first
|
88
|
+
peer_cert = @peer_certs.last
|
89
|
+
|
90
|
+
# ruby 2.4 doesn't compare certs based on value, so force to DER byte array
|
91
|
+
if peer_cert && chain_cert && peer_cert.to_der == chain_cert.to_der && !OpenSSL::SSL.verify_certificate_identity(peer_cert, @hostname)
|
92
|
+
valid_certnames = [peer_cert.subject.to_s.sub(/.*=/, ''),
|
93
|
+
*Puppet::SSL::Certificate.subject_alt_names_for(peer_cert)].uniq
|
94
|
+
if valid_certnames.size > 1
|
95
|
+
expected_certnames = _("expected one of %{certnames}") % { certnames: valid_certnames.join(', ') }
|
96
|
+
else
|
97
|
+
expected_certnames = _("expected %{certname}") % { certname: valid_certnames.first }
|
98
|
+
end
|
99
|
+
|
100
|
+
msg = _("Server hostname '%{host}' did not match server certificate; %{expected_certnames}") % { host: @hostname, expected_certnames: expected_certnames }
|
101
|
+
@last_error = Puppet::Error.new(msg)
|
102
|
+
return false
|
103
|
+
else
|
104
|
+
@verify_errors << "#{error_string} for #{current_cert.subject}"
|
105
|
+
end
|
106
|
+
else
|
107
|
+
@verify_errors << "#{error_string} for #{current_cert.subject}"
|
108
|
+
end
|
109
|
+
|
81
110
|
when OpenSSL::X509::V_ERR_CRL_NOT_YET_VALID
|
82
111
|
# current_crl can be nil
|
83
112
|
# https://github.com/ruby/ruby/blob/ruby_1_9_3/ext/openssl/ossl_x509store.c#L501-L510
|
@@ -112,6 +141,8 @@ class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
|
|
112
141
|
# @api private
|
113
142
|
#
|
114
143
|
def setup_connection(connection, ssl_host = Puppet.lookup(:ssl_host))
|
144
|
+
@hostname = connection.address
|
145
|
+
|
115
146
|
if ssl_certificates_are_present?
|
116
147
|
connection.cert_store = ssl_host.ssl_store
|
117
148
|
connection.ca_file = @ca_path
|
data/lib/puppet/type/package.rb
CHANGED
@@ -20,8 +20,8 @@ module Puppet
|
|
20
20
|
requires in order to function, and you must meet those requirements
|
21
21
|
to use a given provider.
|
22
22
|
|
23
|
-
You can declare multiple package resources with the same `name
|
24
|
-
as they specify different providers and
|
23
|
+
You can declare multiple package resources with the same `name` as long
|
24
|
+
as they have unique titles, and specify different providers and commands.
|
25
25
|
|
26
26
|
Note that you must use the _title_ to make a reference to a package
|
27
27
|
resource; `Package[<NAME>]` is not a synonym for `Package[<TITLE>]` like
|
@@ -66,6 +66,8 @@ module Puppet
|
|
66
66
|
:methods => [:package_settings_insync?, :package_settings, :package_settings=]
|
67
67
|
feature :virtual_packages, "The provider accepts virtual package names for install and uninstall."
|
68
68
|
|
69
|
+
feature :targetable, "The provider accepts a targeted package management command."
|
70
|
+
|
69
71
|
ensurable do
|
70
72
|
desc <<-EOT
|
71
73
|
What state the package should be in. On packaging systems that can
|
@@ -271,20 +273,55 @@ module Puppet
|
|
271
273
|
providify
|
272
274
|
paramclass(:provider).isnamevar
|
273
275
|
|
274
|
-
#
|
275
|
-
|
276
|
-
|
277
|
-
|
276
|
+
# Specify a targeted package management command.
|
277
|
+
newparam(:command, :required_features => :targetable) do
|
278
|
+
desc <<-EOT
|
279
|
+
The targeted command to use when managing a package:
|
280
|
+
|
281
|
+
package { 'mysql':
|
282
|
+
provider => gem,
|
283
|
+
}
|
284
|
+
|
285
|
+
package { 'mysql-opt':
|
286
|
+
name => 'mysql',
|
287
|
+
provider => gem,
|
288
|
+
command => '/opt/ruby/bin/gem',
|
289
|
+
}
|
290
|
+
|
291
|
+
Each provider defines a package management command; and uses the first
|
292
|
+
instance of the command found in the PATH.
|
293
|
+
|
294
|
+
Providers supporting the targetable feature allow you to specify the
|
295
|
+
absolute path of the package management command; useful when multiple
|
296
|
+
instances of the command are installed, or the command is not in the PATH.
|
297
|
+
EOT
|
298
|
+
|
299
|
+
isnamevar
|
300
|
+
defaultto :default
|
301
|
+
end
|
302
|
+
|
303
|
+
# We have more than one namevar, so we need title_patterns.
|
304
|
+
# However, we cheat and set the patterns to map to name only
|
305
|
+
# and completely ignore provider (and command, for targetable providers).
|
306
|
+
# So far, the logic that determines uniqueness appears to just
|
307
|
+
# "Do The Right Thing™" when provider (and command) are explicitly set.
|
278
308
|
#
|
279
309
|
# The following resources will be seen as unique by puppet:
|
280
310
|
#
|
281
311
|
# # Uniqueness Key: ['mysql', nil]
|
282
|
-
# package{'mysql': }
|
312
|
+
# package {'mysql': }
|
313
|
+
#
|
314
|
+
# # Uniqueness Key: ['mysql', 'gem', nil]
|
315
|
+
# package {'gem-mysql':
|
316
|
+
# name => 'mysql,
|
317
|
+
# provider => gem,
|
318
|
+
# }
|
283
319
|
#
|
284
|
-
# # Uniqueness Key: ['mysql', 'gem']
|
285
|
-
# package{'gem-mysql':
|
320
|
+
# # Uniqueness Key: ['mysql', 'gem', '/opt/ruby/bin/gem']
|
321
|
+
# package {'gem-mysql-opt':
|
286
322
|
# name => 'mysql,
|
287
323
|
# provider => gem
|
324
|
+
# command => '/opt/ruby/bin/gem',
|
288
325
|
# }
|
289
326
|
#
|
290
327
|
# This does not handle the case where providers like 'yum' and 'rpm' should
|
data/lib/puppet/util/pidlock.rb
CHANGED
@@ -62,12 +62,13 @@ class Puppet::Util::Pidlock
|
|
62
62
|
# POSIX and Windows platforms (PUP-9247).
|
63
63
|
if Puppet.features.posix?
|
64
64
|
procname = Puppet::Util::Execution.execute(["ps", "-p", lock_pid, "-o", "comm="]).strip
|
65
|
-
|
65
|
+
args = Puppet::Util::Execution.execute(["ps", "-p", lock_pid, "-o", "args="]).strip
|
66
|
+
@lockfile.unlock unless procname =~ /ruby/ && args =~ /puppet/ || procname =~ /puppet(-.*)?$/
|
66
67
|
elsif Puppet.features.microsoft_windows?
|
67
68
|
# On Windows, we're checking if the filesystem path name of the running
|
68
69
|
# process is our vendored ruby:
|
69
70
|
exe_path = Puppet::Util::Windows::Process::get_process_image_name_by_pid(lock_pid)
|
70
|
-
@lockfile.unlock unless exe_path =~
|
71
|
+
@lockfile.unlock unless exe_path =~ /\\bin\\ruby.exe$/
|
71
72
|
end
|
72
73
|
end
|
73
74
|
private :clear_if_stale
|
@@ -122,21 +122,21 @@ module Puppet::Util::Windows::Process
|
|
122
122
|
def get_process_image_name_by_pid(pid)
|
123
123
|
image_name = ""
|
124
124
|
|
125
|
-
|
125
|
+
open_process(PROCESS_QUERY_INFORMATION, false, pid) do |phandle|
|
126
126
|
|
127
|
-
|
128
|
-
#
|
129
|
-
|
130
|
-
exe_name_length_ptr.write_dword(
|
131
|
-
FFI::MemoryPointer.new(
|
127
|
+
FFI::MemoryPointer.new(:dword, 1) do |exe_name_length_ptr|
|
128
|
+
# UTF is 2 bytes/char:
|
129
|
+
max_chars = MAX_PATH_LENGTH + 1
|
130
|
+
exe_name_length_ptr.write_dword(max_chars)
|
131
|
+
FFI::MemoryPointer.new(:wchar, max_chars) do |exe_name_ptr|
|
132
132
|
use_win32_path_format = 0
|
133
133
|
result = QueryFullProcessImageNameW(phandle, use_win32_path_format, exe_name_ptr, exe_name_length_ptr)
|
134
134
|
if result == FFI::WIN32_FALSE
|
135
135
|
raise Puppet::Util::Windows::Error.new(
|
136
136
|
"QueryFullProcessImageNameW(phandle, #{use_win32_path_format}, " +
|
137
|
-
"exe_name_ptr, #{
|
137
|
+
"exe_name_ptr, #{max_chars}")
|
138
138
|
end
|
139
|
-
image_name = exe_name_ptr.read_wide_string(
|
139
|
+
image_name = exe_name_ptr.read_wide_string(exe_name_length_ptr.read_dword)
|
140
140
|
end
|
141
141
|
end
|
142
142
|
end
|
@@ -232,7 +232,7 @@ module Puppet::Util::Windows
|
|
232
232
|
begin
|
233
233
|
case type
|
234
234
|
when Win32::Registry::REG_SZ, Win32::Registry::REG_EXPAND_SZ
|
235
|
-
result = [ type, data_ptr.read_wide_string(string_length) ]
|
235
|
+
result = [ type, sanitize(data_ptr.read_wide_string(string_length)) ]
|
236
236
|
when Win32::Registry::REG_MULTI_SZ
|
237
237
|
result = [ type, data_ptr.read_wide_string(string_length).split(/\0/) ]
|
238
238
|
when Win32::Registry::REG_BINARY
|
@@ -312,6 +312,12 @@ module Puppet::Util::Windows
|
|
312
312
|
result
|
313
313
|
end
|
314
314
|
|
315
|
+
def sanitize(value)
|
316
|
+
# Replace null bytes with a space
|
317
|
+
value.gsub!("\x00", ' ')
|
318
|
+
value
|
319
|
+
end
|
320
|
+
|
315
321
|
ffi_convention :stdcall
|
316
322
|
|
317
323
|
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms724862(v=vs.85).aspx
|
@@ -75,15 +75,18 @@ module Puppet::Util::Windows::User
|
|
75
75
|
module_function :password_is?
|
76
76
|
|
77
77
|
def logon_user(name, password, &block)
|
78
|
-
fLOGON32_LOGON_NETWORK = 3
|
79
78
|
fLOGON32_PROVIDER_DEFAULT = 0
|
79
|
+
fLOGON32_LOGON_INTERACTIVE = 2
|
80
|
+
fLOGON32_LOGON_NETWORK = 3
|
80
81
|
|
81
82
|
token = nil
|
82
83
|
begin
|
83
84
|
FFI::MemoryPointer.new(:handle, 1) do |token_pointer|
|
84
|
-
|
85
|
-
|
86
|
-
|
85
|
+
#try logon using network else try logon using interactive mode
|
86
|
+
if logon_user_by_logon_type(name, password, fLOGON32_LOGON_NETWORK, fLOGON32_PROVIDER_DEFAULT, token_pointer) == FFI::WIN32_FALSE
|
87
|
+
if logon_user_by_logon_type(name, password, fLOGON32_LOGON_INTERACTIVE, fLOGON32_PROVIDER_DEFAULT, token_pointer) == FFI::WIN32_FALSE
|
88
|
+
raise Puppet::Util::Windows::Error.new(_("Failed to logon user %{name}") % {name: name.inspect})
|
89
|
+
end
|
87
90
|
end
|
88
91
|
|
89
92
|
yield token = token_pointer.read_handle
|
@@ -95,8 +98,15 @@ module Puppet::Util::Windows::User
|
|
95
98
|
# token has been closed by this point
|
96
99
|
true
|
97
100
|
end
|
101
|
+
|
98
102
|
module_function :logon_user
|
99
103
|
|
104
|
+
def self.logon_user_by_logon_type(name, password, logon_type, logon_provider, token)
|
105
|
+
LogonUserW(wide_string(name), wide_string('.'), password.nil? ? FFI::Pointer::NULL : wide_string(password), logon_type, logon_provider, token)
|
106
|
+
end
|
107
|
+
|
108
|
+
private_class_method :logon_user_by_logon_type
|
109
|
+
|
100
110
|
def load_profile(user, password)
|
101
111
|
logon_user(user, password) do |token|
|
102
112
|
FFI::MemoryPointer.from_string_to_wide_string(user) do |lpUserName|
|
data/lib/puppet/version.rb
CHANGED
data/locales/puppet.pot
CHANGED
@@ -6,11 +6,11 @@
|
|
6
6
|
#, fuzzy
|
7
7
|
msgid ""
|
8
8
|
msgstr ""
|
9
|
-
"Project-Id-Version: Puppet automation framework 6.0.
|
9
|
+
"Project-Id-Version: Puppet automation framework 6.0.9-65-gc4f22cb\n"
|
10
10
|
"\n"
|
11
11
|
"Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
|
12
|
-
"POT-Creation-Date: 2019-
|
13
|
-
"PO-Revision-Date: 2019-
|
12
|
+
"POT-Creation-Date: 2019-05-28 23:50+0000\n"
|
13
|
+
"PO-Revision-Date: 2019-05-28 23:50+0000\n"
|
14
14
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
15
15
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
16
16
|
"Language: \n"
|
@@ -28,11 +28,11 @@ msgstr ""
|
|
28
28
|
msgid "See https://puppet.com/docs/puppet/%{minor_version}/deprecated_language.html"
|
29
29
|
msgstr ""
|
30
30
|
|
31
|
-
#: ../lib/hiera/scope.rb:
|
31
|
+
#: ../lib/hiera/scope.rb:46 ../lib/puppet/parser/scope.rb:535
|
32
32
|
msgid "Variable: %{name}"
|
33
33
|
msgstr ""
|
34
34
|
|
35
|
-
#: ../lib/hiera/scope.rb:
|
35
|
+
#: ../lib/hiera/scope.rb:47 ../lib/hiera/scope.rb:49 ../lib/puppet/parser/scope.rb:536 ../lib/puppet/parser/scope.rb:538
|
36
36
|
msgid "Undefined variable '%{name}'; %{reason}"
|
37
37
|
msgstr ""
|
38
38
|
|
@@ -48,10 +48,6 @@ msgstr ""
|
|
48
48
|
msgid "Config file %{hiera_config} not found, using Hiera defaults"
|
49
49
|
msgstr ""
|
50
50
|
|
51
|
-
#: ../lib/puppet.rb:4
|
52
|
-
msgid "Puppet %{version} requires ruby 2.3.0 or greater."
|
53
|
-
msgstr ""
|
54
|
-
|
55
51
|
#: ../lib/puppet.rb:130
|
56
52
|
msgid "Support for ruby version %{version} is deprecated and will be removed in a future release. See https://puppet.com/docs/puppet/latest/system_requirements.html for a list of supported ruby versions."
|
57
53
|
msgstr ""
|
@@ -266,23 +262,23 @@ msgstr ""
|
|
266
262
|
msgid "No device found in %{config}"
|
267
263
|
msgstr ""
|
268
264
|
|
269
|
-
#: ../lib/puppet/application/device.rb:
|
265
|
+
#: ../lib/puppet/application/device.rb:304
|
270
266
|
msgid "retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}"
|
271
267
|
msgstr ""
|
272
268
|
|
273
|
-
#: ../lib/puppet/application/device.rb:
|
269
|
+
#: ../lib/puppet/application/device.rb:319
|
274
270
|
msgid "retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}"
|
275
271
|
msgstr ""
|
276
272
|
|
277
|
-
#: ../lib/puppet/application/device.rb:
|
273
|
+
#: ../lib/puppet/application/device.rb:342
|
278
274
|
msgid "starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}"
|
279
275
|
msgstr ""
|
280
276
|
|
281
|
-
#: ../lib/puppet/application/device.rb:
|
277
|
+
#: ../lib/puppet/application/device.rb:380 ../lib/puppet/application/resource.rb:196
|
282
278
|
msgid "You must specify the type to display"
|
283
279
|
msgstr ""
|
284
280
|
|
285
|
-
#: ../lib/puppet/application/device.rb:
|
281
|
+
#: ../lib/puppet/application/device.rb:381 ../lib/puppet/application/resource.rb:197
|
286
282
|
msgid "Could not find type %{type}"
|
287
283
|
msgstr ""
|
288
284
|
|
@@ -6127,65 +6123,65 @@ msgstr ""
|
|
6127
6123
|
msgid "Unknown type <%{type}>"
|
6128
6124
|
msgstr ""
|
6129
6125
|
|
6130
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6126
|
+
#: ../lib/puppet/pops/types/types.rb:930
|
6131
6127
|
msgid "The string '%{str}' cannot be converted to Numeric"
|
6132
6128
|
msgstr ""
|
6133
6129
|
|
6134
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6130
|
+
#: ../lib/puppet/pops/types/types.rb:933
|
6135
6131
|
msgid "Value of type %{type} cannot be converted to Numeric"
|
6136
6132
|
msgstr ""
|
6137
6133
|
|
6138
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6134
|
+
#: ../lib/puppet/pops/types/types.rb:1171
|
6139
6135
|
msgid "The string '%{str}' cannot be converted to Integer"
|
6140
6136
|
msgstr ""
|
6141
6137
|
|
6142
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6138
|
+
#: ../lib/puppet/pops/types/types.rb:1174
|
6143
6139
|
msgid "Value of type %{type} cannot be converted to Integer"
|
6144
6140
|
msgstr ""
|
6145
6141
|
|
6146
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6142
|
+
#: ../lib/puppet/pops/types/types.rb:1182
|
6147
6143
|
msgid "Illegal radix: %{radix}, expected 2, 8, 10, 16, or default"
|
6148
6144
|
msgstr ""
|
6149
6145
|
|
6150
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6146
|
+
#: ../lib/puppet/pops/types/types.rb:1295
|
6151
6147
|
msgid "The string '%{str}' cannot be converted to Float"
|
6152
6148
|
msgstr ""
|
6153
6149
|
|
6154
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6150
|
+
#: ../lib/puppet/pops/types/types.rb:1298
|
6155
6151
|
msgid "Value of type %{type} cannot be converted to Float"
|
6156
6152
|
msgstr ""
|
6157
6153
|
|
6158
6154
|
#. TRANSLATORS 'PStringType#initialize' is a class and method name and should not be translated
|
6159
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6155
|
+
#: ../lib/puppet/pops/types/types.rb:1515
|
6160
6156
|
msgid "Passing more than one argument to PStringType#initialize is deprecated"
|
6161
6157
|
msgstr ""
|
6162
6158
|
|
6163
6159
|
#. TRANSLATORS 'PStringType#values' and '#value' are classes and method names and should not be translated
|
6164
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6160
|
+
#: ../lib/puppet/pops/types/types.rb:1569
|
6165
6161
|
msgid "Method PStringType#values is deprecated. Use #value instead"
|
6166
6162
|
msgstr ""
|
6167
6163
|
|
6168
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6164
|
+
#: ../lib/puppet/pops/types/types.rb:1894
|
6169
6165
|
msgid "The string '%{str}' cannot be converted to Boolean"
|
6170
6166
|
msgstr ""
|
6171
6167
|
|
6172
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6168
|
+
#: ../lib/puppet/pops/types/types.rb:1897
|
6173
6169
|
msgid "Value of type %{type} cannot be converted to Boolean"
|
6174
6170
|
msgstr ""
|
6175
6171
|
|
6176
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6172
|
+
#: ../lib/puppet/pops/types/types.rb:2625
|
6177
6173
|
msgid "Value of type %{type} cannot be converted to Array"
|
6178
6174
|
msgstr ""
|
6179
6175
|
|
6180
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6176
|
+
#: ../lib/puppet/pops/types/types.rb:2695
|
6181
6177
|
msgid "Puppet::Pops::Types::PHashType#element_type is deprecated, use #value_type instead"
|
6182
6178
|
msgstr ""
|
6183
6179
|
|
6184
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6180
|
+
#: ../lib/puppet/pops/types/types.rb:2832
|
6185
6181
|
msgid "odd number of arguments for Hash"
|
6186
6182
|
msgstr ""
|
6187
6183
|
|
6188
|
-
#: ../lib/puppet/pops/types/types.rb:
|
6184
|
+
#: ../lib/puppet/pops/types/types.rb:2843
|
6189
6185
|
msgid "Value of type %{type} cannot be converted to Hash"
|
6190
6186
|
msgstr ""
|
6191
6187
|
|
@@ -6269,7 +6265,7 @@ msgid "No command %{command} defined for provider %{provider}"
|
|
6269
6265
|
msgstr ""
|
6270
6266
|
|
6271
6267
|
#: ../lib/puppet/provider.rb:398
|
6272
|
-
msgid "
|
6268
|
+
msgid "To support listing resources of this type the '%{provider}' provider needs to implement an 'instances' class method returning the current set of resources. We recommend porting your module to the simpler Resource API instead: https://puppet.com/search/docs?keys=resource+api"
|
6273
6269
|
msgstr ""
|
6274
6270
|
|
6275
6271
|
#: ../lib/puppet/provider.rb:470
|
@@ -6540,7 +6536,7 @@ msgstr ""
|
|
6540
6536
|
msgid "You cannot install dpkg packages without a source"
|
6541
6537
|
msgstr ""
|
6542
6538
|
|
6543
|
-
#: ../lib/puppet/provider/package/dpkg.rb:
|
6539
|
+
#: ../lib/puppet/provider/package/dpkg.rb:107
|
6544
6540
|
msgid "source doesn't contain named package, but %{name}"
|
6545
6541
|
msgstr ""
|
6546
6542
|
|
@@ -6548,27 +6544,27 @@ msgstr ""
|
|
6548
6544
|
msgid "source is defined but does not have trailing slash, ignoring %{source}"
|
6549
6545
|
msgstr ""
|
6550
6546
|
|
6551
|
-
#: ../lib/puppet/provider/package/gem.rb:
|
6547
|
+
#: ../lib/puppet/provider/package/gem.rb:84
|
6552
6548
|
msgid "Could not list gems: %{detail}"
|
6553
6549
|
msgstr ""
|
6554
6550
|
|
6555
|
-
#: ../lib/puppet/provider/package/gem.rb:
|
6551
|
+
#: ../lib/puppet/provider/package/gem.rb:110
|
6556
6552
|
msgid "Could not match %{desc}"
|
6557
6553
|
msgstr ""
|
6558
6554
|
|
6559
|
-
#: ../lib/puppet/provider/package/gem.rb:
|
6555
|
+
#: ../lib/puppet/provider/package/gem.rb:158
|
6560
6556
|
msgid "Invalid source '%{uri}': %{detail}"
|
6561
6557
|
msgstr ""
|
6562
6558
|
|
6563
|
-
#: ../lib/puppet/provider/package/gem.rb:
|
6559
|
+
#: ../lib/puppet/provider/package/gem.rb:169
|
6564
6560
|
msgid "puppet:// URLs are not supported as gem sources"
|
6565
6561
|
msgstr ""
|
6566
6562
|
|
6567
|
-
#: ../lib/puppet/provider/package/gem.rb:
|
6563
|
+
#: ../lib/puppet/provider/package/gem.rb:185
|
6568
6564
|
msgid "Could not install: %{output}"
|
6569
6565
|
msgstr ""
|
6570
6566
|
|
6571
|
-
#: ../lib/puppet/provider/package/gem.rb:
|
6567
|
+
#: ../lib/puppet/provider/package/gem.rb:211
|
6572
6568
|
msgid "Could not uninstall: %{output}"
|
6573
6569
|
msgstr ""
|
6574
6570
|
|
@@ -6839,6 +6835,14 @@ msgstr ""
|
|
6839
6835
|
msgid "Failed to update to version %{should}, got version %{version} instead"
|
6840
6836
|
msgstr ""
|
6841
6837
|
|
6838
|
+
#: ../lib/puppet/provider/package_targetable.rb:53
|
6839
|
+
msgid "Provider %{name} package command is not functional on this host"
|
6840
|
+
msgstr ""
|
6841
|
+
|
6842
|
+
#: ../lib/puppet/provider/package_targetable.rb:56
|
6843
|
+
msgid "Provider %{name} package command '%{cmd}' does not exist on this host"
|
6844
|
+
msgstr ""
|
6845
|
+
|
6842
6846
|
#: ../lib/puppet/provider/parsedfile.rb:52
|
6843
6847
|
msgid "Invalid filetype %{type}"
|
6844
6848
|
msgstr ""
|
@@ -7473,7 +7477,7 @@ msgstr ""
|
|
7473
7477
|
msgid "Invalid priority format '%{value}' for parameter: %{name}"
|
7474
7478
|
msgstr ""
|
7475
7479
|
|
7476
|
-
#: ../lib/puppet/settings/server_list_setting.rb:
|
7480
|
+
#: ../lib/puppet/settings/server_list_setting.rb:25
|
7477
7481
|
msgid "Expected an Array of String, got a %{klass}"
|
7478
7482
|
msgstr ""
|
7479
7483
|
|
@@ -7581,15 +7585,15 @@ msgstr ""
|
|
7581
7585
|
msgid "unexpected attributes %{keys} in %{path}"
|
7582
7586
|
msgstr ""
|
7583
7587
|
|
7584
|
-
#: ../lib/puppet/ssl/host.rb:
|
7588
|
+
#: ../lib/puppet/ssl/host.rb:154
|
7585
7589
|
msgid "No certificate to validate."
|
7586
7590
|
msgstr ""
|
7587
7591
|
|
7588
|
-
#: ../lib/puppet/ssl/host.rb:
|
7592
|
+
#: ../lib/puppet/ssl/host.rb:155
|
7589
7593
|
msgid "No private key with which to validate certificate with fingerprint: %{fingerprint}"
|
7590
7594
|
msgstr ""
|
7591
7595
|
|
7592
|
-
#: ../lib/puppet/ssl/host.rb:
|
7596
|
+
#: ../lib/puppet/ssl/host.rb:157
|
7593
7597
|
msgid ""
|
7594
7598
|
"The certificate retrieved from the master does not match the agent's private key. Did you forget to run as root?\n"
|
7595
7599
|
"Certificate fingerprint: %{fingerprint}\n"
|
@@ -7601,7 +7605,7 @@ msgid ""
|
|
7601
7605
|
" 2. puppet %{puppet_params}\n"
|
7602
7606
|
msgstr ""
|
7603
7607
|
|
7604
|
-
#: ../lib/puppet/ssl/host.rb:
|
7608
|
+
#: ../lib/puppet/ssl/host.rb:239
|
7605
7609
|
msgid ""
|
7606
7610
|
"The local CSR does not match the agent's public key.\n"
|
7607
7611
|
"CSR fingerprint: %{fingerprint}\n"
|
@@ -7613,7 +7617,7 @@ msgid ""
|
|
7613
7617
|
" 2. puppet %{puppet_params}\n"
|
7614
7618
|
msgstr ""
|
7615
7619
|
|
7616
|
-
#: ../lib/puppet/ssl/host.rb:
|
7620
|
+
#: ../lib/puppet/ssl/host.rb:255
|
7617
7621
|
msgid ""
|
7618
7622
|
"The CSR retrieved from the master does not match the agent's public key.\n"
|
7619
7623
|
"CSR fingerprint: %{fingerprint}\n"
|
@@ -7627,73 +7631,73 @@ msgid ""
|
|
7627
7631
|
" 2. puppet %{puppet_params}\n"
|
7628
7632
|
msgstr ""
|
7629
7633
|
|
7630
|
-
#: ../lib/puppet/ssl/host.rb:
|
7634
|
+
#: ../lib/puppet/ssl/host.rb:309 ../lib/puppet/ssl/host.rb:330
|
7631
7635
|
msgid "Could not request certificate: %{message}"
|
7632
7636
|
msgstr ""
|
7633
7637
|
|
7634
|
-
#: ../lib/puppet/ssl/host.rb:
|
7638
|
+
#: ../lib/puppet/ssl/host.rb:311
|
7635
7639
|
msgid "Exiting; failed to retrieve certificate and waitforcert is disabled"
|
7636
7640
|
msgstr ""
|
7637
7641
|
|
7638
|
-
#: ../lib/puppet/ssl/host.rb:
|
7642
|
+
#: ../lib/puppet/ssl/host.rb:320
|
7639
7643
|
msgid "Exiting; no certificate found and waitforcert is disabled"
|
7640
7644
|
msgstr ""
|
7641
7645
|
|
7642
|
-
#: ../lib/puppet/ssl/host.rb:
|
7646
|
+
#: ../lib/puppet/ssl/host.rb:328
|
7643
7647
|
msgid "Did not receive certificate"
|
7644
7648
|
msgstr ""
|
7645
7649
|
|
7646
|
-
#: ../lib/puppet/ssl/host.rb:
|
7650
|
+
#: ../lib/puppet/ssl/host.rb:368
|
7647
7651
|
msgid "Response from the CA did not contain a valid certificate request: %{message}"
|
7648
7652
|
msgstr ""
|
7649
7653
|
|
7650
|
-
#: ../lib/puppet/ssl/host.rb:
|
7654
|
+
#: ../lib/puppet/ssl/host.rb:374
|
7651
7655
|
msgid "Could not download certificate request: %{message}"
|
7652
7656
|
msgstr ""
|
7653
7657
|
|
7654
|
-
#: ../lib/puppet/ssl/host.rb:
|
7658
|
+
#: ../lib/puppet/ssl/host.rb:401
|
7655
7659
|
msgid ""
|
7656
7660
|
"Failed attempting to load CRL from %{crl_path}! The CRL below caused the error '%{error}':\n"
|
7657
7661
|
"%{crl}"
|
7658
7662
|
msgstr ""
|
7659
7663
|
|
7660
|
-
#: ../lib/puppet/ssl/host.rb:
|
7664
|
+
#: ../lib/puppet/ssl/host.rb:429
|
7661
7665
|
msgid "The CA certificate at %{file_path} is invalid: %{message}"
|
7662
7666
|
msgstr ""
|
7663
7667
|
|
7664
|
-
#: ../lib/puppet/ssl/host.rb:
|
7668
|
+
#: ../lib/puppet/ssl/host.rb:453
|
7665
7669
|
msgid "No valid PEM-encoded certificates."
|
7666
7670
|
msgstr ""
|
7667
7671
|
|
7668
|
-
#: ../lib/puppet/ssl/host.rb:
|
7672
|
+
#: ../lib/puppet/ssl/host.rb:460
|
7669
7673
|
msgid "Could not parse certificate: %{message}"
|
7670
7674
|
msgstr ""
|
7671
7675
|
|
7672
|
-
#: ../lib/puppet/ssl/host.rb:
|
7676
|
+
#: ../lib/puppet/ssl/host.rb:483
|
7673
7677
|
msgid "Could not download CRLs: %{message}"
|
7674
7678
|
msgstr ""
|
7675
7679
|
|
7676
|
-
#: ../lib/puppet/ssl/host.rb:
|
7680
|
+
#: ../lib/puppet/ssl/host.rb:502
|
7677
7681
|
msgid "Response from the CA did not contain a valid CA certificate: %{message}"
|
7678
7682
|
msgstr ""
|
7679
7683
|
|
7680
|
-
#: ../lib/puppet/ssl/host.rb:
|
7684
|
+
#: ../lib/puppet/ssl/host.rb:505
|
7681
7685
|
msgid "Could not download CA certificate: %{message}"
|
7682
7686
|
msgstr ""
|
7683
7687
|
|
7684
|
-
#: ../lib/puppet/ssl/host.rb:
|
7688
|
+
#: ../lib/puppet/ssl/host.rb:545
|
7685
7689
|
msgid "The certificate at %{file_path} is invalid. Could not load."
|
7686
7690
|
msgstr ""
|
7687
7691
|
|
7688
|
-
#: ../lib/puppet/ssl/host.rb:
|
7692
|
+
#: ../lib/puppet/ssl/host.rb:566
|
7689
7693
|
msgid "Response from the CA did not contain a valid certificate for %{cert_name}."
|
7690
7694
|
msgstr ""
|
7691
7695
|
|
7692
|
-
#: ../lib/puppet/ssl/host.rb:
|
7696
|
+
#: ../lib/puppet/ssl/host.rb:570
|
7693
7697
|
msgid "No certificate for %{cert_name} on CA"
|
7694
7698
|
msgstr ""
|
7695
7699
|
|
7696
|
-
#: ../lib/puppet/ssl/host.rb:
|
7700
|
+
#: ../lib/puppet/ssl/host.rb:573
|
7697
7701
|
msgid "Could not download host certificate: %{message}"
|
7698
7702
|
msgstr ""
|
7699
7703
|
|
@@ -7721,6 +7725,18 @@ msgstr ""
|
|
7721
7725
|
msgid "Error registering ssl custom OIDs mapping from file '%{custom_oid_file}': %{err}"
|
7722
7726
|
msgstr ""
|
7723
7727
|
|
7728
|
+
#: ../lib/puppet/ssl/validator/default_validator.rb:95 ../lib/puppet/util/ssl.rb:81
|
7729
|
+
msgid "expected one of %{certnames}"
|
7730
|
+
msgstr ""
|
7731
|
+
|
7732
|
+
#: ../lib/puppet/ssl/validator/default_validator.rb:97 ../lib/puppet/util/ssl.rb:83
|
7733
|
+
msgid "expected %{certname}"
|
7734
|
+
msgstr ""
|
7735
|
+
|
7736
|
+
#: ../lib/puppet/ssl/validator/default_validator.rb:100 ../lib/puppet/util/ssl.rb:86
|
7737
|
+
msgid "Server hostname '%{host}' did not match server certificate; %{expected_certnames}"
|
7738
|
+
msgstr ""
|
7739
|
+
|
7724
7740
|
#: ../lib/puppet/syntax_checkers/base64.rb:18
|
7725
7741
|
msgid "Base64 syntax checker: the text to check must be a String."
|
7726
7742
|
msgstr ""
|
@@ -7857,7 +7873,7 @@ msgstr[1] ""
|
|
7857
7873
|
msgid "Failed to call %{callback}: %{detail}"
|
7858
7874
|
msgstr ""
|
7859
7875
|
|
7860
|
-
#: ../lib/puppet/transaction/event_manager.rb:
|
7876
|
+
#: ../lib/puppet/transaction/event_manager.rb:172
|
7861
7877
|
msgid "Would have triggered '%{callback}' from %{count} event"
|
7862
7878
|
msgid_plural "Would have triggered '%{callback}' from %{count} events"
|
7863
7879
|
msgstr[0] ""
|
@@ -8214,15 +8230,15 @@ msgstr ""
|
|
8214
8230
|
msgid "Invalid GID %{gid}"
|
8215
8231
|
msgstr ""
|
8216
8232
|
|
8217
|
-
#: ../lib/puppet/type/package.rb:
|
8233
|
+
#: ../lib/puppet/type/package.rb:116 ../lib/puppet/type/package.rb:130
|
8218
8234
|
msgid "Could not update: %{detail}"
|
8219
8235
|
msgstr ""
|
8220
8236
|
|
8221
|
-
#: ../lib/puppet/type/package.rb:
|
8237
|
+
#: ../lib/puppet/type/package.rb:165
|
8222
8238
|
msgid "Could not get latest version: %{detail}"
|
8223
8239
|
msgstr ""
|
8224
8240
|
|
8225
|
-
#: ../lib/puppet/type/package.rb:
|
8241
|
+
#: ../lib/puppet/type/package.rb:265
|
8226
8242
|
msgid "Name must be a String not %{klass}"
|
8227
8243
|
msgstr ""
|
8228
8244
|
|
@@ -8266,15 +8282,15 @@ msgstr ""
|
|
8266
8282
|
msgid "Invalid minute '%{n}'"
|
8267
8283
|
msgstr ""
|
8268
8284
|
|
8269
|
-
#: ../lib/puppet/type/schedule.rb:
|
8285
|
+
#: ../lib/puppet/type/schedule.rb:282
|
8270
8286
|
msgid "Repeat must be a number"
|
8271
8287
|
msgstr ""
|
8272
8288
|
|
8273
|
-
#: ../lib/puppet/type/schedule.rb:
|
8289
|
+
#: ../lib/puppet/type/schedule.rb:291
|
8274
8290
|
msgid "Repeat must be 1 unless periodmatch is 'distance', not '%{period}'"
|
8275
8291
|
msgstr ""
|
8276
8292
|
|
8277
|
-
#: ../lib/puppet/type/schedule.rb:
|
8293
|
+
#: ../lib/puppet/type/schedule.rb:335
|
8278
8294
|
msgid "%{value} is not a valid day of the week"
|
8279
8295
|
msgstr ""
|
8280
8296
|
|
@@ -9190,18 +9206,6 @@ msgstr ""
|
|
9190
9206
|
msgid "Sleeping for %{time} seconds (splay is enabled)"
|
9191
9207
|
msgstr ""
|
9192
9208
|
|
9193
|
-
#: ../lib/puppet/util/ssl.rb:81
|
9194
|
-
msgid "expected one of %{certnames}"
|
9195
|
-
msgstr ""
|
9196
|
-
|
9197
|
-
#: ../lib/puppet/util/ssl.rb:83
|
9198
|
-
msgid "expected %{certname}"
|
9199
|
-
msgstr ""
|
9200
|
-
|
9201
|
-
#: ../lib/puppet/util/ssl.rb:86
|
9202
|
-
msgid "Server hostname '%{host}' did not match server certificate; %{expected_certnames}"
|
9203
|
-
msgstr ""
|
9204
|
-
|
9205
9209
|
#: ../lib/puppet/util/storage.rb:53
|
9206
9210
|
msgid "Checksumfile %{filename} is not a file, ignoring"
|
9207
9211
|
msgstr ""
|