53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import os
|
|
|
|
import click
|
|
|
|
import frappe
|
|
from frappe.utils.redis_queue import RedisQueue
|
|
from frappe.installer import update_site_config
|
|
|
|
@click.command('create-rq-users')
|
|
@click.option('--set-admin-password', is_flag=True, default=False, help='Set new Redis admin(default user) password')
|
|
@click.option('--use-rq-auth', is_flag=True, default=False, help='Enable Redis authentication for sites')
|
|
def create_rq_users(set_admin_password=False, use_rq_auth=False):
|
|
"""Create Redis Queue users and add to acl and app configs.
|
|
|
|
acl config file will be used by redis server while starting the server
|
|
and app config is used by app while connecting to redis server.
|
|
"""
|
|
acl_file_path = os.path.abspath('../config/redis_queue.acl')
|
|
|
|
with frappe.init_site():
|
|
acl_list, user_credentials = RedisQueue.gen_acl_list(
|
|
set_admin_password=set_admin_password)
|
|
|
|
with open(acl_file_path, 'w') as f:
|
|
f.writelines([acl+'\n' for acl in acl_list])
|
|
|
|
sites_path = os.getcwd()
|
|
common_site_config_path = os.path.join(sites_path, 'common_site_config.json')
|
|
update_site_config("rq_username", user_credentials['bench'][0], validate=False,
|
|
site_config_path=common_site_config_path)
|
|
update_site_config("rq_password", user_credentials['bench'][1], validate=False,
|
|
site_config_path=common_site_config_path)
|
|
update_site_config("use_rq_auth", use_rq_auth, validate=False,
|
|
site_config_path=common_site_config_path)
|
|
|
|
click.secho('* ACL and site configs are updated with new user credentials. '
|
|
'Please restart Redis Queue server to enable namespaces.',
|
|
fg='green')
|
|
|
|
if set_admin_password:
|
|
env_key = 'RQ_ADMIN_PASWORD'
|
|
click.secho('* Redis admin password is successfully set up. '
|
|
'Include below line in .bashrc file for system to use',
|
|
fg='green')
|
|
click.secho(f"`export {env_key}={user_credentials['default'][1]}`")
|
|
click.secho('NOTE: Please save the admin password as you '
|
|
'can not access redis server without the password',
|
|
fg='yellow')
|
|
|
|
|
|
commands = [
|
|
create_rq_users
|
|
]
|