#!/bin/bash # # Simple VLANd test script set -e NAME="simple-TPLinkTLSG2XXX-1" DESCRIPTION="Check VLAN isolation for 2 machines on the same switch" # List all the switches and hosts we need to use, if not using all of # them. We can make tests run faster by not involving *all* of them in # every test. HOSTS="arndale04 imx5303" # Just 2 machines SWITCHES="vlandswitch04" # And we know which switch they're on # Show more detail during test output VERBOSE=0 # And give a filename for logging LOGFILE=$0-$$.log # Include the core test wrapper code that makes life easier DIR=$(dirname $0) . ${DIR}/test-common # Ensure all the ports we're using are on their base VLANs log "checking base VLANs" verify_all_hosts_are_base log "$HOSTS are all on their base VLANs - good" # Clear old logfiles from our test machines stop_logging clear_logs # Start all the test machines logging, then wait 60s to let all of # them show baseline results before we start testing start_logging log "CHECK INIT START" log "CHECK INIT CHECK VLAN_BASE:arndale04:imx5303" pause 60 log "CHECK INIT END" # Create a VLAN with tag 30, named "test30" log "Creating new VLAN tag 30" OUTPUT=$(run_admin_command create_vlan --name test30 --tag 30 --is_base_vlan false) VLAN_ID=$(run_admin_command lookup_vlan_by_tag --tag 30) log "Created new VLAN with ID $VLAN_ID" # Wait 10s for everything to settle pause 10 # Move some of the test machines to this new VLAN log "Moving arndale04 to VLAN ID $VLAN_ID" OUTPUT=$(run_admin_command set_port_current_vlan --port_id ${arndale04_PORT_ID} --vlan_id $VLAN_ID) pause 60 log "Moving imx5303 to VLAN ID $VLAN_ID" OUTPUT=$(run_admin_command set_port_current_vlan --port_id ${imx5303_PORT_ID} --vlan_id $VLAN_ID) log "Done moving ports to VLAN ID $VLAN_ID" # Wait 60s for everything to settle and logs to show it again pause 60 log "CHECK STEP1 START" log "CHECK STEP1 CHECK VLAN_30:arndale04:imx5303" pause 60 log "CHECK STEP1 END" # Move test machines back to their base VLANs log "Moving ports back to base" OUTPUT=$(run_admin_command restore_port_to_base_vlan --port_id ${arndale04_PORT_ID}) OUTPUT=$(run_admin_command restore_port_to_base_vlan --port_id ${imx5303_PORT_ID}) log "Done moving ports back to base" # Wait 60s for everything to settle pause 60 log "CHECK FINI START" log "CHECK FINI CHECK VLAN_BASE:arndale04:imx5303" pause 60 log "CHECK FINI END" # Check that they're all back on their base VLANs log "Checking base VLANs after the test" verify_all_hosts_are_base log "Delete the test VLAN" OUTPUT=$(run_admin_command delete_vlan --vlan_id ${VLAN_ID}) # Stop all the test machines logging (and wait 60s) stop_logging pause 20 log "Test done, grab logs" # Grab logs from the machines grab_logs >> $LOGFILE # Clear old logs clear_logs # How did the test do? check_test_steps # DONE!