in nuvolaris/redis.py [0:0]
def create_db_user(ucfg: UserConfig, user_metadata: UserMetadata, read_only_mode = False):
logging.info(f"authorizing new redis namespace {ucfg.get('namespace')}")
try:
wait_for_redis_ready()
data = util.get_redis_config_data()
# if prefix not provided defaults to user namespace
prefix = ucfg.get('redis.prefix') or ucfg.get('namespace')
if(not prefix.endswith(":")):
prefix = f"{prefix}:"
data['prefix']=prefix
data['namespace']=ucfg.get('namespace')
data['password']=ucfg.get('redis.password')
data['mode']="create"
if read_only_mode:
logging.warn(f"activating {prefix} in read-only mode")
data['mode']="create_readonly"
path_to_script = render_redis_script(ucfg.get('namespace'),"redis_manage_user_tpl.txt",data)
pod_name = util.get_pod_name("{.items[?(@.metadata.labels.name == 'redis')].metadata.name}")
if(pod_name):
res = exec_redis_command(pod_name,path_to_script)
if res:
user_metadata.add_metadata("REDIS_PREFIX",prefix)
_add_redis_user_metadata(ucfg, user_metadata)
return res
else:
logging.error(f"failed to add redis namespace {ucfg.get('namespace')}")
return None
except Exception as e:
logging.error(f"failed to add redis namespace {ucfg.get('namespace')}: {e}")
return None