mirror of
				https://github.com/xcat2/confluent.git
				synced 2025-10-31 19:32:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| function set_confluent_vars() {
 | |
|     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() {
 | |
|     curlargs=""
 | |
|     if [ -f /etc/confluent/ca.pem ]; then
 | |
|         curlargs=" --cacert /etc/confluent/ca.pem"
 | |
|     fi
 | |
|     set_confluent_vars
 | |
|     mkdir -p $(dirname $1)
 | |
|     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
 | |
| }
 | |
| 
 | |
| source_remote_parts() {
 | |
|     confluentscripttmpdir=$(mktemp -d)
 | |
|     apiclient=/opt/confluent/bin/apiclient
 | |
|     if [ -f /etc/confluent/apiclient ]; then
 | |
|         apiclient=/etc/confluent/apiclient
 | |
|     fi
 | |
|     scriptlist=$(/usr/libexec/platform-python $apiclient /confluent-api/self/scriptlist/$1|sed -e 's/^- //')
 | |
|     for script in $scriptlist; do
 | |
|         source_remote $1/$script
 | |
|     done
 | |
|     unset confluentscripttmpdir
 | |
| }
 | |
| 
 | |
| run_remote_parts() {
 | |
|     confluentscripttmpdir=$(mktemp -d)
 | |
|     apiclient=/opt/confluent/bin/apiclient
 | |
|     if [ -f /etc/confluent/apiclient ]; then
 | |
|         apiclient=/etc/confluent/apiclient
 | |
|     fi
 | |
|     scriptlist=$(/usr/libexec/platform-python $apiclient /confluent-api/self/scriptlist/$1|sed -e 's/^- //')
 | |
|     for script in $scriptlist; do
 | |
|         run_remote $1/$script
 | |
|     done
 | |
|     unset confluentscripttmpdir
 | |
| }
 | |
| 
 | |
| source_remote() {
 | |
|     set_confluent_vars
 | |
|     echo
 | |
|     echo '---------------------------------------------------------------------------'
 | |
|     echo Sourcing $1 from https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/
 | |
|     if [ -z "$confluentscripttmpdir" ]; then
 | |
|         confluentscripttmpdir=$(mktemp -d)
 | |
|     fi
 | |
|     echo Sourcing from $confluentscripttmpdir
 | |
|     cd $confluentscripttmpdir
 | |
|     fetch_remote $1
 | |
|     if [ $? != 0 ]; then echo $1 failed to download; return 1; fi
 | |
|     chmod +x $1
 | |
|     cmd=$1
 | |
|     shift
 | |
|     source ./$cmd
 | |
|     cd - > /dev/null
 | |
|     return $retcode
 | |
| }
 | |
| 
 | |
| run_remote() {
 | |
|     requestedcmd="'$*'"
 | |
|     set_confluent_vars
 | |
|     echo
 | |
|     echo '---------------------------------------------------------------------------'
 | |
|     echo Running $requestedcmd from https://$confluent_mgr/confluent-public/os/$confluent_profile/scripts/
 | |
|     if [ -z "$confluentscripttmpdir" ]; then
 | |
|         confluentscripttmpdir=$(mktemp -d)
 | |
|     fi
 | |
|     echo Executing in $confluentscripttmpdir
 | |
|     cd $confluentscripttmpdir
 | |
|     fetch_remote $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=$?
 | |
|     if [ $retcode -ne 0 ]; then
 | |
|         echo "$requestedcmd exited with code $retcode"
 | |
|     fi
 | |
|     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
 | |
|     mkdir -p $(dirname $1)
 | |
|     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
 | |
|     if [ -x /usr/libexec/platform-python ]; then
 | |
|         /usr/libexec/platform-python $*
 | |
|     else
 | |
|         /usr/bin/python $*
 | |
|     fi
 | |
|     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
 | |
|     if [ -x /usr/libexec/platform-python ]; then
 | |
|         /usr/libexec/platform-python $apiclient /confluent-api/self/remoteconfig/"$*" -d {}
 | |
|         /usr/libexec/platform-python $apiclient /confluent-api/self/remoteconfig/status -w 204
 | |
|     else
 | |
|         /usr/bin/python $apiclient /confluent-api/self/remoteconfig/"$*" -d {}
 | |
|         /usr/bin/python $apiclient /confluent-api/self/remoteconfig/status -w 204
 | |
|     fi
 | |
|     echo
 | |
|     echo 'Completed remote configuration'
 | |
|     echo '---------------------------------------------------------------------------'
 | |
|     return
 | |
| }
 | |
| 
 |