예제 #1
0
파일: main.py 프로젝트: ntamhank-ibm/PDS
def getSupportedDistros():
    package_search = PackageSearch.load()
    json_data = json.dumps(package_search.getSupportedDistros())
    resp = Response(json_data,mimetype="application/json")
    resp.headers.set('Cache-Control','no-cache, no-store, must-revalidate')
    resp.headers.set('Pragma','no-cache')
    resp.headers.set('Expires','0')
    return resp
예제 #2
0
파일: main.py 프로젝트: ntamhank-ibm/PDS
def searchPackages():
    package_search = PackageSearch.load()
    search_term = ''
    exact_match = False
    search_bit_flag = 0
    page_number = 0
    try:
        search_term = str(request.args.get('search_term', ''))
        search_term = search_term.lstrip().rstrip()
        exact_match = request.args.get('exact_match', False)
        search_bit_flag = int(request.args.get('search_bit_flag', '0'))
        page_number = int(request.args.get('page_number', '0'))
        
        json_data = package_search.searchPackages(search_term, exact_match, search_bit_flag, page_number)   
        resp = Response(json_data,mimetype="application/json")
        resp.headers.set('Cache-Control','no-cache, no-store, must-revalidate')
        resp.headers.set('Pragma','no-cache')
        resp.headers.set('Expires','0')
        return resp
    except Exception as ex:
        LOGGER.error('Error in searchPackages with search parameters: %s', str(ex))
예제 #3
0
파일: main.py 프로젝트: guirish/PDS
def getPackagesFromURL():
    '''
    This API will try to read from JSON files for various distros 
    and return the filtered set of results based on given search 
    keywords and distros to search from.
    '''

    package_search = PackageSearch.load()
    package_name = str(request.args.get('package_name', ''))
    search_string = int(request.args.get('search_string', ''))
    LOGGER.debug(request.args.get('package_name', ''))
    try:
        exact_match = json.loads(request.args.get('exact_match', 0))
        page_number = int(request.args.get('page_number', 10))
        page_size = int(request.args.get('page_size', 0))
        reverse = int(json.loads(request.args.get('reverse', 0)))
        sort_key = str(request.args.get('sort_key', 'name'))
    except Exception as ex:
        LOGGER.error('Error in getPackagesFromURL with search parameters: %s',
                     str(ex))

    return package_search.getPackagesFromURL(package_name, exact_match,
                                             page_number, page_size, sort_key,
                                             reverse, search_string)
예제 #4
0
파일: main.py 프로젝트: ntamhank-ibm/PDS
from flask import Flask, request, render_template, json, Response, make_response
import logging

from config import server_host, server_port
from config import LOGGER, DEBUG_LEVEL
from classes import PackageSearch
from classes import PDSStats

app = Flask(__name__)
# Ensure that the required JSON data file are pre-loaded in memory at the time of server start.
package_search = PackageSearch.load()

@app.route('/')
@app.route('/pds/faq')
@app.route('/pds/')
def index():
    resp = make_response(render_template('index.html'))
    resp.headers.set('Cache-Control','no-cache, no-store, must-revalidate')
    resp.headers.set('Pragma','no-cache')
    resp.headers.set('Expires','0')
    return resp
    
@app.route('/getSupportedDistros')
@app.route('/pds/getSupportedDistros')
def getSupportedDistros():
    package_search = PackageSearch.load()
    json_data = json.dumps(package_search.getSupportedDistros())
    resp = Response(json_data,mimetype="application/json")
    resp.headers.set('Cache-Control','no-cache, no-store, must-revalidate')
    resp.headers.set('Pragma','no-cache')
    resp.headers.set('Expires','0')
예제 #5
0
파일: main.py 프로젝트: guirish/PDS
def getSupportedDistros():
    package_search = PackageSearch.load()
    return json.dumps(package_search.getSupportedDistros())
예제 #6
0
    # Dump the package name, version and URL in JSON format to a JSON file.
    for i in pkgs:
        key = i.source_package_name
        # Make sure recent version is listed
        if key in final_data and str(i.source_package_version) > str(final_data[key]['version']):
            final_data[key]['version'] = str(i.source_package_version)
        elif key not in final_data:
            final_data[key] = {
                'packageName': str(i.source_package_name),
                'version': str(i.source_package_version)
            }

    print("Data generation to form JSON file ended..")

    package_search = PackageSearch()

    print("Dumping JSON to a local cache")

    temp_file_name = '%s_%s_Package_List.json_temp' % (os_name.upper(), distro_version.replace('.','_'))
    file_name = '%s_%s_Package_List.json' % (os_name.upper(), distro_version.replace('.','_'))
    file_handler = open('%s/%s' % (package_search.getDataFilePath(), temp_file_name), 'w')
    file_handler.write(json.dumps(list(final_data.values())))
    file_handler.close()

    print("Dumping JSON to a local cache complete")

    # Now move the data to actual file, if file size is at least 50KB to avoid incomplete data.
    if os.path.getsize('%s/%s' % (package_search.getDataFilePath(), temp_file_name)) > int(MIN_DATA_FILE_SIZE):
        try:
            # Backup old JSON file with timestamp in archives folder for future reference
예제 #7
0
    # Dump the package name, version and URL in JSON format to a JSON file.
    for i in pkgs:
        key = i.source_package_name
        # Make sure recent version is listed
        if final_data.has_key(key) and str(i.source_package_version) > str(
                final_data[key]['version']):
            final_data[key]['version'] = str(i.source_package_version)
        elif not final_data.has_key(key):
            final_data[key] = {
                'packageName': str(i.source_package_name),
                'version': str(i.source_package_version)
            }

    print "Data generation to form JSON file ended.."

    package_search = PackageSearch()

    print "Dumping JSON to a local cache"

    temp_file_name = '%s_%s_Package_List.json_temp' % (
        os_name.upper(), distro_version.replace('.', '_'))
    file_name = '%s_%s_Package_List.json' % (os_name.upper(),
                                             distro_version.replace('.', '_'))
    file_handler = open(
        '%s/%s' % (package_search.getDataFilePath(), temp_file_name), 'w')
    file_handler.write(json.dumps(final_data.values()))
    file_handler.close()

    print "Dumping JSON to a local cache complete"

    # Now move the data to actual file, if file size is at least 50KB to avoid incomplete data.