From: Ethan Jackson Date: Wed, 19 Jan 2011 22:46:57 +0000 (-0800) Subject: xenserver: Allow NULL pool in configuration cache. X-Git-Tag: v1.1.0~470 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;ds=sidebyside;h=0671665d935c88ebccc49675cbc615c108d9716d;p=sliver-openvswitch.git 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 --- 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]