method for issuing commands on remote nodes (i.e. restarting node manager)
authorTony Mack <tmack@cs.princeton.edu>
Fri, 18 Jan 2008 22:24:53 +0000 (22:24 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Fri, 18 Jan 2008 22:24:53 +0000 (22:24 +0000)
qaapi/qa/modules/plc/remote_call.py [new file with mode: 0644]

diff --git a/qaapi/qa/modules/plc/remote_call.py b/qaapi/qa/modules/plc/remote_call.py
new file mode 100644 (file)
index 0000000..e947b98
--- /dev/null
@@ -0,0 +1,23 @@
+import os
+from qa.Test import Test
+from qa import utils
+
+class  remote_call(Test):
+    """
+    Attempt to connect to a node using the plc root key and
+    issue a command.
+    """
+
+    def call(self, root_key_path, hostname, command):
+       if not os.path.isfile(root_key_path):
+           raise Exception, "no such private key file %(root_key_path)s" % locals()
+        
+       full_command = "ssh -i %(root_key_path)s root@%(hostname) %(command)s" % locals()
+       if self.config.verbose:
+           utils.header(full_command)
+       (stdout, stderr) = utils.popen(full_command)
+       if self.config.verbose:
+           utils.header("\n".join(stdout))
+
+
+       return 1