On Thu, Jul 25, 2013 at 2:21 PM, Trevor Vaughan <[email protected]>wrote:
> Ok, so I'm not sure how this proposal will go over but I'm going to throw
> it out there.
>
> I recently encountered a situation where I was using the stdlib function
> 'file_line' to manage one line in a file but, through various means, ended
> up managing the entire file when using the code base i a different way.
>
> What I would like to propose is the addition of two metaparameters to
> correlate with the code smell of defined().
>
> I hate defined() because it's code order dependent. So, I would like to
> add is_active and is_inactive as metaparameters that use the actual catalog
> state to determine whether or not to run the resource.
>
> Example:
>
> file { '/tmp/foo': content => "foo\nbar" }
> file_line { 'test':
> path => '/tmp/foo',
> line => 'foo'
> }
>
> As you can see from this contrived example, these two resources will
> constantly fight.
>
> However, if we do the following:
>
> file { '/tmp/foo': content => "foo\nbar" }
> file_line { 'test':
> path => 'tmp/foo',
> line => 'foo',
> is_inactive => File['/tmp/foo']
> }
>
> Then, file_line will only execute if the File['/tmp/foo'] resource is not
> in the catalog. Otherwise, it should just log a debug message that it is
> not executing due to the is_inactive metaparameter.
>
Since path == is_inactive, and I can't see an exception in this case,
couldn't you just enhance file_line path parameter to validate if
catalog.resources contains a reference to File[resource[:path]] with
content or source specified?
Nan
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.