From c41dd5bd10275304ab4c9903061fef1a3fb7d491 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Sun, 19 Jul 2015 04:13:58 -0700 Subject: [PATCH] NSXv: support for multi api_workers When using multi api workers the subnet creation would fail at init. This is due to the fact that each process would not be able to access the task manager. Change-Id: I71ad526b89e14710056ab4c0ce6b0734cad47eec Closes-bug: #1467258 (cherry picked from commit ffaaf5f7d3210bfbcd4b7dca4ee73765f5dba9e5) --- .../neutron/plugins/vmware/vshield/vcns_driver.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/vmware_nsx/neutron/plugins/vmware/vshield/vcns_driver.py b/vmware_nsx/neutron/plugins/vmware/vshield/vcns_driver.py index b619457c39..dfc5a23399 100644 --- a/vmware_nsx/neutron/plugins/vmware/vshield/vcns_driver.py +++ b/vmware_nsx/neutron/plugins/vmware/vshield/vcns_driver.py @@ -43,7 +43,15 @@ class VcnsDriver(edge_appliance_driver.EdgeApplianceDriver, self.resource_pool_id = cfg.CONF.nsxv.resource_pool_id self.datastore_id = cfg.CONF.nsxv.datastore_id self.external_network = cfg.CONF.nsxv.external_network - interval = cfg.CONF.nsxv.task_status_check_interval - self.task_manager = tasks.TaskManager(interval) - self.task_manager.start() + self._task_manager = None self.vcns = vcns.Vcns(self.vcns_uri, self.vcns_user, self.vcns_passwd) + + @property + def task_manager(self): + if self._task_manager is None: + LOG.debug("Creating task manager") + interval = cfg.CONF.nsxv.task_status_check_interval + self._task_manager = tasks.TaskManager(interval) + LOG.debug("Starting task manager") + self._task_manager.start() + return self._task_manager