Maybe it shouldn't be related to the existing Bolt log levels? In --verbose, I can see too much noise to follow the apply messages there. I would like to have a separate parameter, e.g. --log-apply=verbose (and be able to set the logging level in the configuration). Or, I could imagine even a standard library function for now (something similar to without_default_logging), still better than nothing...
Thank you, Alex. Vlastimil On Saturday, January 19, 2019 at 12:58:59 AM UTC+1, Alex Dreyer wrote: > > Thanks, I agree this output should be available when you're debugging > apply statements in plans and I did a spike on implementing this type of > logging a few months ago. After some testing it became apparent that this > is too much output for the default log level. When running on many nodes it > overwhelms any other output from the plan. Would logging it at verbose > level solve your debugging problem? > > Fixing this issue is ticketed as part of > https://tickets.puppetlabs.com/browse/BOLT-901 > > On Fri, Jan 18, 2019 at 3:15 PM <[email protected] <javascript:>> > wrote: > >> Hello, >> >> I'm not sure if it's possible (I haven't seen it) to provide Puppet-like >> logging of changed / error resources in *apply* blocks without any >> additional code. Puppet Agent gives great visibility with default logging >> level about what has changed and what has failed. Unfortunately, the Bolt >> *apply* logs nothing except the failure. >> >> Example: >> apply($workers) { >> exec { '/usr/bin/uptime': } >> exec { '/usr/bin/missing': } >> file { '/tmp/hey': content => 'hey', } >> } >> >> Result: >> Starting: apply catalog on 147.251.255.50, 147.251.255.51, >> 147.251.255.56 >> Finished: apply catalog with 3 failures in 12.41 sec >> Finished: plan profiles::test in 24.21 sec >> Resources failed to apply for 147.251.255.50 >> Exec[/usr/bin/missing]: change from 'notrun' to ['0'] failed: Could >> not find command '/usr/bin/missing' >> Resources failed to apply for 147.251.255.51 >> Exec[/usr/bin/missing]: change from 'notrun' to ['0'] failed: Could >> not find command '/usr/bin/missing' >> Resources failed to apply for 147.251.255.56 >> Exec[/usr/bin/missing]: change from 'notrun' to ['0'] failed: Could >> not find command '/usr/bin/missing' >> >> For the user who is writing the plan, debugging the Puppet modules / >> classes, running it several times... he doesn't see that uptime is running >> every time or when the file has changed. >> >> Yes, the workaround is to catch the result of *apply* call... but you >> would have to do it for the very *apply* block. >> >> Example: >> $results = apply($workers, _catch_errors => true) { >> exec { '/usr/bin/uptime': } >> exec { '/usr/bin/missing': } >> file { '/tmp/hey': content => 'hey', } >> } >> >> $results.each |$result| { >> $result.report['logs'].each |$log| { >> $_level = $log['level'] ? { >> 'notice' => 'Notice', >> 'err' => 'Error', >> default => 'Unknown', >> } >> >> $_msg = sprintf( >> '%s: %s: %s: %s', >> $result.target.name, >> $_level, >> $log['source'], >> $log['message'] >> ) >> >> case $log['level'] { >> err: { err($_msg) } >> default: { notice($_msg) } >> } >> } >> } >> >> Result: >> Starting: apply catalog on 147.251.255.50, 147.251.255.51, >> 147.251.255.56 >> Finished: apply catalog with 3 failures in 12.26 sec >> 147.251.255.50: Notice: >> /Stage[main]/Main/Exec[/usr/bin/uptime]/returns: executed successfully >> 147.251.255.50: Error: Puppet: Could not find command >> '/usr/bin/missing' >> 147.251.255.50: Error: >> /Stage[main]/Main/Exec[/usr/bin/missing]/returns: change from 'notrun' to >> ['0'] failed: Could not find command '/usr/bin/missing' >> 147.251.255.50: Notice: /Stage[main]/Main/File[/tmp/hey]/content: >> content changed '{md5}79c2b46ce2594ecbcb5b73e928345492' to >> '{md5}6057f13c496ecf7fd777ceb9e79ae285' >> 147.251.255.50: Notice: Puppet: Applied catalog in 0.11 seconds >> 147.251.255.51: Notice: >> /Stage[main]/Main/Exec[/usr/bin/uptime]/returns: executed successfully >> 147.251.255.51: Error: Puppet: Could not find command >> '/usr/bin/missing' >> 147.251.255.51: Error: >> /Stage[main]/Main/Exec[/usr/bin/missing]/returns: change from 'notrun' to >> ['0'] failed: Could not find command '/usr/bin/missing' >> 147.251.255.51: Notice: /Stage[main]/Main/File[/tmp/hey]/content: >> content changed '{md5}79c2b46ce2594ecbcb5b73e928345492' to >> '{md5}6057f13c496ecf7fd777ceb9e79ae285' >> 147.251.255.51: Notice: Puppet: Applied catalog in 0.09 seconds >> 147.251.255.56: Notice: >> /Stage[main]/Main/Exec[/usr/bin/uptime]/returns: executed successfully >> 147.251.255.56: Error: Puppet: Could not find command >> '/usr/bin/missing' >> 147.251.255.56: Error: >> /Stage[main]/Main/Exec[/usr/bin/missing]/returns: change from 'notrun' to >> ['0'] failed: Could not find command '/usr/bin/missing' >> 147.251.255.56: Notice: /Stage[main]/Main/File[/tmp/hey]/content: >> content changed '{md5}79c2b46ce2594ecbcb5b73e928345492' to >> '{md5}6057f13c496ecf7fd777ceb9e79ae285' >> 147.251.255.56: Notice: Puppet: Applied catalog in 0.07 seconds >> Finished: plan profiles::test in 24.7 sec >> >> I would love to see the above logging style for *apply* blocks >> integrated into the Bolt so that it's not necessary to always catch the >> results to get reasonable logs. It provides the helpful (I would more say >> necessary) visibility into what's happening on the targets. >> >> Thanks for any comments. >> >> Best regards, >> Vlastimil Holer >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/puppet-users/45c0f2a2-4cf9-4993-9c2c-b89b910a8f5c%40googlegroups.com >> >> <https://groups.google.com/d/msgid/puppet-users/45c0f2a2-4cf9-4993-9c2c-b89b910a8f5c%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "Puppet Users" 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-users/bdd767e9-8966-4eb4-9d24-088b0b6bcfa9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
