U
    M0Mi*                     @   s  U d dl T d dlmZ dd Ze  ejdd dkr`d dl	m
Z
 ed	e
d
 dd Ze  ejreejerdd ej D e_d dlmZ d dlT G dd deZde kre Zded< d dlmZmZ d dlmZmZ d dl m!Z" e" Z#ej$Z$ej%Z%d dl&m'Z' d dl(mZm)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJ d dlKZLd dlMZLd dlNZLd dlOmPZP dS )    )*Nc            	      C   s
  ddl m}  | tjd}d }d }| d}| d}| rF| d}| r\| d}| r|d  d}d|kr|d	d
 }||jdddd
  }| r| d}n|}|t_|t_	|t_
tjd krtj
rdD ]}tj
|rdt_ qqd S )Nr   )Pathz.gitz/opt/eva_branchz/opt/eva_version
ZHEADzref: /    )maxsplit)ZdevelreleaseZmasterT)pathlibr   configPROJECT_DIRexists	read_textstripsplitZCMF_VERSIONZEVA_VERSIONZ
EVA_BRANCHZ
PRODUCTION
startswith)	r   Zgit_pathbranchversionZbranch_pathZversion_pathheadZ	head_pathZbranch_prefix r   ./cmf/include.pyinit_versions
   s4    r   ZVAULT_ENABLED true)stderru.   Включена интеграция с vaultfilec               	   C   s  dd l } dtjksdtjkr0tdtd td tjd }tjd }| j||d}i }dg}tdD ]}|d|  qd|D ]}tj	| d	}|sq~|dkrd
}	n2tj	| d}	|	std| dtd td t
tdrd
tjkrtdtd q~td| d|	 d| dtd |jjj|dd }
d|
krD|
d }
dddd||	< ||	 |
 td|	 dt|
  td q~|rtdt|  td tj| ntdtd dtjkrtjd }d
}	t
tdrd
tjkr tdtd d S td |	 d| dtd |jjj|dd }d|kr@|d }i }d!d"d#d$d%d&d'd(|d
< |d
 | td)t|  dt|  td tjd
 | ntd*td d+tjkrtjd+ }d
}	t
tdrd,tjkrtd- d S td.|	 d| d |jjj|dd }d|kr*|d }i }d/d0i|d,< |d, | td1t|  dt|   tjd, |d,  ntd2 d S )3Nr   Z	VAULT_URLZVAULT_TOKENuM   VAULT Error! Не указаны параметры VAULT_URL и VAULT_TOKEN!r   )urltokenZVAULT_REDIS
   Z_PATHdefaultZ_NAMEu   VAULT Укажите cache_settingsuE   VAULT Для текущего APP не используется Redisu1   VAULT Получаем настройки для r   z ())pathdataZredisZ6379   )typeportZdbuT   VAULT Получили настройки доступа в Redis из vault для z: uV   VAULT Применили настройки доступа в Redis из vault для u=   VAULT найстройки для Redis не переданыZVAULT_POSTGRES_PATHdata_sourcesuH   VAULT Для текущего APP не используется Postgresu:   VAULT Получаем настройки для Postgres Z
sqlalchemy   i  Z	QueuePoolTd   i  )r'   zsqlalchemy.pool_sizezsqlalchemy.pool_recyclezsqlalchemy.poolclasszsqlalchemy.pool_use_lifozsqlalchemy.max_overflowzsqlalchemy.pool_timeoutuW   VAULT Получили настройки доступа в Postgres из vault для uB   VAULT Найстройки для PostgreSQL не переданыZVAULT_RDISK_PATHrdiskuE   VAULT Для текущего APP не используется Rdisku7   VAULT Получаем настройки для Rdisk classz/modules.rdisk.data_driver.rdisk:RDiskDataDriveruT   VAULT Получили настройки доступа в Rdisk из vault для u=   VAULT Найстройки для Rdisk не переданы)hvacosenvironprintr   exitZClientrangeappendgethasattrr   r"   ZsecretsZkvZread_secretupdatelistkeysr)   )r.   r   r   ZclientZredis_settingsZredis_prefixesiZredis_prefixr$   nameZredis_connection_configZpg_connection_configZpg_settingsZrdisk_configZrdisk_settingsr   r   r   
vault_init7   s    


 

"


(

 $r<   c                 C   s   g | ]}|r|qS r   r   ).0domainr   r   r   
<listcomp>   s      r?   c                   @   s   e Zd Zdd ZdS )AppProxyc                 C   s   ddl m} t||S )Nr   )APP)cmf.apprA   getattr)selfr;   rA   r   r   r   __getattr__   s    zAppProxy.__getattr__N)__name__
__module____qualname__rE   r   r   r   r   r@      s   r@   rA   zcmf.app.Flask)cmf_deferred_jobCmfDeferredJobWrapper)on_server_eventcmf_emit_server_event)SAModelAccessor)cmfutil)#rA   send_staticsocketioREDIS_DBprint_debug	CMF_CACHE	cmf_alertcmf_notecmf_emit_eventrun_bash_commandrsa_sign_pack_jwt
create_jwtcmf_get_versioncmf_remove_filewhatsapp_siowhatsapp_go_siostart_viewsschedule_deferred_jobcommit_with_eventrollback_purge_eventcmf_pycharm_debuggen_eva_app_tokencall_eva_account
cmf_commitcmf_rollbackapp_base_hrefauth_base_hrefstart_of_day
end_of_daystart_of_weekend_of_weekstart_of_monthend_of_monthstart_of_yearend_of_year)CmfUiMenuNode)QZcmf.include_cmfZcmf.config_loadZconfig_loadr   r   r/   r0   r5   lowersysr   r1   r<   ZCORS_ALLOWED_DOMAINS
isinstancestrr   Ztmp.__autogen_models_tmpZ__autogen_models_tmpZmodelsZcmf.base_errorobjectr@   globalsrA   __annotations__Zcmf.cmf_deferred_jobrI   rJ   Zcmf.cmf_server_event_listenerrK   rL   Zcmf.data_providers.sqlalchemyrM   Z_SAModelAccessorZsar   Z
UPLOAD_DIRZcmf.utilrN   rB   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   Z	cmf.viewsZcmfZ
cmf.fieldsZ
cmf.modelsZcmf.models.base_modelrq   r   r   r   r   <module>   s:    & 
	