From cbed80ebe622134dc4fc997e0272f7214dab3151 Mon Sep 17 00:00:00 2001 From: Zhang Qiang Date: Mon, 21 Jan 2013 18:32:20 -0500 Subject: [PATCH] write a regular expression to parse build server results If no build results, report correct no build results info Change-Id: I0f8e09a584ec1ab7bab238229347755cefd5b073 --- gitbuildsys/cmd_remotebuild.py | 7 +++++-- gitbuildsys/oscapi.py | 13 +++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gitbuildsys/cmd_remotebuild.py b/gitbuildsys/cmd_remotebuild.py index 89421eb..693a68d 100644 --- a/gitbuildsys/cmd_remotebuild.py +++ b/gitbuildsys/cmd_remotebuild.py @@ -186,8 +186,11 @@ def main(args): for arch in status[build_repo]: stat = status[build_repo][arch] results.append('%-15s%-15s%-15s' % (build_repo, arch, stat)) - log.info('build results from build server:\n%s' \ - % '\n'.join(results)) + if results: + log.info('build results from build server:\n%s' \ + % '\n'.join(results)) + else: + log.info('no build results from build server') return 0 except OSCError, err: diff --git a/gitbuildsys/oscapi.py b/gitbuildsys/oscapi.py index 8a46158..2e5a0d5 100644 --- a/gitbuildsys/oscapi.py +++ b/gitbuildsys/oscapi.py @@ -23,6 +23,7 @@ Only APIs which are required by cmd_remotebuild present here. """ import os +import re import urllib2 import M2Crypto from M2Crypto.SSL.Checker import SSLVerificationError @@ -325,8 +326,16 @@ class OSC(object): % (prj, pkg, str(err))) for res in build_status: - repo, arch, status = res.split() - results[repo][arch] = status + # This regular expression is created for parsing the + # results of of core.get_results() + stat_re = re.compile(r'^(?P\S+)\s+(?P\S+)\s+' + '(?P\S*)$') + mo = stat_re.match(res) + if mo: + results[mo.group('repo')][mo.group('arch')] = mo.group('status') + else: + logger.warning('not valid build status received: %s' % res) + return results def get_buildlog(self, prj, pkg, repo, arch): -- 2.7.4