#!/usr/bin/env bash
# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

source "$SOWLIB/pluginutils"
source "$SOWLIB/k8s"

deploy() {
  K8S_setKubeConfig "$PLUGININSTANCE" "$dir/kubeconfig"

  getRequiredValue seed "seed" PLUGINCONFIGJSON
  getValue timeout "timeout" PLUGINCONFIGJSON

  local starttime
  local endtime
  timeout=${timeout:-300}
  starttime=$(date +%s)
  endtime=$(( starttime + timeout ))

  if [[ -z "$DRYRUN" ]]; then
    while [[ $(date +%s) -le $endtime ]]; do
      if [[ $(kubectl get seed $seed -o json 2>/dev/null | jq -r '[.status.conditions[] | select(.type == "Bootstrapped", .type == "GardenletReady") | select(.status == "True")] | length >= 2') == "true" ]]; then
        verbose "Seed '$seed' is ready."
        return
      fi
      info "Waiting until seed '$seed' is ready ..."
      sleep 3
    done

    fail "seed '$seed' did not become ready within $timeout seconds."
  fi
}

delete() {
  verbose "Nothing to do on delete."
}

case "$1" in
    deploy) deploy "$@";;
    delete) delete "$@";;
    *) fail "unsupported action $1"
esac