mirror of
				https://github.com/opennetworkinglab/onos.git
				synced 2025-10-31 08:11:00 +01:00 
			
		
		
		
	- Modify missing command in tutorial-bootstrap.sh - Modify command order in ova-cleanup.sh - Modify the way to execute ovs-cleanup.sh in vm Change-Id: Ib010d07b31d9b06f3c4b04d34b2036c0058ca300 (cherry picked from commit f1a04004363d2c59108ad3ca9277c09ec1a2167a)
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -xe
 | |
| 
 | |
| VM_TYPE=${1:-dev}
 | |
| USE_STRATUM=${USE_STRATUM:-false}
 | |
| STRATUM_BMV2_TAR=${STRATUM_BMV2_TAR-unknown}
 | |
| 
 | |
| DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 | |
| 
 | |
| function wait_vm_shutdown {
 | |
|     set +x
 | |
|     while vboxmanage showvminfo $1 | grep -c "running (since"; do
 | |
|     echo "Waiting for VM to shutdown..."
 | |
|     sleep 1
 | |
|     done
 | |
|     sleep 2
 | |
|     set -x
 | |
| }
 | |
| 
 | |
| function wait_for_tcp_port {
 | |
|     set +x
 | |
|     while ! nc -z $1 $2; do
 | |
|     echo "Waiting for TCP port $2 on $1 to be open..."
 | |
|     sleep 1
 | |
|     done
 | |
|     sleep 2
 | |
|     set -x
 | |
| }
 | |
| 
 | |
| rm -rf ./tmp
 | |
| if [[ ${VM_TYPE} = "tutorial" ]]
 | |
| then
 | |
|     bazel build //:onos
 | |
|     bazel build //:onos-package-admin
 | |
|     rm -rf ~/.m2/repository/org/onosproject
 | |
|     cd ${ONOS_ROOT}
 | |
|     onos-publish -l
 | |
|     cd ${DIR}
 | |
|     mkdir -p ./tmp
 | |
|     cp ../../../bazel-bin/onos.tar.gz ./tmp/onos.tar.gz
 | |
|     cp ../../../bazel-bin/onos-admin.tar.gz ./tmp/onos-admin.tar.gz
 | |
|     cp ../mininet/bmv2.py ./tmp/bmv2.py
 | |
|     mv ~/.m2/repository/org/onosproject ./tmp/artifacts
 | |
|     if [[ ${USE_STRATUM} = true ]]
 | |
|     then
 | |
|         cp ${STRATUM_BMV2_TAR} ./tmp/stratum_bmv2.tar.gz
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| # Initial provisioning if necessary.
 | |
| USE_STRATUM=${USE_STRATUM} vagrant up ${VM_TYPE}
 | |
| 
 | |
| rm -rf ./tmp
 | |
| 
 | |
| SSH_PORT=`vagrant port --guest 22 ${VM_TYPE}`
 | |
| VB_UUID=`cat .vagrant/machines/${VM_TYPE}/virtualbox/id`
 | |
| 
 | |
| if [[ ${VM_TYPE} = "dev" ]]
 | |
| then
 | |
|     # Take snapshot before cleanup for local use
 | |
|     # e.g. to avoid re-building P4 tools from scratch
 | |
|     vboxmanage controlvm ${VB_UUID} acpipowerbutton
 | |
|     wait_vm_shutdown ${VB_UUID}
 | |
|     VBoxManage snapshot ${VB_UUID} take "pre-cleanup"
 | |
|     vagrant up ${VM_TYPE}
 | |
|     # SSH port forwarding might change after vagrant up.
 | |
|     SSH_PORT=`vagrant port --guest 22 ${VM_TYPE}`
 | |
|     wait_for_tcp_port 127.0.0.1 ${SSH_PORT}
 | |
| fi
 | |
| 
 | |
| # Cleanup
 | |
| vagrant ssh -c 'bash /vagrant/ova-cleanup.sh' ${VM_TYPE}
 | |
| sleep 5
 | |
| vboxmanage controlvm ${VB_UUID} acpipowerbutton
 | |
| wait_vm_shutdown ${VB_UUID}
 | |
| 
 | |
| # Remove vagrant shared folder
 | |
| vboxmanage sharedfolder remove ${VB_UUID} -name "vagrant"
 | |
| 
 | |
| rm -f onos-p4-${VM_TYPE}.ova
 | |
| vboxmanage export ${VB_UUID} -o onos-p4-${VM_TYPE}.ova
 | |
| 
 | |
| if [[ ${VM_TYPE} = "dev" ]]
 | |
| then
 | |
|     sleep 1
 | |
|     vboxmanage snapshot ${VB_UUID} restore pre-cleanup
 | |
|     sleep 1
 | |
|     vboxmanage snapshot ${VB_UUID} delete pre-cleanup
 | |
| fi
 |