diff --git a/src/DIRAC/Resources/Computing/SSHComputingElement.py b/src/DIRAC/Resources/Computing/SSHComputingElement.py index 980c4b0c244..77e8d66686f 100644 --- a/src/DIRAC/Resources/Computing/SSHComputingElement.py +++ b/src/DIRAC/Resources/Computing/SSHComputingElement.py @@ -597,6 +597,8 @@ def _submitJobToHost(self, executableFile, numberOfJobs, host=None): return resultCommand result = resultCommand["Value"] + if not isinstance(result, dict) or "Status" not in result: + return S_ERROR("Invalid result from job submission") if result["Status"] != 0: return S_ERROR(f"Failed job submission: {result['Message']}") else: @@ -639,6 +641,8 @@ def _killJobOnHost(self, jobIDList, host=None): return resultCommand result = resultCommand["Value"] + if not isinstance(result, dict) or "Status" not in result: + return S_ERROR("Invalid result from job submission") if result["Status"] != 0: return S_ERROR(f"Failed job kill: {result['Message']}") @@ -674,6 +678,8 @@ def _getHostStatus(self, host=None): return resultCommand result = resultCommand["Value"] + if not isinstance(result, dict) or "Status" not in result: + return S_ERROR("Invalid result from job submission") if result["Status"] != 0: return S_ERROR(f"Failed to get CE status: {result['Message']}") @@ -697,6 +703,8 @@ def _getJobStatusOnHost(self, jobIDList, host=None): return resultCommand result = resultCommand["Value"] + if not isinstance(result, dict) or "Status" not in result: + return S_ERROR("Invalid result from job submission") if result["Status"] != 0: return S_ERROR(f"Failed to get job status: {result['Message']}") @@ -779,6 +787,8 @@ def _getJobOutputFiles(self, jobID): return resultCommand result = resultCommand["Value"] + if not isinstance(result, dict) or "Status" not in result: + return S_ERROR("Invalid result from job submission") if result["Status"] != 0: return S_ERROR(f"Failed to get job output files: {result['Message']}")