69 lines
2 KiB
Python
69 lines
2 KiB
Python
import os
|
|
|
|
import click
|
|
|
|
import frappe
|
|
|
|
|
|
@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.
|
|
"""
|
|
from frappe.installer import update_site_config
|
|
from frappe.utils.redis_queue import RedisQueue
|
|
|
|
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]
|