Fixed timeout statuses not appearing.
- Also tidied up _do_command and _run_command.
This commit is contained in:
parent
e4f7845b5d
commit
02844de562
2 changed files with 12 additions and 22 deletions
2
BUGS
2
BUGS
|
|
@ -1,5 +1,4 @@
|
||||||
Current
|
Current
|
||||||
- Timeout statuses aren't appearing. Probably related to subprocess.run.
|
|
||||||
- Sometimes a paused worker has the running status (blue), when it should
|
- Sometimes a paused worker has the running status (blue), when it should
|
||||||
have the paused status (yellow).
|
have the paused status (yellow).
|
||||||
- If a job is paused for longer than the timeout period, sometimes it has
|
- If a job is paused for longer than the timeout period, sometimes it has
|
||||||
|
|
@ -256,6 +255,7 @@ Fixed
|
||||||
- disassemble for python doesn't always work.
|
- disassemble for python doesn't always work.
|
||||||
- The brightness of the summary's title slightly changes when focused.
|
- The brightness of the summary's title slightly changes when focused.
|
||||||
<- Went away!
|
<- Went away!
|
||||||
|
- Timeout statuses aren't appearing. Probably related to subprocess.run.
|
||||||
|
|
||||||
|
|
||||||
Won't fix
|
Won't fix
|
||||||
|
|
|
||||||
|
|
@ -107,32 +107,22 @@ def _fix_input(input_):
|
||||||
|
|
||||||
|
|
||||||
def _do_command(command, timeout=None, **kwargs):
|
def _do_command(command, timeout=None, **kwargs):
|
||||||
stdout, stderr = "", ""
|
process = subprocess.Popen(command, stdout=subprocess.PIPE,
|
||||||
with contextlib.suppress(subprocess.CalledProcessError):
|
stderr=subprocess.PIPE, **kwargs)
|
||||||
try:
|
try:
|
||||||
process = subprocess.run(command, stdout=subprocess.PIPE,
|
stdout, stderr = process.communicate(timeout=timeout)
|
||||||
stderr=subprocess.PIPE, timeout=timeout,
|
except subprocess.TimeoutExpired:
|
||||||
**kwargs)
|
process.kill()
|
||||||
except subprocess.TimeoutExpired:
|
raise
|
||||||
process.kill()
|
return _fix_input(stdout), _fix_input(stderr), process.returncode
|
||||||
raise
|
|
||||||
return (_fix_input(process.stdout), _fix_input(process.stderr),
|
|
||||||
process.returncode)
|
|
||||||
|
|
||||||
|
|
||||||
def _run_command(command, success_status=None, error_status=None):
|
def _run_command(command, success_status=None, error_status=None):
|
||||||
success_status = Status.ok if success_status is None else success_status
|
success_status = Status.ok if success_status is None else success_status
|
||||||
error_status = Status.problem if error_status is None else error_status
|
error_status = Status.problem if error_status is None else error_status
|
||||||
status, output = success_status, ""
|
stdout, stderr, returncode = _do_command(command)
|
||||||
try:
|
result_status = success_status if returncode == 0 else error_status
|
||||||
process = subprocess.run(command, stdout=subprocess.PIPE,
|
return result_status, fill3.Text(stdout + stderr)
|
||||||
stderr=subprocess.PIPE)
|
|
||||||
output = process.stdout + process.stderr
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
status = error_status
|
|
||||||
if process.returncode != 0:
|
|
||||||
status = error_status
|
|
||||||
return status, fill3.Text(_fix_input(output))
|
|
||||||
|
|
||||||
|
|
||||||
def deps(**kwargs):
|
def deps(**kwargs):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue