Adaptation of test env to helm chart

Restructuring to use http proxy for all access to docker containers

Adding tests for dmaap adapter and mediator

Issue-ID: NONRTRIC-618

Signed-off-by: BjornMagnussonXA <bjorn.magnusson@est.tech>
Change-Id: I43799771d73140c7abbc63db9f9b28bb353474a1
diff --git a/test/common/clean_kube.sh b/test/common/clean_kube.sh
index 8e2f676..405c194 100755
--- a/test/common/clean_kube.sh
+++ b/test/common/clean_kube.sh
@@ -28,64 +28,164 @@
 EYELLOW="\033[0m"
 SAMELINE="\033[0K\r"
 
-__kube_delete_all_resources() {
-	echo "Deleting all from namespace: "$1
+__kube_scale_all_resources() {
+
+	echo " Scaling down in namespace $1 ..."
 	namespace=$1
-	resources="deployments replicaset statefulset services pods configmaps pvc pv"
-	deleted_resourcetypes=""
+	resources="deployment replicaset statefulset"
 	for restype in $resources; do
 		result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
 		if [ $? -eq 0 ] && [ ! -z "$result" ]; then
-			deleted_resourcetypes=$deleted_resourcetypes" "$restype
 			for resid in $result; do
-				if [ $restype == "replicaset" ] || [ $restype == "statefulset" ]; then
-					kubectl scale  $restype $resid -n $namespace --replicas=0 1> /dev/null 2> /dev/null
-					T_START=$SECONDS
-					count=1
-					while [ $count -ne 0 ]; do
-						count=$(kubectl get $restype $resid  -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null)
-						echo -ne "  Scaling $restype $resid from namespace $namespace with label autotest to 0,count=$count....$(($SECONDS-$T_START)) seconds"$SAMELINE
-						if [ $? -eq 0 ] && [ ! -z "$count" ]; then
-							sleep 0.5
-						else
-							count=0
-						fi
-					done
-					echo -e "  Scaled $restype $resid from namespace $namespace with label $labelname=$labelid to 0,count=$count....$(($SECONDS-$T_START)) seconds$GREEN OK $EGREEN"
+				count=$(kubectl get $restype $resid  -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null)
+				if [ $? -eq 0 ] && [ ! -z "$count" ]; then
+					if [ $count -ne 0 ]; then
+						echo "  Scaling $restype $resid in namespace $namespace with label autotest to 0, current count=$count."
+						kubectl scale  $restype $resid -n $namespace --replicas=0 1> /dev/null 2> /dev/null
+					fi
 				fi
-				echo -ne "  Deleting $restype $resid from namespace $namespace with label autotest "$SAMELINE
-				kubectl delete $restype $resid -n $namespace 1> /dev/null 2> /dev/null
-				if [ $? -eq 0 ]; then
-					echo -e "  Deleted $restype $resid from namespace $namespace with label autotest $GREEN OK $EGREEN"
-				else
-					echo -e "  Deleted $restype $resid from namespace $namespace with label autotest $GREEN Does not exist - OK $EGREEN"
-				fi
-				#fi
 			done
 		fi
 	done
-	if [ ! -z "$deleted_resourcetypes" ]; then
-		for restype in $deleted_resources; do
-			echo -ne "  Waiting for $restype in namespace $namespace with label autotest to be deleted..."$SAMELINE
-			T_START=$SECONDS
-			result="dummy"
-			while [ ! -z "$result" ]; do
-				sleep 0.5
-				result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
-				echo -ne "  Waiting for $restype in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds "$SAMELINE
-				if [ -z "$result" ]; then
-					echo -e " Waiting for $restype in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN"
-				elif [ $(($SECONDS-$T_START)) -gt 300 ]; then
-					echo -e " Waiting for $restype in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $RED Failed $ERED"
-					result=""
+}
+
+__kube_wait_for_zero_count() {
+	echo " Wait for scaling to zero in namespace $1 ..."
+	namespace=$1
+	resources="deployment replicaset statefulset"
+	for restype in $resources; do
+		result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+		if [ $? -eq 0 ] && [ ! -z "$result" ]; then
+			for resid in $result; do
+				T_START=$SECONDS
+				count=1
+				scaled=0
+				while [ $count -gt 0 ]; do
+					count=$(kubectl get $restype $resid  -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null)
+					if [ $? -eq 0 ] && [ ! -z "$count" ]; then
+						if [ $count -ne 0 ]; then
+							echo -ne "  Scaling $restype $resid in namespace $namespace with label autotest to 0, current count=$count....$(($SECONDS-$T_START)) seconds"$SAMELINE
+							scaled=1
+						else
+							sleep 0.5
+						fi
+					else
+						count=0
+					fi
+				done
+				if [ $scaled -eq 1 ]; then
+					echo -e "  Scaling $restype $resid in namespace $namespace with label autotest to 0, current count=$count....$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN"
 				fi
 			done
-		done
-	fi
+		fi
+	done
 }
-echo "Will remove all kube resources marked with label 'autotest'"
-__kube_delete_all_resources nonrtric
-__kube_delete_all_resources nonrtric-ft
-__kube_delete_all_resources onap
 
+__kube_delete_all_resources() {
+	echo " Delete all in namespace $1 ..."
+	namespace=$1
+	resources="deployments replicaset statefulset services pods configmaps pvc "
+	for restype in $resources; do
+		result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+		if [ $? -eq 0 ] && [ ! -z "$result" ]; then
+			for resid in $result; do
+				echo  "  Deleting $restype $resid in namespace $namespace with label autotest "
+				kubectl delete $restype $resid -n $namespace 1> /dev/null 2> /dev/null
+			done
+		fi
+	done
+}
+
+__kube_delete_all_pv() {
+	echo " Delete pv ..."
+	resources="pv"
+	for restype in $resources; do
+		result=$(kubectl get $restype -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+		if [ $? -eq 0 ] && [ ! -z "$result" ]; then
+			for resid in $result; do
+				echo  "  Deleting $restype $resid with label autotest "
+				kubectl delete $restype $resid 1> /dev/null 2> /dev/null
+			done
+		fi
+	done
+}
+
+__kube_wait_for_delete() {
+	echo " Wait for delete in namespace $1 ..."
+	namespace=$1
+	resources="deployments replicaset statefulset services pods configmaps pvc "
+	for restype in $resources; do
+		result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+		if [ $? -eq 0 ] && [ ! -z "$result" ]; then
+			for resid in $result; do
+				echo  "  Deleting $restype $resid in namespace $namespace with label autotest "
+				kubectl delete $restype $resid -n $namespace #1> /dev/null 2> /dev/null
+				echo -ne "  Waiting for $restype $resid in namespace $namespace with label autotest to be deleted..."$SAMELINE
+				T_START=$SECONDS
+				result="dummy"
+				while [ ! -z "$result" ]; do
+					sleep 0.5
+					result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+					echo -ne "  Waiting for $restype $resid in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds "$SAMELINE
+					if [ -z "$result" ]; then
+						echo -e " Waiting for $restype $resid in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN"
+					elif [ $(($SECONDS-$T_START)) -gt 300 ]; then
+						echo -e " Waiting for $restype $resid in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $RED Failed $ERED"
+						result=""
+					fi
+				done
+			done
+		fi
+	done
+}
+
+__kube_wait_for_delete_pv() {
+	echo " Wait for delete pv ..."
+	resources="pv "
+	for restype in $resources; do
+		result=$(kubectl get $restype -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+		if [ $? -eq 0 ] && [ ! -z "$result" ]; then
+			for resid in $result; do
+				echo  "  Deleting $restype $resid with label autotest "
+				kubectl delete $restype $resid -n $namespace #1> /dev/null 2> /dev/null
+				echo -ne "  Waiting for $restype $resid with label autotest to be deleted..."$SAMELINE
+				T_START=$SECONDS
+				result="dummy"
+				while [ ! -z "$result" ]; do
+					sleep 0.5
+					result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}')
+					echo -ne "  Waiting for $restype $resid with label autotest to be deleted...$(($SECONDS-$T_START)) seconds "$SAMELINE
+					if [ -z "$result" ]; then
+						echo -e " Waiting for $restype $resid with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN"
+					elif [ $(($SECONDS-$T_START)) -gt 300 ]; then
+						echo -e " Waiting for $restype $resid with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $RED Failed $ERED"
+						result=""
+					fi
+				done
+			done
+		fi
+	done
+}
+
+
+echo "Will remove all kube resources marked with label 'autotest'"
+
+# List all namespace and scale/delete per namespace
+nss=$(kubectl get ns  -o jsonpath='{.items[*].metadata.name}')
+if [ ! -z "$nss" ]; then
+	for ns in $nss; do
+		__kube_scale_all_resources $ns
+	done
+	for ns in $nss; do
+		__kube_wait_for_zero_count $ns
+	done
+	for ns in $nss; do
+		__kube_delete_all_resources $ns
+	done
+	__kube_delete_all_pv
+	for ns in $nss; do
+		__kube_wait_for_delete $ns
+	done
+	__kube_wait_for_delete_pv
+fi
 echo "Done"
\ No newline at end of file