[yocto] [PATCH 02/10][auh] upgradehelper.py: Validate if upgrade is needed

Aníbal Limón anibal.limon at linux.intel.com
Wed Jul 29 13:50:45 PDT 2015


When run upgradehelper only with one recipe upgrade needed
validation isn't did.

[YOCTO #7947]

Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
 upgradehelper.py | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/upgradehelper.py b/upgradehelper.py
index 63b30e4..f10d974 100755
--- a/upgradehelper.py
+++ b/upgradehelper.py
@@ -207,6 +207,9 @@ class Updater(object):
     def _detect_repo(self):
         self._get_env()
 
+        if self.env['PV'] == self.new_ver:
+            raise UpgradeNotNeededError
+
         if self.git is not None:
             return
 
@@ -496,9 +499,24 @@ class Updater(object):
                     step()
 
                 I(" %s: Upgrade SUCCESSFUL! Please test!" % self.pn)
-            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))
+            except Exception as e:
+                if isinstance(e, UpgradeNotNeededError):
+                    I(" %s: %s" % (self.pn, e.message))
+                elif isinstance(e, UnsupportedProtocolError):
+                    I(" %s: %s" % (self.pn, e.message))
+                else:
+                    if not isinstance(e, Error):
+                        import traceback
+                        msg = "Failed(unknown error)\n" + traceback.format_exc()
+                        e = Error(message=msg)
+                        error = e
+
+                    E(" %s: %s" % (self.pn, e.message))
+
+                    if os.listdir(self.workdir):
+                        E(" %s: Upgrade FAILED! Logs and/or file diffs are available in %s"
+                            % (self.pn, self.workdir))
+
                 error = e
 
             self._commit_changes()
-- 
1.9.1




More information about the yocto mailing list