----- Original Message -----
> From: "gareth rushgrove" <[email protected]>
> To: "puppet-dev" <[email protected]>
> Sent: Monday, 9 May, 2016 14:55:12
> Subject: Re: [Puppet-dev] metaparam question

> On 1 May 2016 at 19:33, R.I.Pienaar <[email protected]> wrote:
>>
>>
>> ----- Original Message -----
>>> From: "R. I. Pienaar" <[email protected]>
>>> To: "puppet-dev" <[email protected]>
>>> Sent: Thursday, 3 March, 2016 09:58:42
>>> Subject: Re: [Puppet-dev] metaparam question
>>
>>> ----- Original Message -----
>>>> From: "Erik Dalén" <[email protected]>
>>>> To: "puppet-dev" <[email protected]>
>>>> Sent: Thursday, 3 March, 2016 09:43:30
>>>> Subject: Re: [Puppet-dev] metaparam question
>>>
>>>> On Fri, 5 Feb 2016 at 00:35 Kylo Ginsberg <[email protected]> wrote:
>>>>
>>>>> On Wed, Feb 3, 2016 at 7:47 AM, R.I.Pienaar <[email protected]> wrote:
>>>>>
>>>>>> hello,
>>>>>>
>>>>>> I would like to add a metaparameter - which I think is easy now via
>>>>>> Type.newmetaparam.
>>>>>>
>>>>>
>>>>> We haven't been thinking of metaparameters as a general purpose extension
>>>>> point. This came up once before that I know of, about a year ago, and
>>>>> there's a little discussion of this in
>>>>> https://tickets.puppetlabs.com/browse/PUP-4281. The conclusion we reached
>>>>> at the time was, more or less, to explore whether the desired change could
>>>>> be accomplished with a puppet function and/or a change to core puppet.
>>>>>
>>>>>
>>>>>>
>>>>>> The thing that I can't seem to find any example of though is how to
>>>>>> make this metaparameter do something on the nodes for all providers
>>>>>> or all types.
>>>>>
>>>>>
>>>>>> Imagine there's a metaparam that might describe how to test a resource
>>>>>> works, something like:
>>>>>>
>>>>>>    service{"httpd": validate => "check_http --port 80 -H localhost"}
>>>>>>
>>>>>> I'd then want to have some code that would be run on the agent nodes
>>>>>> for any resource that has this param set.
>>>>>>
>>>>>
>>>>> I don't think something like this exists per se, but 'validate' might be
>>>>> one such example of something worth adding to core puppet. Fwiw, one
>>>>> resource-specific example added not too long ago is the file type's
>>>>> validate_cmd:
>>>>>
>>>>>
>>>>> https://docs.puppetlabs.com/puppet/latest/reference/type.html#file-attribute-validate_cmd
>>>>> .
>>>>>
>>>>>
>>>> Just to clarify, validate_cmd works differently in that it validates the
>>>> new contents before replacing the file.
>>>> I guess the generic validate metaparameter would validate the resource
>>>> after it has been synced.
>>>
>>> yes indeed, subtle but important.  thanks
>>
>> Late to follow up on this but I had some time to work on this again,
>>
>>   service{"http":
>>     ensure => "running",
>>     post_validate => "/usr/lib64/nagios/plugins/check_http -H localhost"
>>   }
>>
> 
> First up, this is great. A few minor comments:
> 
> * You explicitly don't trigger the script if it's a noop run or the
> resource failed. That obvious matches your specific usecase but I'm
> wondering if it matches all?

yeah, as this is just playing around with the idea that choice seemed
the right one without dwelling on it too much - I am not actually sure
what would be right.

Exec for example has all the unless/onlyif stuff and I dont think those
are ran during a noop either - I think it assumes a value?

Thinking about it, not running it during noop is the only thing thats
safe, people might not do read only things there - though they really
should.  And if its the first run the prereq might not be there?

> * Similar vein, the name post_validate assumes the usage is to
> 'validate' the resource. Given the power of this I can imagine other
> uses too, it might be nicer to have a more generic name?

validate or verify it works yes, what other uses did you have in mind?

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/933229095.334955.1462798703903.JavaMail.zimbra%40devco.net.
For more options, visit https://groups.google.com/d/optout.

Reply via email to