# 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
+# the (broken) pycurl version can be found in tags 2.0-9 and 2.0-10
from subprocess import PIPE, Popen
from select import select
import logger
+verbose=False
+#verbose=True
+
class Sopen(Popen):
def kill(self, signal = signal.SIGTERM):
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', )
- if cacert: options += ('--cacert', cacert)
- if postdata: options += ('--data', '@-')
+# command = ('/usr/bin/curl', '--fail', '--silent')
+ command = ('/usr/bin/curl', '--fail', )
+ if cacert: command += ('--cacert', cacert)
+ if postdata: command += ('--data', '@-')
if timeout:
- options += ('--max-time', str(timeout))
- options += ('--connect-timeout', str(timeout))
- p = Sopen(options + (url,), stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
+ command += ('--max-time', str(timeout))
+ command += ('--connect-timeout', str(timeout))
+ command += (url,)
+ if verbose:
+ print 'Invoking ',command
+ if postdata: print 'with postdata=',postdata
+ p = Sopen(command , stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
if postdata: p.stdin.write(postdata)
p.stdin.close()
sout, sin, serr = select([p.stdout,p.stderr],[],[], timeout)