Пример #1
0
def solve():

    distribution = request.args.get('distribution')
    if distribution is None:
        raise KeyError("missing distribution")

    if request.content_length > 2048:
        raise KeyError("request too large")

    data = request.get_data(as_text=True)
    if data is None:
        raise KeyError("missing data")

    d = Deptool.Deptool(context=distribution)
    app.logger.debug("got job %s", data)

    result = d.process_testcase(data.split('\n'))

    stamp = time.strftime("%Y%m%d-%H%M%S")
    path = save_cache_path('opensuse.org', 'deptool', 'solve')

    with open(os.path.join(path, 'job-{}.json'.format(stamp)), 'w') as fh:
        s = dict(distibution=distribution, job=data, version="1")
        fh.write(json.dumps(s))

    with open(os.path.join(path, 'result-{}.json'.format(stamp)), 'w') as fh:
        s = dict(result=result, version="1")
        fh.write(json.dumps(result))

    return jsonify(result)
Пример #2
0
def distribution():

    d = Deptool.Deptool()

    name = request.args.get('name')
    if name is None:
        return jsonify(d.context_list())

    return jsonify(d.context_info(name))
Пример #3
0
def refresh():
    context = request.args.get('context', None)
    if not context:
        raise KeyError("missing parameters")

    d = Deptool.Deptool(context=context)
    d.refresh_repos()

    return jsonify({'message': 'ok'})
Пример #4
0
def rdeps(context, package):

    d = Deptool.Deptool(context=context)
    result = d.rdeps(package)

    return render_template('rdeps.html',
                           context=context,
                           package=package,
                           result=result)
Пример #5
0
def whatprovides():
    context = request.args.get('context', None)
    arch = request.args.get('arch', None)
    repos = request.args.getlist('repo[]')
    relation = request.args.get('relation', None)
    if not (context and relation):
        raise KeyError("missing relation parameter")

    d = Deptool.Deptool(context=context, arch=arch, repos=repos)
    result = d.whatprovides(relation)

    return jsonify(result)
Пример #6
0
def depinfo(context):

    relation = request.args.get('relation')
    if relation is None:
        raise KeyError("missing relation parameter")

    d = Deptool.Deptool(context=context)
    result = d.depinfo(relation)

    return render_template('depinfo.html',
                           context=context,
                           relation=relation,
                           result=result)
Пример #7
0
def info_path(context, package):
    arch = request.args.get('arch', None)
    d = Deptool.Deptool(context=context)
    d.arch = arch
    result = d.info(package)

    if (request.args.get('format', '') == 'json'):
        return jsonify(result)

    return render_template('info.html',
                           context=context,
                           package=package,
                           result=result)
Пример #8
0
def depinfo_json():
    context = request.args.get('context', None)
    arch = request.args.get('arch', None)
    repos = request.args.getlist('repo[]')

    relation = request.args.get('relation', None)
    if not (context and relation):
        raise KeyError("missing parameters")

    d = Deptool.Deptool(context=context, arch=arch, repos=repos)
    result = d.depinfo(relation)

    return jsonify(result)
Пример #9
0
def rdeps_json():
    context = request.args.get('context', None)
    arch = request.args.get('arch', None)
    repos = request.args.getlist('repo[]')

    solvable = request.args.get('solvable', None)
    if not (context and solvable):
        raise KeyError("missing parameters")

    d = Deptool.Deptool(context=context, arch=arch, repos=repos)
    result = d.rdeps(solvable)

    return jsonify(result)
Пример #10
0
def info():
    context = request.args.get('context', None)
    arch = request.args.get('arch', None)
    repos = request.args.getlist('repo[]')

    package = request.args.get('package', None)
    if not (context and package):
        raise KeyError("missing parameters")

    d = Deptool.Deptool(context=context, arch=arch, repos=repos)
    if arch:
        d.arch = arch
    result = d.info(package)

    return jsonify(result)
Пример #11
0
def install(context):
    d = Deptool.Deptool(context=context)
    packages = request.args.getlist('package')
    norecommends = request.args.get('norecommends', False)
    result = None
    if packages:
        packages = [p for p in packages if p and p != '']
        app.logger.info(packages)
        if len(packages):
            result = d.solve(packages, ignore_recommended=norecommends)
    return render_template('install.html',
                           context=context,
                           packages=packages,
                           result=result,
                           norecommends=norecommends)
Пример #12
0
def search():
    context = request.args.get('context', None)
    arch = request.args.get('arch', None)
    repos = request.args.getlist('repo[]')
    provides = request.args.get('provides', None)
    if provides is not None and provides == '1':
        provides = True
    else:
        provides = False

    text = request.args.get('text', None)
    if not (context and text):
        raise KeyError("missing parameters")

    d = Deptool.Deptool(context=context, arch=arch, repos=repos)
    result = d.search(text, provides=provides)

    return jsonify(result)
Пример #13
0
def list():

    d = Deptool.Deptool()

    return render_template('index.html', d=d)