@@ -216,16 +216,31 @@ def get_info(host, *, users=None, connection=None):
216216 data ["ssh_user" ] = user
217217
218218 systeminfo = ssh_cmd (connection , "systeminfo" )
219- if systeminfo and "command not found" not in systeminfo :
219+ assert systeminfo is None or (type (systeminfo ) is str and len (systeminfo ) > 0 )
220+ # Note: ssh_cmd is supposed to return None on failure however, it seems
221+ # like there are some cases where it returns output on failure
222+ # because the exit code was 0
223+ # TODO / Workaround:
224+ if systeminfo == "bash: systeminfo: command not found" :
225+ systeminfo = None
226+ if systeminfo :
220227 data ["os" ] = "windows"
221228 data ["systeminfo" ] = parse_systeminfo (systeminfo )
222229 data ["package_tags" ] = ["x86_64" , "msi" ]
223230 data ["arch" ] = "x86_64"
224231 agent = r"& 'C:\Program Files\Cfengine\bin\cf-agent.exe'"
225- data ["agent" ] = agent
226232 version_cmd = powershell ("{} -V" .format (agent ))
227- data ["agent_version" ] = parse_version (ssh_cmd (connection , version_cmd ))
233+ version_output = ssh_cmd (connection , version_cmd )
234+ if version_output :
235+ data ["agent" ] = agent
236+ else :
237+ data ["agent" ] = None
238+ data ["agent_version" ] = parse_version (version_output )
228239 data ["role" ] = "client"
240+ if data ["agent_version" ]:
241+ data ["role" ] = "client"
242+ else :
243+ data ["role" ] = None
229244 else :
230245 data ["os" ] = "unix"
231246
@@ -270,12 +285,15 @@ def get_info(host, *, users=None, connection=None):
270285
271286 data ["package_tags" ] = get_package_tags (os_release_data , redhat_release_data )
272287 data ["cfengine_id" ] = discovery .get ("NTD_CFENGINE_ID" )
273- data ["agent_location " ] = discovery .get ("NTD_CFAGENT_PATH" )
288+ data ["agent " ] = discovery .get ("NTD_CFAGENT_PATH" )
274289 data ["policy_server" ] = discovery .get ("NTD_POLICY_SERVER" )
275- agent = r"/var/cfengine/bin/cf-agent"
276- data ["agent" ] = agent
277290 data ["agent_version" ] = parse_version (discovery .get ("NTD_CFAGENT_VERSION" ))
278- data ["role" ] = "hub" if discovery .get ("NTD_CFHUB" ) else "client"
291+ if discovery .get ("NTD_CFHUB" ):
292+ data ["role" ] = "hub"
293+ elif discovery .get ("NTD_CFAGENT_PATH" ):
294+ data ["role" ] = "client"
295+ else :
296+ data ["role" ] = None
279297
280298 data ["bin" ] = {}
281299 for bin in [
0 commit comments