2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
16 source _common_test.sh
21 if [ "$1" == "--external" ]; then
22 master_ip=$(kubectl cluster-info | grep "Kubernetes master" | \
23 awk -F ":" '{print $2}' | awk -F "//" '{print $2}')
24 onap_svc_node_port=30498
25 base_url="http://$master_ip:$onap_svc_node_port/v1"
29 base_url=${base_url:-"http://localhost:9015/v1"}
30 kubeconfig_path="$HOME/.kube/config"
31 csar_eaa_id=8030a02a-7253-11ea-bc55-0242ac130003
32 csar_sample_app_id=150da0b3-aa8c-481e-b661-2620b810765e
34 rb_sample_app_name="sample_app"
35 rb_version="plugin_test"
37 chart_sample_app_name="sample-app"
38 profile_eaa_name="test_eaa_profile"
39 profile_sample_app_name="test_sample_app_profile"
40 release_name="test-release"
41 namespace_eaa="openness"
42 namespace_sample_app="default"
44 cloud_region_owner="localhost"
48 populate_CSAR_eaa_rbdefinition "$csar_eaa_id"
50 print_msg "Registering resource bundle for EAA"
53 "rb-name": "${rb_eaa_name}",
54 "rb-version": "${rb_version}",
55 "chart-name": "${chart_eaa_name}"
59 call_api -d "${payload}" "${base_url}/rb/definition"
61 print_msg "Uploading resource bundle content for EAA"
62 call_api --data-binary "@${CSAR_DIR}/${csar_eaa_id}/rb_definition.tar.gz" \
63 "${base_url}/rb/definition/${rb_eaa_name}/${rb_version}/content"
65 print_msg "Registering rb's profile for EAA"
68 "rb-name": "${rb_eaa_name}",
69 "rb-version": "${rb_version}",
70 "profile-name": "${profile_eaa_name}",
71 "release-name": "${release_name}",
72 "namespace": "${namespace_eaa}"
76 call_api -d "${payload}" "${base_url}/rb/definition/${rb_eaa_name}/${rb_version}/profile"
78 print_msg "Uploading profile data for EAA"
79 call_api --data-binary "@${CSAR_DIR}/${csar_eaa_id}/rb_profile.tar.gz" \
80 "${base_url}/rb/definition/${rb_eaa_name}/${rb_version}/profile/${profile_eaa_name}/content"
82 print_msg "Setup cloud data"
85 "cloud-region": "$cloud_region_id",
86 "cloud-owner": "$cloud_region_owner"
90 call_api -F "metadata=$payload" \
91 -F "file=@$kubeconfig_path" \
92 "${base_url}/connectivity-info" >/dev/null #massive output
94 print_msg "Creating EAA"
97 "rb-name": "${rb_eaa_name}",
98 "rb-version": "${rb_version}",
99 "profile-name": "${profile_eaa_name}",
100 "cloud-region": "${cloud_region_id}"
104 response="$(call_api -d "${payload}" "${base_url}/instance")"
106 vnf_eaa_id="$(jq -r '.id' <<< "${response}")"
108 wait_for_deployment eaa 1
110 #Create sample producer and sample consumer
111 populate_CSAR_eaa_sample_app_rbdefinition "$csar_sample_app_id"
113 print_msg "Registering resource bundle for Sample App"
116 "rb-name": "${rb_sample_app_name}",
117 "rb-version": "${rb_version}",
118 "chart-name": "${chart_sample_app_name}"
122 call_api -d "${payload}" "${base_url}/rb/definition"
124 print_msg "Uploading resource bundle content for Sample App"
125 call_api --data-binary "@${CSAR_DIR}/${csar_sample_app_id}/rb_definition.tar.gz" \
126 "${base_url}/rb/definition/${rb_sample_app_name}/${rb_version}/content"
128 print_msg "Registering rb's profile for Sample App"
131 "rb-name": "${rb_sample_app_name}",
132 "rb-version": "${rb_version}",
133 "profile-name": "${profile_sample_app_name}",
134 "release-name": "${release_name}",
135 "namespace": "${namespace_sample_app}"
139 call_api -d "${payload}" "${base_url}/rb/definition/${rb_sample_app_name}/${rb_version}/profile"
141 print_msg "Uploading profile data for Sample App"
142 call_api --data-binary "@${CSAR_DIR}/${csar_sample_app_id}/rb_profile.tar.gz" \
143 "${base_url}/rb/definition/${rb_sample_app_name}/${rb_version}/profile/${profile_sample_app_name}/content"
145 print_msg "Creating Sample Apps: producer and consumer"
148 "rb-name": "${rb_sample_app_name}",
149 "rb-version": "${rb_version}",
150 "profile-name": "${profile_sample_app_name}",
151 "cloud-region": "${cloud_region_id}"
155 response="$(call_api -d "${payload}" "${base_url}/instance")"
157 vnf_sample_app_id="$(jq -r '.id' <<< "${response}")"
159 wait_for_deployment producer 1
160 wait_for_deployment consumer 1
162 print_msg "Validating EAA is running"
163 kubectl get --namespace=${namespace_eaa} pods | grep eaa
165 print_msg "Validating sample producer and sample consumer are running"
166 kubectl get --namespace=${namespace_sample_app} pods | grep producer
167 kubectl get --namespace=${namespace_sample_app} pods | grep consumer
169 print_msg "Validating logs of EAA"
170 EAA=`kubectl get --namespace=${namespace_eaa} pods | grep eaa | awk '{print $1}'`
171 kubectl logs --namespace=${namespace_eaa} ${EAA}
173 print_msg "Validating logs of sample producer and sample consumer"
174 # sleep 5 seconds to let producer and consumer generate some logs
176 PRODUCER=`kubectl get --namespace=${namespace_sample_app} pods | grep producer | awk '{print $1}'`
177 CONSUMER=`kubectl get --namespace=${namespace_sample_app} pods | grep consumer | awk '{print $1}'`
178 kubectl logs --namespace=${namespace_sample_app} ${PRODUCER}
179 kubectl logs --namespace=${namespace_sample_app} ${CONSUMER}
181 print_msg "Retrieving EAA details"
182 call_api "${base_url}/instance/${vnf_eaa_id}"
184 print_msg "Retrieving Sample App details"
185 call_api "${base_url}/instance/${vnf_sample_app_id}"
188 print_msg "Deleting sample apps: producer and consumer"
189 delete_resource "${base_url}/instance/${vnf_sample_app_id}"
191 print_msg "Deleting Profile for sample app"
192 delete_resource "${base_url}/rb/definition/${rb_sample_app_name}/${rb_version}/profile/${profile_sample_app_name}"
194 print_msg "Deleting Resource Bundle for sample app"
195 delete_resource "${base_url}/rb/definition/${rb_sample_app_name}/${rb_version}"
197 print_msg "Deleting EAA"
198 delete_resource "${base_url}/instance/${vnf_eaa_id}"
200 print_msg "Deleting Profile for EAA"
201 delete_resource "${base_url}/rb/definition/${rb_eaa_name}/${rb_version}/profile/${profile_eaa_name}"
203 print_msg "Deleting Resource Bundle for EAA"
204 delete_resource "${base_url}/rb/definition/${rb_eaa_name}/${rb_version}"
206 print_msg "Deleting ${cloud_region_id} cloud region connection"
207 delete_resource "${base_url}/connectivity-info/${cloud_region_id}"