[yocto] [[yocto-autobuilder][PATCHv2] 04/15] lib/ABTools: Add functions for get errordir path in controller and worker

Aníbal Limón anibal.limon at linux.intel.com
Tue Jun 21 16:07:41 PDT 2016


get_error_report_controller_dir: Returns controller error report dir
where bitbake exception/errors are stored.

get_error_report_worker_dir: Returns controller error report dir
where recipe task failures are stored.

Also update the current sources to use that functions.

Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
 .../autobuilder/buildsteps/SendErrorReport.py           | 16 +++++++---------
 lib/python2.7/site-packages/autobuilder/lib/ABTools.py  | 17 +++++++++++++++++
 .../site-packages/autobuilder/lib/buildsteps.py         | 10 ++--------
 3 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/lib/python2.7/site-packages/autobuilder/buildsteps/SendErrorReport.py b/lib/python2.7/site-packages/autobuilder/buildsteps/SendErrorReport.py
index 33f9fe3..23e94b1 100644
--- a/lib/python2.7/site-packages/autobuilder/buildsteps/SendErrorReport.py
+++ b/lib/python2.7/site-packages/autobuilder/buildsteps/SendErrorReport.py
@@ -9,8 +9,12 @@ __version__ = "2.0"
 __maintainer__ = "Elizabeth Flanagan"
 __email__ = "pidge at toganlabs.com"
 '''
+
+import os
+
 from buildbot.steps.shell import ShellCommand
-from autobuilder.config import *
+
+from lib.ABTools import get_error_report_worker_dir
 
 class SendErrorReport(ShellCommand):
     haltOnFailure = False
@@ -18,7 +22,6 @@ class SendErrorReport(ShellCommand):
     name = "SendErrorReport"
     def __init__(self, factory, argdict=None, **kwargs):
         self.factory = factory
-        self.workerdir=os.path.join(os.path.join(YOCTO_ABBASE, "yocto-worker"))
         for k, v in argdict.iteritems():
             setattr(self, k, v)
         # Timeout needs to be passed to LoggingBuildStep as a kwarg
@@ -27,17 +30,12 @@ class SendErrorReport(ShellCommand):
         ShellCommand.__init__(self, **kwargs)
 
     def start(self):
-        self.workerdir=os.path.join(os.path.join(YOCTO_ABBASE, "yocto-worker"))
         self.buildername=self.getProperty("buildername")
         self.buildnumber=self.getProperty("buildnumber")
+        self.errordir = get_error_report_worker_dir(self.buildername)
         self.layerversion_core = self.getProperty("layerversion_core")
         self.command=""
-        if os.environ.get('ERROR_REPORT_DIR') is None:
-            self.errordir=os.path.join(os.path.join(
-                            self.workerdir, self.buildername),
-                            "build/build/tmp/log/error-report/")
-        else:
-            self.errordir=os.environ.get('ERROR_REPORT_DIR')
+
         if int(self.layerversion_core) < 4:
             self.command = "echo 'Skipping Step.'"
         else:
diff --git a/lib/python2.7/site-packages/autobuilder/lib/ABTools.py b/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
index a665373..579ae85 100644
--- a/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
+++ b/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
@@ -10,7 +10,9 @@ __maintainer__ = "Elizabeth Flanagan"
 __email__ = "elizabeth.flanagan at intel.com"
 '''
 
+import os
 
+from autobuilder.config import YOCTO_ABBASE
 
 def capitalize(word):
     return ' '.join([s[0].upper() + s[1:] for s in word.split(' ')])
@@ -18,3 +20,18 @@ def capitalize(word):
 def stringToBool(v):
     return v.lower() in ("true", "t", "1")
 
+def get_error_report_controller_dir(buildername, buildnumber):
+    errordir_base = os.path.join(YOCTO_ABBASE, 'yocto-controller', buildername,
+            'error-report')
+    errordir = os.path.join(errordir_base, str(buildnumber))
+    return errordir
+
+def get_error_report_worker_dir(buildername):
+    if os.environ.get('ERROR_REPORT_DIR') is None:
+        workerdir = os.path.join(YOCTO_ABBASE, 'yocto-worker')
+        errordir = os.path.join(workerdir, buildername,
+                'build/build/tmp/log/error-report/')
+    else:
+        errordir = os.environ.get('ERROR_REPORT_DIR')
+
+    return errordir
diff --git a/lib/python2.7/site-packages/autobuilder/lib/buildsteps.py b/lib/python2.7/site-packages/autobuilder/lib/buildsteps.py
index 7354c83..9f63a2b 100644
--- a/lib/python2.7/site-packages/autobuilder/lib/buildsteps.py
+++ b/lib/python2.7/site-packages/autobuilder/lib/buildsteps.py
@@ -20,7 +20,7 @@ import codecs
 from buildbot.steps.shell import ShellCommand
 from buildbot.process.buildstep import LogLineObserver
 
-from autobuilder.config import YOCTO_ABBASE
+from lib.ABTools import get_error_report_controller_dir
 
 DEFAULT_SHELL = 'bash'
 
@@ -92,12 +92,6 @@ class BitbakeLogLineObserver(LogLineObserver):
     def errLineReceived(self, line):
         self._handleError(line)
 
-def get_error_report_bitbake_dir(buildername, buildnumber):
-    errordir_base = os.path.join(YOCTO_ABBASE, 'yocto-controller', buildername,
-            'error-report')
-    errordir = os.path.join(errordir_base, str(buildnumber))
-    return errordir
-
 class BitbakeShellCommand(ShellCommand):
     def __init__(self, factory, argdict=None, **kwargs):
         super(BitbakeShellCommand, self).__init__(**kwargs)
@@ -143,7 +137,7 @@ class BitbakeShellCommand(ShellCommand):
         buildername = self.getProperty('buildername')
         buildnumber = self.getProperty('buildnumber')
 
-        errordir = get_error_report_bitbake_dir(buildername, buildnumber)
+        errordir = get_error_report_controller_dir(buildername, buildnumber)
         if not os.path.exists(errordir):
             os.makedirs(errordir)
 
-- 
2.1.4




More information about the yocto mailing list