From ac9634f0af8d2cf8259a3cf7d7d6e19cc0d67457 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 11 Sep 2009 14:41:39 -0700 Subject: [PATCH] xenserver: Make RPM install work again. The RPM install was generating a database cache in Python pickle format in /etc/ovs-vswitchd.conf, but interface-reconfigure was looking for it in XML format in /var/lib/openvswitch/dbcache. This fixes the problem, by adding an init-dbcache command to interface-reconfigure and then using that at RPM install time. This moves the database cache creation from %pre to %post. This is necessary so that interface-reconfigure is available from the install script. --- ...pt_xensource_libexec_interface-reconfigure | 6 +++ xenserver/vswitch-xen.spec | 37 +++---------------- 2 files changed, 12 insertions(+), 31 deletions(-) diff --git a/xenserver/opt_xensource_libexec_interface-reconfigure b/xenserver/opt_xensource_libexec_interface-reconfigure index 5681d02d..70749b8a 100755 --- a/xenserver/opt_xensource_libexec_interface-reconfigure +++ b/xenserver/opt_xensource_libexec_interface-reconfigure @@ -8,6 +8,7 @@ %(command-name)s --session --pif [up|down|rewrite] %(command-name)s --force [up|down|rewrite ] %(command-name)s --force all down + %(command-name)s init-dbcache where, = --device= --mode=dhcp @@ -1441,6 +1442,9 @@ def main(argv=None): if len(force_rewrite_config) and not (force_interface and action == "rewrite"): raise Usage("\"--force rewrite\" needed for --device, --mode, --ip, --netmask, and --gateway") + if action == "init-dbcache" and arglist: + raise Usage("\"init-dbcache\" action does not accept any options") + global db if force_interface: log("Force interface %s %s" % (force_interface, action)) @@ -1458,6 +1462,8 @@ def main(argv=None): action_down(pif) else: raise Usage("Unknown action %s" % action) + elif action == "init-dbcache": + DatabaseCache().save(dbcache_file) else: db = DatabaseCache(session_ref=session) diff --git a/xenserver/vswitch-xen.spec b/xenserver/vswitch-xen.spec index 886834f5..6a218ab6 100644 --- a/xenserver/vswitch-xen.spec +++ b/xenserver/vswitch-xen.spec @@ -106,10 +106,12 @@ rm -rf \ $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-pki.8 \ $RPM_BUILD_ROOT/root/vswitch/share/openvswitch +install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch + %clean rm -rf $RPM_BUILD_ROOT -%pre +%post if [ ! -f /etc/xensource-inventory ]; then printf "XenSource inventory not present in /etc/xensource-inventory" exit 1 @@ -146,7 +148,7 @@ EOF fi fi -if test ! -e /etc/ovs-vswitch.dbcache; then +if test ! -e /var/lib/openvswitch/dbcache; then if test "$1" = 1; then printf "Creating xapi database cache... " else @@ -155,34 +157,7 @@ if test ! -e /etc/ovs-vswitch.dbcache; then printf "Re-creating xapi database cache... " fi - source /etc/xensource-inventory - if python - "$INSTALLATION_UUID" </dev/null 2>&1; then :; else cat >>/etc/sysctl.conf <