summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml44
-rw-r--r--tests/vHello_3Node_Tacker.sh37
2 files changed, 58 insertions, 23 deletions
diff --git a/tests/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml b/tests/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
index f6198f1..2210a28 100644
--- a/tests/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
+++ b/tests/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
@@ -12,7 +12,7 @@ topology_template:
artifacts:
VNFImage:
type: tosca.artifacts.Deployment.Image.VM
- file: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
+ file: http://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
capabilities:
nfv_compute:
properties:
@@ -29,6 +29,10 @@ topology_template:
set -x
mkdir /home/ubuntu
chown -R ubuntu /home/ubuntu
+ mkdir /home/ubuntu/.ssh
+ cat << EOM >/home/ubuntu/.ssh/authorized_keys
+ <pubkey>
+ EOM
sudo mount /dev/sr0 /mnt/
mkdir ~/www
mkdir ~/www/html
@@ -60,13 +64,13 @@ topology_template:
</div>
</body></html>
EOM
- wget https://git.opnfv.org/cgit/models/plain/tests/blueprints/tosca-vnfd-hello-ves/favicon.ico -O ~/www/html/favicon.ico
- sudo apt-get install apt-transport-https ca-certificates
- sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
+ wget https://git.opnfv.org/models/plain/tests/blueprints/tosca-vnfd-3node-tacker/favicon.ico -O ~/www/html/favicon.ico
+ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
+ curl -fsSL https://apt.dockerproject.org/gpg | sudo apt-key add -
+ sudo apt-key update
+ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee -a /etc/apt/sources.list.d/docker.list
+ sudo add-apt-repository "deb https://apt.dockerproject.org/repo/ ubuntu-$(lsb_release -cs) main"
sudo apt-get update
- sudo apt-get purge lxc-docker
- sudo apt-get install -y linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-get install -y docker-engine
sudo docker pull nginx
cd ~/www
@@ -102,7 +106,7 @@ topology_template:
artifacts:
VNFImage:
type: tosca.artifacts.Deployment.Image.VM
- file: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
+ file: http://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
capabilities:
nfv_compute:
properties:
@@ -119,6 +123,10 @@ topology_template:
set -x
mkdir /home/ubuntu
chown -R ubuntu /home/ubuntu
+ mkdir /home/ubuntu/.ssh
+ cat << EOM >/home/ubuntu/.ssh/authorized_keys
+ <pubkey>
+ EOM
sudo mount /dev/sr0 /mnt/
mkdir ~/www
mkdir ~/www/html
@@ -150,13 +158,13 @@ topology_template:
</div>
</body></html>
EOM
- wget https://git.opnfv.org/cgit/models/plain/tests/blueprints/tosca-vnfd-hello-ves/favicon.ico -O ~/www/html/favicon.ico
- sudo apt-get install apt-transport-https ca-certificates
- sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
+ wget https://git.opnfv.org/models/plain/tests/blueprints/tosca-vnfd-3node-tacker/favicon.ico -O ~/www/html/favicon.ico
+ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
+ curl -fsSL https://apt.dockerproject.org/gpg | sudo apt-key add -
+ sudo apt-key update
+ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee -a /etc/apt/sources.list.d/docker.list
+ sudo add-apt-repository "deb https://apt.dockerproject.org/repo/ ubuntu-$(lsb_release -cs) main"
sudo apt-get update
- sudo apt-get purge lxc-docker
- sudo apt-get install -y linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-get install -y docker-engine
sudo docker pull nginx
cd ~/www
@@ -192,7 +200,7 @@ topology_template:
artifacts:
VNFImage:
type: tosca.artifacts.Deployment.Image.VM
- file: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
+ file: http://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
capabilities:
nfv_compute:
properties:
@@ -206,6 +214,12 @@ topology_template:
user_data: |
#!/bin/bash
set -x
+ mkdir /home/ubuntu
+ chown -R ubuntu /home/ubuntu
+ mkdir /home/ubuntu/.ssh
+ cat << EOM >/home/ubuntu/.ssh/authorized_keys
+ <pubkey>
+ EOM
echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -m state --state NEW -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination <vdu1_ip>:80
diff --git a/tests/vHello_3Node_Tacker.sh b/tests/vHello_3Node_Tacker.sh
index f7cba37..08375b9 100644
--- a/tests/vHello_3Node_Tacker.sh
+++ b/tests/vHello_3Node_Tacker.sh
@@ -135,6 +135,7 @@ try () {
}
setup () {
+ trap 'fail' ERR
echo "$0: $(date) Setup temp test folder /opt/tacker and copy this script there"
if [ -d /opt/tacker ]; then sudo rm -rf /opt/tacker; fi
sudo mkdir -p /opt/tacker
@@ -178,18 +179,19 @@ setup () {
}
say_hello() {
+ echo "$0: $(date) Testing $1"
pass=false
count=6
- while [[ $count -gt 0 && ! $pass ]]
+ while [[ $count > 0 && $pass != true ]]
do
sleep 10
let count=$count-1
- if [[ $(curl $1} | grep -c "Hello World") > 0 ]]; then
+ if [[ $(curl $1 | grep -c "Hello World") > 0 ]]; then
echo "$0: $(date) Hello World found at $1"
pass=true
fi
done
- if [[ ! $pass ]]; then fail; fi
+ if [[ $pass != true ]]; then fail; fi
}
copy_blueprint() {
@@ -199,15 +201,28 @@ copy_blueprint() {
fi
echo "$0: $(date) copy tosca-vnfd-3node-tacker to blueprints folder"
- cp -r blueprints/tosca-vnfd-3node-tacker /opt/tacker/blueprints
+ cp -r blueprints/tosca-vnfd-3node-tacker /opt/tacker/blueprints/tosca-vnfd-3node-tacker
cp $0 /opt/tacker/.
}
start() {
+ trap 'fail' ERR
+
echo "$0: $(date) setup OpenStack CLI environment"
source /opt/tacker/admin-openrc.sh
+ echo "$0: $(date) Create Nova key pair"
+ if [[ -f /opt/tacker/vHello ]]; then rm /opt/tacker/vHello; fi
+ ssh-keygen -t rsa -N "" -f /opt/tacker/vHello -C ubuntu@vHello
+ chmod 600 /opt/tacker/vHello
+ openstack keypair create --public-key /opt/tacker/vHello.pub vHello
+ assert "models-nova-001 (Keypair creation)" true
+
+ echo "$0: $(date) Inject public key into blueprint"
+ pubkey=$(cat /opt/tacker/vHello.pub)
+ sed -i -- "s~<pubkey>~$pubkey~g" /opt/tacker/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
+
vdus="VDU1 VDU2 VDU3"
vdui="1 2 3"
declare -a vdu_id=()
@@ -218,12 +233,13 @@ start() {
echo "$0: $(date) allocate floating IPs"
get_floating_net
for i in $vdui; do
- vdu_ip[$i]=$(nova floating-ip-create $FLOATING_NETWORK_NAME | awk "/public/ { print \$4 }")
+ vdu_ip[$i]=$(nova floating-ip-create $FLOATING_NETWORK_NAME | awk "/$FLOATING_NETWORK_NAME/ { print \$4 }")
+ echo "$0: $(date) Pre-allocated ${vdu_ip[$i]} to VDU$i"
done
echo "$0: $(date) Inject web server floating IPs into LB code in blueprint"
- sed -i -- "s/<vdu1_ip>/$vdu_ip[1]/" /opt/tacker/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
- sed -i -- "s/<vdu2_ip>/$vdu_ip[2]/" /opt/tacker/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
+ sed -i -- "s/<vdu1_ip>/${vdu_ip[1]}/" /opt/tacker/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
+ sed -i -- "s/<vdu2_ip>/${vdu_ip[2]}/" /opt/tacker/blueprints/tosca-vnfd-3node-tacker/blueprint.yaml
# End setup for workarounds
echo "$0: $(date) create VNFD"
@@ -278,6 +294,8 @@ start() {
neutron security-group-rule-create --direction ingress --protocol TCP --port-range-min 22 --port-range-max 22 vHello
neutron security-group-rule-create --direction ingress --protocol TCP --port-range-min 80 --port-range-max 80 vHello
for i in $vdui; do
+ vdu_id[$i]=$(openstack server list | awk "/VDU$i/ { print \$2 }")
+ echo "$0: $(date) Assigning security groups to VDU$i (${vdu_id[$i]})"
openstack server add security group ${vdu_id[$i]} vHello
openstack server add security group ${vdu_id[$i]} default
done
@@ -300,6 +318,8 @@ start() {
}
stop() {
+ trap 'fail' ERR
+
echo "$0: $(date) setup OpenStack CLI environment"
source /opt/tacker/admin-openrc.sh
@@ -310,8 +330,9 @@ stop() {
if [[ ! -z $id ]]; then
echo "$0: $(date) disassociate floating ip for $vdu"
nova floating-ip-disassociate $id $ip
+ else
+ echo "$0: $(date) No instance for $vdu found"
fi
- echo "$0: $(date) No instance for $vdu found"
done
if [[ "$(tacker vnf-list|grep hello-3node|awk '{print $2}')" != '' ]]; then