#!/usr/bin/env bash

set -xeuo pipefail

# When changing this script, remember to modify the corresponding github action
vendor=${1}
env=${2}
region=${3}
redundancy=${4:-ZRS}  # Default to ZRS if not specified

# Validate redundancy type
if [ "$redundancy" != "LRS" ] && [ "$redundancy" != "ZRS" ]; then
  echo "Invalid redundancy type: $redundancy. Must be LRS or ZRS. Defaulting to ZRS."
  redundancy="ZRS"
fi

buckupBucketName=o11y-${env}-${region}-backups
lokiBucketName=loki-${env}-${region}-o11y

echo "Deploying new region ${region} for ${env}"
echo "loki bucket name is ${lokiBucketName}"
echo "backup bucket name is ${buckupBucketName}"
echo "redundancy type is ${redundancy}"
if [ "$vendor" == "alicloud" ]; then
  if ! aliyun oss stat oss://$buckupBucketName >/dev/null 2>&1; then
    echo "o11y bucket $buckupBucketName does not exist, creating..."
    aliyun oss mb oss://$buckupBucketName --region $region --redundancy-type $redundancy
    echo "o11y bucket $buckupBucketName created"
  else
    echo "o11y bucket $buckupBucketName already exists"
  fi

# check and create lokiBucket
  if ! aliyun oss stat oss://$lokiBucketName >/dev/null 2>&1; then
      echo "loki bucket $lokiBucketName does not exist, creating..."
      aliyun oss mb oss://$lokiBucketName --region $region --redundancy-type $redundancy
      echo "loki bucket $lokiBucketName created"
      aliyun oss lifecycle --method put oss://$lokiBucketName ./variants/alilcoud_lifecycle.xml --region $region
      echo "loki bucket $lokiBucketName life cycle created"
  else
      echo "loki bucket $lokiBucketName already exists"
  fi
else
  echo "Unsupported vendor: $vendor"
  exit 1
fi
