Skip to content
Snippets Groups Projects
user_reg_logger.py 1 KiB
Newer Older
#!/usr/bin/env python
import json
import sys
import dataset
Eesaan Atluri's avatar
Eesaan Atluri committed
import rc_util
from rc_rmq import RCRMQ
from datetime import datetime

# Define queue name 
task = 'reg_logger'

# Instantiate rabbitmq object
Eesaan Atluri's avatar
Eesaan Atluri committed
rc_rmq = RCRMQ({'exchange': 'RegUsr', 'exchange_type': 'topic'})

# Parse arguments
args = rc_util.get_args()

# Logger
Eesaan Atluri's avatar
Eesaan Atluri committed
logger = rc_util.get_logger()

# Open registry table in DB
db = dataset.connect('sqlite:///reg_logger.db')
account_req_table = db['registry']

# Define registration logger callback
def log_registration(ch, method, properties, body):

    account_req = json.loads(body)
    account_req['req_time'] = datetime.now(),
    account_req_table.insert(account_req)
    logger.info("logged account request for %s", account_req['username'])

    ch.basic_ack(delivery_tag=method.delivery_tag)

logger.info("Start listening to queue: {}".format(task))

# Start consuming messages from queue with callback function
Eesaan Atluri's avatar
Eesaan Atluri committed
rc_rmq.start_consume({
  'queue': task,
  'routing_key': "create.*",
  'cb': log_registration
})