コード例 #1
0
 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)
コード例 #2
0
    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
コード例 #3
0
ファイル: ipam.py プロジェクト: yuewko/networking-infoblox
    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
コード例 #4
0
 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="********"))
コード例 #5
0
 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__)
コード例 #6
0
ファイル: grid.py プロジェクト: yuewko/networking-infoblox
 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__)
コード例 #7
0
    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()
コード例 #8
0
    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()