U
    im"                     @   s  U d dl T d dlmZ dd Ze  ejdd dkrPe	d d	d
 Z
e
  ejrxeejerxd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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZH d dlIZJd dlKZJd dlLZJd dlMmNZN 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 trueu.   Включена интеграция с vaultc               	   C   s  dd l } dtjksdtjkr,td td tjd }tjd }| j||d}i }dg}tdD ]}|d|  q`|D ]}tj| d}|sqz|dkrd	}	n.tj| d
}	|	std| d
 td t	t
drd	t
jkrtd qztd| d|	 d| d |jjj|dd }
d|
kr2|
d }
dddd||	< ||	 |
 td|	 dt|
   qz|rtdt|   t
j| ntd dtjkrzt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 d!d"d#d$d%d&d'|d	< |d	 | td(t|  dt|   t
jd	 | ntd) d S )*Nr   Z	VAULT_URLZVAULT_TOKENuM   VAULT Error! Не указаны параметры VAULT_URL и VAULT_TOKEN!)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 не переданы)hvacosenvironprint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_settingsr   r   r   
vault_init5   sz    






$r7   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.appr<   getattr)selfr6   r<   r   r   r   __getattr__   s    zAppProxy.__getattr__N)__name__
__module____qualname__r@   r   r   r   r   r;      s   r;   r<   zcmf.app.Flask)cmf_deferred_jobCmfDeferredJobWrapper)on_server_eventcmf_emit_server_event)SAModelAccessor)cmfutil)#r<   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)OZcmf.include_cmfZcmf.config_loadZconfig_loadr   r   r*   r+   r0   lowerr,   r7   ZCORS_ALLOWED_DOMAINS
isinstancestrr   Ztmp.__autogen_models_tmpZ__autogen_models_tmpZmodelsZcmf.base_errorobjectr;   globalsr<   __annotations__Zcmf.cmf_deferred_jobrD   rE   Zcmf.cmf_server_event_listenerrF   rG   Zcmf.data_providers.sqlalchemyrH   Z_SAModelAccessorZsar   Z
UPLOAD_DIRZcmf.utilrI   r=   rJ   rK   rL   rM   rN   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   Z	cmf.viewsZcmfZ
cmf.fieldsZ
cmf.modelsZcmf.models.base_modelrl   r   r   r   r   <module>   s6    &e
	