Issue #17522 has been updated by Dominic Cleal.

Jo Rhett wrote:
> Jeff: I was able to get the remaining files moved into puppet control and 
> fixed, so we got rid of the errors. But it is definitely annoying, especially 
> as some of the 'errors' were valid for the application, just not accepted by 
> augeas.

We'd love to hear about these errors upstream in augeas too!

> Wasn't there a performance improvement done for augeas so that it would stop 
> reading every file the lense could read? Augeas is still the slowest thing in 
> the puppet run.

Yes, as long as you specify the `context` parameter.  If you're editing 
/etc/sysconfig/network for example, set context to 
`/files/etc/sysconfig/network` and use relative paths in the changes parameter. 
 It will then only warn if the file you're editing has a parse error - it's 
this code that had the extra line added, which caused the warning to appear 
elsewhere.

You can also specify `incl` (the path to the file) and `lens` (`Shellvars.lns` 
or similar), which does much the same thing.
----------------------------------------
Bug #17522: Augeas load warnings printed when less specific context used
https://projects.puppetlabs.com/issues/17522#change-82821

Author: Dominic Cleal
Status: Merged - Pending Release
Priority: Normal
Assignee: Dominic Cleal
Category: agent
Target version: 3.2.0
Affected Puppet version: 3.0.0
Keywords: augeas warning
Branch: https://github.com/puppetlabs/puppet/pull/1454


open_augeas in the Augeas provider tries to optimise (#14136) if the context is 
given.  It also prints a warning if there are load errors while the 
optimisation's in use (since it should only load files you care about, then 
errors are useful) but otherwise at debug level.

The second part of this if statement shouldn't be setting the "restricted" 
variable to true, only in the inner branch.  I think it ended up on the wrong 
line during merging and caused #15569 at the time.

<pre>
      restricted = false
      if resource[:incl]
        aug.set("/augeas/load/Xfm/lens", resource[:lens])
        aug.set("/augeas/load/Xfm/incl", resource[:incl])
        restricted = true
      elsif glob_avail and opt_ctx
        restricted = true
        # Optimize loading if the context is given, requires the glob function
        # from Augeas 0.8.2 or up
        ctx_path = resource[:context].sub(/^\/files(.*?)\/?$/, '\1/')
        load_path = "/augeas/load/*['%s' !~ glob(incl) + regexp('/.*')]" % 
ctx_path

        if aug.match(load_path).size < aug.match("/augeas/load/*").size
          aug.rm(load_path)
          restricted = true
        else
          # This will occur if the context is less specific than any glob
          debug("Unable to optimize files loaded by context path, no glob 
matches")
        end
      end
</pre>


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to