From 0671665d935c88ebccc49675cbc615c108d9716d Mon Sep 17 00:00:00 2001 From: Ethan Jackson Date: Wed, 19 Jan 2011 14:46:57 -0800 Subject: [PATCH] xenserver: Allow NULL pool in configuration cache. InterfaceReconfigure assumes the pool is in the configuration cache. This is always true except when upgrading from an older version of openvswitch which does record the pool. This can cause upgrades to lock up. Signed-off-by: Ethan Jackson --- xenserver/opt_xensource_libexec_InterfaceReconfigure.py | 3 ++- .../opt_xensource_libexec_InterfaceReconfigureVswitch.py | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/xenserver/opt_xensource_libexec_InterfaceReconfigure.py b/xenserver/opt_xensource_libexec_InterfaceReconfigure.py index 6cf19ee5..3030e0f4 100644 --- a/xenserver/opt_xensource_libexec_InterfaceReconfigure.py +++ b/xenserver/opt_xensource_libexec_InterfaceReconfigure.py @@ -659,7 +659,8 @@ class DatabaseCache(object): return None def get_pool_record(self): - return self.__pools.values()[0] + if len(self.__pools) > 0: + return self.__pools.values()[0] # # diff --git a/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py b/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py index 84293587..a3d4bd24 100644 --- a/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py +++ b/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py @@ -332,7 +332,11 @@ def configure_datapath(pif): 'other-config:hwaddr=%s' % vsctl_escape(db().get_pif_record(pif)['MAC'])] pool = db().get_pool_record() - fail_mode = pool['other_config']['vswitch-controller-fail-mode'] + + if pool: + fail_mode = pool['other_config']['vswitch-controller-fail-mode'] + else: + fail_mode = 'standalone' if fail_mode in ['standalone', 'secure']: vsctl_argv += ['--', 'set', 'Bridge', bridge, 'fail_mode=%s' % fail_mode] -- 2.30.2