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_id=cc009bfe-bbee-11e8-9766-525400435678
33 rb_version="plugin_test"
35 profile_name="test_profile"
36 release_name="test-release"
37 namespace="plugin-tests-namespace"
39 cloud_region_owner="localhost"
43 populate_CSAR_fw_rbdefinition "$csar_id"
45 print_msg "Registering resource bundle"
48 "rb-name": "${rb_name}",
49 "rb-version": "${rb_version}",
50 "chart-name": "${chart_name}"
54 call_api -d "${payload}" "${base_url}/rb/definition"
56 print_msg "Uploading resource bundle content"
57 call_api --data-binary "@${CSAR_DIR}/${csar_id}/rb_definition.tar.gz" \
58 "${base_url}/rb/definition/${rb_name}/${rb_version}/content"
60 print_msg "Registering rb's profile"
63 "rb-name": "${rb_name}",
64 "rb-version": "${rb_version}",
65 "profile-name": "${profile_name}",
66 "release-name": "${release_name}",
67 "namespace": "${namespace}"
71 call_api -d "${payload}" "${base_url}/rb/definition/${rb_name}/${rb_version}/profile"
73 print_msg "Uploading profile data"
74 call_api --data-binary "@${CSAR_DIR}/${csar_id}/rb_profile.tar.gz" \
75 "${base_url}/rb/definition/${rb_name}/${rb_version}/profile/${profile_name}/content"
77 print_msg "Setup cloud data"
80 "cloud-region": "$cloud_region_id",
81 "cloud-owner": "$cloud_region_owner"
85 call_api -F "metadata=$payload" \
86 -F "file=@$kubeconfig_path" \
87 "${base_url}/connectivity-info" >/dev/null #massive output
89 print_msg "Creating vFW VNF Instance"
92 "rb-name": "${rb_name}",
93 "rb-version": "${rb_version}",
94 "profile-name": "${profile_name}",
95 "cloud-region": "${cloud_region_id}"
99 response="$(call_api -d "${payload}" "${base_url}/instance")"
101 vnf_id="$(jq -r '.id' <<< "${response}")"
103 print_msg "Validating VNF instance"
104 # Check if all pods are up
105 wait_for_pod -n "${namespace}" -l app=sink
106 wait_for_pod -n "${namespace}" -l app=firewall
107 wait_for_pod -n "${namespace}" -l app=packetgen
108 # TODO: Provide some health check to verify vFW work
110 print_msg "Waiting for VNF instances"
113 print_msg "Retrieving VNF details"
114 call_api "${base_url}/instance/${vnf_id}"
118 print_msg "Deleting VNF Instance"
119 delete_resource "${base_url}/instance/${vnf_id}"
121 print_msg "Deleting Profile"
122 delete_resource "${base_url}/rb/definition/${rb_name}/${rb_version}/profile/${profile_name}"
124 print_msg "Deleting Resource Bundle"
125 delete_resource "${base_url}/rb/definition/${rb_name}/${rb_version}"
127 print_msg "Deleting ${cloud_region_id} cloud region connection"
128 delete_resource "${base_url}/connectivity-info/${cloud_region_id}"