#!/bin/bash
################################################################################
#   Copyright (c) 2019 AT&T Intellectual Property.                             #
#   Copyright (c) 2019 Nokia.                                                  #
#                                                                              #
#   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.                                             #
################################################################################


while [ -n "$1" ]; do # while loop starts

    case "$1" in

    -f) OVERRIDEYAML=$2
        shift
        ;;
    -c) LIST_OF_COMPONENTS=$2
        shift
        ;;
    *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c

    esac

    shift

done


if [ -z "$OVERRIDEYAML" ];then
    echo "****************************************************************************************************************"
    echo "                                                     ERROR                                                      "
    echo "****************************************************************************************************************"
    echo "RIC deployment without deployment recipe is currently disabled. Please specify an recipe with the -f option."
    echo "****************************************************************************************************************"
    exit 1
fi

#Check for helm3
IS_HELM3=$(helm version -c --short|grep -e "^v3")
HELM_SEARCH_FLAG=""
if [ $IS_HELM3 ]
then  
    HELM_SEARCH_FLAG="repo"
fi


HAS_RIC_COMMON_PACKAGE=$(helm search ${HELM_SEARCH_FLAG} local/ric-common | grep ric-common)

if [ -z "$HAS_RIC_COMMON_PACKAGE" ];then
    echo "****************************************************************************************************************"
    echo "                                                     ERROR                                                      "
    echo "****************************************************************************************************************"
    echo "Can't locate the ric-common helm package in the local repo. Please make sure that it is properly installed."
    echo "****************************************************************************************************************"
    exit 1
fi

HAS_AUX_COMMON_PACKAGE=$(helm search ${HELM_SEARCH_FLAG} local/aux-common | grep aux-common)

if [ -z "$HAS_AUX_COMMON_PACKAGE" ];then
    echo "****************************************************************************************************************"
    echo "                                                     ERROR                                                      "
    echo "****************************************************************************************************************"
    echo "Can't locate the aux-common helm package in the local repo. Please make sure that it is properly installed."
    echo "****************************************************************************************************************"
    exit 1
fi



DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"

COMMON_BLOCK=$(cat $OVERRIDEYAML | awk '/^common:/{getline; while ($0 ~ /^ +.*|^ *$/) {print $0; if (getline == 0) {break}}}')
NAMESPACE_BLOCK=$(cat $OVERRIDEYAML | awk '/^  namespace:/{getline; while ($0 ~ /^    .*|^ *$/) {print $0; if (getline == 0) {break}}}')
AUXNAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *aux:/{print $2}')
INFRANAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *infra:/{print $2}')
RELEASE_PREFIX=$(echo "$COMMON_BLOCK" | awk '/^ *releasePrefix:/{print $2}')
COMPONENTS=${LIST_OF_COMPONENTS:-"infrastructure dashboard ves message-router mrsub mc-stack portal aaf"}


NODENAME=$(kubectl get node | awk 'NR>1{print $1}')
LABELFOUND=false
for f in $NODENAME; do
    LABEL=$(kubectl describe node $f | grep "local-storage=enable")
    if [ ! -z "$LABEL" ]; then
        LABELFOUND=true
	echo "Found lable \"local-storage=enable\" at node $f"
    fi
done
  
FOUND_STORAGECLASS=$(grep -w storageclass $OVERRIDEYAML)


if  ! $LABELFOUND && [ -z "$FOUND_STORAGECLASS" ]; then
    echo "***********************************************************************************************"
    echo "*                                          ERROR!!!!!!!!!!!!!                                 *"
    echo "***********************************************************************************************"
    echo "* Nodes label \"local-storage=enable\" is not found in any of the cluster node.               *"
    echo "* Please pick a node and label it using the following command.                                *"
    echo "* kubectl label --overwrite nodes <YOUR_NODE_NAME> local-storage=enable                       *"
    echo "***********************************************************************************************"

    exit 1
fi


if [ -z "$FOUND_STORAGECLASS" ] && $LABELFOUND; then

    DATAPATH=$(cat $DIR/../helm/dashboard/values.yaml | grep datapath | awk '{ print $2}' )


    if [ ! -z $OVERRIDEYAML ]; then
        DATAPATHOVERRIDE=$(cat $OVERRIDEYAML | grep datapath | awk '{ print $2}' )
    fi

    if [ ! -z "$DATAPATHOVERRIDE" ]; then
        DATAPATH=$DATAPATHOVERRIDE
    fi

    if [ ! -d "$DATAPATH" ]; then
        mkdir -p $DATAPATH || { echo "Directory $DATAPATH does not exist and you don't have permission to create it. Please choose a different datapath." ; exit 1 ; }
    fi

    echo "***********************************************************************************************"
    echo "*                                          WARNING!!!!!!!!!!!!!                               *"
    echo "***********************************************************************************************"
    echo "* Dashboard will use local storage. Please make sure that directory                           *"
    echo "* $DATAPATH                                                                                   *"
    echo "* contains the proper files.                                                                  *"
    echo "***********************************************************************************************"

fi


LABELFOUND=false
for f in $NODENAME; do
    LABEL=$(kubectl describe node $f | grep "portal-storage=enable")
    if [ ! -z "$LABEL" ]; then
        LABELFOUND=true
	echo "Found lable \"portal-storage=enable\" at node $f"
    fi
done

if  ! $LABELFOUND; then
    echo "***********************************************************************************************"
    echo "*                                          ERROR!!!!!!!!!!!!!                                 *"
    echo "***********************************************************************************************"
    echo "* Nodes label \"portal-storage=enable\" is not found in any of the cluster node.               *"
    echo "* Please pick a node and label it using the following command.   i                             *"
    echo "* kubectl label --overwrite nodes <YOUR_NODE_NAME> portal-storage=enable                       *"
    echo "***********************************************************************************************"

    exit 1
fi



if ! kubectl get ns ${AUXNAMESPACE:-ricaux}> /dev/null 2>&1; then
    kubectl create ns ${AUXNAMESPACE:-ricaux}
fi
if ! kubectl get ns ${INFRANAMESPACE:-ricinfra}> /dev/null 2>&1; then
    kubectl create ns ${INFRANAMESPACE:-ricinfra}
fi
if ! kubectl get ns onap > /dev/null 2>&1; then
    kubectl create ns onap
fi




echo Add cluster roles
    cat >ricaux-role.yaml <<EOF
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ricaux-system-default
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["list"]
  - apiGroups: ["batch"]
    resources: ["jobs/status"]
    verbs: ["get"]
---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ricaux-system-default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ricaux-system-default
subjects:
  - kind: ServiceAccount
    name: default
    namespace: ${AUXNAMESPACE:-ricaux}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: onap-system-default
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["list"]
  - apiGroups: ["apps"]
    resources: ["replicasets/status"]
    verbs: ["get"]
  - apiGroups: ["batch"]
    resources: ["jobs/status"]
    verbs: ["get"]
  - apiGroups: ["apps"]
    resources: ["deployments", "statefulsets"]
    verbs: ["get"]
---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: onap-system-default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: onap-system-default
subjects:
  - kind: ServiceAccount
    name: default
    namespace: onap

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ricaux-system-tiller
rules:
  - apiGroups: [""]
    resources: ["deployments"]
    verbs: ["get", "list", "create", "delete"]
  - apiGroups: ["apiextensions.k8s.io"]
    resources: ["customresourcedefinitions"]
    verbs: ["get", "list", "create", "delete"]
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources: ["clusterroles", "clusterrolebindings"]
    verbs: ["get", "list", "create", "delete"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "patch"]
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["list", "watch", "get"]
  - apiGroups: ["configuration.konghq.com"]
    resources: ["kongconsumers"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["configuration.konghq.com"]
    resources: ["kongcredentials"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["configuration.konghq.com"]
    resources: ["kongingresses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["configuration.konghq.com"]
    resources: ["kongplugins"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["extensions"]
    resources: ["ingresses/status"]
    verbs: ["update"]
  - apiGroups: ["networking.k8s.io"]
    resources: ["ingresses/status"]
    verbs: ["update"]
  - apiGroups: ["networking.k8s.io"]
    resources: ["ingresses"]
    verbs: ["get", "list", "create", "delete", "watch"]
  - apiGroups: ["danm.k8s.io"]
    resources: ["clusternetworks"]
    verbs: ["get", "list", "create", "delete"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "create", "delete"]


---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ricaux-system-tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ricaux-system-tiller
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
EOF
kubectl apply -f ricaux-role.yaml
rm ricaux-role.yaml

kubectl create configmap -n ${AUXNAMESPACE:-ricaux} aux-recipe --from-file=recipe=$OVERRIDEYAML



echo "Clean up dockerdata-nfs directory"
rm -rf /dockerdata-nfs/*


echo "Deploying AUX components [$COMPONENTS]"



for component in $COMPONENTS; do
    helm dep up $DIR/../helm/$component

    # Handle helm2/helm3 arg
    NAME_ARG=""
    if [ -z $IS_HELM3 ]; then
      NAME_ARG=" --name "
    fi

    case "$component" in
            aaf)
                NODENAME=$(kubectl get node | awk 'NR>1{print $1}')
                LABELFOUND=false
                for f in $NODENAME; do
                    LABEL=$(kubectl describe node $f | grep "aaf-storage=enable")
                    if [ ! -z "$LABEL" ]; then
                        LABELFOUND=true
	                echo "Found lable \"aaf-storage=enable\" at node $f"
                    fi
                done
                
                if  ! $LABELFOUND; then
                    echo "***********************************************************************************************"
                    echo "*                                          ERROR!!!!!!!!!!!!!                                 *"
                    echo "***********************************************************************************************"
                    echo "* Nodes label \"aaf-storage=enable\" is not found in any of the cluster node.               *"
                    echo "* Please pick a node and label it using the following command.                                *"
                    echo "* kubectl label --overwrite nodes <YOUR_NODE_NAME> aaf-storage=enable                       *"
                    echo "***********************************************************************************************"
                else
		    helm install -f $OVERRIDEYAML --namespace "onap" ${NAME_ARG} "${RELEASE_PREFIX}-$component" $DIR/../helm/$component
                fi
            ;;
            *)
                helm install -f $OVERRIDEYAML --namespace "${AUXNAMESPACE:-ricaux}" ${NAME_ARG} "${RELEASE_PREFIX}-$component" $DIR/../helm/$component
		sleep 8 
    esac

done
