[ovs-dev] [PATCH 2/2] xenserver: Don't install xsconsole plugin as symlink

Justin Pettit jpettit at nicira.com
Tue Apr 6 03:36:42 UTC 2010


The OVS xsconsole plugin used to be installed in
/usr/share/openvswitch/scripts directory and then a symlink was created
to the /usr/lib/xsconsole/plugins-base directory.  The Citrix packaging of
OVS just placed it directly into the xsconsole plugin directory.  This
worked fine until we renamed our package "openvswitch", which is the
same as Citrix uses.

On an upgrade, the Citrix packaging would attempt to cleanup files that were
in its packaging, but not in the upgraded package.  Since it didn't know
that we had replaced their plugin with our symlink, it would destroy our
symlink.

This commit just places the plugin directly into the
/usr/lib/xsconsole/plugins-base directory, which allows us to seamlessly
upgrade to newer Open vSwitch versions.

Bug #2608
---
 xenserver/openvswitch-xen.spec |   20 +++++++-------------
 1 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/xenserver/openvswitch-xen.spec b/xenserver/openvswitch-xen.spec
index 7b5e022..1d0c905 100644
--- a/xenserver/openvswitch-xen.spec
+++ b/xenserver/openvswitch-xen.spec
@@ -81,9 +81,10 @@ install -m 755 xenserver/usr_sbin_brctl \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/brctl
 install -m 755 xenserver/usr_share_openvswitch_scripts_sysconfig.template \
          $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/sysconfig.template
+install -d -m 755 $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base
 install -m 644 \
         xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
-               $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/XSFeatureVSwitch.py
+               $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
 
 install -d -m 755 $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/openvswitch
 find datapath/linux-2.6 -name *.ko -exec install -m 755  \{\} $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/openvswitch \;
@@ -246,13 +247,6 @@ do
     fi
 done
 
-# Install xsconsole plugin
-plugin=$(readlink /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py)
-if [ "$plugin" != "/usr/share/openvswitch/scripts/XSFeatureVSwitch.py" ]; then
-    rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
-    ln -s /usr/share/openvswitch/scripts/XSFeatureVSwitch.py /usr/lib/xsconsole/plugins-base/ || printf "Could not link to Open vSwitch xsconsole plugin.\n"
-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
@@ -287,10 +281,8 @@ fi
 %postun
 if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
 
-    rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py \
-        /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyc \
-        /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyo \
-        || printf "Could not remove Open vSwitch xsconsole plugin.\n"
+    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 \
@@ -352,7 +344,6 @@ fi
 /usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
 /usr/share/openvswitch/scripts/vif
 /usr/share/openvswitch/scripts/xen-bugtool
-/usr/share/openvswitch/scripts/XSFeatureVSwitch.py
 /usr/share/openvswitch/scripts/brctl
 /usr/share/openvswitch/scripts/sysconfig.template
 /usr/share/openvswitch/vswitch.ovsschema
@@ -365,6 +356,7 @@ fi
 /usr/bin/ovs-vsctl
 /usr/bin/ovsdb-client
 /usr/bin/ovsdb-tool
+/usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
 /usr/share/man/man1/ovsdb-client.1.gz
 /usr/share/man/man1/ovsdb-server.1.gz
 /usr/share/man/man1/ovsdb-tool.1.gz
@@ -376,5 +368,7 @@ fi
 /usr/share/man/man8/ovs-vsctl.8.gz
 /usr/share/man/man8/ovs-vswitchd.8.gz
 /var/lib/openvswitch
+%exclude /usr/lib/xsconsole/plugins-base/*.pyc
+%exclude /usr/lib/xsconsole/plugins-base/*.pyo
 %exclude /usr/share/openvswitch/scripts/*.pyc
 %exclude /usr/share/openvswitch/scripts/*.pyo
-- 
1.7.0.3





More information about the dev mailing list