Created
July 1, 2024 20:39
-
-
Save mdrakiburrahman/e14d8d4ae50cc0891591d23f4ce1f13d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IFS='|' read -ra JAR_ARRAY <<<"$SYNAPSE_WORKSPACE_PACKAGE_UPLOAD_PIPE_DELIMITED" | |
for JAR in "${JAR_ARRAY[@]}"; do | |
export PACKAGE_NAME=$(echo "${JAR}" | awk -F'/' '{print $NF}') | |
echo "Checking if package ${PACKAGE_NAME} exists in ${SYNAPSE_WORKSPACE_NAME}" | |
export PACKAGE_ID_EXISTING=$(az synapse workspace-package show --workspace-name "$SYNAPSE_WORKSPACE_NAME" --name "$PACKAGE_NAME" --query "id" -o tsv) | |
export PACKAGE_EXISTS=false | |
if [ -z "$PACKAGE_ID_EXISTING" ]; then | |
echo "Package ${PACKAGE_NAME} does not exist in ${SYNAPSE_WORKSPACE_NAME}." | |
else | |
echo "Package ${PACKAGE_NAME} exists in ${SYNAPSE_WORKSPACE_NAME}." | |
PACKAGE_EXISTS=true | |
fi | |
if [ "$PACKAGE_EXISTS" = true ] && [ "$FORCE_PACKAGE_UPLOAD" = "1" ]; then | |
POOLS=$(az synapse spark pool list --workspace-name "$SYNAPSE_WORKSPACE_NAME" --resource-group "$SYNAPSE_WORKSPACE_RG" --subscription "$SYNAPSE_WORKSPACE_SUB_ID" | jq -c '.[]') | |
for POOL in $POOLS; do | |
POOL_NAME=$(echo $POOL | jq -r '.name') | |
POOL_LIBS=$(echo $POOL | jq -c '.customLibraries[]') | |
echo "Checking pool $POOL_NAME for package $PACKAGE_NAME" | |
for LIB in $POOL_LIBS; do | |
LIB_NAME=$(echo $LIB | jq -r '.name') | |
if [ "$LIB_NAME" == "$PACKAGE_NAME" ]; then | |
echo "Removing package $PACKAGE_NAME from pool $POOL_NAME" | |
az synapse spark pool update --name "$POOL_NAME" --workspace-name "$SYNAPSE_WORKSPACE_NAME" --resource-group "$SYNAPSE_WORKSPACE_RG" --subscription "$SYNAPSE_WORKSPACE_SUB_ID" --package-action Remove --package "$PACKAGE_NAME" | |
fi | |
done | |
done | |
echo "Attempting to force delete existing package ${PACKAGE_NAME} in ${SYNAPSE_WORKSPACE_NAME}" | |
az synapse workspace-package delete --workspace-name ${SYNAPSE_WORKSPACE_NAME} --name ${PACKAGE_NAME} --yes | |
echo "Force deleted package ${PACKAGE_NAME} in ${SYNAPSE_WORKSPACE_NAME}." | |
elif [ "$PACKAGE_EXISTS" = true ] && [ "$FORCE_PACKAGE_UPLOAD" != "1" ]; then | |
echo "Skipping package upload for ${PACKAGE_NAME} in ${SYNAPSE_WORKSPACE_NAME} since it already exists and FORCE_PACKAGE_UPLOAD is '${FORCE_PACKAGE_UPLOAD}'" | |
continue | |
fi | |
echo "Start creating Synapse ${SYNAPSE_WORKSPACE_NAME} Workspace Package ${PACKAGE_NAME} for ${JAR}." | |
az synapse workspace-package upload --workspace-name "${SYNAPSE_WORKSPACE_NAME}" --package "${JAR}" | |
echo "Finished creating Synapse ${SYNAPSE_WORKSPACE_NAME} Workspace Package ${PACKAGE_NAME} for ${JAR}." | |
IFS='|' read -ra POOL_ARRAY <<<"$SYNAPSE_WORKSPACE_PACKAGE_SPARK_POOL_PIPE_DELIMITED" | |
for POOL in "${POOL_ARRAY[@]}"; do | |
echo "Adding package ${PACKAGE_NAME} to pool ${POOL} in ${SYNAPSE_WORKSPACE_NAME}" | |
az synapse spark pool update --name "$POOL_NAME" --workspace-name "$SYNAPSE_WORKSPACE_NAME" --resource-group "$SYNAPSE_WORKSPACE_RG" --subscription "$SYNAPSE_WORKSPACE_SUB_ID" --package-action Add --package "$PACKAGE_NAME" | |
done | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment