Skip to content

Commit

Permalink
Merge pull request #4036 from dlarson04/Issue4035
Browse files Browse the repository at this point in the history
Fix agent uninstall if some special chars in the password
  • Loading branch information
LiilyZhang committed Apr 11, 2024
2 parents fa20198 + 4b23171 commit 31e230f
Showing 1 changed file with 19 additions and 14 deletions.
33 changes: 19 additions & 14 deletions agent-install/agent-uninstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,7 @@ function removeNodeFromLocalAndManagementHub() {
log_debug "removeNodeFromLocalAndManagementHub() begin"
log_info "Check node status for agent pod: ${POD_ID}"

EXPORT_EX_USER_AUTH_CMD="export HZN_EXCHANGE_USER_AUTH=${HZN_EXCHANGE_USER_AUTH}"
NODE_INFO=$($KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "${EXPORT_EX_USER_AUTH_CMD}; hzn node list")
NODE_INFO=$($KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "hzn node list")
NODE_STATE=$(echo $NODE_INFO | jq -r .configstate.state | sed 's/[^a-z]*//g')
NODE_ID=$(echo $NODE_INFO | jq -r .id | sed 's/\r//g')
log_debug "NODE config state for ${NODE_ID} is ${NODE_STATE}"
Expand All @@ -241,7 +240,7 @@ function removeNodeFromLocalAndManagementHub() {
log_info "Process with unregister..."
unregister $NODE_ID
sleep 2
else
else
log_info "node state is empty"
fi
else
Expand All @@ -263,7 +262,6 @@ function unregister() {
log_debug "unregister() begin"
log_info "Unregister agent for pod: ${POD_ID}"

EXPORT_EX_USER_AUTH_CMD="export HZN_EXCHANGE_USER_AUTH=${HZN_EXCHANGE_USER_AUTH}"
local node_id=$1

if [[ "$DELETE_EX_NODE" == "true" ]]; then
Expand All @@ -275,11 +273,11 @@ function unregister() {
fi

set +e
$KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "${EXPORT_EX_USER_AUTH_CMD}; ${HZN_UNREGISTER_CMD}"
$KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "${HZN_UNREGISTER_CMD}"
set -e

# verify the node is unregistered
NODE_STATE=$($KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "${EXPORT_EX_USER_AUTH_CMD}; hzn node list | jq -r .configstate.state" | sed 's/[^a-z]*//g')
NODE_STATE=$($KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "hzn node list | jq -r .configstate.state" | sed 's/[^a-z]*//g')
log_debug "NODE config state is ${NODE_STATE}"

if [[ "$NODE_STATE" != "unconfigured" ]] && [[ "$NODE_STATE" != "unconfiguring" ]]; then
Expand All @@ -289,10 +287,16 @@ function unregister() {
log_debug "unregister() end"
}

function getEscapedExchangeUserAuth() {
local escaped_auth=$( echo "${HZN_EXCHANGE_USER_AUTH}" | sed 's/;/\\;/g;s/\$/\\$/g;s/\&/\\&/g;s/|/\\|/g' )
echo "${escaped_auth}"
}

function deleteNodeFromManagementHub() {
log_debug "deleteNodeFromManagementHub() begin"

EXPORT_EX_USER_AUTH_CMD="export HZN_EXCHANGE_USER_AUTH=${HZN_EXCHANGE_USER_AUTH}"
escaped_USER_AUTH=$(getEscapedExchangeUserAuth)
EXPORT_EX_USER_AUTH_CMD="export HZN_EXCHANGE_USER_AUTH=${escaped_USER_AUTH}"
local node_id=$1

log_info "Deleting node ${node_id} from the management hub..."
Expand All @@ -307,10 +311,11 @@ function deleteNodeFromManagementHub() {
function verifyNodeRemovedFromManagementHub() {
log_debug "verifyNodeRemovedFromManagementHub() begin"

EXPORT_EX_USER_AUTH_CMD="export HZN_EXCHANGE_USER_AUTH=${HZN_EXCHANGE_USER_AUTH}"
escaped_USER_AUTH=$(getEscapedExchangeUserAuth)
EXPORT_EX_USER_AUTH_CMD="export HZN_EXCHANGE_USER_AUTH=${escaped_USER_AUTH}"
local node_id=$1

log_info "Verifying node ${node_id} is from the management hub..."
log_info "Verifying node ${node_id} is removed from the management hub..."

set +e
$KUBECTL exec -it ${POD_ID} -n ${AGENT_NAMESPACE} -- bash -c "${EXPORT_EX_USER_AUTH_CMD}; hzn exchange node list ${node_id}" >/dev/null 2>&1
Expand All @@ -326,7 +331,7 @@ function deleteAgentResources() {

set +e
log_info "Deleting agent deployment..."

if [ "$USE_DELETE_FORCE" != true ]; then
$KUBECTL delete deployment $DEPLOYMENT_NAME -n $AGENT_NAMESPACE --grace-period=$DELETE_TIMEOUT

Expand All @@ -352,7 +357,7 @@ function deleteAgentResources() {
if [ "$USE_DELETE_FORCE" != true ]; then
$KUBECTL delete pods -l app=agent --namespace=$AGENT_NAMESPACE --grace-period=$DELETE_TIMEOUT

PODS=$($KUBECTL get pod -l app=agent -n $AGENT_NAMESPACE 2>/dev/null)
PODS=$($KUBECTL get pod -l app=agent -n $AGENT_NAMESPACE 2>/dev/null)
if [[ -n "$PODS" ]]; then
log_info "Agent pods still exist"
PODS_STILL_EXIST="true"
Expand Down Expand Up @@ -416,17 +421,17 @@ function deleteAgentResources() {

function uninstall_cluster() {
show_config

validate_args

get_agent_pod_id

if [[ "$AGENT_POD_READY" == "true" ]]; then
removeNodeFromLocalAndManagementHub
else
else
log_info "agent pod under $AGENT_NAMESPACE is not ready, skip unregister process. Please remove node from management hub later if needed"
fi

deleteAgentResources
}

Expand Down

0 comments on commit 31e230f

Please sign in to comment.