aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Morales <victor.morales@intel.com>2018-09-11 08:50:28 -0700
committerVictor Morales <victor.morales@intel.com>2018-09-11 08:50:28 -0700
commitcb64a5fed1b10daa301235a2ef956b4805da99d3 (patch)
treedf087f339bd7c62d1bae209227393f1ac670872a
parente7a7b50f6fc0f036eeb116f95e8e5fb8d56aa4ef (diff)
Complete Plugin Functional Tests
It was fixed the issue to connect the plugin with the consul DB. This was a main roadblock to complete the functional Tests for the plugin. Change-Id: I3032e82a8f6baf4739c7433a5ffa97dac23daac8 Signed-off-by: Victor Morales <victor.morales@intel.com> Issue-ID: MULTICLOUD-301
-rw-r--r--deployments/docker-compose.yml31
-rwxr-xr-xdeployments/start.sh9
-rwxr-xr-xvagrant/tests/plugin.sh84
3 files changed, 97 insertions, 27 deletions
diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml
index d1b78990..6c9c85ec 100644
--- a/deployments/docker-compose.yml
+++ b/deployments/docker-compose.yml
@@ -14,6 +14,9 @@ version: '2'
services:
multicloud-k8s:
image: nexus3.onap.org:10003/onap/multicloud/k8plugin
+ networks:
+ multicloud_net:
+ ipv4_address: 172.19.0.3
build:
context: ./
args:
@@ -26,18 +29,38 @@ services:
- CSAR_DIR=/opt/csar
- KUBE_CONFIG_DIR=/opt/kubeconfig
- DATABASE_TYPE=consul
- - DATABASE_IP=consul-svr
+ - DATABASE_IP=172.19.0.2
- PLUGINS_DIR=/opt/multicloud/k8s
+ - HTTP_PROXY=$HTTP_PROXY
+ - HTTPS_PROXY=$HTTPS_PROXY
+ - NO_PROXY=$NO_PROXY,172.19.0.2
depends_on:
- - "consul"
+ - consul
+ links:
+ - consul
volumes:
- /opt/csar:/opt/csar
- /opt/kubeconfig:/opt/kubeconfig
consul:
image: consul
- hostname: consul-svr
+ networks:
+ multicloud_net:
+ ipv4_address: 172.19.0.2
environment:
- - CONSUL_LOCAL_CONFIG={"datacenter":"us_west","server":true}
+ CONSUL_CLIENT_INTERFACE: 'eth0'
+ CONSUL_BIND_INTERFACE: 'eth0'
+ HTTP_PROXY: $HTTP_PROXY
+ HTTPS_PROXY: $HTTPS_PROXY
+ NO_PROXY: $NO_PROXY
command: ["agent", "-server", "-bootstrap-expect=1"]
volumes:
- /opt/consul/config:/consul/config
+
+networks:
+ multicloud_net:
+ driver: bridge
+ ipam:
+ driver: default
+ config:
+ -
+ subnet: 172.19.0.0/27
diff --git a/deployments/start.sh b/deployments/start.sh
index 0a14fc35..19c5ff8c 100755
--- a/deployments/start.sh
+++ b/deployments/start.sh
@@ -11,22 +11,25 @@
set -o nounset
set -o pipefail
+source /etc/environment
+
k8s_path="$(git rev-parse --show-toplevel)"
export GOPATH=$k8s_path
export CSAR_DIR=/opt/csar
export KUBE_CONFIG_DIR=/opt/kubeconfig
export DATABASE_TYPE=consul
-export DATABASE_IP=consul-svr
export PLUGINS_DIR=$k8s_path/src/k8splugin/plugins
echo "Starting consul services"
docker-compose kill
docker-compose up -d consul
-echo "Compiling source code"
+export DATABASE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' deployments_consul_1)
+export no_proxy=$no_proxy,$DATABASE_IP
+export NO_PROXY=$NO_PROXY,$DATABASE_IP
+echo "Compiling source code"
pushd $k8s_path/src/k8splugin/
-make clean
make plugins
go run cmd/main.go
popd
diff --git a/vagrant/tests/plugin.sh b/vagrant/tests/plugin.sh
index 2c01c517..744b2207 100755
--- a/vagrant/tests/plugin.sh
+++ b/vagrant/tests/plugin.sh
@@ -12,12 +12,11 @@ set -o errexit
set -o nounset
set -o pipefail
-base_url="http://localhost:8081/v1/vnf_instances/"
-cloud_region_id="krd"
-namespace="default"
-csar_id="94e414f6-9ca4-11e8-bb6a-52540067263b"
-
-if [[ -z $(docker images -q generic_sim) ]]; then
+# _build_generic_sim() - Creates a generic simulator image in case that doesn't exist
+function _build_generic_sim {
+ if [[ -n $(docker images -q generic_sim) ]]; then
+ return
+ fi
BUILD_ARGS="--no-cache"
if [ $HTTP_PROXY ]; then
BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
@@ -25,30 +24,37 @@ if [[ -z $(docker images -q generic_sim) ]]; then
if [ $HTTPS_PROXY ]; then
BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
fi
+
pushd generic_simulator
+ echo "Building generic simulator image..."
docker build ${BUILD_ARGS} -t generic_sim:latest .
popd
-fi
-
-if [[ $(docker ps -q --all --filter "name=aai") ]]; then
- docker rm aai -f
-fi
-docker run --name aai -v $(mktemp):/tmp/generic_sim/ -v $(pwd)/generic_simulator/aai/:/etc/generic_sim/ -p 8443:8080 -d generic_sim
+}
-vnf_id_list=$(curl -s "${base_url}${cloud_region_id}/${namespace}" | jq -r '.vnf_id_list')
+# start_aai_service() - Starts a simulator for AAI service
+function start_aai_service {
+ _build_generic_sim
+ if [[ $(docker ps -q --all --filter "name=aai") ]]; then
+ docker rm aai -f
+ fi
+ echo "Start AAI simulator.."
+ docker run --name aai -v $(mktemp):/tmp/generic_sim/ -v $(pwd)/generic_simulator/aai/:/etc/generic_sim/ -p 8443:8080 -d generic_sim
+}
-mkdir -p ${CSAR_DIR}/${csar_id}
-cat << SEQ > ${CSAR_DIR}/${csar_id}/metadata.yaml
+# populate_csar_dir()- Creates content used for Functional tests
+function populate_csar_dir {
+ mkdir -p ${CSAR_DIR}/${csar_id}
+ cat << SEQ > ${CSAR_DIR}/${csar_id}/metadata.yaml
deployment:
- deployment.yaml
service:
- service.yaml
SEQ
-cat << DEPLOYMENT > ${CSAR_DIR}/${csar_id}/deployment.yaml
+ cat << DEPLOYMENT > ${CSAR_DIR}/${csar_id}/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
- name: multus-deployment
+ name: $deployment_name
labels:
app: multus
spec:
@@ -73,11 +79,11 @@ spec:
stdin: true
tty: true
DEPLOYMENT
-cat << SERVICE > ${CSAR_DIR}/${csar_id}/service.yaml
+ cat << SERVICE > ${CSAR_DIR}/${csar_id}/service.yaml
apiVersion: v1
kind: Service
metadata:
- name: sise-svc
+ name: $service_name
spec:
ports:
- port: 80
@@ -85,7 +91,20 @@ spec:
selector:
app: sise
SERVICE
+}
+
+# Configuration
+base_url="http://localhost:8081/v1/vnf_instances/"
+cloud_region_id="krd"
+namespace="default"
+csar_id="94e414f6-9ca4-11e8-bb6a-52540067263b"
+deployment_name="plugin_functional_test_deployment"
+service_name="plugin_functional_test_service"
+
+#start_aai_service
+populate_csar_dir
+#Functional Tests execution
payload_raw="
{
\"cloud_region_id\": \"$cloud_region_id\",
@@ -94,4 +113,29 @@ payload_raw="
}
"
payload=$(echo $payload_raw | tr '\n' ' ')
-curl -v -d "$payload" "${base_url}"
+echo "Creating VNF Instance"
+curl -d "$payload" "${base_url}"
+
+vnf_id=$(curl -s -X GET "${base_url}${cloud_region_id}/${namespace}" | jq -r '.vnf_id_list[0]')
+if [[ -z "$vnf_id" ]]; then
+ echo "VNF Instance not created"
+ exit 1
+fi
+echo "VNF Instance created succesfully with id: $vnf_id"
+#kubectl get deployment $deployment_name
+#kubectl get service $service_name
+
+vnf_details=$(curl -s -X GET "${base_url}${cloud_region_id}/${namespace}/${vnf_id}")
+if [[ -z "$vnf_details" ]]; then
+ echo "Cannot retrieved VNF Instance details"
+ exit 1
+fi
+echo "VNF details $vnf_details"
+
+echo "Deleting $vnf_id VNF Instance"
+curl -X DELETE "${base_url}${cloud_region_id}/${namespace}/${vnf_id}"
+if [[ -n $(curl -s -X GET "${base_url}${cloud_region_id}/${namespace}/${vnf_id}") ]]; then
+ echo "VNF Instance not deleted"
+ exit 1
+fi
+docker logs deployments_multicloud-k8s_1