Skip to content
Snippets Groups Projects
Commit 50220f11 authored by Mitchell Moore's avatar Mitchell Moore
Browse files

Merge branch 'add_rabbitmq_connection' into 'master'

Add rabbitmq connection

See merge request mmoo97/flask_user_reg!40
parents 86a3bfab 91eb91f9
No related tags found
No related merge requests found
...@@ -17,17 +17,13 @@ def create_app(config_name): ...@@ -17,17 +17,13 @@ def create_app(config_name):
@app.route('/', methods=['GET', 'POST']) # initial route to display the reg page @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page
def index(): def index():
if 'username' not in session:
session['username'] = "name_test" + str(random.randint(0, 10000))
# session['username'] = request.remote_user
if 'uid' not in session: if 'uid' not in session:
session['uid']=str(uuid.uuid4()) session['uid']=str(uuid.uuid4())
if "redir" in request.args and 'return_url' not in session: # check for redir arg in url if "redir" in request.args and 'return_url' not in session: # check for redir arg in url
session['return_url'] = request.args.get("redir") or "/pun/sys/dashboard" session['return_url'] = request.args.get("redir") or "/pun/sys/dashboard"
return render_template('auth/SignUp.html', user=session['username'], room_id=session['uid']) return render_template('auth/SignUp.html', room_id=session['uid'])
# misc page error catching # misc page error catching
@app.errorhandler(403) @app.errorhandler(403)
......
...@@ -6,7 +6,7 @@ function request_account() { ...@@ -6,7 +6,7 @@ function request_account() {
socket.emit('request account', { socket.emit('request account', {
fullname: document.getElementById("fullname").value, fullname: document.getElementById("fullname").value,
reason: document.getElementById("reason").value, reason: document.getElementById("reason").value,
username: document.getElementById("username").innerText username: document.getElementById("bid").value
}) })
} }
......
...@@ -11,9 +11,7 @@ ...@@ -11,9 +11,7 @@
var socket = io.connect('http://' + document.domain + ':' + location.port); var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on( 'connect', function() { socket.on( 'connect', function() {
socket.emit( 'user connected', { socket.emit( 'join_room' )
user: document.getElementById("username").innerText
} )
socket.on( 'creating account', function( msg ) { socket.on( 'creating account', function( msg ) {
document.getElementById("error").innerText = ""; document.getElementById("error").innerText = "";
...@@ -83,10 +81,14 @@ ...@@ -83,10 +81,14 @@
</a> </a>
</div> </div>
<h2>Hello, <span id="username">{{ user }}</span>!</h2> <!-- <h2>Hello, <span id="username">{{ user }}</span>!</h2> -->
<h2>Hi, </h2>
<div id="test"> <div id="test">
<form action="." method="post" onsubmit=""> <form action="." method="post" onsubmit="">
<div class="signUpContainer"> <div class="signUpContainer">
<label><b><label for="username">Blazer Id: </label><br></b></label>
<input class="form-control" id="bid" name="bid" placeholder="Enter BlazerId" required="" type="text">
<label><b><label for="fullname">Full Name: </label><br></b></label> <label><b><label for="fullname">Full Name: </label><br></b></label>
<input class="form-control" id="fullname" name="fullname" placeholder="Enter Full Name" required="" type="text"> <input class="form-control" id="fullname" name="fullname" placeholder="Enter Full Name" required="" type="text">
<label><b><label for="reason">Reason for Requesting Account: </label><br></b></label> <label><b><label for="reason">Reason for Requesting Account: </label><br></b></label>
......
...@@ -5,45 +5,42 @@ import time ...@@ -5,45 +5,42 @@ import time
import signal import signal
import tasks import tasks
from flask import session from flask import session
from flask_socketio import SocketIO, join_room from flask_socketio import SocketIO, join_room
from app import create_app from app import create_app
from gevent import monkey
monkey.patch_all(subprocess=True)
config_name = os.getenv('FLASK_CONFIG') config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name) app = create_app(config_name)
app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#' app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#'
socketio = SocketIO(app) socketio = SocketIO(app, message_queue='amqp://reggie:reggie@ohpc:5672/socketio')
@socketio.on('connect')
def socket_connect():
pass
@socketio.on('user connected') @socketio.on('join_room')
def user_connected(json, methods=['GET', 'POST']): def on_room():
username = json["user"]
room = str(session['uid']) room = str(session['uid'])
join_room(room) join_room(room)
print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' connected.')
print('\t\t\t|-----Room ID: ' + room) print('\t\t\t|-----Room ID: ' + room)
@socketio.on('request account') @socketio.on('request account')
def request_account(json, methods=['GET', 'POST']): def request_account(json, methods=['GET', 'POST']):
print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json)) print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json))
sid = str(session['uid'])
room = str(session['uid']) print("Room: {}".format(sid))
try: try:
# create_account(json['username'], json['fullname'], json['reason']) tasks.celery_create_account.delay(json['username'], json['fullname'], json['reason'], session=sid)
tasks.celery_create_account(json['username'], json['fullname'], json['reason'], room, socketio)
except Exception as e: except Exception as e:
print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e) print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e)
socketio.emit("Account creation failed", room) socketio.emit("Account creation failed", room)
if __name__ == '__main__': if __name__ == '__main__':
# app.run()
socketio.run(app, host='0.0.0.0') socketio.run(app, host='0.0.0.0')
from celery import Celery from celery import Celery
import time import time
from flask_socketio import SocketIO from flask_socketio import SocketIO
import subprocess
from gevent import monkey from gevent import monkey
monkey.patch_all(subprocess=True) monkey.patch_all(subprocess=True)
celery = Celery('flask_user_reg', broker='amqp://') broker_url = 'amqp://reggie:reggie@ohpc:5672/'
celery = Celery('flask_user_reg', broker=broker_url)
# socketio = SocketIO(message_queue='amqp:///socketio') socketio = SocketIO(message_queue='amqp://reggie:reggie@ohpc:5672/socketio')
def send_msg(event, room):
print("Post '{}' to room '{}'".format(event,room))
socketio.emit(event, room=room)
@celery.task @celery.task
def celery_create_account(username, fullname, reason, room, socketio): def celery_create_account(username, fullname, reason, session):
# Todo: Ravi's and Louis's code goes here room = session
print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue') print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue')
socketio.emit("creating account", room=room) send_msg('creating account', room)
time.sleep(5) print(username)
subprocess.call(["/opt/rabbitmq_agents/flask_producer.py", "ohpc_account_create", username])
print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username) print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username)
socketio.emit('account ready', room=room) send_msg('account ready', room)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment