From: Ethan Jackson Date: Wed, 19 Jan 2011 22:46:57 +0000 (-0800) Subject: xenserver: Allow NULL pool in configuration cache. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0671665d935c88ebccc49675cbc615c108d9716d;p=openvswitch 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 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]