X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=curlwrapper.py;h=54394d9dc2f91b6a583ca9c86150f9fc3a956c9b;hb=09bd9c14822b9dd1dc133bcb3f02f54dbd94b49f;hp=e2595789ac0304b28203fbe69c5b3c234b150e8d;hpb=7820ef492529a2c66b9cc5814c25707fdf4595fe;p=nodemanager.git diff --git a/curlwrapper.py b/curlwrapper.py index e259578..54394d9 100644 --- a/curlwrapper.py +++ b/curlwrapper.py @@ -1,7 +1,8 @@ -from subprocess import PIPE, Popen - +# $Id$ -class CurlException(Exception): pass +from subprocess import PIPE, Popen +# raise xmplrpclib.ProtocolError +import xmlrpclib def retrieve(url, cacert=None, postdata=None, timeout=300): options = ('/usr/bin/curl', '--fail', '--silent') @@ -14,5 +15,11 @@ def retrieve(url, cacert=None, postdata=None, timeout=300): data = p.stdout.read() err = p.stderr.read() rc = p.wait() - if rc != 0: raise CurlException(err) - else: return data + if rc != 0: + # when this triggers, the error sometimes doesn't get printed + print 'curlwrapper.retrieve: raising xmlrpclib.ProtocolError\n (url=%s,code=%d,stderr=%s,post=%r)'\ + %(url,rc,err,postdata) + if cacert: print "Using cacert file %s"%cacert + raise xmlrpclib.ProtocolError(url, rc, err, postdata) + else: + return data