def get_service_by_request(args, kwargs):
    try:
        serve_cache = caches['default']
        cate_abb = kwargs.pop('cate_abb', None)
        type_abb = kwargs.pop('type_abb', None)
        serve_abb = kwargs.pop('serve_abb', None)
        serve_cache_key = "%s-%s-%s" % (cate_abb, type_abb, serve_abb)

        if None == serve_cache.get(serve_cache_key):
            paramsObj = {
                'service__serve_type__category__cate_abbreviation': cate_abb,
                'service__serve_type__type_abbreviation': type_abb,
                'service__serve_abbreviation': serve_abb,
                'recursion': 1,
                'page_no': 1,
                'page_size': 10
            }
            respObj, contentObj = RestUtils.rest_auth_get(
                "/api_secret/", paramsObj)
            service = contentObj.results[0]
            serve_cache.set(serve_cache_key, service)
        else:
            service = serve_cache.get(serve_cache_key)

        regexId = "https?://.*/base/(\d)\.json"
        matchId = re.search(regexId, service.service.url)
        if matchId:
            service.service.id = matchId.group(1)

        regexStatus = "https?://.*/status/(\d)\.json"
        matchStatus = re.search(regexStatus, service.service.status)
        if matchStatus:
            service.service.status = matchStatus.group(1)

        return service
    except Exception, e:
        logger.info(e)
        return None
def get_service_by_request(args, kwargs):
    try:
        serve_cache = caches["default"]
        cate_abb = kwargs.pop("cate_abb", None)
        type_abb = kwargs.pop("type_abb", None)
        serve_abb = kwargs.pop("serve_abb", None)
        serve_cache_key = "%s-%s-%s" % (cate_abb, type_abb, serve_abb)

        if None == serve_cache.get(serve_cache_key):
            paramsObj = {
                "service__serve_type__category__cate_abbreviation": cate_abb,
                "service__serve_type__type_abbreviation": type_abb,
                "service__serve_abbreviation": serve_abb,
                "recursion": 1,
                "page_no": 1,
                "page_size": 10,
            }
            respObj, contentObj = RestUtils.rest_auth_get("/api_secret/", paramsObj)
            service = contentObj.results[0]
            serve_cache.set(serve_cache_key, service)
        else:
            service = serve_cache.get(serve_cache_key)

        regexId = "https?://.*/base/(\d)\.json"
        matchId = re.search(regexId, service.service.url)
        if matchId:
            service.service.id = matchId.group(1)

        regexStatus = "https?://.*/status/(\d)\.json"
        matchStatus = re.search(regexStatus, service.service.status)
        if matchStatus:
            service.service.status = matchStatus.group(1)

        return service
    except Exception, e:
        logger.info(e)
        return None