diff --git a/mail_config.py.example b/mail_config.py.example index 434cb44e7928dacc9143afd00ad0cdf3f8b87679..e699d8b2733deda1c1510d11c4bc8503a1289a4a 100644 --- a/mail_config.py.example +++ b/mail_config.py.example @@ -25,5 +25,5 @@ Whole_mail = Head + Body UserReportHead = f"""From: {rcfg.Sender_alias} <{rcfg.Sender}> To: <{rcfg.Admin_email}> -Subject: RC Account Creation Report: {{{{ fullname }}}}, {{{{ username }}}} """ +Subject: [{{{{ result }}}}]RC Account Creation Report: {{{{ fullname }}}}, {{{{ username }}}} """ diff --git a/prod_rmq_agents/examples/delete_user.sh b/prod_rmq_agents/examples/delete_user.sh new file mode 100755 index 0000000000000000000000000000000000000000..28459c20d0c73ec76016d9a182423174aa6b8b72 --- /dev/null +++ b/prod_rmq_agents/examples/delete_user.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +username="$1" +path_to_db="/cm/shared/rabbitmq_agents/prod_rmq_agents/.agent_db/user_reg.db" + +usage() { + echo "Usage: $0 USERNAME" +} + +if [[ "$EUID" -ne 0 ]]; then + echo "This script must be run as root!" + exit 1 +fi + +if [ -z "$username" ]; then + usage + exit 1 +fi + +if id "$username" &>/dev/null; then + echo "Deleting user: ${username}" + + echo "cmsh -c 'user use ${username}; remove -d; commit;'" + cmsh -c "user use ${username}; remove -d; commit;" + + echo "sqlite3 $path_to_db \"delete from users where username=\"$username\"" + sqlite3 $path_to_db "delete from users where username=\"$username\"" + + echo "rm -r /data/user/${username}" + rm -rf "/data/user/${username}" + + echo "rm -r /data/scratch/${username}" + rm -rf "/data/scratch/${username}" + +else + echo "user: ${username} not found." + exit 1 +fi diff --git a/prod_rmq_agents/notify_user.py b/prod_rmq_agents/notify_user.py index b7ed9489b30931e475331c713380ca5f1275eb0e..431692b19a5b9d307c38e21c5e99adc1bb9210e6 100644 --- a/prod_rmq_agents/notify_user.py +++ b/prod_rmq_agents/notify_user.py @@ -55,13 +55,13 @@ def notify_user(ch, method, properties, body): message = Template(mail_cfg.Whole_mail).render(username=username, to=user_email) if args.dry_run: - logger.info(f'smtp = smtplib.SMTP({rcfg.Server})') + logger.info(f'smtp = smtplib.SMTP({rcfg.Mail_server})') logger.info(f'smtp.sendmail({rcfg.Sender}, {receivers}, message)') logger.info(f"table.update({{'username': {username}, 'count': 1, 'sent_at': datetime.now()}}, ['username'])") else: errmsg = 'Sending email to user' - smtp = smtplib.SMTP(rcfg.Server) + smtp = smtplib.SMTP(rcfg.Mail_server) smtp.sendmail(rcfg.Sender, receivers, message) logger.debug(f'Email sent to: {user_email}') diff --git a/prod_rmq_agents/subscribe_mail_lists.py b/prod_rmq_agents/subscribe_mail_lists.py index 9ff0af16ef9a7e4628234657f1712d00740ec0f6..236d0b5b9e6d64b0c0e4732b616796fd85718d8f 100644 --- a/prod_rmq_agents/subscribe_mail_lists.py +++ b/prod_rmq_agents/subscribe_mail_lists.py @@ -32,7 +32,7 @@ def mail_list_subscription(ch, method, properties, body): mail_list_admin = rcfg.Sender mail_list = rcfg.Mail_list mail_list_bcc = rcfg.Mail_list_bcc - server = rcfg.Server + server = rcfg.Mail_server listserv_cmd = f'QUIET ADD hpc-announce {email} {fullname} \ \nQUIET ADD hpc-users {email} {fullname}' diff --git a/prod_rmq_agents/task_manager.py b/prod_rmq_agents/task_manager.py index 795f7c322dce8ba1c5b2e40a583e685f86884c03..a65db78ac76c190b3bc30465c202548cb4fbd9eb 100644 --- a/prod_rmq_agents/task_manager.py +++ b/prod_rmq_agents/task_manager.py @@ -52,7 +52,15 @@ rc_rmq = RCRMQ({'exchange': 'RegUsr', 'exchange_type': 'topic'}) def notify_admin(username, user_record): receivers = [rcfg.Admin_email] - message = Template(mail_cfg.UserReportHead).render(username=username, fullname=user_record['fullname']) + + result = "SUCCESS" if user_record["request"]["create_account"] and\ + user_record["verify"]["git_commit"] and\ + user_record["verify"]["dir_verify"] and\ + user_record["verify"]["subscribe_mail_list"] and\ + user_record["notify"]["notify_user"]\ + else "FAILED" + + message = Template(mail_cfg.UserReportHead).render(username=username, fullname=user_record['fullname'], result=result) if user_record['reported']: message += ' (Duplicate)' message += f""" \n @@ -74,12 +82,12 @@ def notify_admin(username, user_record): message += msg + "\n" if args.dry_run: - logger.info(f'smtp = smtplib.SMTP({rcfg.Server})') + logger.info(f'smtp = smtplib.SMTP({rcfg.Mail_server})') logger.info(f'smtp.sendmail({rcfg.Sender}, {rcfg.Admin_email}, message)') logger.info(message) else: - smtp = smtplib.SMTP(rcfg.Server) + smtp = smtplib.SMTP(rcfg.Mail_server) smtp.sendmail(rcfg.Sender, receivers, message) logger.debug(f'User report sent to: {rcfg.Admin_email}') diff --git a/rabbit_config.py.example b/rabbit_config.py.example index acd1535855531a517e062e60cae7ecfa332d4dee..ca94f8aaa8dcb2ad9fe98bb4665099e8832ce2a6 100644 --- a/rabbit_config.py.example +++ b/rabbit_config.py.example @@ -16,7 +16,7 @@ User_dirs = ['/home', '/data/user', '/data/scratch'] rc_users_ldap_repo_loc = "~/git/rc-users" # Config related to email -Server = 'localhost' +Mail_server = 'localhost' Admin_email = 'root@localhost' Sender = 'ROOT@LOCALHOST' Sender_alias = 'Services'