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?
* 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?

Gareth

> This works with the code below and I included a basic thingy that tells
> sensu about this
>
> I had to hack around a bit more than simply adding a metaparam since I had
> to wait for puppet to completely finish with the resource and then do a
> final check after it's done
>
> https://github.com/ripienaar/puppet/commit/a6c659cc3fb3555632bfe94df1411878a04fdc51
>
> This is really nice, it both makes my Puppet runs a bit better and allows
> me to get instant visibility of failures - and configurable notifications
> based on sensu.  It works with any kind of resource.
>
> Ideally the sensu notifier would be something a module can provide and you
> could register multiple event handlers but Henrik says the bindings system
> isn't initialized on the agent side at present and I didn't have time to
> hack around with that.
>
> --
> 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/157346444.508343.1462127599948.JavaMail.zimbra%40devco.net.
> For more options, visit https://groups.google.com/d/optout.



-- 
Gareth Rushgrove
@garethr

devopsweekly.com
morethanseven.net
garethrushgrove.com

-- 
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/CAFi_6yK4ZXZqHAnm8moUuFD%2Bs%3DrXMG-kt51JN%2B%2B1EWcy_9AFzQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to