Skip to content
Snippets Groups Projects

WIP: Feat cod rmq

Closed Ravi Tripathi requested to merge github/fork/eesaanatluri/feat-cod-rmq into develop
13 files
+ 762
19
Compare changes
  • Side-by-side
  • Inline
Files
13
+ 30
17
#!/usr/bin/env python3
#!/usr/bin/env python3
import sys
import sys
 
import json
import rc_util
import rc_util
 
import argparse
if len(sys.argv) < 2:
parser = argparse.ArgumentParser()
print("Usage: {} USERNAME [EMAIL] [FULL_NAME] [REASON]".format(sys.argv[0]), file=sys.stderr)
parser.add_argument('username', help='username that will be created')
exit(1)
parser.add_argument('email', nargs='?', default='', help="User's email")
 
parser.add_argument('full_name', nargs='?', default='', help="User's full name")
 
parser.add_argument('reason', nargs='?', default='', help='Reason of requesting')
 
parser.add_argument('--domain', default='localhost', help='domain of email')
 
parser.add_argument('-v', '--verbose', action='store_true', help='verbose output')
 
parser.add_argument('-n', '--dry-run', action='store_true', help='enable dry run mode')
 
args = parser.parse_args()
domain = 'uab.edu'
logger = rc_util.get_logger(args)
user_name = sys.argv[1]
email = sys.argv[2] if len(sys.argv) >= 3 else ''
full_name = sys.argv[3] if len(sys.argv) >= 4 else ''
reason = sys.argv[4] if len(sys.argv) >= 5 else ''
if email == '':
if args.email == '':
if '@' in user_name:
args.email = args.username
email = user_name
if '@' not in args.email:
else:
args.email = args.username + '@' + args.domain
email = user_name + '@' + domain
rc_util.add_account(user_name, email=email, full=full_name, reason=reason)
def callback(channel, method, properties, body):
print("Account requested for user: {}".format(user_name))
msg = json.loads(body)
 
username = msg['username']
print("Waiting for confirmation...")
logger.info(f'Account for {username} has been created.')
rc_util.consume(user_name)
 
rc_util.rc_rmq.stop_consume()
 
rc_util.rc_rmq.delete_queue()
 
 
 
rc_util.add_account(args.username, email=args.email, full=args.full_name, reason=args.reason)
 
logger.info(f'Account for {args.username} requested.')
 
 
logger.info('Waiting for completion...')
 
rc_util.consume(args.username, routing_key=f'complete.{args.username}', callback=callback)
Loading