Ejemplo n.º 1
0
    def main(testmode=False, workdir=lib_folder):
        if MynedataBackendCtl.backend_process is not None:
            return
        if not Configuration.initialized:
            Configuration.initialize()

        mynedata_backend_command = 'celery worker {tasks} {workdir} {celerybeat} {testmode} {logfile} {loglevel} {autoscale}'.format(
            tasks='-A lib.backend.tasks.app -B',
            workdir='--workdir {}'.format(workdir),
            celerybeat='--schedule=/tmp/celerybeat-schedule',
            testmode='--testmode' if testmode else '',
            logfile='--logfile=/opt/mynedata/log/backend.log',
            loglevel='--loglevel=debug',
            autoscale='--autoscale %s,%s' %
            (Configuration.concurrency_max, Configuration.concurrency_min),
        )

        if testmode:
            Configuration.enable_test_mode()
        Configuration.print_config()

        MynedataBackendCtl.backend_process = subprocess.Popen(
            mynedata_backend_command, shell=True)
        with open(PID_FILE, 'w') as f_pid:
            f_pid.write(str(MynedataBackendCtl.backend_process.pid) + '\n')
Ejemplo n.º 2
0
def register(new_acc, db_query, pers_inf, param):
    """ Add new user to database. (internal)

    Args:
        - new_acc (object): User object to be added to database of type ``db_query``

        - db_query (class): User class, e.g. ``User``

        - pers_inf (object): Object of type personal_information.PersonalInformation

        - param (dict): Contains the user id, e.g. `` {'user_id': user_id} ``

    Returns:
        - success (bool)
        - error (dict):
            - code (int): one of
                - 6 -- Account already existing
                - 99 -- Undefined
            - message (str): error code meaning
        - response (empty dict)

        (returns error only if success == False and response otherwise)
    """

    session = db.get_db_session()
    result = {}
    result['success'] = False
    try:
        # account already registered
        if session.query(db_query).filter_by(**param).count():
            session.close()
            Configuration.print_config()
            error = {}
            error['code'] = enums.Error.USER_ALREADY_EXISTS
            error['message'] = "account already exists"
            result['error'] = error
            return result
        else:
            session.add(new_acc)
            if pers_inf is not None:
                session.add(pers_inf)
                for code in UserDataType:
                    session.add(
                        PrivacyDefault(code.value, new_acc.user_id, 0, True))
            session.commit()
            session.close()
    except Exception:
        if Configuration.test_mode:
            logging.exception("An error occured:")
        session.rollback()
        session.close()
        error = {}
        error['code'] = enums.Error.UNDEFINED
        error['message'] = "undefined"
        result['error'] = error
        return result
    result['success'] = True
    result['response'] = {}
    return result
Ejemplo n.º 3
0
    def __init__(self, worker, test_mode, **options):
        Configuration.initialize()
        if test_mode:
            Configuration.enable_test_mode()
        Configuration.print_config()
        worker.app.config_from_object(Configuration)
        DatabaseConnector.initialize(target=Configuration.database_uri)

        # Initialize payments
        if Configuration.payment_mode in [
                PaymentMethod.BITCOIN_DIRECT,
                PaymentMethod.BITCOIN_QUERY_BASED,
                PaymentMethod.BITCOIN_CENTRAL
        ]:
            BitcoinConnector.initialize()
Ejemplo n.º 4
0
#!/usr/bin/env python3

""" This script starts the myneData API. """

import sys
import os
from gevent import monkey

lib_folder = '/'.join(os.path.split(os.path.dirname(sys.path[0]))[:-1])
sys.path.insert(0, lib_folder)

from lib.config import Configuration
from lib.api import endpoint
monkey.patch_all()


if __name__ == '__main__':
    Configuration.initialize()
    Configuration.print_config()

    endpoint.app.debug = True
    endpoint.app.run(port=int(Configuration.api_port), server='gevent')