On Thu, Sep 08, 2016 at 11:26:01AM +0200, Elizabeth 'pidge' Flanagan wrote:
> This commit pulls and extends the functionality of .oe-error-report into
> local.conf. It maintains the functionality of .oe-error-report.
> 
> It also enables report-error to automatically send error reports to a 
> specified error report server. This patch enables infrastructure ppl to
> set development teams up so that we can gather error metrics automatically.
> 
> This relies on a new set of variables:
> 
> REPORTERROR[autosend]="yes|no|ask"
> REPORTERROR[user]=username
> REPORTERROR[email]=email
> REPORTERROR[server]=error-report-web instance
> 
> For autosend yes and no are pretty self explainatory. ask does not pass
> the -y flag to send-error-report, thus enabling the end user to review
> the report prior to submission.

The same functionality was sent more than 2 years ago, but it was
rejected, so I'm carrying it in our own fork since then:

http://lists.openembedded.org/pipermail/openembedded-core/2014-March/091222.html

> Signed-off-by: Elizabeth 'pidge' Flanagan <[email protected]>
> ---
>  meta/classes/report-error.bbclass | 41 
> +++++++++++++++++++++++++++++++++++++--
>  1 file changed, 39 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/report-error.bbclass 
> b/meta/classes/report-error.bbclass
> index 82b5bcd..909adf0 100644
> --- a/meta/classes/report-error.bbclass
> +++ b/meta/classes/report-error.bbclass
> @@ -85,10 +85,47 @@ python errorreport_handler () {
>              bb.utils.unlockfile(lock)
>              failures = jsondata['failures']
>              if(len(failures) > 0):
> +
>                  filename = "error_report_" + e.data.getVar("BUILDNAME", 
> True)+".txt"
>                  datafile = errorreport_savedata(e, jsondata, filename)
> -                bb.note("The errors for this build are stored in %s\nYou can 
> send the errors to a reports server by running:\n  send-error-report %s [-s 
> server]" % (datafile, datafile))
> -                bb.note("The contents of these logs will be posted in public 
> if you use the above command with the default server. Please ensure you 
> remove any identifying or proprietary information when prompted before 
> sending.")
> +
> +                cmd_s = "send-error-report %s" % datafile
> +                response_s = "The errors for this build are stored in %s\n" 
> % datafile
> +                sendit = False
> +
> +                autosend = e.data.getVarFlag("REPORTERROR","autosend")
> +                user = e.data.getVarFlag("REPORTERROR","user")
> +                email = e.data.getVarFlag("REPORTERROR","email")
> +                server = e.data.getVarFlag("REPORTERROR","server")
> +
> +                if user is not None:
> +                    cmd_s += " -n %s" % user
> +                if email is not None:
> +                    cmd_s += " -e %s" % email
> +                if server is not None:
> +                    cmd_s += " -s %s" % server
> +
> +                if autosend is not None:
> +                    if autosend == "yes":
> +                        response_s += "The errors for this build are set to 
> automatically be sent.\n"
> +                        cmd_s += " -y"
> +                        sendit = True
> +                    elif autosend == "ask":
> +                        response_s += "The errors for this build are set to 
> automatically be sent.\n"
> +                        sendit = True
> +                elif autosend is None:
> +                        response_s += "You can send the errors to a reports 
> server by running:\n  %s\n" % cmd_s
> +                elif e.data.getVarFlags('REPORTERROR') is None:
> +                        response_s += "You can send the errors to a reports 
> server by running:\n  %s [-s server]\n" % cmd_s
> +                        response_s += "The contents of these logs will be 
> posted in public if you use the above command with the default server.\n \
> +                             Please ensure you remove any identifying or 
> proprietary information when prompted before sending.\n"
> +
> +                bb.note(response_s)
> +
> +                if sendit == True:
> +                    import shlex, subprocess
> +                    args = shlex.split(cmd_s)
> +                    subprocess.call(args)
>  }
>  
>  addhandler errorreport_handler
> -- 
> 2.9.3
> 
> -- 
> _______________________________________________
> Openembedded-core mailing list
> [email protected]
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: [email protected]

Attachment: signature.asc
Description: Digital signature

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to