fix another race in remctl interface
authorGreg Price <price@mit.edu>
Fri, 25 Jul 2008 01:42:18 +0000 (21:42 -0400)
committerGreg Price <price@mit.edu>
Fri, 25 Jul 2008 01:42:18 +0000 (21:42 -0400)
This had caused some 500s with a message 'Error: Domain <...> does not exist.'

svn path=/trunk/packages/sipb-xen-remote-server/; revision=721

files/usr/sbin/sipb-xen-remote-control

index 1ad8721..e61cb72 100755 (executable)
@@ -23,10 +23,18 @@ def main(argv):
 
     if machine_name not in vms:
         print >>sys.stderr, "machine '%s' is not on" % machine_name
 
     if machine_name not in vms:
         print >>sys.stderr, "machine '%s' is not on" % machine_name
-        return 2
+        return 1
     host = vms[machine_name]['host']
 
     host = vms[machine_name]['host']
 
-    return call(['remctl', host, 'remote', 'control'] + argv[1:])
+    p = Popen(['remctl', host, 'remote', 'control'] + argv[1:],
+              stdout=PIPE, stderr=PIPE)
+    (out, err) = p.communicate()
+    if p.returncode == 1:
+        print >>sys.stderr, "machine '%s' is not on" % machine_name
+        return 1
+    sys.stderr.write(err)
+    sys.stdout.write(out)
+    return p.returncode
 
 if __name__ == '__main__':
     sys.exit(main(sys.argv))
 
 if __name__ == '__main__':
     sys.exit(main(sys.argv))