Newer
Older
#!/usr/bin/env python
import sys
import json
import shutil
from pathlib import Path
from rc_rmq import RCRMQ
task = 'dir_verify'
dirs = ['/home', '/data/user', '/data/scratch']
args = rc_util.get_args()
logger = rc_util.get_logger(args)
# Instantiate rabbitmq object
rc_rmq = RCRMQ({'exchange': 'RegUsr', 'exchange_type': 'topic'})
def dir_verify(ch, method, properties, body):
msg = json.loads(body)
username = msg['username']
try:
for d in dirs:
path = Path(d) / msg['username']
if args.dry_run:
logger.info(f'Checking dirs: {path}')
else:
if not path.exists():
# Make sure folder exists and with right permission
path.mkdir(mode=0o700)
# Make sure ownership is correct
except Exception as exception:
logger.error('', exc_info=True)
# send confirm message
rc_rmq.publish_msg({
'routing_key': 'confirm.' + username,
ch.basic_ack(delivery_tag=method.delivery_tag)
rc_rmq.start_consume({
'queue': task,
'routing_key': "verify.*",
'cb': dir_verify
})