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 6cf19ee5b..3030e0f4b 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 842935872..a3d4bd24d 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.43.0