mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 18:40:01 -03:30
Fix proot controlpersist cleanup issue
* Also removed psutil version and feature check from tasks. We now include the most recent version of psutil all around * Old versions of psutil must have had these Process() items as properties, they are functions now so we weren't properly evaluating them. With this change we are and things are back to working normally
This commit is contained in:
parent
fb238e92f1
commit
e034c0b326
@ -45,12 +45,7 @@ import requests
|
||||
# ZeroMQ
|
||||
import zmq
|
||||
|
||||
# PSUtil
|
||||
try:
|
||||
import psutil
|
||||
except ImportError:
|
||||
psutil = None
|
||||
|
||||
import psutil
|
||||
|
||||
class TokenAuth(requests.auth.AuthBase):
|
||||
|
||||
@ -249,19 +244,14 @@ class BaseCallbackModule(object):
|
||||
if not cp_files:
|
||||
return
|
||||
|
||||
# HACK: If psutil isn't available, sleep and allow the control master
|
||||
# processes to timeout and die.
|
||||
if not psutil:
|
||||
time.sleep(60)
|
||||
|
||||
# Attempt to find any running control master processes.
|
||||
username = pwd.getpwuid(os.getuid())[0]
|
||||
ssh_cm_procs = []
|
||||
for proc in psutil.process_iter():
|
||||
try:
|
||||
pname = proc.name
|
||||
pcmdline = proc.cmdline
|
||||
pusername = proc.username
|
||||
pname = proc.name()
|
||||
pcmdline = proc.cmdline()
|
||||
pusername = proc.username()
|
||||
except psutil.NoSuchProcess:
|
||||
continue
|
||||
if pusername != username:
|
||||
@ -277,19 +267,7 @@ class BaseCallbackModule(object):
|
||||
# version of psutil that may not have wait_procs implemented.
|
||||
for proc in ssh_cm_procs:
|
||||
proc.terminate()
|
||||
if hasattr(psutil, 'wait_procs'):
|
||||
procs_gone, procs_alive = psutil.wait_procs(ssh_cm_procs, timeout=5)
|
||||
else:
|
||||
procs_gone = []
|
||||
procs_alive = ssh_cm_procs[:]
|
||||
for x in xrange(5):
|
||||
for proc in procs_alive[:]:
|
||||
if not proc.is_running():
|
||||
procs_alive.remove(proc)
|
||||
procs_gone.append(proc)
|
||||
if not procs_alive:
|
||||
break
|
||||
time.sleep(1)
|
||||
procs_gone, procs_alive = psutil.wait_procs(ssh_cm_procs, timeout=5)
|
||||
for proc in procs_alive:
|
||||
proc.kill()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user