#!/bin/bash
# Copyright 2019 AT&T Intellectual Property. All rights reserved.
#
# 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.

set -x

BUILD_NAME=$1
KUBECONFIG=$2
OOM_BRANCH=$3
BUILD_DIR=$4
CHART_VERSION=$5
OOM_OVERRIDES=$6

pushd .

cd $BUILD_DIR

export KUBECONFIG="$KUBECONFIG"
kubectl get nodes

COUNTER=0
until [ $COUNTER -ge 10 ]; do

echo "overriding default storage class for AKS"
kubectl delete sc default
sleep 1
cat  <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "false"
  labels:
    kubernetes.io/cluster-service: "true"
  name: default
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Delete
volumeBindingMode: Immediate
EOF

if [ $? -eq 0 ]; then
  COUNTER=10
else
  COUNTER=$((COUNTER +1))
fi

sleep 5
done

git clone -b "$OOM_BRANCH" http://gerrit.onap.org/r/oom --recurse-submodules

#mv requirements.yaml oom/kubernetes/onap/
cd oom/kubernetes

ls -l

helmpid=`ps -ef | grep -v grep | grep helm | awk '{print $2}'`
if [ ! -z $helmpid ]; then
  kill $helmpid
fi

helm init
echo "initializing tiller..."
sleep 3

helm serve &
echo "started helm..."
sleep 3

helm repo add local http://127.0.0.1:8879
helm repo add stable "https://kubernetes-charts.storage.googleapis.com/"

cp -R helm/plugins/ ~/.helm

make all
if [ $? -ne 0 ]; then
  echo "Failed building helm charts, exiting..."
  exit 1
fi

make onap
if [ $? -ne 0 ]; then
  echo "Failed building helm charts, exiting..."
  exit 1
fi

TEMPLATE_OVERRIDES="-f onap/resources/overrides/onap-all.yaml -f onap/resources/overrides/openstack.yaml --timeout 900"
if [ -f "$BUILD_DIR/integration-override.yaml" ]; then
  TEMPLATE_OVERRIDES="$TEMPLATE_OVERRIDES -f $BUILD_DIR/integration-override.yaml"
fi

helm repo remove stable
build_name=`echo "$BUILD_NAME" | tr '[:upper:]' '[:lower:]'`
helm deploy "$build_name" local/onap --version v"$CHART_VERSION" "$OOM_OVERRIDES" --namespace onap "$TEMPLATE_OVERRIDES"

kubectl get pods --namespace onap
 
popd
