xenserver: Fix bugs related to using xe-switch-network-backend in spec file.
authorJustin Pettit <jpettit@nicira.com>
Tue, 10 May 2011 06:30:07 +0000 (23:30 -0700)
committerJustin Pettit <jpettit@nicira.com>
Wed, 11 May 2011 16:40:39 +0000 (09:40 -0700)
Commit daf2ebb (xenserver: Use xe-switch-network-stack in RPM spec
file.) changed the spec file to use xe-switch-network-backend instead of
directly modifying "/etc/xensource/network.conf".  It incorrectly
assumed that the command was in the search path.  It also didn't take
into account that the command will remove the "openvswitch" service with
chkconfig.  This commit fixes those errors.

Signed-off-by: Justin Pettit <jpettit@nicira.com>
xenserver/openvswitch-xen.spec

index 7409fdfc9592df7d206db7e800330237b2afe83a..9d686ce478eece6bec53e626025548bf4aacafde 100644 (file)
@@ -226,7 +226,7 @@ done
 
 if [ "$1" = "1" ]; then    # $1 = 1 for install
     # Configure system to use Open vSwitch
-    xe-switch-network-backend vswitch
+    /opt/xensource/bin/xe-switch-network-backend vswitch
 else    # $1 = 2 for upgrade
 
     mode=$(cat /etc/xensource/network.conf)
@@ -248,8 +248,15 @@ depmod %{xen_version}
 
 %preun
 if [ "$1" = "0" ]; then     # $1 = 0 for uninstall
+    # Configure system to use bridge
+    /opt/xensource/bin/xe-switch-network-backend bridge
+
+    # The "openvswitch" service should have been removed from
+    # "xe-switch-network-backend bridge".
     for s in openvswitch openvswitch-xapi-update; do
-        chkconfig --del $s || printf "Could not remove $s init script."
+        if chkconfig --list $s >/dev/null 2>&1; then
+            chkconfig --del $s || printf "Could not remove $s init script."
+        fi
     done
 fi
 
@@ -303,11 +310,10 @@ if [ "$1" = "0" ]; then     # $1 = 0 for uninstall
 
     # Remove saved XenServer scripts directory, but only if it's empty
     rmdir -p /usr/lib/openvswitch/xs-saved 2>/dev/null
-
-    # Configure system to use bridge
-    xe-switch-network-backend bridge
 fi
 
+exit 0
+
 %files
 %defattr(-,root,root)
 /etc/init.d/openvswitch