function set_confluent_vars() { if [ -z "$nodename" ]; then nodename=$(grep ^NODENAME: /etc/confluent/confluent.info | awk '{print $2}') fi if [ -z "$confluent_mgr" ]; then confluent_mgr=$(grep ^deploy_server: /etc/confluent/confluent.deploycfg | sed -e 's/[^ ]*: //') fi if [ -z "$confluent_profile" ]; then confluent_profile=$(grep ^profile: /etc/confluent/confluent.deploycfg | sed -e 's/[^ ]*: //') fi } fetch_remote() { if [ -f /etc/confluent/ca.pem ]; then curlargs=" --cacert /etc/confluent/ca.pem" fi set_confluent_vars curl -f -sS $curlargs https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/$1 > $1 if [ $? != 0 ]; then echo $1 failed to download; return 1; fi } run_remote() { requestedcmd="'$*'" curlargs="" if [ -f /etc/confluent/ca.pem ]; then curlargs=" --cacert /etc/confluent/ca.pem" fi set_confluent_vars echo echo '---------------------------------------------------------------------------' echo Running $requestedcmd from https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/ tmpdir=$(mktemp -d) echo Executing in $tmpdir cd $tmpdir curl -f -sS $curlargs https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/$1 > $1 if [ $? != 0 ]; then echo $requestedcmd failed to download; return 1; fi chmod +x $1 cmd=$1 if [ -x /usr/bin/chcon ]; then chcon system_u:object_r:bin_t:s0 $cmd fi shift ./$cmd $* retcode=$? echo "$requestedcmd exited with code $retcode" cd - > /dev/null return $retcode } run_remote_python() { echo set_confluent_vars if [ -f /etc/confluent/ca.pem ]; then curlargs=" --cacert /etc/confluent/ca.pem" fi echo '---------------------------------------------------------------------------' echo Running python script "'$*'" from https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/ tmpdir=$(mktemp -d) echo Executing in $tmpdir cd $tmpdir curl -f -sS $curlargs https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/$1 > $1 if [ $? != 0 ]; then echo "'$*'" failed to download; return 1; fi /usr/libexec/platform-python $* retcode=$? echo "'$*' exited with code $retcode" cd - > /dev/null return $retcode } run_remote_config() { echo set_confluent_vars apiclient=/opt/confluent/bin/apiclient if [ -f /etc/confluent/apiclient ]; then apiclient=/etc/confluent/apiclient fi echo '---------------------------------------------------------------------------' echo Requesting to run remote configuration for "'$*'" from $confluent_mgr under profile $confluent_profile /usr/libexec/platform-python $apiclient /confluent-api/self/remoteconfig/"$*" -d {} /usr/libexec/platform-python $apiclient /confluent-api/self/remoteconfig/status -w 204 echo echo 'Completed remote configuration' echo '---------------------------------------------------------------------------' return }