コード例 #1
0
ファイル: dns.py プロジェクト: openstack/networking-infoblox
    def _is_forward_zone_removable(self):
        session = self.ib_cxt.context.session
        pattern = self.grid_config.default_domain_name_pattern

        subnet_id = self.ib_cxt.subnet['id']
        network_id = self.ib_cxt.subnet['network_id']
        tenant_id = self.ib_cxt.subnet['tenant_id']

        # check all dynamic patterns from bottom to top hierarchy
        subnet_used = '{subnet_name}' in pattern or '{subnet_id}' in pattern
        if subnet_used:
            return True

        network_used = '{network_name}' in pattern or '{network_id}' in pattern
        if network_used:
            if dbi.is_last_subnet_in_network(session, subnet_id, network_id):
                return True

        tenant_used = '{tenant_name}' in pattern or '{tenant_id}' in pattern
        if tenant_used:
            if dbi.is_last_subnet_in_tenant(session, subnet_id, tenant_id):
                return True

        address_scope_used = ('{address_scope_name}' in pattern or
                              '{address_scope_id}' in pattern)
        if address_scope_used:
            if dbi.is_last_subnet_in_address_scope(session, subnet_id):
                return True

        # now check for static zone
        if self.grid_config.allow_static_zone_deletion:
            return dbi.is_last_subnet_in_private_networks(session, subnet_id)
        else:
            return False
コード例 #2
0
    def _is_forward_zone_removable(self):
        session = self.ib_cxt.context.session
        pattern = self.grid_config.default_domain_name_pattern

        subnet_id = self.ib_cxt.subnet['id']
        network_id = self.ib_cxt.subnet['network_id']
        tenant_id = self.ib_cxt.subnet['tenant_id']

        # check all dynamic patterns from bottom to top hierarchy
        subnet_used = '{subnet_name}' in pattern or '{subnet_id}' in pattern
        if subnet_used:
            return True

        network_used = '{network_name}' in pattern or '{network_id}' in pattern
        if network_used:
            if dbi.is_last_subnet_in_network(session, subnet_id, network_id):
                return True

        tenant_used = '{tenant_name}' in pattern or '{tenant_id}' in pattern
        if tenant_used:
            if dbi.is_last_subnet_in_tenant(session, subnet_id, tenant_id):
                return True

        address_scope_used = ('{address_scope_name}' in pattern
                              or '{address_scope_id}' in pattern)
        if address_scope_used:
            if dbi.is_last_subnet_in_address_scope(session, subnet_id):
                return True

        # now check for static zone
        if self.grid_config.allow_static_zone_deletion:
            return dbi.is_last_subnet_in_private_networks(session, subnet_id)
        else:
            return False
コード例 #3
0
    def _is_member_releasable(self):
        """Determine if service members can be released."""
        session = self.ib_cxt.context.session

        subnet_id = self.ib_cxt.subnet.get('id')
        network_id = self.ib_cxt.subnet.get('network_id')
        tenant_id = self.ib_cxt.subnet.get('tenant_id')

        netview_scope = self.ib_cxt.grid_config.default_network_view_scope

        if netview_scope == const.NETWORK_VIEW_SCOPE_ADDRESS_SCOPE:
            return dbi.is_last_subnet_in_address_scope(session, subnet_id)
        if netview_scope == const.NETWORK_VIEW_SCOPE_TENANT:
            return dbi.is_last_subnet_in_tenant(session, subnet_id, tenant_id)
        if netview_scope == const.NETWORK_VIEW_SCOPE_NETWORK:
            return dbi.is_last_subnet_in_network(session, subnet_id,
                                                 network_id)
        if netview_scope == const.NETWORK_VIEW_SCOPE_SUBNET:
            return True
        return dbi.is_last_subnet(session, subnet_id)
コード例 #4
0
ファイル: ipam.py プロジェクト: yuewko/networking-infoblox
    def _is_member_releasable(self):
        """Determine if service members can be released."""
        session = self.ib_cxt.context.session

        subnet_id = self.ib_cxt.subnet.get('id')
        network_id = self.ib_cxt.subnet.get('network_id')
        tenant_id = self.ib_cxt.subnet.get('tenant_id')

        netview_scope = self.ib_cxt.grid_config.default_network_view_scope

        if netview_scope == const.NETWORK_VIEW_SCOPE_ADDRESS_SCOPE:
            return dbi.is_last_subnet_in_address_scope(session, subnet_id)
        if netview_scope == const.NETWORK_VIEW_SCOPE_TENANT:
            return dbi.is_last_subnet_in_tenant(session, subnet_id, tenant_id)
        if netview_scope == const.NETWORK_VIEW_SCOPE_NETWORK:
            return dbi.is_last_subnet_in_network(session, subnet_id,
                                                 network_id)
        if netview_scope == const.NETWORK_VIEW_SCOPE_SUBNET:
            return True
        return dbi.is_last_subnet(session, subnet_id)