On 1 May 2016 at 19:33, R.I.Pienaar <r...@devco.net> wrote:
>
>
> ----- Original Message -----
>> From: "R. I. Pienaar" <r...@devco.net>
>> To: "puppet-dev" <puppet-dev@googlegroups.com>
>> Sent: Thursday, 3 March, 2016 09:58:42
>> Subject: Re: [Puppet-dev] metaparam question
>
>> ----- Original Message -----
>>> From: "Erik Dalén" <erik.gustav.da...@gmail.com>
>>> To: "puppet-dev" <puppet-dev@googlegroups.com>
>>> Sent: Thursday, 3 March, 2016 09:43:30
>>> Subject: Re: [Puppet-dev] metaparam question
>>
>>> On Fri, 5 Feb 2016 at 00:35 Kylo Ginsberg <k...@puppetlabs.com> wrote:
>>>
>>>> On Wed, Feb 3, 2016 at 7:47 AM, R.I.Pienaar <r...@devco.net> 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 puppet-dev+unsubscr...@googlegroups.com.
> 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 puppet-dev+unsubscr...@googlegroups.com.
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