merge changes from head
authorMark Huang <mlhuang@cs.princeton.edu>
Wed, 7 Feb 2007 04:25:31 +0000 (04:25 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Wed, 7 Feb 2007 04:25:31 +0000 (04:25 +0000)
curlwrapper.py
logger.py
sliver_vs.py
ticket.py

index 462c6ed..e259578 100644 (file)
@@ -8,7 +8,7 @@ def retrieve(url, cacert=None, postdata=None, timeout=300):
     if cacert: options += ('--cacert', cacert)
     if postdata: options += ('--data', '@-')
     if timeout: options += ('--max-time', str(timeout))
-    p = Popen(options + (url,), stdin=PIPE, stdout=PIPE, stderr=PIPE)
+    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()
index fa13dd9..8abd8fd 100644 (file)
--- a/logger.py
+++ b/logger.py
@@ -21,7 +21,7 @@ def log(msg):
 
 def log_call(*args):
     log('running command %s' % ' '.join(args))
-    try: subprocess.call(args)
+    try: subprocess.call(args, close_fds=True)
     except: log_exc()
 
 def log_exc():
index 29ab5ba..e4c438c 100644 (file)
@@ -37,7 +37,12 @@ class Sliver_VS(accounts.Account, vserver.VServer):
     def __init__(self, rec):
         try:
             vserver.VServer.__init__(self, rec['name'])
-        except vserver.NoSuchVServer:
+        except Exception, err:
+            if not isinstance(err, vserver.NoSuchVServer):
+                # Probably a bad vserver or vserver configuration file
+                logger.log_exc()
+                logger.log('%s: recreating bad vserver' % rec['name'])
+                self.destroy(rec['name'])
             self.create(rec['name'], rec['vref'])
             vserver.VServer.__init__(self, rec['name'])
 
index b50a76e..c45e865 100644 (file)
--- a/ticket.py
+++ b/ticket.py
@@ -37,4 +37,4 @@ def verify(signed_msg):
 
 def _popen_gpg(*args):
     """Return a Popen object to GPG."""
-    return Popen((GPG, '--batch', '--no-tty') + args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+    return Popen((GPG, '--batch', '--no-tty') + args, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)