#!/usr/bin/env bash
set -xeuo pipefail

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

argocd_repo=tidbcloud/app-delivery
region=$(yq '.region' "${local_config}")
env=$(yq '.env' "${local_config}")
cloud=$(yq '.cloudProvider' "${local_config}")
cluster=$(yq '.k8s.name' "${local_config}")
jobId=$(yq '.jobId' "${local_config}")
output=$(yq '.outputPath' "${local_config}")
image_registry=$(yq '.imageRegistry' "${local_config}")

dnsName=$(yq '.jobOptions.regionalServer.dnsName' "${local_config}")
hostedZoneId=$(yq '.jobOptions.regionalServer.hostedZoneId' "${local_config}")

# 检查记录是否存在
record_exists=$(aws route53 list-resource-record-sets \
  --hosted-zone-id $hostedZoneId \
  --query "ResourceRecordSets[?Name == '$dnsName.'].AliasTarget" \
  --output json --no-cli-pager)

hostname=$(echo "$record_exists" | jq -r ".[0].DNSName")
lbHostedZoneId=$(echo "$record_exists" | jq -r ".[0].HostedZoneId")
# 如果记录存在，删除它
if [ -n "$hostname" && -n "$lbHostedZoneId" ]; then
  aws route53 change-resource-record-sets \
    --hosted-zone-id $hostedZoneId \
    --change-batch '{
      "Changes": [{
        "Action": "DELETE",
        "ResourceRecordSet": {
          "Name": "'"${dnsName}"'",
          "Type": "A",
          "AliasTarget": {
            "HostedZoneId": "'"${lbHostedZoneId}"'",
            "DNSName": "'"${hostname}"'",
            "EvaluateTargetHealth": false
          }
        }
      }]
    }'
  echo "Record $dnsName deleted."
else
  echo "Record $dnsName does not exist, no action needed."
fi
