#!/usr/bin/env bash

set -x
set -euo pipefail

ROOT=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)

remote_config=${CONFIG_PATH}
local_config=/tmp/base-config.yaml
bucket_name=${remote_config#s3://}
bucket_name=${bucket_name%%/*}
output_bucket_region=$(aws s3api get-bucket-location --bucket=$bucket_name --query="LocationConstraint" \
  --region=us-west-2 --output=text --no-cli-pager)
aws s3 cp ${remote_config} ${local_config} --region=$output_bucket_region

local_output=/tmp/output.yaml
remote_output=$(yq '.outputPath' "${local_config}")
cloud_provider=$(yq '.cloudProvider' "${local_config}")
region=$(yq '.region' "${local_config}")
logical_region_name=$(yq '.name' "${local_config}")
env=$(yq '.env' "${local_config}")
account_id=$(yq '.aws.controlplaneAccount' "${local_config}")
echo "cloud_provider: $cloud_provider"
echo "region: $region"
echo "logical_region_name: $logical_region_name"
echo "env: $env"
echo "account_id: $account_id"

remote_dms_config=$(yq '.jobOutput.basic-dms' "${local_config}")
local_dms_config=/tmp/dms-config.yaml
if [[ "$remote_dms_config" == "null" ]]; then
    echo "No DMS configuration found in the job output."
    exit 0
fi
aws s3 cp ${remote_dms_config} ${local_dms_config} --region=$output_bucket_region
cluster_name=$(yq '.k8s.name' "${local_config}")

alarm_name=$(yq '.cloudwatchAlarmName' "${local_dms_config}")
dms_role_arn=$(yq '."dmsRoleArn"' "${local_dms_config}")

# Delete CloudWatch Alarm if exists
if aws cloudwatch describe-alarms --alarm-names "$alarm_name" &> /dev/null; then
    aws cloudwatch delete-alarms --alarm-names "$alarm_name"
fi

# Delete IAM Role if exists
if aws iam get-role --role-name "${dms_role_arn}" &> /dev/null; then
    aws iam delete-role --role-name "${dms_role_arn}"
fi
