<div dir="ltr">Sorry, I forgot to finish this up and send it out. <div><br></div><div><span style="line-height:1.5;font-size:13.1999998092651px">#--SNIP--</span><br></div><div><div>def absent_default(</div><div><span style="line-height:1.5;font-size:13.1999998092651px">  $value,</span><br></div><div>  $default,</div><div>  $unset_when_default = true,</div><div>){</div><div>  if ( $value == $default ) and $unset_when_default {</div><div>    # I cant think of a way to deal with this in a define so lets pretend</div><div>    # we can re-use this with multiple providers like we could if this was</div><div>    # in the actual provider.</div><div><br></div><div>    keystone_config {$name: ensure => absent,}</div><div>  } else {</div><div>    keystone_config {$name: value = $value,}</div><div>  }</div><div>}</div><div><br></div><div># Usage:</div><div>absent_default{'DEFAULT/foo': default => 'bar', value => $foo }</div><div><br></div><div>#--SNIP--</div><div><br></div><div>(I threw this together and haven't tried to run it yet, so It might not run verbatim, I will create a test project with it to show it working)</div><div><br></div><div>So In the long-term we should be able to add some new functionality to the inifile provider to simply just do this for us. We can add the 'default' and 'unset_when_default' parameter so that we can use them straight w/o a wrapping function (but the warping function could be used too). This would give us the defaults (I have an idea on that too that I will try to put into the prototype) that should allow us to have something that looks quite clean, but is highly functional</div><div><br></div><div>> Keystone_config{unset_when_default => true} #probably flatly enabled in our inifile provider for the module</div><div>> keystone_config {'DEFAULT/foo': value => 'bar', default => 'bar'}</div><div><br></div><div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"></div></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 27, 2015 at 3:06 AM Yanis Guenane <<a href="mailto:yguenane@redhat.com">yguenane@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 07/20/2015 10:07 AM, Martin Mágr wrote:<br>
> Hey Yanis<br>
><br>
> On 07/17/2015 10:56 AM, Yanis Guenane wrote:<br>
>> Hello everyone,<br>
>><br>
>><br>
>> if set the value would have been set else it would default to upstream<br>
>> default.<br>
>><br>
>> But Mathieu raised a fair point here[2] is that an empty string for some<br>
>> settings is a valid value, and hence we can't rely on<br>
>> it.<br>
>><br>
>> Since the beginning we are trying to avoid the use of a magic string,<br>
>> but<br>
>> I am starting to run out of idea here.<br>
>><br>
>> Does someone has an idea on which sane value the default could be ?<br>
><br>
> How about  '*config_default*'? Or whatever similar which says you want<br>
> the default value, but will potentially never be value of any parameter.<br>
><br>
> Regards,<br>
> Martin<br>
><br>
>><br>
>> Thanks in advance,<br>
>><br>
>> [1] <a href="https://review.openstack.org/#/c/202488" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/202488</a><br>
>> [2] <a href="https://review.openstack.org/#/c/202574" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/202574</a><br>
>> --<br>
>> Yanis Guenane<br>
>><br>
>> __________________________________________________________________________<br>
>><br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe:<br>
>> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
><br>
> __________________________________________________________________________<br>
><br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe:<br>
> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
Following on the thread, and following the discussion that took place<br>
during last week meeting[1],<br>
<br>
The patchset[2] and the example[3] have been updated not to ensure<br>
absent for a nil string due to its valid usage in some cases,<br>
but to ensure absent when '<SERVICE DEFAULT>' is specified. Based on the<br>
community feedback this string<br>
isn't used across any component.<br>
<br>
During the meeting xarses had an alternative idea, if once mocked up you<br>
could send a follow-up mail in this<br>
thread so we can grasp the idea.<br>
<br>
@Mathieu: if the new approach is ok with you, could you please review<br>
your -2 on that patchset<br>
<br>
Thanks in advance for your feedbacks,<br>
<br>
[1]<br>
<a href="http://eavesdrop.openstack.org/meetings/puppet/2015/puppet.2015-07-21-14.59.log.html" rel="noreferrer" target="_blank">http://eavesdrop.openstack.org/meetings/puppet/2015/puppet.2015-07-21-14.59.log.html</a><br>
[2] <a href="https://review.openstack.org/#/c/202574/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/202574/</a><br>
[3] <a href="https://review.openstack.org/#/c/202513/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/202513/</a><br>
<br>
--<br>
Yanis Guenane<br>
<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><div dir="ltr">-- <br></div><div dir="ltr"><p dir="ltr">--</p><p dir="ltr"><span style="font-size:13.1999998092651px">Andrew Woodward</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Mirantis</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Fuel Community Ambassador</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Ceph Community</span></p>
</div>