From 5d9a377d837ec0f01d2c6e985f203dd0be48115d Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Thu, 18 Aug 2016 15:47:57 -0600 Subject: [PATCH] Add PhysicalConsole.spawn_sol_log() Signed-off-by: Zack Cerza --- teuthology/orchestra/console.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/teuthology/orchestra/console.py b/teuthology/orchestra/console.py index 130962d528..c8ec2a5921 100644 --- a/teuthology/orchestra/console.py +++ b/teuthology/orchestra/console.py @@ -1,5 +1,7 @@ import logging +import os import pexpect +import subprocess import time from teuthology import lockstatus as ls @@ -209,6 +211,28 @@ class PhysicalConsole(): log.info('Power off for {i} seconds completed'.format( s=self.shortname, i=interval)) + def spawn_sol_log(self, dest_path): + """ + Using the subprocess module, spawn an ipmitool process using 'sol + activate' and redirect its output to a file. + + :returns: a subprocess.Popen object + """ + ipmi_cmd = self._build_command('sol activate') + pexpect_templ = \ + "import pexpect; " \ + "pexpect.run('{cmd}', logfile=file('{log}', 'w'), timeout=None)" + python_cmd = 'python -c "%s"' % pexpect_templ.format( + cmd=ipmi_cmd, + log=dest_path, + ) + proc = subprocess.Popen( + python_cmd, + shell=True, + env=os.environ, + ) + return proc + class VirtualConsole(): """ -- 2.39.5