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.li...@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.eggle...@linux.intel.com> Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto