Ejemplo n.º 1
0
def submit_apbs_json():
    """
    Handles APBS job submissions.
    Runs the APBS main function originally from 'apbs_cgi.py'.
    """

    json_response = None
    http_status_response = None

    if request.method == 'POST':
        form = loads(request.data)['form']
        for key in form.keys():
            if key == 'output_scalar':
                for option in form[key]:
                    form[option] = option
                form.pop('output_scalar')
            else:
                form[key] = str(form[key])
            # form[key] = unicode(form[key])
        # print('\n\n')
        print(pp.pformat(form, indent=4, width=10))
        # print('\n\n')

        # print(pp.pformat(request.form.to_dict(), indent=4, width=10))

        # redirectURL = apbs_cgi.mainInput(request.form)
        # redirectURL = apbs_cgi.mainInput(loads(request.data))
        redirectURL = apbs_cgi.mainInput(form, STORAGE_HOST)
        '''=== DEBUG LINE FOR DEV: REMOVE IN FINAL ==='''
        # if 'http://localhost:5000' in redirectURL:
        #     print(redirectURL)
        #     redirectURL = redirectURL.replace('http://localhost:5000', 'http://localhost:3000')
        #     print(redirectURL)
        '''==========================================='''

        # return redirect(redirectURL)
        response = make_response(JSONEncoder().encode({'status': 'success'}))
        http_status_code = 202

    elif request.method == 'OPTIONS':
        response = make_response(JSONEncoder().encode(json_response))
        response = jobutils.get_request_options(response, 'POST')
        response.headers[
            'Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
        http_status_code = 204

    response.headers['Content-Type'] = 'application/json'
    if request.referrer:
        # Add origin header to response if origin is in whitelist
        request_origin_url = request.referrer.split('?')[0]
        if request_origin_url in ORIGIN_WHITELIST:
            cleared_domain = request_origin_url[:request_origin_url.
                                                index('/apbs')]
            response.headers['Access-Control-Allow-Origin'] = cleared_domain

    return response, http_status_code
Ejemplo n.º 2
0
def submit_apbs():
    """
    Handles APBS job submissions.
    Runs the APBS main function originally from 'apbs_cgi.py'.
    """
    if request.method == 'POST':

        print(pp.pformat(request.form.to_dict(), indent=4, width=10))
        # return str(request.form)
        # return str(request.form['removewater'])
        redirectURL = apbs_cgi.mainInput(request.form)
        '''=== DEBUG LINE FOR DEV: REMOVE IN FINAL ==='''
        if 'http://localhost:5000' in redirectURL:
            print(redirectURL)
            redirectURL = redirectURL.replace('http://localhost:5000',
                                              'http://localhost:3000')
            print(redirectURL)
        '''==========================================='''

        return redirect(redirectURL)
Ejemplo n.º 3
0
def jobstatus():
    """
    GET takes the user directly to the status page

    A query string in the URL is how the status page is rendered
    """
    if request.method == 'POST':
        # f = request.files['PDB']
        # print("f is of type: "+str(type(f)))
        # print(f['PDB'])
        # filename = secure_filename(f.filename)
        # print('filename: ' + filename)
        job_type = request.args['submitType']
        # print(job_type)
        # print(request.args)
        if job_type == 'pdb2pqr':
            redirectURL = main_cgi.mainCGI(request.form, request.files)
        elif job_type == 'apbs':
            print(pp.pformat(request.form.to_dict(), indent=4, width=10))
            # return pp.pformat(request.form.to_dict(), indent=4, width=10)

            # return str(request.form)
            # return str(request.form['removewater'])
            redirectURL = apbs_cgi.mainInput(request.form)
            pass
        '''=== DEBUG LINE FOR DEV: REMOVE IN FINAL ==='''
        if ':5000' in redirectURL:
            print(redirectURL)
            redirectURL = redirectURL.replace(':5000', ':3000')
            print(redirectURL)
        '''==========================================='''

        return redirect(redirectURL)

    elif request.method == 'GET':
        return render_template("index.html")