summaryrefslogtreecommitdiffstats
path: root/src/dcm/test/dcm_call_api.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/dcm/test/dcm_call_api.sh')
-rwxr-xr-xsrc/dcm/test/dcm_call_api.sh137
1 files changed, 88 insertions, 49 deletions
diff --git a/src/dcm/test/dcm_call_api.sh b/src/dcm/test/dcm_call_api.sh
index 3bf27524..e25a4b6f 100755
--- a/src/dcm/test/dcm_call_api.sh
+++ b/src/dcm/test/dcm_call_api.sh
@@ -14,12 +14,25 @@
# * limitations under the License.
# */
+dcm_addr="http://localhost:9077"
+# parameters
project="test-project"
description="test-description"
logical_cloud_name="lc1"
-logical_cloud_url="http://localhost:9015/v2/projects/${project}/logical-clouds"
+namespace="ns1"
+api_groups=""
+user="user-1"
+permission="permission-1"
+cluster_provider_name="cp-1"
+cluster_1_name="c1"
+cluster_2_name="c2"
+lc_cluster_1_name="lc-cl-1"
+lc_cluster_2_name="lc-cl-2"
quota_name="quota-1"
+
+# endpoints
+logical_cloud_url="$dcm_addr/v2/projects/${project}/logical-clouds"
quota_url="${logical_cloud_url}/${logical_cloud_name}/cluster-quotas"
cluster_url="${logical_cloud_url}/${logical_cloud_name}/cluster-references"
@@ -28,18 +41,18 @@ logical_cloud_data="$(cat << EOF
{
"metadata" : {
"name": "${logical_cloud_name}",
- "description": "${test-description}",
+ "description": "${description}",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec" : {
- "namespace" : "ns-1",
+ "namespace" : "${namespace}",
"user" : {
- "user-name" : "user-1",
+ "user-name" : "${user}",
"type" : "certificate",
"user-permissions" : [
- { "permission-name" : "permission-1",
- "apiGroups" : ["stable.example.com"],
+ { "permission-name" : "${permission}",
+ "apiGroups" : ["${api_groups}"],
"resources" : ["secrets", "pods"],
"verbs" : ["get", "watch", "list", "create"]
}
@@ -53,15 +66,15 @@ EOF
cluster_1_data="$(cat << EOF
{
"metadata" : {
- "name": "lc-cl-1",
- "description": "${test-description}",
+ "name": "${lc_cluster_1_name}",
+ "description": "${description}",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec" : {
- "cluster-provider": "cp-1",
- "cluster-name": "c1",
+ "cluster-provider": "${cluster_provider_name}",
+ "cluster-name": "${cluster_1_name}",
"loadbalancer-ip" : "0.0.0.0"
}
}
@@ -71,15 +84,15 @@ EOF
cluster_2_data="$(cat << EOF
{
"metadata" : {
- "name": "lc-cl-2",
- "description": "${test-description}",
+ "name": "${lc_cluster_2_name}",
+ "description": "${description}",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec" : {
- "cluster-provider": "cp-1",
- "cluster-name": "c2",
+ "cluster-provider": "${cluster_provider_name}",
+ "cluster-name": "${cluster_2_name}",
"loadbalancer-ip" : "0.0.0.1"
}
}
@@ -90,7 +103,7 @@ quota_data="$(cat << EOF
{
"metadata" : {
"name" : "${quota_name}",
- "description": "${test-description}"
+ "description": "${description}"
},
"spec" : {
"limits.cpu": "400",
@@ -98,50 +111,76 @@ quota_data="$(cat << EOF
"requests.cpu": "300",
"requests.memory": "900Gi",
"requests.storage" : "500Gi",
- "requests.ephemeral-storage": "",
- "limits.ephemeral-storage": "",
- "persistentvolumeclaims" : " ",
+ "requests.ephemeral-storage": "500",
+ "limits.ephemeral-storage": "500",
+ "persistentvolumeclaims" : "500",
"pods": "500",
- "configmaps" : "",
- "replicationcontrollers": "",
- "resourcequotas" : "",
- "services": "",
- "services.loadbalancers" : "",
- "services.nodeports" : "",
- "secrets" : "",
- "count/replicationcontrollers" : "",
- "count/deployments.apps" : "",
- "count/replicasets.apps" : "",
- "count/statefulsets.apps" : "",
- "count/jobs.batch" : "",
- "count/cronjobs.batch" : "",
- "count/deployments.extensions" : ""
+ "configmaps" : "1000",
+ "replicationcontrollers": "500",
+ "resourcequotas" : "500",
+ "services": "500",
+ "services.loadbalancers" : "500",
+ "services.nodeports" : "500",
+ "secrets" : "500",
+ "count/replicationcontrollers" : "500",
+ "count/deployments.apps" : "500",
+ "count/replicasets.apps" : "500",
+ "count/statefulsets.apps" : "500",
+ "count/jobs.batch" : "500",
+ "count/cronjobs.batch" : "500",
+ "count/deployments.extensions" : "500"
}
}
EOF
)"
+# Cleanup (delete created resources)
+if [ "$1" == "clean" ]; then
+ printf "\n\nTerminating logical cloud...\n\n"
+ curl -X POST "${logical_cloud_url}/${logical_cloud_name}/terminate"
+ sleep 10
+
+ printf "\n\nDeleting Quota info for the logical cloud\n\n"
+ curl -X DELETE "${quota_url}/${quota_name}"
+
+ printf "\n\nDeleting the two clusters from logical cloud\n\n"
+ curl -X DELETE ${cluster_url}/${lc_cluster_1_name}
+ curl -X DELETE ${cluster_url}/${lc_cluster_2_name}
+
+ printf "\n\nDeleting logical cloud data\n\n"
+ curl -X DELETE ${logical_cloud_url}/${logical_cloud_name}
+elif [ "$1" == "kube" ]; then
+ printf "\n\nFetching kubeconfig for cluster 1:\n\n"
+ curl -X GET "${logical_cloud_url}/${logical_cloud_name}/cluster-references/${lc_cluster_1_name}/kubeconfig" > kubeconfig-${lc_cluster_1_name}
+
+ printf "\n\nFetching kubeconfig for cluster 2:\n\n"
+ curl -X GET "${logical_cloud_url}/${logical_cloud_name}/cluster-references/${lc_cluster_2_name}/kubeconfig" > kubeconfig-${lc_cluster_2_name}
+else
+ printf "\n\nCreating logical cloud data\n\n"
+ curl -d "${logical_cloud_data}" -X POST ${logical_cloud_url}
+
+ printf "\n\nAdding two clusters to logical cloud\n\n"
+ curl -d "${cluster_1_data}" -X POST ${cluster_url}
+ curl -d "${cluster_2_data}" -X POST ${cluster_url}
-# Create logical cloud
-printf "\n\nCreating logical cloud data\n\n"
-curl -d "${logical_cloud_data}" -X POST ${logical_cloud_url}
+ printf "\n\nAdding resource quota for the logical cloud\n\n"
+ curl -d "${quota_data}" -X POST ${quota_url}
-# Associate two clusters with the logical cloud
-printf "\n\nAdding two clusters to logical cloud\n\n"
-curl -d "${cluster_1_data}" -X POST ${cluster_url}
-curl -d "${cluster_2_data}" -X POST ${cluster_url}
+ printf "\n\nGetting logical cloud\n\n"
+ curl -X GET "${logical_cloud_url}/${logical_cloud_name}"
-# Add resource quota for the logical cloud
-printf "\n\nAdding resource quota for the logical cloud\n\n"
-curl -d "${quota_data}" -X POST ${quota_url}
+ printf "\n\nGetting clusters info for logical cloud\n\n"
+ curl -X GET ${cluster_url}
+ printf "\n\nGetting first cluster of logical cloud\n"
+ curl -X GET ${cluster_url}/${lc_cluster_1_name}
-# Get logical cloud data
-printf "\n\nGetting logical cloud\n\n"
-curl -X GET "${logical_cloud_url}/${logical_cloud_name}"
+ printf "\n\nGetting second cluster of logical cloud\n"
+ curl -X GET ${cluster_url}/${lc_cluster_2_name}
-printf "\n\nGetting clusters info for logical cloud\n\n"
-curl -X GET ${cluster_url}
+ printf "\n\nGetting Quota info for the logical cloud\n\n"
+ curl -X GET "${quota_url}/${quota_name}"
-printf "\n\nGetting Quota info for the logical cloud\n\n"
-curl -X GET "${quota_url}/${quota_name}" \ No newline at end of file
+ printf "\n\nApplying logical cloud...\n\n"
+ curl -X POST "${logical_cloud_url}/${logical_cloud_name}/apply"
+fi