Added ReCreate. Also added try catch to api eval of rpc method.
[nodemanager.git] / curlwrapper.py
index ce273a3..e259578 100644 (file)
@@ -3,10 +3,12 @@ from subprocess import PIPE, Popen
 
 class CurlException(Exception): pass
 
-def retrieve(url, postdata=None):
-    options = ('/usr/bin/curl', '--cacert', '/usr/boot/cacert.pem')
+def retrieve(url, cacert=None, postdata=None, timeout=300):
+    options = ('/usr/bin/curl', '--fail', '--silent')
+    if cacert: options += ('--cacert', cacert)
     if postdata: options += ('--data', '@-')
-    p = Popen(options + (url,), stdin=PIPE, stdout=PIPE, stderr=PIPE)
+    if timeout: options += ('--max-time', str(timeout))
+    p = Popen(options + (url,), stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
     if postdata: p.stdin.write(postdata)
     p.stdin.close()
     data = p.stdout.read()