def _periodic_resync(self): try: interval = self._get_resync_interval() if self.grid_syncer.is_sync_needed(interval): LOG.info(_LI("Initiating resync.")) self.grid_syncer.sync(True) except Exception as e: LOG.exception(_LE("Resync failed due to error: %s"), e)
def _create_ib_network_view(self): session = self.ib_cxt.context.session ea_network_view = eam.get_ea_for_network_view(self.ib_cxt.tenant_id, self.ib_cxt.tenant_name, self.grid_id) ib_network_view, obj_created = ( ib_objects.NetworkView.create_check_exists( self.ib_cxt.connector, name=self.ib_cxt.mapping.network_view, extattrs=ea_network_view)) network_view_id = utils.get_network_view_id(self.grid_id, ib_network_view._ref) dbi.update_network_view_id(session, self.ib_cxt.mapping.network_view_id, network_view_id) self.ib_cxt.mapping.network_view_id = network_view_id LOG.info(_LI("Created a network view: %s"), ib_network_view) return ib_network_view, obj_created
def _create_ib_network_view(self): session = self.ib_cxt.context.session ea_network_view = eam.get_ea_for_network_view( self.ib_cxt.tenant_id, self.ib_cxt.tenant_name, self.grid_id) ib_network_view = self.ib_cxt.ibom.create_network_view( self.ib_cxt.mapping.network_view, ea_network_view) network_view_id = utils.get_network_view_id(self.grid_id, ib_network_view._ref) dbi.update_network_view_id(session, self.ib_cxt.mapping.network_view_id, network_view_id) self.ib_cxt.mapping.network_view_id = network_view_id LOG.info(_LI("Created a network view: %s"), ib_network_view) return ib_network_view
def sync(self): discovered_config = self._discover_config(self.get_gm_member()) if discovered_config: self._update_fields(discovered_config) LOG.debug(_LI("grid config synced: %s"), strutils.mask_password(self.__dict__, secret="********"))
def sync(self): discovered_config = self._discover_config(self.get_gm_member()) if discovered_config: self._update_fields(discovered_config) LOG.debug(_LI("grid config synced: %s"), self.__dict__)
def _find_mapping(self): session = self.context.session netview_id = None netview_name = None netview_shared = False # First check if mapping already exists network_id = self.subnet.get('network_id') subnet_id = self.subnet.get('id') netview_mappings = dbi.get_network_view_mappings(session, network_id=network_id, subnet_id=subnet_id) if netview_mappings: netview_id = netview_mappings[0].network_view_id netview_row = utils.find_one_in_list('id', netview_id, self.discovered_network_views) self.mapping.network_view_id = netview_id self.mapping.network_view = netview_row.network_view self.mapping.authority_member = self._get_authority_member( netview_row.authority_member_id) self.mapping.shared = netview_row.shared self.mapping.dns_view = self._get_dns_view() self._update_service_member_mapping() LOG.info( _LI("Network view %(netview)s mapping found for " "network %(network)s and subnet %(subnet)s"), dict(netview=netview_row.network_view, network=network_id, subnet=subnet_id)) return # No mapping so find mapping mapping_attrs = self._get_mapping_attributes() matching_netviews = [] # find mapping matches on common cases mapping_filters = self._get_mapping_filters(mapping_attrs) for mf in mapping_filters: if list(mf.values())[0] is None: continue matches = utils.find_in_list_by_condition( mf, self.discovered_mapping_conditions) if matches: netview_ids = [m.network_view_id for m in matches] matching_netviews += netview_ids # find network view id and name pair if matching_netviews: # get most matched network view id netview_id = Counter(matching_netviews).most_common(1)[0][0] netview_row = utils.find_one_in_list('id', netview_id, self.discovered_network_views) netview_name = netview_row.network_view netview_shared = netview_row.shared else: # no matching found; use default network view scope netview_scope = self.grid_config.default_network_view_scope netview_name = self._get_network_view_by_scope( netview_scope, mapping_attrs) netview_row = utils.find_one_in_list('network_view', netview_name, self.discovered_network_views) if netview_row: netview_id = netview_row.id netview_shared = netview_row.shared self.mapping.network_view_id = netview_id self.mapping.network_view = netview_name if self.mapping.network_view_id: self.mapping.authority_member = self._get_authority_member() self.mapping.shared = netview_shared self.mapping.dns_view = self._get_dns_view()
def _find_mapping(self): session = self.context.session netview_id = None netview_name = None netview_shared = False # First check if mapping already exists network_id = self.subnet.get('network_id') subnet_id = self.subnet.get('id') netview_mappings = dbi.get_network_view_mappings( session, network_id=network_id, subnet_id=subnet_id) if netview_mappings: netview_id = netview_mappings[0].network_view_id netview_row = utils.find_one_in_list( 'id', netview_id, self.discovered_network_views) self.mapping.network_view_id = netview_id self.mapping.network_view = netview_row.network_view self.mapping.authority_member = self._get_authority_member( netview_row.authority_member_id) self.mapping.shared = netview_row.shared self.mapping.dns_view = self._get_dns_view() self._update_service_member_mapping() LOG.info(_LI("Network view %(netview)s mapping found for " "network %(network)s and subnet %(subnet)s"), dict(netview=netview_row.network_view, network=network_id, subnet=subnet_id)) return # No mapping so find mapping mapping_attrs = self._get_mapping_attributes() matching_netviews = [] # find mapping matches on common cases mapping_filters = self._get_mapping_filters(mapping_attrs) for mf in mapping_filters: if mf.values()[0] is None: continue matches = utils.find_in_list_by_condition( mf, self.discovered_mapping_conditions) if matches: netview_ids = [m.network_view_id for m in matches] matching_netviews += netview_ids # find network view id and name pair if matching_netviews: # get most matched network view id netview_id = Counter(matching_netviews).most_common(1)[0][0] netview_row = utils.find_one_in_list('id', netview_id, self.discovered_network_views) netview_name = netview_row.network_view netview_shared = netview_row.shared else: # no matching found; use default network view scope netview_scope = self.grid_config.default_network_view_scope netview_name = self._get_network_view_by_scope(netview_scope, mapping_attrs) netview_row = utils.find_one_in_list('network_view', netview_name, self.discovered_network_views) if netview_row: netview_id = netview_row.id netview_shared = netview_row.shared self.mapping.network_view_id = netview_id self.mapping.network_view = netview_name if self.mapping.network_view_id: self.mapping.authority_member = self._get_authority_member() self.mapping.shared = netview_shared self.mapping.dns_view = self._get_dns_view()