All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv3 09/11][auh] upgradehelper.py: Change policy for send emails and fix error handling.
@ 2015-06-17  0:35 Aníbal Limón
  2015-06-17 17:32 ` Paul Eggleton
  0 siblings, 1 reply; 2+ messages in thread
From: Aníbal Limón @ 2015-06-17  0:35 UTC (permalink / raw)
  To: yocto; +Cc: paul.eggleton

Add MaintainerError class for identify errors that can be hanlded by
Maintainers, only send emails when error is instance of MaintainerError.

Get rid of UpgradeNotNeededError when run steps now is handled by
new upstream version detection only load recipes that need update.

[YOCTO #7489]

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
---
 errors.py        | 16 ++++++++++++----
 upgradehelper.py | 16 +++++++---------
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/errors.py b/errors.py
index c650165..7194944 100644
--- a/errors.py
+++ b/errors.py
@@ -31,6 +31,11 @@ class Error(Exception):
     def __str__(self):
         return "Failed(other errors)"
 
+class MaintainerError(Error):
+    """ Class for group error that can be sent to Maintainer's """
+    def __init__(self, message=None, stdout=None, stderr=None):
+        super(MaintainerError, self).__init__(message, stdout, stderr)
+
 class FetchError(Error):
     def __init__(self):
         super(FetchError, self).__init__("do_fetch failed")
@@ -38,25 +43,28 @@ class FetchError(Error):
     def __str__(self):
         return "Failed(do_fetch)"
 
-class PatchError(Error):
+class PatchError(MaintainerError):
     def __init__(self):
         super(PatchError, self).__init__("do_patch failed")
 
     def __str__(self):
         return "Failed(do_patch)"
 
-class ConfigureError(Error):
+class ConfigureError(MaintainerError):
     def __init__(self):
         super(ConfigureError, self).__init__("do_configure failed")
 
-class CompilationError(Error):
+    def __str__(self):
+        return "Failed(do_configure)"
+
+class CompilationError(MaintainerError):
     def __init__(self):
         super(CompilationError, self).__init__("do_compile failed")
 
     def __str__(self):
         return "Failed(do_compile)"
 
-class LicenseError(Error):
+class LicenseError(MaintainerError):
     def __init__(self):
         super(LicenseError, self).__init__("license checksum does not match")
 
diff --git a/upgradehelper.py b/upgradehelper.py
index b1f075d..7756b36 100755
--- a/upgradehelper.py
+++ b/upgradehelper.py
@@ -346,8 +346,6 @@ class Updater(object):
                 self.git.clean_untracked()
                 return
 
-        status = type(err).__name__
-
         # drop last upgrade from git. It's safer this way if the upgrade has
         # problems and other recipes depend on it. Give the other recipes a
         # chance...
@@ -381,8 +379,11 @@ class Updater(object):
                 "Attached are the patch, license diff (if change) and bitbake log.\n\n" \
                 "Regards,\nThe Upgrade Helper"
 
-            # don't bother maintainer with mail if the recipe is already up to date
-            if status == "UpgradeNotNeededError":
+            # only send email to Maintainer when is an error that can handle
+            if err and not isinstance(err, MaintainerError):
+                D( "%s: Don't send email to maintainer because the error was " \
+                   "%s and the information isn't useful, please review it." \
+                    % (self.pn, type(err).__name__))
                 return
 
             if self.maintainer in maintainer_override:
@@ -478,6 +479,7 @@ class Updater(object):
 
         attempted_pkgs = 0
         for self.pn, self.new_ver, self.maintainer in pkgs_to_upgrade:
+            error = None
             self.recipe = None
             attempted_pkgs += 1
             I(" ATTEMPT PACKAGE %d/%d" % (attempted_pkgs, total_pkgs))
@@ -489,10 +491,6 @@ class Updater(object):
                     step()
 
                 I(" %s: Upgrade SUCCESSFUL! Please test!" % self.pn)
-                error = None
-            except UpgradeNotNeededError as e:
-                I(" %s: %s" % (self.pn, e.message))
-                error = e
             except Error as e:
                 E(" %s: %s" % (self.pn, e.message))
                 E(" %s: Upgrade FAILED! Logs and/or file diffs are available in %s" % (self.pn, self.workdir))
@@ -667,7 +665,7 @@ class UniverseUpdater(Updater):
 
     # overriding the base method
     def pkg_upgrade_handler(self, err):
-        super(UniverseUpdater, self).pkg_upgrade_handler(self)
+        super(UniverseUpdater, self).pkg_upgrade_handler(err)
         self.update_history(self.pn, self.new_ver, self.maintainer,
                 self._get_status_msg(err))
 
-- 
1.8.4.5



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

* Re: [PATCHv3 09/11][auh] upgradehelper.py: Change policy for send emails and fix error handling.
  2015-06-17  0:35 [PATCHv3 09/11][auh] upgradehelper.py: Change policy for send emails and fix error handling Aníbal Limón
@ 2015-06-17 17:32 ` Paul Eggleton
  0 siblings, 0 replies; 2+ messages in thread
From: Paul Eggleton @ 2015-06-17 17:32 UTC (permalink / raw)
  To: yocto

On Wednesday 17 June 2015 00:35:18 Aníbal Limón wrote:
> Add MaintainerError class for identify errors that can be hanlded by
> Maintainers, only send emails when error is instance of MaintainerError.
> 
> Get rid of UpgradeNotNeededError when run steps now is handled by
> new upstream version detection only load recipes that need update.
> 
> [YOCTO #7489]
> 
> Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
> ---
>  errors.py        | 16 ++++++++++++----
>  upgradehelper.py | 16 +++++++---------
>  2 files changed, 19 insertions(+), 13 deletions(-)
> 
> diff --git a/errors.py b/errors.py
> index c650165..7194944 100644
> --- a/errors.py
> +++ b/errors.py
> @@ -31,6 +31,11 @@ class Error(Exception):
>      def __str__(self):
>          return "Failed(other errors)"
> 
> +class MaintainerError(Error):
> +    """ Class for group error that can be sent to Maintainer's """
> +    def __init__(self, message=None, stdout=None, stderr=None):
> +        super(MaintainerError, self).__init__(message, stdout, stderr)
> +
>  class FetchError(Error):
>      def __init__(self):
>          super(FetchError, self).__init__("do_fetch failed")
> @@ -38,25 +43,28 @@ class FetchError(Error):
>      def __str__(self):
>          return "Failed(do_fetch)"
> 
> -class PatchError(Error):
> +class PatchError(MaintainerError):
>      def __init__(self):
>          super(PatchError, self).__init__("do_patch failed")
> 
>      def __str__(self):
>          return "Failed(do_patch)"
> 
> -class ConfigureError(Error):
> +class ConfigureError(MaintainerError):
>      def __init__(self):
>          super(ConfigureError, self).__init__("do_configure failed")
> 
> -class CompilationError(Error):
> +    def __str__(self):
> +        return "Failed(do_configure)"
> +
> +class CompilationError(MaintainerError):
>      def __init__(self):
>          super(CompilationError, self).__init__("do_compile failed")
> 
>      def __str__(self):
>          return "Failed(do_compile)"
> 
> -class LicenseError(Error):
> +class LicenseError(MaintainerError):
>      def __init__(self):
>          super(LicenseError, self).__init__("license checksum does not
> match")
> 
> diff --git a/upgradehelper.py b/upgradehelper.py
> index b1f075d..7756b36 100755
> --- a/upgradehelper.py
> +++ b/upgradehelper.py
> @@ -346,8 +346,6 @@ class Updater(object):
>                  self.git.clean_untracked()
>                  return
> 
> -        status = type(err).__name__
> -
>          # drop last upgrade from git. It's safer this way if the upgrade
> has # problems and other recipes depend on it. Give the other recipes a #
> chance...
> @@ -381,8 +379,11 @@ class Updater(object):
>                  "Attached are the patch, license diff (if change) and
> bitbake log.\n\n" \ "Regards,\nThe Upgrade Helper"
> 
> -            # don't bother maintainer with mail if the recipe is already up
> to date -            if status == "UpgradeNotNeededError":
> +            # only send email to Maintainer when is an error that can
> handle +            if err and not isinstance(err, MaintainerError):
> +                D( "%s: Don't send email to maintainer because the error
> was " \ +                   "%s and the information isn't useful, please
> review it." \ +                    % (self.pn, type(err).__name__))
>                  return
> 
>              if self.maintainer in maintainer_override:
> @@ -478,6 +479,7 @@ class Updater(object):
> 
>          attempted_pkgs = 0
>          for self.pn, self.new_ver, self.maintainer in pkgs_to_upgrade:
> +            error = None
>              self.recipe = None
>              attempted_pkgs += 1
>              I(" ATTEMPT PACKAGE %d/%d" % (attempted_pkgs, total_pkgs))
> @@ -489,10 +491,6 @@ class Updater(object):
>                      step()
> 
>                  I(" %s: Upgrade SUCCESSFUL! Please test!" % self.pn)
> -                error = None
> -            except UpgradeNotNeededError as e:
> -                I(" %s: %s" % (self.pn, e.message))
> -                error = e
>              except Error as e:
>                  E(" %s: %s" % (self.pn, e.message))
>                  E(" %s: Upgrade FAILED! Logs and/or file diffs are
> available in %s" % (self.pn, self.workdir)) @@ -667,7 +665,7 @@ class
> UniverseUpdater(Updater):
> 
>      # overriding the base method
>      def pkg_upgrade_handler(self, err):
> -        super(UniverseUpdater, self).pkg_upgrade_handler(self)
> +        super(UniverseUpdater, self).pkg_upgrade_handler(err)
>          self.update_history(self.pn, self.new_ver, self.maintainer,
>                  self._get_status_msg(err))

OK, after this v3, this and all other patches in this series look OK.

Acked-by: Paul Eggleton <paul.eggleton@linux.intel.com>

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


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

end of thread, other threads:[~2015-06-17 17:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-17  0:35 [PATCHv3 09/11][auh] upgradehelper.py: Change policy for send emails and fix error handling Aníbal Limón
2015-06-17 17:32 ` Paul Eggleton

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.