Merge branch 'project-overhaul' into dev

This commit is contained in:
2Shirt 2020-01-23 18:57:14 -07:00
commit 145b7b76f9
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -10,6 +10,7 @@ import subprocess
from wk import std from wk import std
from wk.exe import popen_program, run_program from wk.exe import popen_program, run_program
from wk.hw.obj import Disk from wk.hw.obj import Disk
from wk.log import format_log_path
# STATIC VARIABLES # STATIC VARIABLES
@ -56,9 +57,12 @@ def get_user_name():
return user return user
def make_temp_file(): def make_temp_file(suffix=None):
"""Make temporary file, returns pathlib.Path() obj.""" """Make temporary file, returns pathlib.Path() obj."""
proc = run_program(['mktemp'], check=False) cmd = ['mktemp']
if suffix:
cmd.append(f'--suffix={suffix}')
proc = run_program(cmd)
return pathlib.Path(proc.stdout.strip()) return pathlib.Path(proc.stdout.strip())
@ -178,7 +182,7 @@ def scan_corestorage_container(container, timeout=300):
# TODO: Test Scanning CoreStorage containers # TODO: Test Scanning CoreStorage containers
detected_volumes = {} detected_volumes = {}
inner_volumes = [] inner_volumes = []
log_path = make_temp_file() log_path = format_log_path(log_name=f'{container.path.name}_testdisk')
# Run scan via TestDisk # Run scan via TestDisk
cmd = [ cmd = [
@ -188,12 +192,12 @@ def scan_corestorage_container(container, timeout=300):
'/log', '/log',
'/cmd', container.path, 'partition_none,analyze', '/cmd', container.path, 'partition_none,analyze',
] ]
proc = popen_program(cmd) proc = popen_program(cmd, pipe=True)
try: try:
proc.wait(timeout=timeout) proc.wait(timeout=timeout)
except subprocess.TimeoutExpired: except subprocess.TimeoutExpired:
# Failed to find any volumes, stop scan # Failed to find any volumes, stop scan
run_program(['sudo', 'kill', proc.pid], check=False) run_program(['sudo', 'kill', str(proc.pid)], check=False)
# Check results # Check results
if proc.returncode == 0 and log_path.exists(): if proc.returncode == 0 and log_path.exists():