-# $Id$
+# Note
+# in spring 2010, an attempt was made to use pycurl instead of forking curl
+# it turned out, however, that after around 10 cycles of the nodemanager,
+# attempts to call GetSlivers were failing with a curl error 60
+# we are thus reverting to the version from tag curlwrapper.py-NodeManager-2.0-8
+# the (broekn) pycurl version can be found in tags 2.0-9 and 2.0-10
from subprocess import PIPE, Popen
from select import select
-# raise xmplrpclib.ProtocolError
import xmlrpclib
import signal
import os
+
import logger
class Sopen(Popen):
os.kill(self.pid, signal)
def retrieve(url, cacert=None, postdata=None, timeout=90):
- options = ('/usr/bin/curl', '--fail', '--silent')
+# options = ('/usr/bin/curl', '--fail', '--silent')
+ options = ('/usr/bin/curl', '--fail', )
if cacert: options += ('--cacert', cacert)
if postdata: options += ('--data', '@-')
if timeout:
rc = p.wait()
if rc != 0:
# when this triggers, the error sometimes doesn't get printed
+ logger.log ("curlwrapper: retrieve, got stderr <%s>"%err)
raise xmlrpclib.ProtocolError(url, rc, err, postdata)
else:
return data