예제 #1
0
def cacheTestSummaries(project):

    gm = DatazillaModel(project)
    dataIter = gm.getAllSummaryCache()

    mc = memcache.Client([settings.DATAZILLA_MEMCACHED], debug=0)

    for d in dataIter:
        for data in d:
            key = utils.get_cache_key(
                project,
                data['item_id'],
                data['item_data'],
                )

            rv = mc.set(key, zlib.compress( data['value'] ))
            if not rv:
                sys.stderr.write("ERROR: Failed to store object in memcache: %s, %s\n" % ( str(data['item_id']), data['item_data'] ) )

    gm.disconnect()
예제 #2
0
파일: views.py 프로젝트: ctalbert/datazilla
def _getTestRunSummary(project, method, request, dm):

    productIds = []
    testIds = []
    platformIds = []

    #####
    #Calling get_id_list() insures that we have only numbers in the
    #lists, this gaurds against SQL injection
    #####
    if 'product_ids' in request.GET:
        productIds = utils.get_id_list(request.GET['product_ids'])
    if 'test_ids' in request.GET:
        testIds = utils.get_id_list(request.GET['test_ids'])
    if 'platform_ids' in request.GET:
        platformIds = utils.get_id_list(request.GET['platform_ids'])

    timeKey = 'days_30'
    timeRanges = utils.get_time_ranges()
    if 'tkey' in request.GET:
        timeKey = request.GET['tkey']

    if not productIds:
        ##Set default productId##
        productIds = [12]

    jsonData = '{}'

    mc = memcache.Client([settings.DATAZILLA_MEMCACHED], debug=0)

    if productIds and (not testIds) and (not platformIds):

        if len(productIds) > 1:
            extendList = { 'data':[], 'columns':[] }
            for id in productIds:
                key = utils.get_cache_key(project, str(id), timeKey)
                compressedJsonData = mc.get(key)

                if compressedJsonData:
                    jsonData = zlib.decompress( compressedJsonData )
                    data = json.loads( jsonData )
                    extendList['data'].extend( data['data'] )
                    extendList['columns'] = data['columns']

            jsonData = json.dumps(extendList)

        else:
            key = utils.get_cache_key(
                project,
                str(productIds[0]),
                timeKey,
                )
            compressedJsonData = mc.get(key)

            if compressedJsonData:
                jsonData = zlib.decompress( compressedJsonData )

    else:
        table = dm.getTestRunSummary(timeRanges[timeKey]['start'],
                                     timeRanges[timeKey]['stop'],
                                     productIds,
                                     platformIds,
                                     testIds)

        jsonData = json.dumps( table )

    return jsonData