
    Hi)                         d dl  d dl d dl er* eee      r!ej                         D  cg c]  } | s| 	 c} Zd Zd Zd Z	 e         e         e	        yc c} w )    )*c                     ddl m}   | t        d      }d }d } | d      } | d      }|j                         r|j	                         j                  d      }|j                         r|j	                         j                  d      }|j                         r|dz  j	                         j                  d      }d|v r]|j                  d	      d
   }||j                  dd      d
   z  }|j                         r"|j	                         j                  d      }n|}|a|a|a	t        (t        r!dD ]  }t        j                  |      sda
 y  y y y )Nr   )Pathz.gitz/opt/eva_branchz/opt/eva_version
HEADzref: /    )maxsplit)develreleasemasterT)pathlibr   PROJECT_DIRexists	read_textstripsplitCMF_VERSIONEVA_VERSION
EVA_BRANCH
PRODUCTION
startswith)	r   git_pathbranchversionbranch_pathversion_pathhead	head_pathbranch_prefixs	            %/opt/eva-converter/cmf/config_load.py_init_versionsr$      sG   K(HFG()K*+L&&(..t4((*006 **,2248d?ZZ_R(F $**S1*"=b"ABI!#--/55d;GKKJj; 	M$$]3!
	 )    c                  j    	 t         dk(  rda t        dk(  rday t        dk(  rday y # t        $ r Y $w xY w)NFalseFTrueT)EVA_ACCOUNT_USE	NameErrorIS_BOX_VERSION r%   r#   _patch_configr-   2   sI    
g%#O  	6	! 
"  s   & 	22c                    	 ddl } ddlddl	j                  dd      j	                         dk7  ry	fd}	fd}t        d	j                  	       d
j                  vsdj                  vr(t        d	j                  	       	j                  d       j                  d
   }j                  d   }j                  dd      | j                  ||      	 t        dvr |        nt        d	j                  	       dj                  v r(dt        v r |        yt        d	j                  	       yt        d	j                  	       y# t        $ r i Y ~w xY w)u  
    Поддерживаем конфигурацию:
    VAULT_ENABLED=true
    VAULT_URL=https://vault.example.com:8200
    VAULT_TOKEN=s.xxxxxxxxxxxxxxxx

    Конфигурация с 1 редисом
    VAULT_REDIS_PATH="eva/redis"

    Конфигурация с несколькими редисами
    VAULT_REDIS1_NAME="default"
    VAULT_REDIS1_PATH="eva/redis"
    VAULT_REDIS2_NAME="secondary"
    VAULT_REDIS2_PATH="eva/redis_secondary"

    VAULT_POSTGRES_PATH="eva/postgres"
    r   NVAULT_ENABLED truec            
      &   i } dgt        d      D ]   }d| }	j                  j                  | d      }|s*|dk(  rd}nF	j                  j                  | d      }|s&t        d| d
j                         t        d	       t        d
| d| d| d
j                         j                  j                  j                  j                  |      d   d   }dddd| |<   | |   j                  |       t        d| dt        |j                                
j                         # | rCt        dt        | j                                
j                         j                  |        y t        d
j                         y )Nr0   
   VAULT_REDIS_PATHdefault_NAMEu   VAULT Укажите filer   u1   VAULT Получаем настройки для r
   z ()pathmount_pointdataredis6379   )typeportdbuT   VAULT Получили настройки доступа в Redis из vault для z: uV   VAULT Применили настройки доступа в Redis из vault для u;   VAULT настройки для Redis не переданы)rangeenvirongetprintstderrexitsecretskvv2read_secretupdatelistkeys)redis_settingsiredis_prefixr<   nameredis_connection_configclientlocal_cache_settingsr=   ossyss         r#   load_cache_settingsz(_vault_init.<locals>.load_cache_settingsZ   s   !uRy! 	!A(,L::>>\N%"89DBw zz~~e&<=1,uECJJWGEl^STUYTZZ\]a\bbcdknkukuv&,nn&7&7&:&:&F&FD^i&F&jkq&r'#
  	$N4  4 ''(?@fgkfllnos  uL  uQ  uQ  uS  pT  oU  VZZ!7	!> himn|  oB  oB  oD  jE  iF  GZZ! !''7OVYV`V`ar%   c                     j                   d   } t        d|  dj                         j                  j                  j
                  j                  |       d   d   }dt        |j                                }t        |j                         t        t        d         }|j                  |       |t        d<   y )	NVAULT_POSTGRES_PATHu;   VAULT Получаем настройки для Postgres (r:   r8   r;   r>   u`   VAULT Получили настройки доступа в Postgres из vault для default: r6   )rF   rH   rI   rK   rL   rM   rN   rP   rQ   dictdata_sourcesrO   )r<   pg_connection_config	vault_msgpg_settingsrW   r=   rY   rZ   s       r#   load_pg_settingsz%_vault_init.<locals>.load_pg_settings   s    zz/0KD6QRSZ]ZdZde  &~~0033??TWb?cdjklrs16689:< 	 	icjj) <	23/0"-Yr%   u.   Включена интеграция с vaultr8   	VAULT_URLVAULT_TOKENuM   VAULT Error! Не указаны параметры VAULT_URL и VAULT_TOKEN!VAULT_MOUNT_POINTsecret)urltokenr6   uE   VAULT Для текущего APP не используется Redisr]   uH   VAULT Для текущего APP не используется PostgresuB   VAULT Найстройки для PostgreSQL не переданы)hvacrY   rZ   getenvlowerrH   rI   rF   rJ   Clientcache_settingsr*   r_   )
rj   r[   rc   rh   ri   rW   rX   r=   rY   rZ   s
        @@@@@r#   _vault_initro   C   sC   $ 	yy"%++-7(b (bT.( 

:L"**$RZZ(G]dgdndno
**[
!CJJ}%E))/:K[[S[.F"- ,,U\_\f\fg

*$\cfcmcmnRY\YcYcd  "!"s   &E E+*E+N)

cmf.configcommon.configcustom.configCORS_ALLOWED_DOMAINS
isinstancestrr   r$   r-   ro   )domains   0r#   <module>rw      sf       J';SA1E1K1K1MXvQWFX$N"qeh    c Ys
   AA