# HG changeset patch # User Mark Haywood # Date 1473263567 25200 # Node ID 6ad7817ce1b1eb998e6a43b795dff452abafc872 # Parent 846b7a651c53940e191b6a575f04f965284a19b4 24560817 vswitch-server goes into maintenance in certain cases diff -r 846b7a651c53 -r 6ad7817ce1b1 components/openvswitch/files/ovs-svc --- a/components/openvswitch/files/ovs-svc Tue Sep 06 17:03:53 2016 -0700 +++ b/components/openvswitch/files/ovs-svc Wed Sep 07 08:52:47 2016 -0700 @@ -116,24 +116,21 @@ fi } -stop_vswitch_server() { +clean_vswitch() { typeset BRIDGENAME - $PKILL -x -u ${OVS_USER} -z `smf_zonename` ${OVS_VSWITCHD} - if [[ $? -ne 0 && $? -ne 1 ]]; then - errlog "pkill of ${OVS_VSWITCHD} failed with $?" - fi - + SVC_METHOD=$1 + ${OVS_VSCTL} list-br | while read BRIDGENAME; do ${PFEXEC} ${IPADM} disable-if -t ${BRIDGENAME} >/dev/null 2>&1 - ${OVS_CLEAN_PATH} delete-vnic ${BRIDGENAME} - if [ $? -ne 0 ]; then + ${OVS_CLEAN_PATH} delete-vnic ${BRIDGENAME} >/dev/null 2>&1 + if [[ $? -ne 0 && "$1" = 'stop' ]]; then errlog "Error $? removing ${BRIDGENAME} VNIC" fi done ${OVS_CLEAN_PATH} reset-ofports - if [ $? -ne 0 ]; then + if [ $? -ne 0 ]; then errlog "Error $? resetting OF ports" fi @@ -146,7 +143,17 @@ if [ $? -ne 0 ]; then errlog "Error $? deleting the OVS etherstub" fi +} +stop_vswitch_server() { + typeset BRIDGENAME + + $PKILL -x -u ${OVS_USER} -z `smf_zonename` ${OVS_VSWITCHD} + if [[ $? -ne 0 && $? -ne 1 ]]; then + errlog "pkill of ${OVS_VSWITCHD} failed with $?" + fi + + clean_vswitch stop } start_vswitch_server() { @@ -155,7 +162,9 @@ create_ovs_tempdir - ${PFEXEC} ${OVS_VSWITCHD_PATH} unix:${OVSDB_REMOTE} \ + clean_vswitch start + + ${PFEXEC} ${OVS_VSWITCHD_PATH} unix:${OVSDB_REMOTE} \ -vconsole:emer -vsyslog:off -vfile:warn --mlockall --no-chdir \ --log-file=${VSWITCHD_LOGFILE} \ --pidfile=${VSWITCHD_PIDFILE} \