Issue #10237 has been updated by Stefan Schulte.

Hi Jacob, I agree that this a major change in behaviour. But do have any idea 
how to »deprecate it« in a smart way? Because assigning an empty array to a 
property is valid right now and will be valid in the future and I can't tell 
what the user is expecting when he writes `property => []`.

The only way that I can think of is to throw a warning every time an empty 
array is assigned to a property. Like
<pre>
You've assigned an empty array to principals. The current behaviour is to 
ignore this
property but that will change in the future: An empty array will cause puppet to
remove any principal it finds. If this is not what you want remove the property 
from
the resource definition or use principals => undef.
</pre>

Now the problem is that I don't know a way to get the desired behaviour (remove 
all principals) in the current setup. So if someone has `principals => []` and 
wants to remove any principal they

* have no way to achieve that (at least not that I know of)
* they have to remove `principals => []` in their manifests or they will now 
get my deprecation message all the time

So how am I going to tell them that they can now switch back to `principals => 
[]` once it has the desired behaviour?
----------------------------------------
Bug #10237: An empty array of principals to k5login type does not empty the 
.k5login.
https://projects.puppetlabs.com/issues/10237

Author: Steve Traylen
Status: Code Insufficient
Priority: Normal
Assignee: Stefan Schulte
Category: RAL
Target version: 
Affected Puppet version: 0.24.0
Keywords: 
Branch: https://github.com/stschulte/puppet/tree/ticket/2.7.x/10237


Running 2.6.6 on RHEL6.1 and starting with a non-empty /root/.k5login

    # cat /root/.k5login 
    [email protected]

The the following configuration 

    k5login {'/root/.k5login': principals => []}

Results in an unchanged /root/.k5login still containing the principal. I 
believe in this case
the file should be emptied.

In the null string case the file is emptied.

    k5login {'/root/.k5login': principals => ''}

however in the this case nothing happens

    k5login {'/root/.k5login': }

which is quite possibly correct?

Certainly the zero length array should be empty, it's important to me
since I'm returning the array from a custom function. 

Apologies for not confirming with the latest greatest puppet, I'll set
one up shortly for confirming these kind of things are still present
if they are.




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to