Re: [Puppet Users] Re: validate_re validation failures

2012-04-09 Thread Jeff McCune
On Mon, Apr 9, 2012 at 4:24 PM, Shantanu  wrote:

> This failure or rather input validation was intentional. I was testing
> validate_re function usage to fail if a bad/unsupported parameter
> value was passed. However initially I was seeing successful catalog
> application even after getting Error 400 from the puppet master.  As
> you correctly pointed out this was an issue with cached catalog.
>
> Later I started puppetd again, still without '--test' option, and I
> didn't see the same behavior.  As mentioned in earlier replies puppet
> agent not only failed to retrieve catalog from the pupet master but it
> also failed to apply/retrieve cached catalog. So I was wondering if
> this caching is related to some time interval or if something else
> triggered cached catalog to be discarded.
>

I'm really not sure at this point...  There's enough variation in what
you've described that I'm having difficulty tracking all of the pieces.

It sounds like Puppet is behaving as expected.  If you're concerned or have
questions about the cached catalog, I'd simply try it again and see if
everything behaves as I've described.  If it doesn't, then I recommend
starting a new thread about that specific question or concern.

That is, turn off the puppet agent service, break the validation on the
master, then run this a few times and make sure the cached catalog is
applied each time:

  puppet agent --onetime --verbose --no-daemonize --no-splay --show_diff

Hope this helps,
-Jeff

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: validate_re validation failures

2012-04-09 Thread Shantanu

On Apr 9, 5:37 pm, Jeff McCune  wrote:
> On Mon, Apr 9, 2012 at 3:23 PM, Shantanu  wrote:
>
> > On Apr 9, 4:43 pm, Jeff McCune  wrote:
> > > On Mon, Apr 9, 2012 at 2:40 PM, Shantanu  wrote:
>
> > > > On Apr 9, 4:06 pm, Jeff McCune  wrote:
> > > > > On Mon, Apr 9, 2012 at 4:45 PM, Shantanu 
> > wrote:
>
> > > > > > I am using stdlib module's validate_re function to validate
> > parameters
> > > > > > passed to a parameterized class as pasted here:
> > > > > >http://pastebin.com/7eYAeLEa
> > > > > > .
>
> > > > > > The validation works fine however when I run this manifest locally
> > > > > > using 'puppet apply' command where puppet execution stops if a
> > > > > > validation test fails. However when I use it in client-server model
> > > > > > then I do see a validation match failure error but rest of the
> > puppet
> > > > > > manifest application (file creation) proceeds fine instead of
> > > > > > failing.
>
> > > > > validate_re will abort the catalog compilation process entirely.
> >  Are you
> > > > > sure your puppet agent is not falling back to using a previously
> > cached
> > > > > copy of the catalog?
>
> > > > > If you use puppet agent --test it will disable the "use cache on
> > failure"
> > > > > feature of Puppet.
>
> > > > > -Jeff
>
> > > > Thanks Jeff. That was the issue. The pastebin logs do indicate 'using
> > > > cached catalog' message.
>
> > > > I am manually starting/stopping puppetd for these tests. I started it
> > > > again without '--test' option but this time it couldn't retrieve
> > > > (cached) catalog. It failed (or rather skipped catalog run) with
> > > > following messages:
>
> > > > {{{
> > > > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve catalog
> > > > from remote server: Error 400 on SERVER: validate_re(): "mysq" does
> > > > not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
> > > > teststdlib.pp:5 on node one-23...
> > > > Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
> > > > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> > > > catalog; skipping run
> > > > }}}
>
> > > > If I use '--test' option then I get 'error 400' immediately and
> > > > puppetd doesn't get started as well.
>
> > > This all sounds like Puppet is behaving exactly as I expect it to.
>
> > > > Since it once worked for me even without '--test' option I am
> > > > wondering how long does a node keep cache? Is cache dependent on any
> > > > factors other than time interval?
>
> > > Puppet caches the last "good" (compiled) catalog it received from the
> > > master indefinitely.  The purpose is that if you have a syntax error in
> > > your manifests, Puppet will still manage the system using the last known
> > > good catalog.
>
> > > Once the syntax error is fixed, the new catalog will replace the old
> > > catalog in the agent's cache.
>
> > > -Jeff
>
> > Thanks for the explanation Jeff.
>
> > If Puppet caches a catalog indefinitely then I am not sure why it
> > failed once as indicated in my previous email.
>
> > {{{
> > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> > catalog
> > from remote server: Error 400 on SERVER: validate_re(): "mysq" does
> > not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
> > teststdlib.pp:5 on node one-23...
> > Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
> > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> > catalog; skipping run
> > }}}
>
> > It seems like here it couldn't get remote catalog because of
> > validation failure. And later it tried to use cached catalog but
> > failed to retrieve it as well. It didn't happen for previous runs as
> > it successfully applied cached catalog. Am I missing any details
> > here?
>
> It appears you have a typo in your manifest.  You've written mysq (no
> trailing lower case L) but the module expects "mysql" or "sqlite"
>
> This is why you're seeing the failure.
>
> -Jeff


This failure or rather input validation was intentional. I was testing
validate_re function usage to fail if a bad/unsupported parameter
value was passed. However initially I was seeing successful catalog
application even after getting Error 400 from the puppet master.  As
you correctly pointed out this was an issue with cached catalog.

Later I started puppetd again, still without '--test' option, and I
didn't see the same behavior.  As mentioned in earlier replies puppet
agent not only failed to retrieve catalog from the pupet master but it
also failed to apply/retrieve cached catalog. So I was wondering if
this caching is related to some time interval or if something else
triggered cached catalog to be discarded.

--
Shantanu

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://

Re: [Puppet Users] Re: validate_re validation failures

2012-04-09 Thread Jeff McCune
On Mon, Apr 9, 2012 at 3:23 PM, Shantanu  wrote:

>
>
> On Apr 9, 4:43 pm, Jeff McCune  wrote:
> > On Mon, Apr 9, 2012 at 2:40 PM, Shantanu  wrote:
> >
> > > On Apr 9, 4:06 pm, Jeff McCune  wrote:
> > > > On Mon, Apr 9, 2012 at 4:45 PM, Shantanu 
> wrote:
> >
> > > > > I am using stdlib module's validate_re function to validate
> parameters
> > > > > passed to a parameterized class as pasted here:
> > > > >http://pastebin.com/7eYAeLEa
> > > > > .
> >
> > > > > The validation works fine however when I run this manifest locally
> > > > > using 'puppet apply' command where puppet execution stops if a
> > > > > validation test fails. However when I use it in client-server model
> > > > > then I do see a validation match failure error but rest of the
> puppet
> > > > > manifest application (file creation) proceeds fine instead of
> > > > > failing.
> >
> > > > validate_re will abort the catalog compilation process entirely.
>  Are you
> > > > sure your puppet agent is not falling back to using a previously
> cached
> > > > copy of the catalog?
> >
> > > > If you use puppet agent --test it will disable the "use cache on
> failure"
> > > > feature of Puppet.
> >
> > > > -Jeff
> >
> > > Thanks Jeff. That was the issue. The pastebin logs do indicate 'using
> > > cached catalog' message.
> >
> > > I am manually starting/stopping puppetd for these tests. I started it
> > > again without '--test' option but this time it couldn't retrieve
> > > (cached) catalog. It failed (or rather skipped catalog run) with
> > > following messages:
> >
> > > {{{
> > > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve catalog
> > > from remote server: Error 400 on SERVER: validate_re(): "mysq" does
> > > not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
> > > teststdlib.pp:5 on node one-23...
> > > Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
> > > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> > > catalog; skipping run
> > > }}}
> >
> > > If I use '--test' option then I get 'error 400' immediately and
> > > puppetd doesn't get started as well.
> >
> > This all sounds like Puppet is behaving exactly as I expect it to.
> >
> > > Since it once worked for me even without '--test' option I am
> > > wondering how long does a node keep cache? Is cache dependent on any
> > > factors other than time interval?
> >
> > Puppet caches the last "good" (compiled) catalog it received from the
> > master indefinitely.  The purpose is that if you have a syntax error in
> > your manifests, Puppet will still manage the system using the last known
> > good catalog.
> >
> > Once the syntax error is fixed, the new catalog will replace the old
> > catalog in the agent's cache.
> >
> > -Jeff
>
> Thanks for the explanation Jeff.
>
> If Puppet caches a catalog indefinitely then I am not sure why it
> failed once as indicated in my previous email.
>
> {{{
> Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> catalog
> from remote server: Error 400 on SERVER: validate_re(): "mysq" does
> not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
> teststdlib.pp:5 on node one-23...
> Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
> Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> catalog; skipping run
> }}}
>
> It seems like here it couldn't get remote catalog because of
> validation failure. And later it tried to use cached catalog but
> failed to retrieve it as well. It didn't happen for previous runs as
> it successfully applied cached catalog. Am I missing any details
> here?
>
>
It appears you have a typo in your manifest.  You've written mysq (no
trailing lower case L) but the module expects "mysql" or "sqlite"

This is why you're seeing the failure.

-Jeff

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: validate_re validation failures

2012-04-09 Thread Shantanu


On Apr 9, 4:43 pm, Jeff McCune  wrote:
> On Mon, Apr 9, 2012 at 2:40 PM, Shantanu  wrote:
>
> > On Apr 9, 4:06 pm, Jeff McCune  wrote:
> > > On Mon, Apr 9, 2012 at 4:45 PM, Shantanu  wrote:
>
> > > > I am using stdlib module's validate_re function to validate parameters
> > > > passed to a parameterized class as pasted here:
> > > >http://pastebin.com/7eYAeLEa
> > > > .
>
> > > > The validation works fine however when I run this manifest locally
> > > > using 'puppet apply' command where puppet execution stops if a
> > > > validation test fails. However when I use it in client-server model
> > > > then I do see a validation match failure error but rest of the puppet
> > > > manifest application (file creation) proceeds fine instead of
> > > > failing.
>
> > > validate_re will abort the catalog compilation process entirely.  Are you
> > > sure your puppet agent is not falling back to using a previously cached
> > > copy of the catalog?
>
> > > If you use puppet agent --test it will disable the "use cache on failure"
> > > feature of Puppet.
>
> > > -Jeff
>
> > Thanks Jeff. That was the issue. The pastebin logs do indicate 'using
> > cached catalog' message.
>
> > I am manually starting/stopping puppetd for these tests. I started it
> > again without '--test' option but this time it couldn't retrieve
> > (cached) catalog. It failed (or rather skipped catalog run) with
> > following messages:
>
> > {{{
> > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve catalog
> > from remote server: Error 400 on SERVER: validate_re(): "mysq" does
> > not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
> > teststdlib.pp:5 on node one-23...
> > Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
> > Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> > catalog; skipping run
> > }}}
>
> > If I use '--test' option then I get 'error 400' immediately and
> > puppetd doesn't get started as well.
>
> This all sounds like Puppet is behaving exactly as I expect it to.
>
> > Since it once worked for me even without '--test' option I am
> > wondering how long does a node keep cache? Is cache dependent on any
> > factors other than time interval?
>
> Puppet caches the last "good" (compiled) catalog it received from the
> master indefinitely.  The purpose is that if you have a syntax error in
> your manifests, Puppet will still manage the system using the last known
> good catalog.
>
> Once the syntax error is fixed, the new catalog will replace the old
> catalog in the agent's cache.
>
> -Jeff

Thanks for the explanation Jeff.

If Puppet caches a catalog indefinitely then I am not sure why it
failed once as indicated in my previous email.

{{{
Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
catalog
from remote server: Error 400 on SERVER: validate_re(): "mysq" does
not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
teststdlib.pp:5 on node one-23...
Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
catalog; skipping run
}}}

It seems like here it couldn't get remote catalog because of
validation failure. And later it tried to use cached catalog but
failed to retrieve it as well. It didn't happen for previous runs as
it successfully applied cached catalog. Am I missing any details
here?

--
Shantanu

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Re: validate_re validation failures

2012-04-09 Thread Jeff McCune
On Mon, Apr 9, 2012 at 2:40 PM, Shantanu  wrote:

>
>
> On Apr 9, 4:06 pm, Jeff McCune  wrote:
> > On Mon, Apr 9, 2012 at 4:45 PM, Shantanu  wrote:
> >
> > > I am using stdlib module's validate_re function to validate parameters
> > > passed to a parameterized class as pasted here:
> > >http://pastebin.com/7eYAeLEa
> > > .
> >
> > > The validation works fine however when I run this manifest locally
> > > using 'puppet apply' command where puppet execution stops if a
> > > validation test fails. However when I use it in client-server model
> > > then I do see a validation match failure error but rest of the puppet
> > > manifest application (file creation) proceeds fine instead of
> > > failing.
> >
> > validate_re will abort the catalog compilation process entirely.  Are you
> > sure your puppet agent is not falling back to using a previously cached
> > copy of the catalog?
> >
> > If you use puppet agent --test it will disable the "use cache on failure"
> > feature of Puppet.
> >
> > -Jeff
>
>
> Thanks Jeff. That was the issue. The pastebin logs do indicate 'using
> cached catalog' message.
>
> I am manually starting/stopping puppetd for these tests. I started it
> again without '--test' option but this time it couldn't retrieve
> (cached) catalog. It failed (or rather skipped catalog run) with
> following messages:
>
> {{{
> Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve catalog
> from remote server: Error 400 on SERVER: validate_re(): "mysq" does
> not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
> teststdlib.pp:5 on node one-23...
> Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
> Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
> catalog; skipping run
> }}}
>
> If I use '--test' option then I get 'error 400' immediately and
> puppetd doesn't get started as well.
>

This all sounds like Puppet is behaving exactly as I expect it to.


> Since it once worked for me even without '--test' option I am
> wondering how long does a node keep cache? Is cache dependent on any
> factors other than time interval?
>

Puppet caches the last "good" (compiled) catalog it received from the
master indefinitely.  The purpose is that if you have a syntax error in
your manifests, Puppet will still manage the system using the last known
good catalog.

Once the syntax error is fixed, the new catalog will replace the old
catalog in the agent's cache.

-Jeff

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: validate_re validation failures

2012-04-09 Thread Shantanu


On Apr 9, 4:06 pm, Jeff McCune  wrote:
> On Mon, Apr 9, 2012 at 4:45 PM, Shantanu  wrote:
>
> > I am using stdlib module's validate_re function to validate parameters
> > passed to a parameterized class as pasted here:
> >http://pastebin.com/7eYAeLEa
> > .
>
> > The validation works fine however when I run this manifest locally
> > using 'puppet apply' command where puppet execution stops if a
> > validation test fails. However when I use it in client-server model
> > then I do see a validation match failure error but rest of the puppet
> > manifest application (file creation) proceeds fine instead of
> > failing.
>
> validate_re will abort the catalog compilation process entirely.  Are you
> sure your puppet agent is not falling back to using a previously cached
> copy of the catalog?
>
> If you use puppet agent --test it will disable the "use cache on failure"
> feature of Puppet.
>
> -Jeff


Thanks Jeff. That was the issue. The pastebin logs do indicate 'using
cached catalog' message.

I am manually starting/stopping puppetd for these tests. I started it
again without '--test' option but this time it couldn't retrieve
(cached) catalog. It failed (or rather skipped catalog run) with
following messages:

{{{
Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve catalog
from remote server: Error 400 on SERVER: validate_re(): "mysq" does
not match ["mysql", "sqlite"] at /etc/puppet/manifests/classes/
teststdlib.pp:5 on node one-23...
Apr  9 16:15:11 one-23 puppet-agent[24242]: Using cached catalog
Apr  9 16:15:11 one-23 puppet-agent[24242]: Could not retrieve
catalog; skipping run
}}}

If I use '--test' option then I get 'error 400' immediately and
puppetd doesn't get started as well.

Since it once worked for me even without '--test' option I am
wondering how long does a node keep cache? Is cache dependent on any
factors other than time interval?

--
Shantanu

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.