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 branches found
No related tags found
1 merge request!40Add rabbitmq connection
......@@ -17,17 +17,13 @@ def create_app(config_name):
@app.route('/', methods=['GET', 'POST']) # initial route to display the reg page
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:
session['uid']=str(uuid.uuid4())
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"
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
@app.errorhandler(403)
......
......@@ -6,7 +6,7 @@ function request_account() {
socket.emit('request account', {
fullname: document.getElementById("fullname").value,
reason: document.getElementById("reason").value,
username: document.getElementById("username").innerText
username: document.getElementById("bid").value
})
}
......
......@@ -11,9 +11,7 @@
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on( 'connect', function() {
socket.emit( 'user connected', {
user: document.getElementById("username").innerText
} )
socket.emit( 'join_room' )
socket.on( 'creating account', function( msg ) {
document.getElementById("error").innerText = "";
......@@ -83,10 +81,14 @@
</a>
</div>
<h2>Hello, <span id="username">{{ user }}</span>!</h2>
<!-- <h2>Hello, <span id="username">{{ user }}</span>!</h2> -->
<h2>Hi, </h2>
<div id="test">
<form action="." method="post" onsubmit="">
<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>
<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>
......
......@@ -5,45 +5,42 @@ import time
import signal
import tasks
from flask import session
from flask_socketio import SocketIO, join_room
from app import create_app
from gevent import monkey
monkey.patch_all(subprocess=True)
config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)
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')
def user_connected(json, methods=['GET', 'POST']):
@socketio.on('join_room')
def on_room():
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))
room = str(session['uid'])
sid = str(session['uid'])
print("Room: {}".format(sid))
try:
# create_account(json['username'], json['fullname'], json['reason'])
tasks.celery_create_account(json['username'], json['fullname'], json['reason'], room, socketio)
tasks.celery_create_account.delay(json['username'], json['fullname'], json['reason'], session=sid)
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')
from celery import Celery
import time
from flask_socketio import SocketIO
import subprocess
from gevent import monkey
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
def celery_create_account(username, fullname, reason, room, socketio):
# Todo: Ravi's and Louis's code goes here
def celery_create_account(username, fullname, reason, session):
room = session
print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue')
socketio.emit("creating account", room=room)
time.sleep(5)
send_msg('creating account', room)
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)
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