xenserver: Replace customized xen-bugtool with plugin to collect qdisc info.
[openvswitch] / xenserver / openvswitch-xen.spec
index 1df6dff568b713f4b4559872a70e6f1e758103c9..25e8a96c29da559421d6d97c33657fb3063c551b 100644 (file)
@@ -60,6 +60,9 @@ install -m 755 xenserver/etc_profile.d_openvswitch.sh \
 install -d -m 755 $RPM_BUILD_ROOT/etc/xapi.d/plugins
 install -m 755 xenserver/etc_xapi.d_plugins_openvswitch-cfg-update \
          $RPM_BUILD_ROOT/etc/xapi.d/plugins/openvswitch-cfg-update
+install -d -m 755 $RPM_BUILD_ROOT/etc/xensource/bugtool/network-status
+install -m 644 xenserver/etc_xensource_bugtool_network-status_openvswitch.xml \
+         $RPM_BUILD_ROOT/etc/xensource/bugtool/network-status/openvswitch.xml
 install -d -m 755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts
 install -m 644 vswitchd/vswitch.ovsschema \
          $RPM_BUILD_ROOT/usr/share/openvswitch/vswitch.ovsschema
@@ -75,10 +78,10 @@ install -m 755 xenserver/etc_xensource_scripts_vif \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/vif
 install -m 755 xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync \
                $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/ovs-xapi-sync
-install -m 755 xenserver/usr_sbin_xen-bugtool \
-             $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/xen-bugtool
 install -m 755 xenserver/usr_share_openvswitch_scripts_sysconfig.template \
          $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/sysconfig.template
+install -m 755 xenserver/usr_share_openvswitch_scripts_xen-bugtool-tc-class-show \
+         $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/xen-bugtool-tc-class-show
 install -m 755 utilities/ovs-save \
          $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/ovs-save
 install -d -m 755 $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base
@@ -109,23 +112,26 @@ install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch
 rm -rf $RPM_BUILD_ROOT
 
 %post
-if test ! -e /var/xapi/network.dbcache; then
-    if test "$1" = 1; then
-        printf "Creating xapi database cache...  "
-    else
-        printf "warning: Open vSwitch is being re-installed or upgraded,\n"
-        printf "         but the xapi database cache is missing.\n"
-        printf "Re-creating xapi database cache...  "
-    fi
+# Do not run the first block if we are in the XenServer installer
+if runlevel >/dev/null 2>&1; then
+    if test ! -e /var/xapi/network.dbcache; then
+        if test "$1" = 1; then
+            printf "Creating xapi database cache...  "
+        else
+            printf "warning: Open vSwitch is being re-installed or upgraded,\n"
+            printf "         but the xapi database cache is missing.\n"
+            printf "Re-creating xapi database cache...  "
+        fi
 
-    if /usr/share/openvswitch/scripts/interface-reconfigure rewrite; then
-        printf "done.\n"
-    else
-        printf "FAILED\n"
-        printf "Open vSwitch can only be installed on a XenServer that\n"
-        printf "has connectivity to xapi on the pool master.  Please\n"
-        printf "fix connectivity to the pool master, then try again.\n"
-        exit 1
+        if /usr/share/openvswitch/scripts/interface-reconfigure rewrite; then
+            printf "done.\n"
+        else
+            printf "FAILED\n"
+            printf "Open vSwitch can only be installed on a XenServer that\n"
+            printf "has connectivity to xapi on the pool master.  Please\n"
+            printf "fix connectivity to the pool master, then try again.\n"
+            exit 1
+        fi
     fi
 fi
 
@@ -183,8 +189,7 @@ for f in \
     /opt/xensource/libexec/InterfaceReconfigure.py \
     /opt/xensource/libexec/InterfaceReconfigureBridge.py \
     /opt/xensource/libexec/InterfaceReconfigureVswitch.py \
-    /etc/xensource/scripts/vif \
-    /usr/sbin/xen-bugtool
+    /etc/xensource/scripts/vif
 do
     s=$(basename "$f")
     t=$(readlink "$f")
@@ -196,6 +201,13 @@ do
     fi
 done
 
+# Bug #4667: one-time cleanup of brctl removal in commit 54f16a10
+# (xenserver: Remove brctl wrapper script).
+if [ -h /usr/sbin/brctl ] &&
+    [ "$(readlink /usr/sbin/brctl)" = /usr/share/openvswitch/scripts/brctl ]; then
+    mv -f /usr/lib/openvswitch/xs-original/brctl /usr/sbin/
+fi
+
 # Ensure all required services are set to run
 for s in openvswitch openvswitch-xapi-update; do
     if chkconfig --list $s >/dev/null 2>&1; then
@@ -228,37 +240,36 @@ fi
 
 
 %postun
-if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
-    rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyc \
-        /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyo
-
-    rm -f /usr/share/openvswitch/scripts/InterfaceReconfigure.pyc \
-        /usr/share/openvswitch/scripts/InterfaceReconfigure.pyo \
-        /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyc \
-        /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyo \
-        /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyc \
-        /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyo 
-
-    # Restore original XenServer scripts
-    for f in \
-        /opt/xensource/libexec/interface-reconfigure \
-        /opt/xensource/libexec/InterfaceReconfigure.py \
-        /opt/xensource/libexec/InterfaceReconfigureBridge.py \
-        /opt/xensource/libexec/InterfaceReconfigureVswitch.py \
-        /etc/xensource/scripts/vif \
-        /usr/sbin/xen-bugtool
-    do
-        s=$(basename "$f")
-        if [ ! -f "/usr/lib/openvswitch/xs-original/$s" ]; then
-            printf "Original XenServer $s script not present in /usr/lib/openvswitch/xs-original\n"
-            printf "Could not restore original XenServer script.\n"
-        else
-            (rm -f "$f" \
-                && mv "/usr/lib/openvswitch/xs-original/$s" "$f") \
-                || printf "Could not restore original XenServer $s script.\n"
-        fi
-    done
+rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyc \
+    /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyo
 
+rm -f /usr/share/openvswitch/scripts/InterfaceReconfigure.pyc \
+    /usr/share/openvswitch/scripts/InterfaceReconfigure.pyo \
+    /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyc \
+    /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyo \
+    /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyc \
+    /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyo 
+
+# Restore original XenServer scripts
+for f in \
+    /opt/xensource/libexec/interface-reconfigure \
+    /opt/xensource/libexec/InterfaceReconfigure.py \
+    /opt/xensource/libexec/InterfaceReconfigureBridge.py \
+    /opt/xensource/libexec/InterfaceReconfigureVswitch.py \
+    /etc/xensource/scripts/vif
+do
+    s=$(basename "$f")
+    if [ ! -f "/usr/lib/openvswitch/xs-original/$s" ]; then
+        printf "Original XenServer $s script not present in /usr/lib/openvswitch/xs-original\n"
+        printf "Could not restore original XenServer script.\n"
+    else
+        (rm -f "$f" \
+            && mv "/usr/lib/openvswitch/xs-original/$s" "$f") \
+            || printf "Could not restore original XenServer $s script.\n"
+    fi
+done
+
+if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
     # Remove all configuration files
     rm -f /etc/openvswitch/conf.db
     rm -f /etc/sysconfig/openvswitch
@@ -274,12 +285,12 @@ if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
     printf "could leave the server in a state requiring manual recovery.\n\n"
 fi
 
-
 %files
 %defattr(-,root,root)
 /etc/init.d/openvswitch
 /etc/init.d/openvswitch-xapi-update
 /etc/xapi.d/plugins/openvswitch-cfg-update
+/etc/xensource/bugtool/network-status/openvswitch.xml
 /etc/logrotate.d/openvswitch
 /etc/profile.d/openvswitch.sh
 /lib/modules/%{xen_version}/kernel/extra/openvswitch/openvswitch_mod.ko
@@ -311,8 +322,8 @@ fi
 /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.py
 /usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
 /usr/share/openvswitch/scripts/vif
-/usr/share/openvswitch/scripts/xen-bugtool
 /usr/share/openvswitch/scripts/sysconfig.template
+/usr/share/openvswitch/scripts/xen-bugtool-tc-class-show
 /usr/share/openvswitch/scripts/ovs-save
 /usr/share/openvswitch/vswitch.ovsschema
 /usr/sbin/ovs-vswitchd