11#! /bin/bash
22ADC_VERSION=" v0.2.0"
3- ADC_LAST_COMMIT=" 1b5e629b1d5f9ec47d11e15e71e62df6a301988c "
3+ ADC_LAST_COMMIT=" b0df122812228c8a0c27fa03a8d54873dc904e99 "
44USER_CONFIG=" $HOME /.appdynamics/adc/config.sh"
55GLOBAL_CONFIG=" /etc/appdynamics/adc/config.sh"
66CONFIG_CONTROLLER_COOKIE_LOCATION=" /tmp/appdynamics-controller-cookie.txt"
@@ -62,7 +62,7 @@ function output {
6262 fi
6363}
6464function httpClient {
65- debug " $* "
65+ # debug "$*"
6666 local TIMEOUT=10
6767 if [ -n " $CONFIG_HTTP_TIMEOUT " ] ; then
6868 TIMEOUT=$CONFIG_HTTP_TIMEOUT
@@ -157,7 +157,7 @@ function apiCall {
157157 # PAYLOAD=${PAYLOAD//\$\{${opt}\}/$OPTARG}
158158 # ENDPOINT=${ENDPOINT//\$\{${opt}\}/$OPTARG}
159159 while [[ $PAYLOAD =~ \$ {$opt \? ? } ]] ; do
160- PAYLOAD=${PAYLOAD// ${BASH_REMATCH[0]} / $ARG }
160+ PAYLOAD=${PAYLOAD// ${BASH_REMATCH[0]} / $OPTARG }
161161 done ;
162162 while [[ $ENDPOINT =~ \$ {$opt \? ? } ]] ; do
163163 ENDPOINT=${ENDPOINT// ${BASH_REMATCH[0]} / $ARG }
@@ -189,9 +189,6 @@ function apiCall {
189189 controller_call -X $METHOD $ENDPOINT
190190 fi
191191}
192- # __call GET "/controller/rest/applications/\${a}/business-transactions" -a ECommerce
193- # echo "########"
194- # __call GET "/controller/rest/applications/\${a}/nodes/\${n}" -n Web2 -a ECommerce
195192function _config {
196193 local FORCE=0
197194 local GLOBAL=0
@@ -368,8 +365,9 @@ function controller_call {
368365 ENDPOINT=$*
369366 controller_login
370367 # Debug the COMMAND_RESULT from controller_login
371- debug $COMMAND_RESULT
368+ debug " Login result: $COMMAND_RESULT "
372369 if [ $CONTROLLER_LOGIN_STATUS -eq 1 ]; then
370+ debug " Endpoint: $ENDPOINT "
373371 COMMAND_RESULT=$( httpClient -s -b $CONFIG_CONTROLLER_COOKIE_LOCATION \
374372 -X $METHOD \
375373 -H " X-CSRF-TOKEN: $XCSRFTOKEN " \
@@ -378,6 +376,7 @@ function controller_call {
378376 " ` [ -n " $PAYLOAD " ] && echo -d ${PAYLOAD} ` " \
379377 " ` [ -n " $FORM " ] && echo -F ${FORM} ` " \
380378 $CONFIG_CONTROLLER_HOST$ENDPOINT )
379+ debug " Command result: $COMMAND_RESULT "
381380 else
382381 COMMAND_RESULT=" Controller Login Error! Please check hostname and credentials"
383382 fi
@@ -866,6 +865,75 @@ register dashboard_delete Delete a specific dashboard
866865describe dashboard_delete << EOF
867866Delete a specific dashboard
868867EOF
868+ function federation_createkey {
869+ apiCall -X POST -d ' {"apiKeyName": "${n}"}' " /controller/rest/federation/apikeyforfederation" " $@ "
870+ }
871+ register federation_createkey Create API Key for Federation
872+ describe federation_createkey << EOF
873+ Create API Key for Federation.
874+ EOF
875+ function federation_establish {
876+ local ACCOUNT=${CONFIG_CONTROLLER_CREDENTIALS##*@ }
877+ ACCOUNT=${ACCOUNT%%:* }
878+ info " Establishing friendship..."
879+ apiCall -X POST -d " { \
880+ \" accountName\" : \" ${ACCOUNT} \" , \
881+ \" controllerUrl\" : \" ${CONFIG_CONTROLLER_HOST} \" , \
882+ \" friendAccountName\" : \"\$ {a}\" , \
883+ \" friendAccountApiKey\" : \"\$ {k}\" , \
884+ \" friendAccountControllerUrl\" : \"\$ {c}\" \
885+ }" " /controller/rest/federation/establishmutualfriendship" " $@ "
886+ }
887+ register federation_establish Establish Mutual Friendship
888+ describe federation_establish << EOF
889+ Establish Mutual Friendship
890+ EOF
891+ function federation_setup {
892+ local FRIEND_CONTROLLER_CREDENTIALS=" "
893+ local FRIEND_CONTROLLER_HOST=" "
894+ local KEY_NAME=" "
895+ local MY_ACCOUNT=${CONFIG_CONTROLLER_CREDENTIALS##*@ }
896+ MY_ACCOUNT=${MY_ACCOUNT%%:* }
897+ while getopts " c:h:k:" opt " $@ " ;
898+ do
899+ case " ${opt} " in
900+ c)
901+ FRIEND_CONTROLLER_CREDENTIALS=${OPTARG}
902+ ;;
903+ h)
904+ FRIEND_CONTROLLER_HOST=${OPTARG}
905+ ;;
906+ k)
907+ KEY_NAME=${OPTARG}
908+ ;;
909+ esac
910+ done ;
911+ shiftOptInd
912+ shift $SHIFTS
913+ if [ -z " $KEY_NAME " ] ; then
914+ local FRIEND_ACCOUNT=${FRIEND_CONTROLLER_CREDENTIALS##*@ }
915+ FRIEND_ACCOUNT=${FRIEND_ACCOUNT%%:* }
916+ KEY_NAME=${FRIEND_ACCOUNT} _${FRIEND_CONTROLLER_HOST// [:\/]/ _} _$RANDOM
917+ fi ;
918+ federation_createkey -n $KEY_NAME
919+ debug " Key creation result: $COMMAND_RESULT "
920+ KEY=${COMMAND_RESULT##* \" key\" : \" }
921+ KEY=${KEY%% \" ,\" * }
922+ debug " Identified key: $KEY "
923+ debug " Establishing mutual friendship: $0 -J /tmp/appdynamics-federation-cookie.txt -H $FRIEND_CONTROLLER_HOST -C $FRIEND_CONTROLLER_CREDENTIALS federation establish -a $MY_ACCOUNT -k $KEY -c $CONFIG_CONTROLLER_HOST "
924+ FRIEND_RESULT=` $0 -J /tmp/appdynamics-federation-cookie.txt -H " $FRIEND_CONTROLLER_HOST " -C " $FRIEND_CONTROLLER_CREDENTIALS " federation establish -a " $MY_ACCOUNT " -k " $KEY " -c " $CONFIG_CONTROLLER_HOST " `
925+ if [ -z " $FRIEND_RESULT " ] ; then
926+ COMMAND_RESULT=" Federation between $CONFIG_CONTROLLER_HOST and $FRIEND_CONTROLLER_HOST successfully established."
927+ else
928+ COMMAND_RESULT=" "
929+ error " Federation setup failed. Error from $FRIEND_CONTROLLER_HOST : ${FRIEND_RESULT} "
930+ fi
931+ rm /tmp/appdynamics-federation-cookie.txt
932+ }
933+ register federation_setup Setup a controller federation: Generates a key and establishes the mutal friendship.
934+ describe federation_setup << EOF
935+ Setup a controller federation: Generates a key and establishes the mutal friendship.
936+ EOF
869937if [ -f " ${GLOBAL_CONFIG} " ]; then
870938 debug " Sourcing global config from ${GLOBAL_CONFIG} "
871939 . ${GLOBAL_CONFIG}
0 commit comments