#!/bin/bash

TYPE="$1"
NAME="$2"
STATE="$3"
PRIORITY="$4"

. /opt/aep/etc/provider_api

API_TOKEN="${API_TOKEN:?missing variable: \$API_TOKEN}"
API_URL="${API_URL:?missing variable: \$API_URL}"
flip_id="${flip_id:?missing variable: \$flip_id}"

is_json() {
  jq -re '.' <<<"${1:-}" >/dev/null 2>&1
}

case "$STATE" in
  MASTER)
    server_id="$(curl -sSL http://169.254.169.254/hetzner/v1/metadata/instance-id)"
    rsp="$(curl -X POST "${API_URL}/floating_ips/${flip_id}/actions/assign" -sSL -H "Authorization: Bearer ${API_TOKEN}" -H 'Content-Type: application/json' -d '{"server":'"$server_id"'}')"
    if is_json "$rsp"; then
      echo "$rsp" | jq -c -r '.'
    else
      echo "$rsp"
    fi
    exit 0
    ;;
  BACKUP|STOP|FAULT)
    exit 0
    ;;
  *)
    echo "Unknown state: ${STATE}"
    exit 1
    ;;
esac
