[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4208/8267] oeqa/utils/__init__.py: Adds compatibility with bitbake logger



commit bbb7366db3a631eed786c86a1c627e00c927f0b4
Author: Mariano Lopez <mariano lopez linux intel com>
Date:   Wed Dec 21 13:14:00 2016 +0000

    oeqa/utils/__init__.py: Adds compatibility with bitbake logger
    
    The bitbake logger changes the way debug is logged and adds
    different levels within debug, this is passed as argument
    to the function and breaks compatibility with vanilla loggers.
    
    This implements a way to handle this adding a new function for
    debug, that will dispatch the correct logging method signature.
    
    Also overrides info method to use logging.INFO + 1 in order to
    see plain data.
    
    Also this commit fix the issue of not showing the test summary
    and results when running from bitbake.
    
    [YOCTO #10686]
    
    (From OE-Core rev: 619c9ab308fbef9e3563dc661e432603e764b562)
    
    Signed-off-by: Mariano Lopez <mariano lopez linux intel com>
    Signed-off-by: Aníbal Limón <anibal limon linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/lib/oeqa/utils/__init__.py |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/meta/lib/oeqa/utils/__init__.py b/meta/lib/oeqa/utils/__init__.py
index 8f706f3..485de03 100644
--- a/meta/lib/oeqa/utils/__init__.py
+++ b/meta/lib/oeqa/utils/__init__.py
@@ -36,3 +36,33 @@ def avoid_paths_in_environ(paths):
 
     new_path = new_path[:-1]
     return new_path
+
+def make_logger_bitbake_compatible(logger):
+    import logging
+
+    """ 
+        Bitbake logger redifines debug() in order to
+        set a level within debug, this breaks compatibility
+        with vainilla logging, so we neeed to redifine debug()
+        method again also add info() method with INFO + 1 level.
+    """
+    def _bitbake_log_debug(*args, **kwargs):
+        lvl = logging.DEBUG
+
+        if isinstance(args[0], int):
+            lvl = args[0]
+            msg = args[1]
+            args = args[2:]
+        else:
+            msg = args[0]
+            args = args[1:]
+
+        logger.log(lvl, msg, *args, **kwargs)
+    
+    def _bitbake_log_info(msg, *args, **kwargs):
+        logger.log(logging.INFO + 1, msg, *args, **kwargs)
+
+    logger.debug = _bitbake_log_debug
+    logger.info = _bitbake_log_info
+
+    return logger


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]