in nuvolaris/kvrocks.py [0:0]
def create_nuvolaris_db_user(data):
logging.info(f"authorizing kvrocks for namespace nuvolaris")
try:
data['mode']="create"
path_to_script = render_kvrocks_script(data['namespace'],"kvrocks_manage_user_tpl.txt",data)
pod_name = util.get_pod_name("{.items[?(@.metadata.labels.name == 'redis')].metadata.name}")
if(pod_name):
res = exec_kvrocks_command(pod_name,path_to_script)
if(res):
redis_service = util.get_service("{.items[?(@.spec.selector.name == 'redis')]}")
if(redis_service):
redis_service_name = redis_service['metadata']['name']
redis_service_port = redis_service['spec']['ports'][0]['port']
username = urllib.parse.quote(data['namespace'])
password = urllib.parse.quote(data['password'])
auth = f"{username}:{password}"
redis_url = f"redis://{auth}@{redis_service_name}:{redis_service_port}"
redis_alt_url = f"redis://{password}@{redis_service_name}:{redis_service_port}"
openwhisk.annotate(f"redis_url={redis_url}")
openwhisk.annotate(f"redis_alt_url={redis_alt_url}")
openwhisk.annotate(f"redis_service={redis_service_name}")
openwhisk.annotate(f"redis_port={redis_service_port}")
openwhisk.annotate(f"redis_password={data['password']}")
openwhisk.annotate(f"redis_provider=kvrocks")
logging.info("*** saved annotation for kvrocks nuvolaris user")
return res
return None
except Exception as e:
logging.error(f"failed to add redis namespace {data['namespace']}: {e}")
return None