24560817 vswitch-server goes into maintenance in certain cases
authorMark Haywood <Mark.Haywood@Oracle.COM>
Wed, 07 Sep 2016 08:52:47 -0700
changeset 6736 6ad7817ce1b1
parent 6732 846b7a651c53
child 6739 8e4786e21910
24560817 vswitch-server goes into maintenance in certain cases
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} \