puppet 5.5.7-x86-mingw32 → 5.5.8-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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/Rakefile +2 -1
  4. data/lib/puppet/defaults.rb +4 -2
  5. data/lib/puppet/face/config.rb +1 -1
  6. data/lib/puppet/file_bucket/dipper.rb +1 -1
  7. data/lib/puppet/functions.rb +0 -123
  8. data/lib/puppet/loaders.rb +0 -1
  9. data/lib/puppet/parser/functions.rb +1 -3
  10. data/lib/puppet/pops/evaluator/runtime3_converter.rb +0 -16
  11. data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -3
  12. data/lib/puppet/pops/loader/loader.rb +1 -1
  13. data/lib/puppet/pops/loader/loader_paths.rb +1 -3
  14. data/lib/puppet/pops/loader/module_loaders.rb +1 -1
  15. data/lib/puppet/pops/loaders.rb +21 -5
  16. data/lib/puppet/provider/group/aix.rb +31 -1
  17. data/lib/puppet/provider/group/pw.rb +8 -4
  18. data/lib/puppet/provider/group/windows_adsi.rb +4 -3
  19. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -5
  20. data/lib/puppet/provider/package/dnf.rb +1 -0
  21. data/lib/puppet/provider/user/useradd.rb +2 -10
  22. data/lib/puppet/type/group.rb +41 -57
  23. data/lib/puppet/util/filetype.rb +21 -5
  24. data/lib/puppet/util/log/destinations.rb +3 -2
  25. data/lib/puppet/util/windows/adsi.rb +0 -2
  26. data/lib/puppet/version.rb +1 -1
  27. data/locales/puppet.pot +76 -92
  28. data/man/man5/puppet.conf.5 +1 -1
  29. data/man/man8/puppet-config.8 +1 -1
  30. data/man/man8/puppet.8 +1 -1
  31. data/spec/integration/util/windows/adsi_spec.rb +1 -2
  32. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +6 -6
  33. data/spec/unit/pops/loaders/loaders_spec.rb +7 -39
  34. data/spec/unit/provider/cron/parsed_spec.rb +7 -9
  35. data/spec/unit/provider/group/aix_spec.rb +33 -0
  36. data/spec/unit/provider/group/pw_spec.rb +6 -0
  37. data/spec/unit/provider/group/windows_adsi_spec.rb +33 -23
  38. data/spec/unit/provider/nameservice/directoryservice_spec.rb +2 -2
  39. data/spec/unit/provider/package/dnf_spec.rb +15 -0
  40. data/spec/unit/provider/user/useradd_spec.rb +2 -2
  41. data/spec/unit/type/group_spec.rb +18 -108
  42. data/spec/unit/util/log/destinations_spec.rb +10 -0
  43. data/spec/unit/util/suidmanager_spec.rb +1 -3
  44. data/spec/unit/util/windows/adsi_spec.rb +5 -5
  45. metadata +2 -3
  46. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -62
@@ -22,9 +22,10 @@ Puppet::Type.type(:group).provide :windows_adsi do
22
22
 
23
23
  # Cannot use munge of the group property to canonicalize @should
24
24
  # since the default array_matching comparison is not commutative
25
+
25
26
  # dupes automatically weeded out when hashes built
26
- current_members = Puppet::Util::Windows::ADSI::User.name_sid_hash(current)
27
- specified_members = Puppet::Util::Windows::ADSI::User.name_sid_hash(should)
27
+ current_members = Puppet::Util::Windows::ADSI::Group.name_sid_hash(current)
28
+ specified_members = Puppet::Util::Windows::ADSI::Group.name_sid_hash(should)
28
29
 
29
30
  current_sids = current_members.keys.to_a
30
31
  specified_sids = specified_members.keys.to_a
@@ -65,7 +66,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
65
66
  end
66
67
 
67
68
  def members
68
- @members ||= Puppet::Util::Windows::ADSI::User.name_sid_hash(group.members)
69
+ @members ||= Puppet::Util::Windows::ADSI::Group.name_sid_hash(group.members)
69
70
  @members.keys
70
71
  end
71
72
 
@@ -116,7 +116,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
116
116
  ds_value = input_hash[key]
117
117
  case ds_to_ns_attribute_map[ds_attribute]
118
118
  when :members
119
- ds_value = ds_value.join(',')
119
+ ds_value = ds_value # only members uses arrays so far
120
120
  when :gid, :uid
121
121
  # OS X stores objects like uid/gid as strings.
122
122
  # Try casting to an integer for these cases to be
@@ -344,10 +344,8 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
344
344
 
345
345
  def set(param, value)
346
346
  self.class.validate(param, value)
347
+ current_members = @property_value_cache_hash[:members]
347
348
  if param == :members
348
- current_members = @property_value_cache_hash[:members].split(',')
349
- value = value.split(',')
350
-
351
349
  # If we are meant to be authoritative for the group membership
352
350
  # then remove all existing members who haven't been specified
353
351
  # in the manifest.
@@ -411,7 +409,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
411
409
  end
412
410
  if value != "" and not value.nil?
413
411
  if property == :members
414
- add_members(nil, value.split(','))
412
+ add_members(nil, value)
415
413
  else
416
414
  exec_arg_vector = self.class.get_exec_preamble("-create", @resource[:name])
417
415
  exec_arg_vector << ns_to_ds_attribute_map[property.intern]
@@ -29,6 +29,7 @@ Puppet::Type.type(:package).provide :dnf, :parent => :yum do
29
29
  end
30
30
 
31
31
  defaultfor :operatingsystem => :fedora, :operatingsystemmajrelease => (22..30).to_a
32
+ defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["8"]
32
33
 
33
34
  def self.update_command
34
35
  # In DNF, update is deprecated for upgrade
@@ -134,15 +134,6 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
134
134
  cmd
135
135
  end
136
136
 
137
- def check_manage_expiry
138
- cmd = []
139
- if @resource[:expiry] and not @resource.forcelocal?
140
- cmd << "-e #{@resource[:expiry]}"
141
- end
142
-
143
- cmd
144
- end
145
-
146
137
  def check_system_users
147
138
  if self.class.system_users? and resource.system?
148
139
  ["-r"]
@@ -188,7 +179,8 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
188
179
 
189
180
  def modifycmd(param, value)
190
181
  if @resource.forcelocal?
191
- if param == :groups
182
+ case param
183
+ when :groups, :expiry
192
184
  cmd = [command(:modify)]
193
185
  else
194
186
  cmd = [command(property_manages_password_age?(param) ? :localpassword : :localmodify)]
@@ -1,7 +1,6 @@
1
1
  require 'etc'
2
2
  require 'facter'
3
3
  require 'puppet/property/keyvalue'
4
- require 'puppet/property/list'
5
4
  require 'puppet/parameter/boolean'
6
5
 
7
6
  module Puppet
@@ -82,84 +81,69 @@ module Puppet
82
81
  end
83
82
  end
84
83
 
85
- newproperty(:members, :parent => Puppet::Property::List, :required_features => :manages_members) do
84
+ newproperty(:members, :array_matching => :all, :required_features => :manages_members) do
86
85
  desc "The members of the group. For platforms or directory services where group
87
86
  membership is stored in the group objects, not the users. This parameter's
88
87
  behavior can be configured with `auth_membership`."
89
88
 
90
- validate do |value|
91
- unless value.is_a?(String)
92
- raise ArgumentError, _("The members property must be specified as either an array of strings, or as a single string consisting of a comma-separated list of members")
93
- end
94
-
95
- if value.is_a?(Integer) || value =~ /^\d+$/
96
- raise ArgumentError, _("User names must be provided, not UID numbers.")
97
- end
89
+ def change_to_s(currentvalue, newvalue)
90
+ newvalue = actual_should(currentvalue, newvalue)
98
91
 
99
- if value.empty?
100
- raise ArgumentError, _("User names must not be empty. If you want to specify \"no users\" pass an empty array")
101
- end
92
+ currentvalue = currentvalue.join(",") if currentvalue != :absent
93
+ newvalue = newvalue.join(",")
94
+ super(currentvalue, newvalue)
95
+ end
102
96
 
103
- if provider.respond_to?(:member_valid?)
104
- return provider.member_valid?(value)
97
+ def insync?(current)
98
+ if provider.respond_to?(:members_insync?)
99
+ return provider.members_insync?(current, @should)
105
100
  end
106
- end
107
101
 
108
- def inclusive?
109
- @resource[:auth_membership]
102
+ super(current)
110
103
  end
111
104
 
112
- def change_to_s(currentvalue, newvalue)
113
- newvalue = newvalue.split(",") if newvalue != :absent
114
-
105
+ def is_to_s(currentvalue)
115
106
  if provider.respond_to?(:members_to_s)
116
- # for Windows ADSI
117
- # de-dupe the "newvalue" when the sync event message is generated,
118
- # due to final retrieve called after the resource has been modified
119
- newvalue = provider.members_to_s(newvalue).split(',').uniq
107
+ currentvalue = '' if currentvalue.nil?
108
+ currentvalue = currentvalue.is_a?(Array) ? currentvalue : currentvalue.split(',')
109
+
110
+ return provider.members_to_s(currentvalue)
120
111
  end
121
112
 
122
- super(currentvalue, newvalue)
113
+ super(currentvalue)
123
114
  end
124
115
 
125
- # override Puppet::Property::List#retrieve
126
- def retrieve
127
- if provider.respond_to?(:members_to_s)
128
- # Windows ADSI members returns SIDs, but retrieve needs names
129
- # must return qualified names for SIDs for "is" value and puppet resource
130
- return provider.members_to_s(provider.members).split(',')
131
- end
132
-
133
- super
116
+ def should_to_s(newvalue)
117
+ is_to_s(actual_should(retrieve, newvalue))
134
118
  end
135
119
 
136
- # The members property should also accept a comma separated
137
- # list of members (a String parameter) for backwards
138
- # compatibility. Unfortunately, the List property would treat
139
- # our comma separated list of members as a single-element Array.
140
- # This override of should= ensures that a comma separated list of
141
- # members is munged to an array of members, which is what we want.
142
- # Note that we cannot use `munge` because that will pass in each
143
- # array element instead of the entire array if the members property
144
- # is specified as an array of members, which would cause each member
145
- # to be munged into an array for that case. This is undesirable
146
- # behavior.
147
- def should=(values)
148
- super(values)
149
-
150
- if @should.length == 1 && @should.first.include?(delimiter)
151
- @should = @should.first.split(delimiter)
120
+ # Calculates the actual should value given the current and
121
+ # new values. This is only used in should_to_s and change_to_s
122
+ # to fix the change notification issue reported in PUP-6542.
123
+ def actual_should(currentvalue, newvalue)
124
+ currentvalue = munge_members_value(currentvalue)
125
+ newvalue = munge_members_value(newvalue)
126
+
127
+ if @resource[:auth_membership]
128
+ newvalue.uniq.sort
129
+ else
130
+ (currentvalue + newvalue).uniq.sort
152
131
  end
132
+ end
133
+
134
+ # Useful helper to handle the possible property value types that we can
135
+ # both pass-in and return. It munges the value into an array
136
+ def munge_members_value(value)
137
+ return [] if value == :absent
138
+ return value.split(',') if value.is_a?(String)
153
139
 
154
- @should
140
+ value
155
141
  end
156
142
 
157
- def insync?(current)
158
- if provider.respond_to?(:members_insync?)
159
- return provider.members_insync?(current, @should)
143
+ validate do |value|
144
+ if provider.respond_to?(:member_valid?)
145
+ return provider.member_valid?(value)
160
146
  end
161
-
162
- super(current)
163
147
  end
164
148
  end
165
149
 
@@ -166,6 +166,12 @@ class Puppet::Util::FileType
166
166
  end
167
167
 
168
168
  # Handle Linux-style cron tabs.
169
+ #
170
+ # TODO: We can possibly eliminate the "-u <username>" option in cmdbase
171
+ # by just running crontab under <username>'s uid (like we do for suntab
172
+ # and aixtab). It may be worth investigating this alternative
173
+ # implementation in the future. This way, we can refactor all three of
174
+ # our cron file types into a common crontab file type.
169
175
  newfiletype(:crontab) do
170
176
  def initialize(user)
171
177
  self.path = user
@@ -185,16 +191,26 @@ class Puppet::Util::FileType
185
191
 
186
192
  # Read a specific @path's cron tab.
187
193
  def read
188
- %x{#{cmdbase} -l 2>/dev/null}
194
+ Puppet::Util::Execution.execute("#{cmdbase} -l", failonfail: true, combine: true)
195
+ rescue => detail
196
+ case detail.to_s
197
+ when /no crontab for/
198
+ return ""
199
+ when /are not allowed to/
200
+ raise FileReadError, _("User %{path} not authorized to use cron") % { path: @path }, detail.backtrace
201
+ else
202
+ raise FileReadError, _("Could not read crontab for %{path}: %{detail}") % { path: @path, detail: detail }, detail.backtrace
203
+ end
189
204
  end
190
205
 
191
206
  # Remove a specific @path's cron tab.
192
207
  def remove
208
+ cmd = "#{cmdbase} -r"
193
209
  if %w{Darwin FreeBSD DragonFly}.include?(Facter.value("operatingsystem"))
194
- %x{/bin/echo yes | #{cmdbase} -r 2>/dev/null}
195
- else
196
- %x{#{cmdbase} -r 2>/dev/null}
210
+ cmd = "/bin/echo yes | #{cmd}"
197
211
  end
212
+
213
+ Puppet::Util::Execution.execute(cmd, failonfail: true, combine: true)
198
214
  end
199
215
 
200
216
  # Overwrite a specific @path's cron tab; must be passed the @path name
@@ -270,7 +286,7 @@ class Puppet::Util::FileType
270
286
  Puppet::Util::Execution.execute(%w{crontab -l}, cronargs)
271
287
  rescue => detail
272
288
  case detail.to_s
273
- when /Cannot open a file in the .* directory/
289
+ when /open.*in.*directory/
274
290
  return ""
275
291
  when /You are not authorized to use the cron command/
276
292
  raise FileReadError, _("User %{path} not authorized to use cron") % { path: @path }, detail.backtrace
@@ -77,9 +77,10 @@ Puppet::Util::Log.newdesttype :file do
77
77
 
78
78
  # create the log file, if it doesn't already exist
79
79
  need_array_start = false
80
+ file_exists = File.exists?(path)
80
81
  if @json == 1
81
82
  need_array_start = true
82
- if File.exists?(path)
83
+ if file_exists
83
84
  sz = File.size(path)
84
85
  need_array_start = sz == 0
85
86
 
@@ -93,7 +94,7 @@ Puppet::Util::Log.newdesttype :file do
93
94
  file.puts('[') if need_array_start
94
95
 
95
96
  # Give ownership to the user and group puppet will run as
96
- if Puppet.features.root? && !Puppet::Util::Platform.windows?
97
+ if Puppet.features.root? && !Puppet::Util::Platform.windows? && !file_exists
97
98
  begin
98
99
  FileUtils.chown(Puppet[:user], Puppet[:group], path)
99
100
  rescue ArgumentError, Errno::EPERM
@@ -549,8 +549,6 @@ module Puppet::Util::Windows::ADSI
549
549
  def set_members(desired_members, inclusive = true)
550
550
  return if desired_members.nil?
551
551
 
552
- desired_members = desired_members.split(',').map(&:strip)
553
-
554
552
  current_hash = Hash[ self.member_sids.map { |sid| [sid.sid, sid] } ]
555
553
  desired_hash = self.class.name_sid_hash(desired_members)
556
554
 
@@ -6,7 +6,7 @@
6
6
  # Raketasks and such to set the version based on the output of `git describe`
7
7
 
8
8
  module Puppet
9
- PUPPETVERSION = '5.5.7'
9
+ PUPPETVERSION = '5.5.8'
10
10
 
11
11
  ##
12
12
  # version is a public API method intended to always provide a fast and
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 5.5.6-182-g088460f\n"
9
+ "Project-Id-Version: Puppet automation framework 5.5.7-46-g0e9b9d7\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2018-10-10 17:59+0000\n"
13
- "PO-Revision-Date: 2018-10-10 17:59+0000\n"
12
+ "POT-Creation-Date: 2018-10-29 22:32+0000\n"
13
+ "PO-Revision-Date: 2018-10-29 22:32+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -164,7 +164,7 @@ msgstr ""
164
164
  msgid "No valid command or main"
165
165
  msgstr ""
166
166
 
167
- #: ../lib/puppet/application.rb:492
167
+ #: ../lib/puppet/application.rb:497
168
168
  msgid "No help available for puppet %{app_name}"
169
169
  msgstr ""
170
170
 
@@ -221,11 +221,11 @@ msgstr ""
221
221
  msgid "%{file} is not readable"
222
222
  msgstr ""
223
223
 
224
- #: ../lib/puppet/application/apply.rb:318 ../lib/puppet/application/script.rb:238
224
+ #: ../lib/puppet/application/apply.rb:319 ../lib/puppet/application/script.rb:238
225
225
  msgid "Exiting"
226
226
  msgstr ""
227
227
 
228
- #: ../lib/puppet/application/apply.rb:346
228
+ #: ../lib/puppet/application/apply.rb:347
229
229
  msgid "Could not deserialize catalog from %{format}: %{detail}"
230
230
  msgstr ""
231
231
 
@@ -449,11 +449,11 @@ msgstr ""
449
449
  msgid "The WEBrick Puppet master server is deprecated and will be removed in a future release. Please use Puppet Server instead. See http://links.puppet.com/deprecate-rack-webrick-servers for more information."
450
450
  msgstr ""
451
451
 
452
- #: ../lib/puppet/application/master.rb:266
452
+ #: ../lib/puppet/application/master.rb:268
453
453
  msgid "Puppet master is not supported on Microsoft Windows"
454
454
  msgstr ""
455
455
 
456
- #: ../lib/puppet/application/master.rb:315
456
+ #: ../lib/puppet/application/master.rb:317
457
457
  msgid "Starting Puppet master version %{version}"
458
458
  msgstr ""
459
459
 
@@ -668,24 +668,32 @@ msgstr ""
668
668
  msgid "Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'"
669
669
  msgstr ""
670
670
 
671
- #: ../lib/puppet/defaults.rb:1034 ../lib/puppet/defaults.rb:1061
671
+ #: ../lib/puppet/defaults.rb:1043
672
672
  msgid "The 'caprivatedir' setting is deprecated and will be removed in Puppet 6."
673
673
  msgstr ""
674
674
 
675
- #: ../lib/puppet/defaults.rb:1531 ../lib/puppet/defaults.rb:1546
675
+ #: ../lib/puppet/defaults.rb:1070
676
+ msgid "The 'capass' setting is deprecated and will be removed in Puppet 6."
677
+ msgstr ""
678
+
679
+ #: ../lib/puppet/defaults.rb:1310
680
+ msgid "The 'ca' setting is deprecated and will be removed in Puppet 6."
681
+ msgstr ""
682
+
683
+ #: ../lib/puppet/defaults.rb:1542 ../lib/puppet/defaults.rb:1557
676
684
  msgid "Attempted to set both server and server_list."
677
685
  msgstr ""
678
686
 
679
- #: ../lib/puppet/defaults.rb:1532 ../lib/puppet/defaults.rb:1547
687
+ #: ../lib/puppet/defaults.rb:1543 ../lib/puppet/defaults.rb:1558
680
688
  msgid "Server setting will not be used."
681
689
  msgstr ""
682
690
 
683
- #: ../lib/puppet/defaults.rb:1817 ../lib/puppet/settings.rb:1167
691
+ #: ../lib/puppet/defaults.rb:1828 ../lib/puppet/settings.rb:1167
684
692
  msgid "Setting %{name} is deprecated."
685
693
  msgstr ""
686
694
 
687
695
  #. TRANSLATORS 'pluginsync' is a setting and should not be translated
688
- #: ../lib/puppet/defaults.rb:1868
696
+ #: ../lib/puppet/defaults.rb:1879
689
697
  msgid "Setting 'pluginsync' is deprecated."
690
698
  msgstr ""
691
699
 
@@ -965,7 +973,7 @@ msgid "Delete a Puppet setting."
965
973
  msgstr ""
966
974
 
967
975
  #: ../lib/puppet/face/config.rb:213
968
- msgid "(<setting>"
976
+ msgid "<setting>"
969
977
  msgstr ""
970
978
 
971
979
  #. TRANSLATORS 'main' is a specific section name and should not be translated
@@ -1809,7 +1817,7 @@ msgid "Diff is not supported on this platform"
1809
1817
  msgstr ""
1810
1818
 
1811
1819
  #: ../lib/puppet/file_bucket/dipper.rb:80
1812
- msgid "Please provide a file or checksum do diff with"
1820
+ msgid "Please provide a file or checksum to diff with"
1813
1821
  msgstr ""
1814
1822
 
1815
1823
  #: ../lib/puppet/file_bucket/dipper.rb:96
@@ -2151,62 +2159,62 @@ msgstr ""
2151
2159
  msgid "No loader present. Call create_loaded_function(:myname, loader,...), instead of 'create_function' if running tests"
2152
2160
  msgstr ""
2153
2161
 
2154
- #: ../lib/puppet/functions.rb:414
2162
+ #: ../lib/puppet/functions.rb:413
2155
2163
  msgid "A required parameter cannot be added after an optional parameter"
2156
2164
  msgstr ""
2157
2165
 
2158
- #: ../lib/puppet/functions.rb:463
2166
+ #: ../lib/puppet/functions.rb:462
2159
2167
  msgid "A required repeated parameter cannot be added after an optional parameter"
2160
2168
  msgstr ""
2161
2169
 
2162
- #: ../lib/puppet/functions.rb:485
2170
+ #: ../lib/puppet/functions.rb:484
2163
2171
  msgid "block_param accepts max 2 arguments (type, name), got %{size}."
2164
2172
  msgstr ""
2165
2173
 
2166
- #: ../lib/puppet/functions.rb:489
2174
+ #: ../lib/puppet/functions.rb:488
2167
2175
  msgid "Expected PCallableType or PVariantType thereof, got %{type_class}"
2168
2176
  msgstr ""
2169
2177
 
2170
- #: ../lib/puppet/functions.rb:493
2178
+ #: ../lib/puppet/functions.rb:492
2171
2179
  msgid "Expected block_param name to be a Symbol, got %{name_class}"
2172
2180
  msgstr ""
2173
2181
 
2174
- #: ../lib/puppet/functions.rb:500
2182
+ #: ../lib/puppet/functions.rb:499
2175
2183
  msgid "Attempt to redefine block"
2176
2184
  msgstr ""
2177
2185
 
2178
- #: ../lib/puppet/functions.rb:522
2186
+ #: ../lib/puppet/functions.rb:521
2179
2187
  msgid "Argument to 'return_type' must be a String reference to a Puppet Data Type. Got %{type_class}"
2180
2188
  msgstr ""
2181
2189
 
2182
- #: ../lib/puppet/functions.rb:531
2190
+ #: ../lib/puppet/functions.rb:530
2183
2191
  msgid "Parameters cannot be added after a block parameter"
2184
2192
  msgstr ""
2185
2193
 
2186
- #: ../lib/puppet/functions.rb:532
2194
+ #: ../lib/puppet/functions.rb:531
2187
2195
  msgid "Parameters cannot be added after a repeated parameter"
2188
2196
  msgstr ""
2189
2197
 
2190
- #: ../lib/puppet/functions.rb:535
2198
+ #: ../lib/puppet/functions.rb:534
2191
2199
  msgid "Parameter name argument must be a Symbol. Got %{name_class}"
2192
2200
  msgstr ""
2193
2201
 
2194
- #: ../lib/puppet/functions.rb:548
2202
+ #: ../lib/puppet/functions.rb:547
2195
2203
  msgid "Parameter 'type' must be a String reference to a Puppet Data Type. Got %{type_class}"
2196
2204
  msgstr ""
2197
2205
 
2198
- #: ../lib/puppet/functions.rb:592
2206
+ #: ../lib/puppet/functions.rb:591
2199
2207
  msgid ""
2200
2208
  "Parsing of type string '\"%{type_string}\"' failed with message: <%{message}>.\n"
2201
2209
  msgstr ""
2202
2210
 
2203
- #: ../lib/puppet/functions.rb:635
2211
+ #: ../lib/puppet/functions.rb:634
2204
2212
  msgid ""
2205
2213
  "Parsing of 'type \"%{assignment_string}\"' failed with message: <%{message}>.\n"
2206
2214
  "Called from <%{ruby_file_location}>"
2207
2215
  msgstr ""
2208
2216
 
2209
- #: ../lib/puppet/functions.rb:644
2217
+ #: ../lib/puppet/functions.rb:643
2210
2218
  msgid ""
2211
2219
  "Expected a type alias assignment on the form 'AliasType = T', got '%{assignment_string}'.\n"
2212
2220
  "Called from <%{ruby_file_location}>"
@@ -4538,11 +4546,11 @@ msgstr ""
4538
4546
  msgid "%{name}(): Wrong number of arguments given (%{arg_count} for minimum %{min_arg_count})"
4539
4547
  msgstr ""
4540
4548
 
4541
- #: ../lib/puppet/parser/functions.rb:178
4549
+ #: ../lib/puppet/parser/functions.rb:176
4542
4550
  msgid "custom functions must be called with a single array that contains the arguments. For example, function_example([1]) instead of function_example(1)"
4543
4551
  msgstr ""
4544
4552
 
4545
- #: ../lib/puppet/parser/functions.rb:276
4553
+ #: ../lib/puppet/parser/functions.rb:274
4546
4554
  msgid "%{name}() can only be called using the 4.x function API. See Scope#call_function"
4547
4555
  msgstr ""
4548
4556
 
@@ -4946,7 +4954,7 @@ msgstr ""
4946
4954
  msgid "Can only delete from an Array or Hash."
4947
4955
  msgstr ""
4948
4956
 
4949
- #: ../lib/puppet/pops/evaluator/external_syntax_support.rb:22 ../lib/puppet/pops/evaluator/runtime3_support.rb:23 ../lib/puppet/pops/evaluator/runtime3_support.rb:525
4957
+ #: ../lib/puppet/pops/evaluator/external_syntax_support.rb:22 ../lib/puppet/pops/evaluator/runtime3_support.rb:23 ../lib/puppet/pops/evaluator/runtime3_support.rb:526
4950
4958
  msgid "Internal Error: Configuration of runtime error handling wrong: should have raised exception"
4951
4959
  msgstr ""
4952
4960
 
@@ -5820,18 +5828,6 @@ msgstr ""
5820
5828
  msgid "The code loaded from %{source_ref} did not produce a Function class when evaluated. Got '%{klass}'"
5821
5829
  msgstr ""
5822
5830
 
5823
- #: ../lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb:17
5824
- msgid "The code loaded from %{source_ref} does not seem to be a Puppet 3x API function - no 'newfunction' call."
5825
- msgstr ""
5826
-
5827
- #: ../lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb:36
5828
- msgid "The code loaded from %{source_ref} did not produce the expected 3x function info Hash when evaluated. Got '%{klass}'"
5829
- msgstr ""
5830
-
5831
- #: ../lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb:39
5832
- msgid "The code loaded from %{source_ref} produced mis-matched name, expected 'function_%{type_name}', got %{created_name}"
5833
- msgstr ""
5834
-
5835
5831
  #: ../lib/puppet/pops/loader/task_instantiator.rb:16
5836
5832
  msgid "Only one file can exists besides the .json file for task %{name} in directory %{directory}"
5837
5833
  msgstr ""
@@ -6536,7 +6532,7 @@ msgstr ""
6536
6532
  msgid "aix.object_info(): Could not find %{resource}[%{name}]"
6537
6533
  msgstr ""
6538
6534
 
6539
- #: ../lib/puppet/provider/aix_object.rb:469 ../lib/puppet/provider/nameservice.rb:180 ../lib/puppet/provider/nameservice/directoryservice.rb:423
6535
+ #: ../lib/puppet/provider/aix_object.rb:469 ../lib/puppet/provider/nameservice.rb:180 ../lib/puppet/provider/nameservice/directoryservice.rb:421
6540
6536
  msgid "Could not create %{resource} %{name}: %{detail}"
6541
6537
  msgstr ""
6542
6538
 
@@ -6684,7 +6680,7 @@ msgstr ""
6684
6680
  msgid "No AIX group exists with a group name or gid of %{group}!"
6685
6681
  msgstr ""
6686
6682
 
6687
- #: ../lib/puppet/provider/group/groupadd.rb:13 ../lib/puppet/provider/group/pw.rb:17
6683
+ #: ../lib/puppet/provider/group/groupadd.rb:13 ../lib/puppet/provider/group/pw.rb:14
6688
6684
  msgid "GID must be an integer"
6689
6685
  msgstr ""
6690
6686
 
@@ -6816,7 +6812,7 @@ msgstr ""
6816
6812
  msgid "autogen_id() does not support auto generation of id for resource type %{resource_type}"
6817
6813
  msgstr ""
6818
6814
 
6819
- #: ../lib/puppet/provider/nameservice.rb:169 ../lib/puppet/provider/nameservice/directoryservice.rb:378
6815
+ #: ../lib/puppet/provider/nameservice.rb:169 ../lib/puppet/provider/nameservice/directoryservice.rb:376
6820
6816
  msgid "already exists"
6821
6817
  msgstr ""
6822
6818
 
@@ -6828,7 +6824,7 @@ msgstr ""
6828
6824
  msgid "Nameservice command must be an array"
6829
6825
  msgstr ""
6830
6826
 
6831
- #: ../lib/puppet/provider/nameservice.rb:282 ../lib/puppet/provider/nameservice/directoryservice.rb:337 ../lib/puppet/provider/nameservice/directoryservice.rb:368
6827
+ #: ../lib/puppet/provider/nameservice.rb:282 ../lib/puppet/provider/nameservice/directoryservice.rb:337 ../lib/puppet/provider/nameservice/directoryservice.rb:366
6832
6828
  msgid "Could not set %{param} on %{resource}[%{name}]: %{detail}"
6833
6829
  msgstr ""
6834
6830
 
@@ -6853,15 +6849,15 @@ msgstr ""
6853
6849
  msgid "Invalid id_type %{id_type}. Only 'uid' and 'gid' supported"
6854
6850
  msgstr ""
6855
6851
 
6856
- #: ../lib/puppet/provider/nameservice/directoryservice.rb:395
6852
+ #: ../lib/puppet/provider/nameservice/directoryservice.rb:393
6857
6853
  msgid "Could not set GeneratedUID for %{resource} %{name}: %{detail}"
6858
6854
  msgstr ""
6859
6855
 
6860
- #: ../lib/puppet/provider/nameservice/directoryservice.rb:443
6856
+ #: ../lib/puppet/provider/nameservice/directoryservice.rb:441
6861
6857
  msgid "Could not remove %{member} from group: %{resource}, %{detail}"
6862
6858
  msgstr ""
6863
6859
 
6864
- #: ../lib/puppet/provider/nameservice/directoryservice.rb:457
6860
+ #: ../lib/puppet/provider/nameservice/directoryservice.rb:455
6865
6861
  msgid "Could not add %{new_member} to group: %{name}, %{detail}"
6866
6862
  msgstr ""
6867
6863
 
@@ -7555,23 +7551,23 @@ msgstr ""
7555
7551
  msgid "Could not create class file %{file}: %{detail}"
7556
7552
  msgstr ""
7557
7553
 
7558
- #: ../lib/puppet/resource/catalog.rb:571
7554
+ #: ../lib/puppet/resource/catalog.rb:567
7559
7555
  msgid "Could not create resource file %{file}: %{detail}"
7560
7556
  msgstr ""
7561
7557
 
7562
- #: ../lib/puppet/resource/catalog.rb:593
7558
+ #: ../lib/puppet/resource/catalog.rb:589
7563
7559
  msgid "Unknown ordering type %{ordering}"
7564
7560
  msgstr ""
7565
7561
 
7566
- #: ../lib/puppet/resource/catalog.rb:614
7562
+ #: ../lib/puppet/resource/catalog.rb:610
7567
7563
  msgid "Duplicate declaration: %{resource} is already declared; cannot redeclare"
7568
7564
  msgstr ""
7569
7565
 
7570
- #: ../lib/puppet/resource/catalog.rb:616
7566
+ #: ../lib/puppet/resource/catalog.rb:612
7571
7567
  msgid "Duplicate declaration: %{resource} is already declared at %{error_location}; cannot redeclare"
7572
7568
  msgstr ""
7573
7569
 
7574
- #: ../lib/puppet/resource/catalog.rb:664 ../lib/puppet/resource/catalog.rb:668
7570
+ #: ../lib/puppet/resource/catalog.rb:660 ../lib/puppet/resource/catalog.rb:664
7575
7571
  msgid "Could not find resource %{resource} when converting %{message} resources"
7576
7572
  msgstr ""
7577
7573
 
@@ -8702,26 +8698,14 @@ msgstr ""
8702
8698
  msgid "Could not create %{type} filebucket: %{detail}"
8703
8699
  msgstr ""
8704
8700
 
8705
- #: ../lib/puppet/type/group.rb:61
8701
+ #: ../lib/puppet/type/group.rb:60
8706
8702
  msgid "GID cannot be deleted"
8707
8703
  msgstr ""
8708
8704
 
8709
- #: ../lib/puppet/type/group.rb:73
8705
+ #: ../lib/puppet/type/group.rb:72
8710
8706
  msgid "Invalid GID %{gid}"
8711
8707
  msgstr ""
8712
8708
 
8713
- #: ../lib/puppet/type/group.rb:92
8714
- msgid "The members property must be specified as either an array of strings, or as a single string consisting of a comma-separated list of members"
8715
- msgstr ""
8716
-
8717
- #: ../lib/puppet/type/group.rb:96
8718
- msgid "User names must be provided, not UID numbers."
8719
- msgstr ""
8720
-
8721
- #: ../lib/puppet/type/group.rb:100
8722
- msgid "User names must not be empty. If you want to specify \"no users\" pass an empty array"
8723
- msgstr ""
8724
-
8725
8709
  #: ../lib/puppet/type/host.rb:32
8726
8710
  msgid "Invalid IP address %{value}"
8727
8711
  msgstr ""
@@ -8989,61 +8973,61 @@ msgstr ""
8989
8973
  msgid "Group names must not be empty. If you want to specify \"no groups\" pass an empty array"
8990
8974
  msgstr ""
8991
8975
 
8992
- #: ../lib/puppet/type/user.rb:432
8976
+ #: ../lib/puppet/type/user.rb:435
8993
8977
  msgid "User provider %{name} can not manage home directories"
8994
8978
  msgstr ""
8995
8979
 
8996
8980
  #. TRANSLATORS YYYY-MM-DD represents a date with a four-digit year, a two-digit month, and a two-digit day,
8997
8981
  #. TRANSLATORS separated by dashes.
8998
- #: ../lib/puppet/type/user.rb:449
8982
+ #: ../lib/puppet/type/user.rb:452
8999
8983
  msgid "Expiry dates must be YYYY-MM-DD or the string \"absent\""
9000
8984
  msgstr ""
9001
8985
 
9002
- #: ../lib/puppet/type/user.rb:526
8986
+ #: ../lib/puppet/type/user.rb:529
9003
8987
  msgid "Role names must be provided, not numbers"
9004
8988
  msgstr ""
9005
8989
 
9006
- #: ../lib/puppet/type/user.rb:528
8990
+ #: ../lib/puppet/type/user.rb:531
9007
8991
  msgid "Role names must be provided as an array, not a comma-separated list"
9008
8992
  msgstr ""
9009
8993
 
9010
- #: ../lib/puppet/type/user.rb:563
8994
+ #: ../lib/puppet/type/user.rb:566
9011
8995
  msgid "Auth names must be provided, not numbers"
9012
8996
  msgstr ""
9013
8997
 
9014
- #: ../lib/puppet/type/user.rb:565
8998
+ #: ../lib/puppet/type/user.rb:568
9015
8999
  msgid "Auth names must be provided as an array, not a comma-separated list"
9016
9000
  msgstr ""
9017
9001
 
9018
- #: ../lib/puppet/type/user.rb:589
9002
+ #: ../lib/puppet/type/user.rb:592
9019
9003
  msgid "Profile names must be provided, not numbers"
9020
9004
  msgstr ""
9021
9005
 
9022
- #: ../lib/puppet/type/user.rb:591
9006
+ #: ../lib/puppet/type/user.rb:594
9023
9007
  msgid "Profile names must be provided as an array, not a comma-separated list"
9024
9008
  msgstr ""
9025
9009
 
9026
- #: ../lib/puppet/type/user.rb:714
9010
+ #: ../lib/puppet/type/user.rb:717
9027
9011
  msgid "Each entry for purge_ssh_keys must be a string, not a %{klass}"
9028
9012
  msgstr ""
9029
9013
 
9030
- #: ../lib/puppet/type/user.rb:717
9014
+ #: ../lib/puppet/type/user.rb:720
9031
9015
  msgid "Paths to keyfiles must be absolute, not %{entry}"
9032
9016
  msgstr ""
9033
9017
 
9034
- #: ../lib/puppet/type/user.rb:721
9018
+ #: ../lib/puppet/type/user.rb:724
9035
9019
  msgid "purge_ssh_keys must be true, false, or an array of file names, not %{value}"
9036
9020
  msgstr ""
9037
9021
 
9038
- #: ../lib/puppet/type/user.rb:733
9022
+ #: ../lib/puppet/type/user.rb:736
9039
9023
  msgid "purge_ssh_keys can only be true for users with a defined home directory"
9040
9024
  msgstr ""
9041
9025
 
9042
- #: ../lib/puppet/type/user.rb:740
9026
+ #: ../lib/puppet/type/user.rb:743
9043
9027
  msgid "purge_ssh_keys value '%{value}' meta character ~ or %{home_placeholder} only allowed for users with a defined home directory"
9044
9028
  msgstr ""
9045
9029
 
9046
- #: ../lib/puppet/type/user.rb:754
9030
+ #: ../lib/puppet/type/user.rb:757
9047
9031
  msgid "Class name must be provided."
9048
9032
  msgstr ""
9049
9033
 
@@ -9154,11 +9138,11 @@ msgstr ""
9154
9138
  msgid "path may not be nil"
9155
9139
  msgstr ""
9156
9140
 
9157
- #: ../lib/puppet/util.rb:564
9141
+ #: ../lib/puppet/util.rb:568
9158
9142
  msgid "replace_file requires a block"
9159
9143
  msgstr ""
9160
9144
 
9161
- #: ../lib/puppet/util.rb:568
9145
+ #: ../lib/puppet/util.rb:572
9162
9146
  msgid "replace_file default_mode: %{default_mode} is invalid"
9163
9147
  msgstr ""
9164
9148
 
@@ -9535,23 +9519,23 @@ msgstr ""
9535
9519
  msgid "Writing %{path} to RAM"
9536
9520
  msgstr ""
9537
9521
 
9538
- #: ../lib/puppet/util/filetype.rb:178
9522
+ #: ../lib/puppet/util/filetype.rb:184
9539
9523
  msgid "Could not retrieve user %{user}: %{detail}"
9540
9524
  msgstr ""
9541
9525
 
9542
- #: ../lib/puppet/util/filetype.rb:233 ../lib/puppet/util/filetype.rb:276
9526
+ #: ../lib/puppet/util/filetype.rb:200 ../lib/puppet/util/filetype.rb:249 ../lib/puppet/util/filetype.rb:292
9543
9527
  msgid "User %{path} not authorized to use cron"
9544
9528
  msgstr ""
9545
9529
 
9546
- #: ../lib/puppet/util/filetype.rb:235 ../lib/puppet/util/filetype.rb:278
9530
+ #: ../lib/puppet/util/filetype.rb:202 ../lib/puppet/util/filetype.rb:251 ../lib/puppet/util/filetype.rb:294
9547
9531
  msgid "Could not read crontab for %{path}: %{detail}"
9548
9532
  msgstr ""
9549
9533
 
9550
- #: ../lib/puppet/util/filetype.rb:243 ../lib/puppet/util/filetype.rb:286
9534
+ #: ../lib/puppet/util/filetype.rb:259 ../lib/puppet/util/filetype.rb:302
9551
9535
  msgid "Could not remove crontab for %{path}: %{detail}"
9552
9536
  msgstr ""
9553
9537
 
9554
- #: ../lib/puppet/util/filetype.rb:258 ../lib/puppet/util/filetype.rb:302
9538
+ #: ../lib/puppet/util/filetype.rb:274 ../lib/puppet/util/filetype.rb:318
9555
9539
  msgid "Could not write crontab for %{path}: %{detail}"
9556
9540
  msgstr ""
9557
9541
 
@@ -9674,7 +9658,7 @@ msgstr ""
9674
9658
  msgid "Creating log directory %{dir}"
9675
9659
  msgstr ""
9676
9660
 
9677
- #: ../lib/puppet/util/log/destinations.rb:100
9661
+ #: ../lib/puppet/util/log/destinations.rb:101
9678
9662
  msgid "Unable to set ownership to %{user}:%{group} for log file: %{path}"
9679
9663
  msgstr ""
9680
9664