54 lines
1.7 KiB
Diff
54 lines
1.7 KiB
Diff
|
From 0c4a71224d49e778b4a2c683c63de52a0876de69 Mon Sep 17 00:00:00 2001
|
||
|
From: Victor Zhestkov <vzhestkov@suse.com>
|
||
|
Date: Tue, 12 Apr 2022 10:08:17 +0300
|
||
|
Subject: [PATCH] Fix regression with depending client.ssh on psutil
|
||
|
(bsc#1197533)
|
||
|
|
||
|
---
|
||
|
salt/client/ssh/__init__.py | 14 ++++++++++++--
|
||
|
1 file changed, 12 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/salt/client/ssh/__init__.py b/salt/client/ssh/__init__.py
|
||
|
index 6d24d8d716..396f9457f2 100644
|
||
|
--- a/salt/client/ssh/__init__.py
|
||
|
+++ b/salt/client/ssh/__init__.py
|
||
|
@@ -12,7 +12,6 @@ import hashlib
|
||
|
import logging
|
||
|
import multiprocessing
|
||
|
import os
|
||
|
-import psutil
|
||
|
import queue
|
||
|
import re
|
||
|
import shlex
|
||
|
@@ -407,6 +406,16 @@ class SSH:
|
||
|
self.__parsed_rosters[self.ROSTER_UPDATE_FLAG] = False
|
||
|
return
|
||
|
|
||
|
+ def _pid_exists(self, pid):
|
||
|
+ """
|
||
|
+ Check if specified pid is alive
|
||
|
+ """
|
||
|
+ try:
|
||
|
+ os.kill(pid, 0)
|
||
|
+ except OSError:
|
||
|
+ return False
|
||
|
+ return True
|
||
|
+
|
||
|
def _update_roster(self, hostname=None, user=None):
|
||
|
"""
|
||
|
Update default flat roster with the passed in information.
|
||
|
@@ -626,7 +635,8 @@ class SSH:
|
||
|
pid_running = (
|
||
|
False
|
||
|
if cached_session["pid"] == 0
|
||
|
- else cached_session.get("running", False) or psutil.pid_exists(cached_session["pid"])
|
||
|
+ else cached_session.get("running", False)
|
||
|
+ or self._pid_exists(cached_session["pid"])
|
||
|
)
|
||
|
if (
|
||
|
pid_running and prev_session_running < self.max_pid_wait
|
||
|
--
|
||
|
2.35.1
|
||
|
|
||
|
|