From: Zack Cerza Date: Thu, 18 Aug 2016 21:47:57 +0000 (-0600) Subject: Add PhysicalConsole.spawn_sol_log() X-Git-Tag: 1.1.0~544^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5d9a377d837ec0f01d2c6e985f203dd0be48115d;p=teuthology.git Add PhysicalConsole.spawn_sol_log() Signed-off-by: Zack Cerza --- diff --git a/teuthology/orchestra/console.py b/teuthology/orchestra/console.py index 130962d52..c8ec2a592 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(): """