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.

Thanks,

Trevor

-- 
Trevor Vaughan
Vice President, Onyx Point, Inc
(410) 541-6699
[email protected]

-- This account not approved for unencrypted proprietary information --

-- 
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.


Reply via email to