#!/bin/bash

echo ""
echo "Namespace;Name;Type;Replicas" > /tmp/k8s_get_pods_with_pvc
echo "" > /tmp/k8s_get_pods_with_pvc_cmds_down
echo "" > /tmp/k8s_get_pods_with_pvc_cmds_up

for pod in $(kubectl get pods -A --field-selector=status.phase=Running -l '!dag_id' -o=json | jq -c '.items[] | {name: .metadata.name, namespace: .metadata.namespace, ownerkind: .metadata.ownerReferences[].kind, ownername: .metadata.ownerReferences[].name, claimName: .spec |  select( has ("volumes") ).volumes[] | select( has ("persistentVolumeClaim") ).persistentVolumeClaim.claimName }') ; do
    pod_name=$(echo $pod | jq -r .name)
    pod_namespace=$(echo $pod | jq -r .namespace)
    pod_owner_kind=$(echo $pod | jq -r .ownerkind)
    pod_owner_name=$(echo $pod | jq -r .ownername)
    if [[ $pod_owner_kind == "ReplicaSet" ]] ; then
        pod_owner_kind=$(kubectl get rs $pod_owner_name -n $pod_namespace -o json | jq -r .metadata.ownerReferences[].kind)
        pod_owner_name=$(kubectl get rs $pod_owner_name -n $pod_namespace -o json | jq -r .metadata.ownerReferences[].name)
    fi
    replicas=$(kubectl get $pod_owner_kind $pod_owner_name -n $pod_namespace -o json | jq -r .spec.replicas)
    echo "$pod_namespace;$pod_owner_name;$pod_owner_kind;$replicas" >> /tmp/k8s_get_pods_with_pvc
    echo "kubectl scale $pod_owner_kind -n $pod_namespace $pod_owner_name --replicas=0" >> /tmp/k8s_get_pods_with_pvc_cmds_down
    echo "kubectl scale $pod_owner_kind -n $pod_namespace $pod_owner_name --replicas=$replicas" >> /tmp/k8s_get_pods_with_pvc_cmds_up
done

count=$(wc -l /tmp/k8s_get_pods_with_pvc | cut -d " " -f 1)
count=$((count-1))

echo "$count pods avec un pvc attached"
echo ""

python3 -c "import sys,prettytable; print(prettytable.from_csv(sys.stdin))" < /tmp/k8s_get_pods_with_pvc

echo ""

count_lh=$(kubectl get volume -n longhorn-system | grep attached | wc -l | cut -d " " -f 1)

echo "Nombre de volumes attached trouves dans le ns longhorn : $count_lh"

echo ""

echo "Down commands : "
cat /tmp/k8s_get_pods_with_pvc_cmds_down

echo ""
echo "Up commands : "
cat /tmp/k8s_get_pods_with_pvc_cmds_up

echo ""
