blob: 65078497130af978b53ce2a6513836545002e965 [file] [log] [blame]
Carmelo Casconed6615072017-12-15 00:53:43 -08001#!/usr/bin/env bash
2
3set -xe
4
Carmelo Casconec5569c22018-04-18 10:09:15 +09005VM_TYPE=${P4_VM_TYPE:-dev}
6
Carmelo Cascone57defd32018-05-11 14:34:01 -07007function wait_vm_shutdown {
8 set +x
9 while vboxmanage showvminfo $1 | grep -c "running (since"
10 do
11 echo "Waiting for VM to shutdown..."
12 sleep 1
13 done
14 sleep 2
15 set -x
16}
17
Carmelo Casconed6615072017-12-15 00:53:43 -080018# Remove references to the existing vagrant-built VM (if any).
19# We want to build a new one from scratch, not start an existing one.
20rm -rf .vagrant/
Carmelo Casconed6615072017-12-15 00:53:43 -080021vagrant up
22
23SSH_PORT=`vagrant port --guest 22`
24VB_UUID=`cat .vagrant/machines/default/virtualbox/id`
Carmelo Cascone57defd32018-05-11 14:34:01 -070025VMDK_PATH=`VBoxManage showvminfo ${VB_UUID} --machinereadable | grep vmdk | cut -d'=' -f2`
Carmelo Casconed6615072017-12-15 00:53:43 -080026
Carmelo Cascone57defd32018-05-11 14:34:01 -070027# Take snapshot before cleanup for local use
28# e.g. to avoid re-building P4 tools from scratch
29vboxmanage controlvm ${VB_UUID} acpipowerbutton
30wait_vm_shutdown ${VB_UUID}
31VBoxManage snapshot ${VB_UUID} take "pre-cleanup"
32
33# Cleanup
34vagrant up
Carmelo Casconed6615072017-12-15 00:53:43 -080035sshpass -p 'rocks' \
36 ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
37 -p ${SSH_PORT} sdn@127.0.0.1 "bash /vagrant/pre-ova-cleanup.sh"
Carmelo Casconed6615072017-12-15 00:53:43 -080038sleep 5
Carmelo Cascone4f985cd2018-02-11 17:36:42 -080039vboxmanage controlvm ${VB_UUID} acpipowerbutton
Carmelo Cascone57defd32018-05-11 14:34:01 -070040wait_vm_shutdown ${VB_UUID}
Carmelo Casconed6615072017-12-15 00:53:43 -080041
42# Remove vagrant shared folder
43vboxmanage sharedfolder remove ${VB_UUID} -name "vagrant"
44
Carmelo Cascone57defd32018-05-11 14:34:01 -070045rm -f onos-p4-${VM_TYPE}.ova
Carmelo Casconec5569c22018-04-18 10:09:15 +090046vboxmanage export ${VB_UUID} -o onos-p4-${VM_TYPE}.ova
Carmelo Cascone57defd32018-05-11 14:34:01 -070047
48sleep 1
49vboxmanage snapshot ${VB_UUID} restore pre-cleanup
50sleep 1
51vboxmanage snapshot ${VB_UUID} delete pre-cleanup