From 1c50f834b30a591c5387ad3e18d6efa827b61345 Mon Sep 17 00:00:00 2001 From: "Lunfan Zhang[Lunfan.Zhang]" Date: Wed, 24 Dec 2025 08:39:54 +0000 Subject: [PATCH] CA-417645 Refine Remote Shell status in xsconsole Signed-off-by: Lunfan Zhang[Lunfan.Zhang] --- XSConsoleData.py | 5 +++++ plugins-base/XSFeatureRemoteShell.py | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/XSConsoleData.py b/XSConsoleData.py index d50d6b8..30e834b 100644 --- a/XSConsoleData.py +++ b/XSConsoleData.py @@ -768,6 +768,11 @@ def ScanService(self, service): (status, output) = getstatusoutput("systemctl is-enabled %s" % (service,)) self.data['chkconfig'][service] = status == 0 + (status, output) = getstatusoutput("systemctl is-active %s" % (service,)) + if 'service_active' not in self.data: + self.data['service_active'] = {} + self.data['service_active'][service] = status == 0 + def ScanResolvConf(self, inLines): self.data['dns'] = { 'nameservers' : [], diff --git a/plugins-base/XSFeatureRemoteShell.py b/plugins-base/XSFeatureRemoteShell.py index f880139..ee40c2c 100644 --- a/plugins-base/XSFeatureRemoteShell.py +++ b/plugins-base/XSFeatureRemoteShell.py @@ -68,7 +68,7 @@ def HandleChoice(self, inChoice): "Command Shell to terminate them.") if inChoice == self.SSH_MODE_AUTO: data.SetSSHAutoMode(True) - message = Lang("SSH auto-mode has been configured. For security," + message = Lang("SSH auto-mode has been configured. For security, " "SSH is normally disabled and will only be enabled in case of emergency.") Layout.Inst().PushDialogue(InfoDialogue(message)) @@ -139,16 +139,18 @@ def StatusUpdateHandler(cls, inPane): data = Data.Inst() inPane.AddTitleField(Lang("Remote Shell (ssh)")) - if data.chkconfig.sshd() is None: - message = Lang('unknown. To enable or disable') - elif data.chkconfig.sshd(): - message = Lang('enabled. To disable') + is_running = data.service_active.sshd() + + if is_running is None: + message = Lang('unknown. To configure') + elif is_running: + message = Lang('running. To stop and disable') else: - message = Lang('disabled. To enable') + message = Lang('stopped. To start and enable') inPane.AddWrappedTextField(Lang( - "This server can accept a remote login via ssh. Currently remote login is ") + - message + Lang(" this feature, press .")) + "This server can accept a remote login via ssh. Currently SSH service is ") + + message + Lang(" SSH service, press .")) inPane.AddKeyHelpField( { Lang("") : Lang("Configure Remote Shell")