in nuvolaris/user_handlers.py [0:0]
def whisk_user_create(spec, name, patch, **kwargs):
logging.info(f"*** whisk_user_create {name}")
conditions = []
state = {
}
conditions.append({
"lastTransitionTime": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"status": "True",
"type": "Initialized"})
ucfg = get_ucfg(spec)
user_metadata = UserMetadata(ucfg)
owner = kube.get(f"wsku/{name}")
if(ucfg.get("namespace") and ucfg.get("auth")):
res = cdb.create_ow_user(ucfg,user_metadata)
logging.info(f"OpenWhisk subject {ucfg.get('namespace')} added = {res}")
state['couchdb']= res
res = endpoint.create_ow_api_endpoint(ucfg,user_metadata)
logging.info(f"OpenWhisk api endpoints {ucfg.get('namespace')} added = {res}")
state['api']= res
if(cfg.get('components.minio') and (ucfg.get('object-storage.data.enabled') or ucfg.get('object-storage.route.enabled'))):
minio_deploy.create_ow_storage(state, ucfg, user_metadata, owner)
if(cfg.get('components.minio') and ucfg.get('object-storage.route.enabled') and cfg.get('components.static')):
res = static.create_ow_static_endpoint(ucfg,user_metadata, owner)
logging.info("OpenWhisk static endpoint for %s added = %s", ucfg.get('namespace'), res)
state['static']= res
if(cfg.get('components.mongodb') and ucfg.get('mongodb.enabled')):
res = mdb.create_db_user(ucfg,user_metadata)
logging.info(f"Mongodb setup for {ucfg.get('namespace')} added = {res}")
state['mongodb']= res
if(cfg.get('components.redis') and ucfg.get('redis.enabled')):
res = redis.create_db_user(ucfg, user_metadata)
logging.info(f"Redis setup for {ucfg.get('namespace')} added = {res}")
state['redis']= res
if(cfg.get('components.postgres') and ucfg.get('postgres.enabled')):
res = postgres.create_db_user(ucfg, user_metadata)
logging.info(f"Postgres setup for {ucfg.get('namespace')} added = {res}")
state['postgres']= res
if(cfg.get('components.milvus') and ucfg.get('milvus.enabled')):
res = milvus.create_ow_milvus(ucfg, user_metadata)
logging.info(f"Milvus setup for {ucfg.get('namespace')} added = {res}")
state['milvus']= res
# finally persists user metadata into the internal couchdb database
user_metadata.dump()
res = userdb.save_user_metadata(user_metadata)
state['user_metadata']= res
conditions.append({
"lastTransitionTime": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"status": "True",
"type": "Ready"})
patch.status['conditions']=conditions
return state