[oe-commits] Lianhao Lu : prservice: Added sanity check for prservice connection.
git at git.openembedded.org
git at git.openembedded.org
Thu Mar 8 20:19:26 UTC 2012
Module: openembedded-core.git
Branch: master
Commit: 7588a4f2e2728da0ff7a773b18527f3711b138f2
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=7588a4f2e2728da0ff7a773b18527f3711b138f2
Author: Lianhao Lu <lianhao.lu at intel.com>
Date: Wed Mar 7 15:36:45 2012 +0800
prservice: Added sanity check for prservice connection.
Fixed bug [YOCTO #2052]. Added sanity check for variables of PRSERV_HOST
and PRSERV_PORT, also for the connection availabity of prservice.
Signed-off-by: Lianhao Lu <lianhao.lu at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/classes/prexport.bbclass | 4 +++-
meta/classes/primport.bbclass | 3 +++
meta/lib/oe/prservice.py | 18 +++++++++++++++++-
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/meta/classes/prexport.bbclass b/meta/classes/prexport.bbclass
index 5b5b707..2b16a66 100644
--- a/meta/classes/prexport.bbclass
+++ b/meta/classes/prexport.bbclass
@@ -21,11 +21,13 @@ python prexport_handler () {
bb.fatal("prexport_handler: export failed!")
(metainfo, datainfo) = retval
if not datainfo:
- bb.error("prexport_handler: No AUROPR values found for %s" % ver)
+ bb.warn("prexport_handler: No AUROPR values found for %s" % ver)
return
oe.prservice.prserv_export_tofile(e.data, None, datainfo, False)
elif isinstance(e, bb.event.ParseStarted):
import bb.utils
+ import oe.prservice
+ oe.prservice.prserv_check_avail(e.data)
#remove dumpfile
bb.utils.remove(e.data.getVar('PRSERV_DUMPFILE', True))
elif isinstance(e, bb.event.ParseCompleted):
diff --git a/meta/classes/primport.bbclass b/meta/classes/primport.bbclass
index 08e5a8f..37b0d6b 100644
--- a/meta/classes/primport.bbclass
+++ b/meta/classes/primport.bbclass
@@ -12,6 +12,9 @@ python primport_handler () {
for (version, pkgarch, checksum, value) in imported:
bb.note("imported (%s,%s,%s,%d)" % (version, pkgarch, checksum, value))
+ elif isinstance(e, bb.event.ParseStarted):
+ import oe.prservice
+ oe.prservice.prserv_check_avail(e.data)
}
addhandler primport_handler
diff --git a/meta/lib/oe/prservice.py b/meta/lib/oe/prservice.py
index fa6718e..16785ce 100644
--- a/meta/lib/oe/prservice.py
+++ b/meta/lib/oe/prservice.py
@@ -1,12 +1,15 @@
import bb
-def prserv_make_conn(d):
+def prserv_make_conn(d, check = False):
import prserv.serv
host = d.getVar("PRSERV_HOST",True)
port = d.getVar("PRSERV_PORT",True)
try:
conn = None
conn = prserv.serv.PRServerConnection(host,int(port))
+ if check:
+ if not conn.ping():
+ raise Exception('service not available')
d.setVar("__PRSERV_CONN",conn)
except Exception, exc:
bb.fatal("Connecting to PR service %s:%s failed: %s" % (host, port, str(exc)))
@@ -111,3 +114,16 @@ def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False):
f.write("PRAUTO_%s_%s = \"%s\"\n" % (str(datainfo[idx[i]]['version']),str(datainfo[idx[i]]['pkgarch']),str(datainfo[idx[i]]['value'])))
f.close()
bb.utils.unlockfile(lf)
+
+def prserv_check_avail(d):
+ host = d.getVar("PRSERV_HOST",True)
+ port = d.getVar("PRSERV_PORT",True)
+ try:
+ if not host:
+ raise TypeError
+ else:
+ port = int(port)
+ except TypeError:
+ bb.fatal("Undefined or incorrect values of PRSERV_HOST or PRSERV_PORT")
+ else:
+ prserv_make_conn(d, True)
More information about the Openembedded-commits
mailing list