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')
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
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()
#!/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')