def generate_cache_key(request, headers, key_prefix=None):
    """
    Returns a cache key from the headers given in the header list.
    NOTE: This was copied from Django, with the following changes:
    * Caches based on full path, including the query string.
    * Requires headers as a dictionary, which can optionally contain values
      for the headers. When provided, these values are used instead of the
      request header values. This is to support including the X-Vary-On-View
      header values in the cache key.

    """
    if key_prefix is None:
        key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
    ctx = md5_constructor()
    for header, value in sorted(headers.items()):
        if value is None:
            value = request.META.get(header, None)
            if value is not None:
                ctx.update(value)
        else:
            ctx.update(value)
    url = md5_constructor()
    url.update(request.get_host())
    url.update(iri_to_uri(request.get_full_path()))
    cache_key = 'cache_middleware.response.%s.%s.%s' % (
        key_prefix, url.hexdigest(), ctx.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
def generate_cache_key(request, headers, key_prefix=None):
    """
    Returns a cache key from the headers given in the header list.
    NOTE: This was copied from Django, with the following changes:
    * Caches based on full path, including the query string.
    * Requires headers as a dictionary, which can optionally contain values
      for the headers. When provided, these values are used instead of the
      request header values. This is to support including the X-Vary-On-View
      header values in the cache key.

    """
    if key_prefix is None:
        key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
    ctx = md5_constructor()
    for header, value in sorted(headers.items()):
        if value is None:
            value = request.META.get(header, None)
            if value is not None:
                ctx.update(value)
        else:
            ctx.update(value)
    url = md5_constructor()
    url.update(request.get_host())
    url.update(iri_to_uri(request.get_full_path()))
    cache_key = 'cache_middleware.response.%s.%s.%s' % (key_prefix, url.hexdigest(), ctx.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
def _generate_orderless_cache_key(request, method, headerlist, key_prefix):
    """Returns a cache key from the headers given in the header list."""
    ctx = hashlib.md5()
    for header in headerlist:
        value = request.META.get(header, None)
        if value is not None:
            ctx.update(force_bytes(value))
    url = hashlib.md5(force_bytes(_generate_orderless_cache_url(request)))
    cache_key = "views.decorators.cache.cache_page.%s.%s.%s.%s" % (key_prefix, method, url.hexdigest(), ctx.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
Example #4
0
def cache_key_prefix(request):
    """
    Cache key for Mezzanine's cache middleware. Adds the current
    device and site ID.
    """
    cache_key = "%s.%s.%s." % (
        settings.CACHE_MIDDLEWARE_KEY_PREFIX,
        current_site_id(),
        device_from_request(request) or "default",
    )
    return _i18n_cache_key_suffix(request, cache_key)
Example #5
0
def _generate_orderless_cache_key(request, method, headerlist, key_prefix):
    """Returns a cache key from the headers given in the header list."""
    ctx = hashlib.md5()
    for header in headerlist:
        value = request.META.get(header, None)
        if value is not None:
            ctx.update(force_bytes(value))
    url = hashlib.md5(force_bytes(_generate_orderless_cache_url(request)))
    cache_key = 'views.decorators.cache.cache_page.%s.%s.%s.%s' % (
        key_prefix, method, url.hexdigest(), ctx.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
Example #6
0
def _generate_cache_key(request, method, headerlist, key_prefix):  # pragma: no cover
    """Returns a cache key from the headers given in the header list."""
    ctx = hashlib.md5()
    for header in headerlist:
        value = request.META.get(header, None)
        if value is not None:
            ctx.update(force_bytes(value))
    url = hashlib.md5(force_bytes(iri_to_uri(request.build_absolute_uri())))
    cache_key = 'views.decorators.cache.cache_page.%s.%s.%s.%s' % (
        key_prefix, method, url.hexdigest(), ctx.hexdigest())
    return cache._i18n_cache_key_suffix(request, cache_key)
def _generate_cache_header_key(key_prefix, request):
    """
    Returns a cache key for the header cache.
    NOTE: This includes the querystring in the URL.

    """
    url = md5_constructor()
    url.update(request.get_host())
    url.update(iri_to_uri(request.get_full_path()))
    cache_key = 'cache_middleware.headers.%s.%s' % (key_prefix, url.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
def _generate_cache_header_key(key_prefix, request):
    """
    Returns a cache key for the header cache.
    NOTE: This includes the querystring in the URL.

    """
    url = md5_constructor()
    url.update(request.get_host())
    url.update(iri_to_uri(request.get_full_path()))
    cache_key = 'cache_middleware.headers.%s.%s' % (key_prefix,
                                                    url.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
Example #9
0
def _generate_cache_key(request, method, headerlist,
                        key_prefix):  # pragma: no cover
    """Returns a cache key from the headers given in the header list."""
    ctx = hashlib.md5()
    for header in headerlist:
        value = request.META.get(header, None)
        if value is not None:
            ctx.update(force_bytes(value))
    url = hashlib.md5(force_bytes(iri_to_uri(request.build_absolute_uri())))
    cache_key = 'views.decorators.cache.cache_page.%s.%s.%s.%s' % (
        key_prefix, method, url.hexdigest(), ctx.hexdigest())
    return cache._i18n_cache_key_suffix(request, cache_key)
Example #10
0
def cache_key_prefix(request):
    """
    Cache key for Mezzanine's cache middleware. Adds the current
    site ID.
    """
    cache_key = "%s.%s.%s" % (
        settings.CACHE_MIDDLEWARE_KEY_PREFIX,
        current_site_id(),
        # This last part used to indicate the device type for the request,
        # but device detection was removed in Mezzanine 4.3.
        # The "default" value was kept to maintain existing cache keys.
        # See: https://github.com/stephenmcd/mezzanine/pull/1783
        "default",
    )
    return _i18n_cache_key_suffix(request, cache_key)
Example #11
0
def cache_key_prefix(request, ignore_device=False):
    """
    Cache key for Mezzanine's cache middleware. Adds the current
    device and site ID, unless ignore_device is True in which case
    it will only add the current site ID.
    """
    cache_key = "%s.%s." % (
        settings.CACHE_MIDDLEWARE_KEY_PREFIX,
        current_site_id(),
    )

    if not ignore_device:
        cache_key += (device_from_request(request) or "default") + "."

    return _i18n_cache_key_suffix(request, cache_key)
Example #12
0
def cache_key_prefix(request):
    """
    Cache key for Mezzanine's cache middleware. Adds the current
    site ID.
    """
    cache_key = "%s.%s.%s" % (
        settings.CACHE_MIDDLEWARE_KEY_PREFIX,
        current_site_id(),
        # This last part used to indicate the device type for the request,
        # but device detection was removed in Mezzanine 4.3.
        # The "default" value was kept to maintain existing cache keys.
        # See: https://github.com/stephenmcd/mezzanine/pull/1783
        "default",
    )
    return _i18n_cache_key_suffix(request, cache_key)
Example #13
0
def _generate_cache_header_key(key_prefix, request):
    """Returns a cache key for the header cache."""
    path = hashlib.md5(force_bytes(iri_to_uri(request.build_absolute_uri())))
    cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
        key_prefix, path.hexdigest())
    return _i18n_cache_key_suffix(request, cache_key)
def debug(request):
    '''
    created to debug code

    Args:
        request: 
    '''
    UKCL = request.GET["UKCL"]
    return HttpResponse("OK: " + UKCL)
    try:
        from django.core import management
        #         management.call_command('migrate', "--database=materialized", interactive=False)
        #         management.call_command('migrate', 'ap', interactive=False)
        #         management.call_command('migrate', interactive=False)
        management.call_command('migrate', 'ap', interactive=False)
        # funziona?        management.call_command('migrate', "knowledge_server 0003_initial_data --database=materialized", interactive=False)
        return HttpResponse("OK")

        import scrapy

        class DmozItem(scrapy.Item):
            title = scrapy.Field()
            link = scrapy.Field()
            desc = scrapy.Field()

        class DmozSpider(scrapy.Spider):
            name = "dmoz"
            allowed_domains = ["dmoz.org"]
            start_urls = [
                "http://www.dmoz.org/Computers/Programming/Languages/Python/",
            ]

            def parse(self, response):
                for href in response.css(
                        "ul.directory.dir-col > li > a::attr('href')"):
                    url = response.urljoin(href.extract())
                    yield scrapy.Request(url, callback=self.parse_dir_contents)

            def parse_dir_contents(self, response):
                for sel in response.xpath('//ul/li'):
                    item = DmozItem()
                    item['title'] = sel.xpath('a/text()').extract()
                    item['link'] = sel.xpath('a/@href').extract()
                    item['desc'] = sel.xpath('text()').extract()
                    yield item

        return HttpResponse('OK')

        ar = ApiResponse()
        ar.content = {"DataSet": "Versions"}
        ar.status = ApiResponse.success
        return HttpResponse(ar.json(), content_type="application/json")

        # TODO: AGGIORNARE SU STACKOVERFLOW: http://stackoverflow.com/questions/8784400/clearing-specific-cache-in-django

        from licenses.models import License
        db_alias = 'default'
        ccbysa40 = License.objects.using(db_alias).get(
            short_name="CC-BY-SA-4.0")
        dssModelMetadataFields = DataSetStructure.get_from_name(
            DataSetStructure.model_metadata_DSN, db_alias)
        dssDataSetStructureStructureNode = DataSetStructure.get_from_name(
            DataSetStructure.dataset_structure_DSN, db_alias)
        dssOrganizationKS = DataSetStructure.get_from_name(
            DataSetStructure.organization_DSN, db_alias)
        for ds in DataSet.objects.using(db_alias).filter(
                dataset_structure=dssModelMetadataFields):
            ds.licenses.add(ccbysa40)
            ds.save()
        for ds in DataSet.objects.using(db_alias).filter(
                dataset_structure=dssDataSetStructureStructureNode):
            ds.licenses.add(ccbysa40)
            ds.save()
        for ds in DataSet.objects.using(db_alias).filter(
                dataset_structure=dssOrganizationKS):
            ds.licenses.add(ccbysa40)
            ds.save()
        db_alias = 'materialized'
        ccbysa40 = License.objects.using(db_alias).get(
            short_name="CC-BY-SA-4.0")
        dssModelMetadataFields = DataSetStructure.get_from_name(
            DataSetStructure.model_metadata_DSN, db_alias)
        dssDataSetStructureStructureNode = DataSetStructure.get_from_name(
            DataSetStructure.dataset_structure_DSN, db_alias)
        dssOrganizationKS = DataSetStructure.get_from_name(
            DataSetStructure.organization_DSN, db_alias)
        for ds in DataSet.objects.using(db_alias).filter(
                dataset_structure=dssModelMetadataFields):
            ds.licenses.add(ccbysa40)
            ds.save()
        for ds in DataSet.objects.using(db_alias).filter(
                dataset_structure=dssDataSetStructureStructureNode):
            ds.licenses.add(ccbysa40)
            ds.save()
        for ds in DataSet.objects.using(db_alias).filter(
                dataset_structure=dssOrganizationKS):
            ds.licenses.add(ccbysa40)
            ds.save()
        return HttpResponse("OK ")

        from django.core.cache import cache
        from django.utils.cache import get_cache_key, _generate_cache_header_key
        from django.utils.encoding import escape_uri_path
        from django.http import HttpRequest

        new_request = HttpRequest()
        new_request.path = 'root.beta.thekoa.org/oks/api/ks_info/JSON/'  ##this path works
        new_request.META['SERVER_PORT'] = request.META['SERVER_PORT']
        new_request.META['SERVER_NAME'] = request.META['SERVER_NAME']

        key = _generate_cache_header_key("", new_request)
        if cache.has_key(key):
            cache.delete(key)

        full_path = 'http://root.beta.thekoa.org/oks/api/datasets/http%253A%252F%252Froot.beta.thekoa.org%252Fknowledge_server%252FDataSetStructure%252F4/JSON/'
        import hashlib
        from django.utils.encoding import force_bytes, iri_to_uri
        from django.utils.cache import _i18n_cache_key_suffix
        # code from _generate_cache_header_key
        url = hashlib.md5(force_bytes(iri_to_uri(full_path)))
        cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
            "", url.hexdigest())
        key = _i18n_cache_key_suffix(request, cache_key)
        if cache.has_key(key):
            cache.delete(key)

        return HttpResponse("OK ")
        #         d = DataSet.objects.get(pk=1)
        #         s = d.shallow_structure()
        #         rct = d.root_content_type
        #
        #
        #         for structure_child_node in s.root_node.child_nodes.all():
        #             mm = structure_child_node.sn_model_metadata(d)
        #             print(mm.name)

        dssContinentState = DataSetStructure()
        dssContinentState.name = "Test Continent-SubContinent-State"
        dssContinentState.SetNotNullFields()
        dssContinentState.save()

        return HttpResponse("OK ")
    except Exception as ex:
        logger.error("views.debug: " + str(ex))
        return HttpResponse(str(ex))
Example #15
0
def _generate_cache_header_key(key_prefix, request):  # pragma: no cover
    """Returns a cache key for the header cache."""
    url = hashlib.md5(force_bytes(iri_to_uri(request.build_absolute_uri())))
    cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
        key_prefix, url.hexdigest())
    return cache._i18n_cache_key_suffix(request, cache_key)