From: armando-migliaccio Date: Tue, 20 May 2014 21:47:51 +0000 (-0700) Subject: NSX: replace strong references to the plugin with weakref ones X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=adb6674c798594fa7348e294e5c979085503ba96;p=openstack-build%2Fneutron-build.git NSX: replace strong references to the plugin with weakref ones This is done in accordance to a refactoring done in change 92793. Partial-bug: #1234857 Change-Id: Iaf2bc93182c01e62bb755b4e3f104f5a926b73fc --- diff --git a/neutron/plugins/vmware/dhcpmeta_modes.py b/neutron/plugins/vmware/dhcpmeta_modes.py index 85811b668..d0a2ed0c1 100644 --- a/neutron/plugins/vmware/dhcpmeta_modes.py +++ b/neutron/plugins/vmware/dhcpmeta_modes.py @@ -86,10 +86,11 @@ class DhcpMetadataAccess(object): nsx_svc.register_dhcp_opts(cfg) nsx_svc.register_metadata_opts(cfg) lsnmanager.register_lsn_opts(cfg) - lsn_manager = lsnmanager.PersistentLsnManager(self) + lsn_manager = lsnmanager.PersistentLsnManager(self.safe_reference) self.lsn_manager = lsn_manager if cfg.CONF.NSX.agent_mode == config.AgentModes.AGENTLESS: - notifier = nsx_svc.DhcpAgentNotifyAPI(self, lsn_manager) + notifier = nsx_svc.DhcpAgentNotifyAPI(self.safe_reference, + lsn_manager) self.agent_notifiers[const.AGENT_TYPE_DHCP] = notifier # In agentless mode, ports whose owner is DHCP need to # be special cased; so add it to the list of special @@ -101,11 +102,13 @@ class DhcpMetadataAccess(object): # are handled by Logical Services Nodes in NSX cfg.CONF.set_override('network_auto_schedule', False) LOG.warn(_('network_auto_schedule has been disabled')) - notifier = combined.DhcpAgentNotifyAPI(self, lsn_manager) + notifier = combined.DhcpAgentNotifyAPI(self.safe_reference, + lsn_manager) self.supported_extension_aliases.append(lsn.EXT_ALIAS) # Add the capability to migrate dhcp and metadata services over self.migration_manager = ( - migration.MigrationManager(self, lsn_manager, notifier)) + migration.MigrationManager( + self.safe_reference, lsn_manager, notifier)) return notifier def _init_extensions(self): @@ -141,17 +144,18 @@ class DhcpMetadataAccess(object): return {'network': network_id, 'report': r} def handle_network_dhcp_access(self, context, network, action): - self.handle_network_dhcp_access_delegate(self, context, + self.handle_network_dhcp_access_delegate(self.safe_reference, context, network, action) def handle_port_dhcp_access(self, context, port_data, action): - self.handle_port_dhcp_access_delegate(self, context, port_data, action) + self.handle_port_dhcp_access_delegate(self.safe_reference, context, + port_data, action) def handle_port_metadata_access(self, context, port, is_delete=False): - self.handle_port_metadata_access_delegate(self, context, + self.handle_port_metadata_access_delegate(self.safe_reference, context, port, is_delete) def handle_router_metadata_access(self, context, router_id, interface=None): - self.handle_metadata_access_delegate(self, context, + self.handle_metadata_access_delegate(self.safe_reference, context, router_id, interface) diff --git a/neutron/plugins/vmware/plugins/base.py b/neutron/plugins/vmware/plugins/base.py index 8f2130ab2..c34b76e2c 100644 --- a/neutron/plugins/vmware/plugins/base.py +++ b/neutron/plugins/vmware/plugins/base.py @@ -173,7 +173,7 @@ class NsxPluginV2(addr_pair_db.AllowedAddressPairsMixin, self._is_default_net_gw_in_sync = False # Create a synchronizer instance for backend sync self._synchronizer = sync.NsxSynchronizer( - self, self.cluster, + self.safe_reference, self.cluster, self.nsx_sync_opts.state_sync_interval, self.nsx_sync_opts.min_sync_req_delay, self.nsx_sync_opts.min_chunk_size, diff --git a/neutron/plugins/vmware/plugins/service.py b/neutron/plugins/vmware/plugins/service.py index 9e9982ea8..e253ed8f0 100644 --- a/neutron/plugins/vmware/plugins/service.py +++ b/neutron/plugins/vmware/plugins/service.py @@ -109,7 +109,7 @@ class NsxAdvancedPlugin(sr_db.ServiceRouter_mixin, # cache router type based on router id self._router_type = {} - self.callbacks = VcnsCallbacks(self) + self.callbacks = VcnsCallbacks(self.safe_reference) # load the vCNS driver self._load_vcns_drivers()