# run.py import os import time import signal import tasks from flask import session from flask_socketio import SocketIO, join_room from app import create_app config_name = os.getenv('FLASK_CONFIG') app = create_app(config_name) app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#' socketio = SocketIO(app) # global username_global # global room_global def create_account(username, fullname, reason): # Todo: Ravi's and Louis's code goes here print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue') socketio.emit("creating account", room=room_global) signal.signal(signal.SIGALRM, account_agent) signal.alarm(5) def account_agent(*args): # Todo: Code to create a consumer based on the username goes here # Todo: Goal is to have it listening for confirmation. username = session['username'] room = str(session['uid']) print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username) socketio.emit("account ready", room=room) return True @socketio.on('user connected') def user_connected(json, methods=['GET', 'POST']): username = json["user"] room = str(session['uid']) join_room(room) print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' connected.') print('\t\t\t|-----Room ID: ' + room) @socketio.on('request account') def request_account(json, methods=['GET', 'POST']): print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json)) print(json) room = str(session['uid']) socketio.emit("creating account", room=room) try: # create_account(json['username'], json['fullname'], json['reason']) tasks.celery_create_account(json['username'], json['fullname'], json['reason'], room, socketio) except Exception as e: print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e) socketio.emit("Account creation failed", room) if __name__ == '__main__': # app.run() socketio.run(app, host='0.0.0.0')