Skip to content

Instantly share code, notes, and snippets.

@cdoan1
Last active June 18, 2021 17:22
Show Gist options
  • Save cdoan1/985d57b80ff38b1acf4b02f9b78c4750 to your computer and use it in GitHub Desktop.
Save cdoan1/985d57b80ff38b1acf4b02f9b78c4750 to your computer and use it in GitHub Desktop.
AppSub Testing
datestring() {
sdate=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" $1 "+%s")
edate=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" $2 "+%s")
delta=$(( (edate - sdate) / 60 ))
echo "$delta"
}
extract() {
appsub_name_local=$1
appsub_name=$(echo $1 | sed 's/-local//g')
appsub_ns=$2
appsub=$(oc get appsub $appsub_name_local -o yaml -n $appsub_ns)
appsub_creation_base=$(oc get appsub $appsub_name -o yaml -n $appsub_ns | grep "creationTimestamp" | awk '{print $2}' | xargs)
appsub_creation_local=$(oc get appsub $appsub_name_local -o yaml -n $appsub_ns | grep "creationTimestamp" | awk '{print $2}' | xargs)
appsub_lastUpdateTime=$(echo $appsub | grep " lastUpdateTime:" | sed 's/^[ \t]*//' | sort -u | tail -n 1)
first=$(oc get appsub $appsub_name_local -o yaml -n $appsub_ns | grep " lastUpdateTime:" | sed 's/^[ \t]*//' | sort -u | head -n 1 | awk '{print $2}' | xargs)
second=$(oc get appsub $appsub_name_local -o yaml -n $appsub_ns | grep " lastUpdateTime:" | sed 's/^[ \t]*//' | sort -u | tail -n 1 | awk '{print $2}' | xargs)
echo "appsub creation : $appsub_creation_base"
echo "appsub creation local : $appsub_creation_local"
echo "first resource lastUpdateTime : $first"
echo "last resource lastUpdateTIme : $second"
echo "duration to subscribe all resources : "$(datestring $first $second)
echo "duration from appsub local to final subscribe : "$(datestring $appsub_creation_local $second)
echo "duration from appsub to final subscribe : "$(datestring $appsub_creation_base $second)
echo "resources created (cm) : "$(oc get cm -n $3 | wc -l | xargs )
echo "---"
}
extract appsub-scale-test-1k-subscription-1-local appsub-scale-test-1k scale-default
extract appsub-scale-test-1k2-subscription-1-local appsub-scale-test-1k2 scale-default-2
extract appsub-scale-test-1k3-subscription-1-local appsub-scale-test-1k3 scale-default-3
extract appsub-scale-test-1k4-subscription-1-local appsub-scale-test-1k4 appsub-scale-test-1k4
extract appsub-scale-test-1k5-subscription-1-local appsub-scale-test-1k5 appsub-scale-test-1k5
datestring() {
sdate=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" $1 "+%s")
edate=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" $2 "+%s")
delta=$(( (edate - sdate) / 60 ))
echo "$delta"
}
resource_list=(
"Namespace"
"NMStateConfig"
"AgentClusterInstall"
"ClusterDeployment"
"KlusterletAddonConfig"
"ManagedCluster"
"InfraEnv"
"BareMetalHost"
)
for resource in ${resource_list[*]}; do
echo $resource
count=`oc get $resource -A --sort-by={.metadata.creationTimestamp} --no-headers -o custom-columns=NAME:.metadata.name,CREATED:.metadata.creationTimestamp | grep sno | wc -l`
all=`oc get $resource -A --sort-by={.metadata.creationTimestamp} --no-headers -o custom-columns=NAME:.metadata.name,CREATED:.metadata.creationTimestamp | grep sno`
SA=(`echo $all | head -n 1`)
L1="${#SA[@]}"
FA=(`echo $all | tail -n 1`)
L2="${#FA[@]}"
echo "COUNT: $count"
echo "first start: ${SA[1]}"
echo "last start: ${SA[$L1 - 1]}"
echo "first finish: ${FA[1]}"
echo "last finish: ${FA[$L2 - 1]}"
echo "first delta: $(datestring ${SA[1]} ${FA[1]}) min"
echo "resource delta: $(datestring ${SA[1]} ${FA[$L2 - 1]}) min"
done
appsub_name=appsub ai-gitops-t2-subscription-1-local
appsub_ns=ai-gitops-t2
appsub=$(oc get appsub $appsub_name -o yaml -n $appsub_ns)
appsub_creation=$(oc get appsub $appsub_name -o yaml -n $appsub_ns | grep creationTimestamp | awk '{print $2}')
appsub_lastUpdateTime=$(echo $appsub | grep lastUpdateTime | sed 's/^[ \t]*//' | sort -u | tail -n 1)
appsub_lastTransitionTime=$(echo $appsub | grep lastTransitionTime | sed 's/^[ \t]*//' | sort -u | tail -n 1)
echo "appsub start: $appsub_creation"
echo "appsub start: $appsub_lastUpdateTime"
echo "appsub start: $appsub_lastTransitionTime"
@cdoan1
Copy link
Author

cdoan1 commented May 26, 2021

NOTE: developed and run on macos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment