All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH] report-error.bbclass: Add support for autosending
@ 2016-09-08  9:26 Elizabeth 'pidge' Flanagan
  2016-09-08 18:23 ` Randy Witt
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Elizabeth 'pidge' Flanagan @ 2016-09-08  9:26 UTC (permalink / raw)
  To: openembedded-core

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.

Signed-off-by: Elizabeth 'pidge' Flanagan <pidge@toganlabs.com>
---
 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



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [RFC][PATCH] report-error.bbclass: Add support for autosending
  2016-09-08  9:26 [RFC][PATCH] report-error.bbclass: Add support for autosending Elizabeth 'pidge' Flanagan
@ 2016-09-08 18:23 ` Randy Witt
  2016-09-08 20:42 ` Paul Eggleton
  2016-09-09  9:31 ` Martin Jansa
  2 siblings, 0 replies; 6+ messages in thread
From: Randy Witt @ 2016-09-08 18:23 UTC (permalink / raw)
  To: Elizabeth 'pidge' Flanagan, openembedded-core

On 09/08/2016 02:26 AM, 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.
>
> Signed-off-by: Elizabeth 'pidge' Flanagan <pidge@toganlabs.com>
> ---
>  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:

The last elif will never be executed.

> +                        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
>



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC][PATCH] report-error.bbclass: Add support for autosending
  2016-09-08  9:26 [RFC][PATCH] report-error.bbclass: Add support for autosending Elizabeth 'pidge' Flanagan
  2016-09-08 18:23 ` Randy Witt
@ 2016-09-08 20:42 ` Paul Eggleton
  2016-09-08 22:01   ` Richard Purdie
  2016-09-09  9:31 ` Martin Jansa
  2 siblings, 1 reply; 6+ messages in thread
From: Paul Eggleton @ 2016-09-08 20:42 UTC (permalink / raw)
  To: Elizabeth 'pidge' Flanagan; +Cc: openembedded-core

Hey Beth,

On Thu, 08 Sep 2016 11:26:01 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.

I'm not sure if sentiment has changed on this issue (FWIW, it hasn't really
on my part), but this topic did come up before - start of thread here:

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

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC][PATCH] report-error.bbclass: Add support for autosending
  2016-09-08 20:42 ` Paul Eggleton
@ 2016-09-08 22:01   ` Richard Purdie
  0 siblings, 0 replies; 6+ messages in thread
From: Richard Purdie @ 2016-09-08 22:01 UTC (permalink / raw)
  To: Paul Eggleton, Elizabeth 'pidge' Flanagan; +Cc: openembedded-core

On Fri, 2016-09-09 at 08:42 +1200, Paul Eggleton wrote:
> Hey Beth,
> 
> On Thu, 08 Sep 2016 11:26:01 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.
> I'm not sure if sentiment has changed on this issue (FWIW, it hasn't
> really
> on my part), but this topic did come up before - start of thread
> here:
> 
> http://lists.openembedded.org/pipermail/openembedded-core/2014-March/
> 090621.html

Thanks for digging that up. I am conscious that this was deliberately
designed so the user has to sign up for auto submission. To do
otherwise lets layers "spy" on users far too easily.

That said there are 101 ways you could do that anyway, this just makes
it very very easy.

So I'm torn on this issue. How easy should auto-error submission be,
given the information that could accidentally expose?

Cheers,

Richard





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC][PATCH] report-error.bbclass: Add support for autosending
  2016-09-08  9:26 [RFC][PATCH] report-error.bbclass: Add support for autosending Elizabeth 'pidge' Flanagan
  2016-09-08 18:23 ` Randy Witt
  2016-09-08 20:42 ` Paul Eggleton
@ 2016-09-09  9:31 ` Martin Jansa
  2016-09-09  9:38   ` Beth 'pidge' Flanagan
  2 siblings, 1 reply; 6+ messages in thread
From: Martin Jansa @ 2016-09-09  9:31 UTC (permalink / raw)
  To: Elizabeth 'pidge' Flanagan; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 4698 bytes --]

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 <pidge@toganlabs.com>
> ---
>  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
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 169 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC][PATCH] report-error.bbclass: Add support for autosending
  2016-09-09  9:31 ` Martin Jansa
@ 2016-09-09  9:38   ` Beth 'pidge' Flanagan
  0 siblings, 0 replies; 6+ messages in thread
From: Beth 'pidge' Flanagan @ 2016-09-09  9:38 UTC (permalink / raw)
  To: Martin Jansa; +Cc: openembedded-core

On Fri, 2016-09-09 at 11:31 +0200, Martin Jansa wrote:
> 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
> 

I'd be happy to defer to that patch if we can pull this functionality
in.

-b

> > 
> > Signed-off-by: Elizabeth 'pidge' Flanagan <pidge@toganlabs.com>
> > ---
> >  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
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-09-09  9:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-08  9:26 [RFC][PATCH] report-error.bbclass: Add support for autosending Elizabeth 'pidge' Flanagan
2016-09-08 18:23 ` Randy Witt
2016-09-08 20:42 ` Paul Eggleton
2016-09-08 22:01   ` Richard Purdie
2016-09-09  9:31 ` Martin Jansa
2016-09-09  9:38   ` Beth 'pidge' Flanagan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.