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.
