From cf2e6984d9f10fa099e2f9069bde246759381211 Mon Sep 17 00:00:00 2001 From: Victor Moene Date: Thu, 2 Jan 2025 14:17:01 +0100 Subject: [PATCH] Added check if binaries are in path Ticket: CFE-4446 Signed-off-by: Victor Moene --- cf_remote/remote.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cf_remote/remote.py b/cf_remote/remote.py index 85d7f49..51c413b 100644 --- a/cf_remote/remote.py +++ b/cf_remote/remote.py @@ -600,13 +600,23 @@ def deploy_masterfiles(host, tarball, *, connection=None): scp(tarball, host, connection=connection, rename="masterfiles.tgz") tarball = "masterfiles.tgz" ssh_cmd(connection, "tar -xzf %s" % tarball) + + cfagent_path = "" + if not ssh_sudo(connection, "command -v cf-agent"): + log.debug("cf-agent is not in $PATH") + + if ssh_cmd(connection, "command -v /var/cfengine/bin/cf-agent"): + cfagent_path = "/var/cfengine/bin/" + else: + user_error("Cannot find the path to cf-agent.") + commands = [ "rm -rf /var/cfengine/masterfiles.delete", "mv /var/cfengine/masterfiles /var/cfengine/masterfiles.delete", "mv masterfiles /var/cfengine/masterfiles", "rm -rf /var/cfengine/masterfiles.delete", - "cf-agent -Kf update.cf", - "cf-agent -K", + "{}cf-agent -Kf update.cf".format(cfagent_path), + "{}cf-agent -K".format(cfagent_path), ] combined = " && ".join(commands) print("Running: '%s'" % combined)