
If running "virsh net-destroy" on inactive bridge will get error: error: Requested operation is not valid: network is not active Change the logic to a simple&direct one to remove bridge. Change-Id: Ie0341a1fc09c16c1b9427e847b9dbf9afd25f69e Closes-Bug: #1256510
32 lines
937 B
Bash
Executable File
32 lines
937 B
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
|
|
BASE=$(dirname $0)/../
|
|
BRIDGE_SUFFIX=${1:-''}
|
|
BRIDGE_NAME=brbm$BRIDGE_SUFFIX
|
|
|
|
# Only add bridge if missing
|
|
(sudo ovs-vsctl list-br | grep ${BRIDGE_NAME}$) || sudo ovs-vsctl add-br ${BRIDGE_NAME}
|
|
|
|
# remove bridge before replacing it.
|
|
(virsh net-list --persistent | grep "${BRIDGE_NAME} ") && virsh net-destroy ${BRIDGE_NAME}
|
|
(virsh net-list --inactive --persistent | grep "${BRIDGE_NAME} ") && virsh net-undefine ${BRIDGE_NAME}
|
|
|
|
virsh net-define <(sed s/brbm/$BRIDGE_NAME/ $BASE/templates/brbm.xml)
|
|
virsh net-autostart ${BRIDGE_NAME}
|
|
virsh net-start ${BRIDGE_NAME}
|
|
|
|
# start default if needed and configure it to autostart
|
|
default_net=$(sudo virsh net-list --all --persistent | grep default | awk 'BEGIN{OFS=":";} {print $2,$3}')
|
|
state=${default_net%%:*}
|
|
autostart=${default_net##*:}
|
|
|
|
if [ "$state" != "active" ]; then
|
|
virsh net-start default
|
|
fi
|
|
|
|
if [ "$autostart" != "yes" ]; then
|
|
virsh net-autostart default
|
|
fi
|
|
|