
    i!                         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	            ./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dl 		j                  dd      j                         dk7  ryddl} ddl
	
fd}	
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 |        n/t        d
j                  
       nt        d
j                  
       d	j                  v r |        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"

    VAULT_RDISK_PATH="eva/s3"
    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
    ()pathmount_pointdataredis6379   )typeportdbuT   VAULT Получили настройки доступа в Redis из vault для : 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_settings^   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   )rH   rJ   rK   rM   rN   rO   rP   rR   rS   dictdata_sourcesrQ   )r=   pg_connection_config	vault_msgpg_settingsrY   r>   r[   r\   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%   c            	         j                   d   } d}dt        vrt        dj                         y t        d| d|  dj                         j                  j
                  j                  | 	      d
   }d
|v r|d
   }i }ddi|d<   |d   j                  |       t        dt        |j                                dt        |j                                j                         t        d   j                  |d          y )NVAULT_RDISK_PATHr6   rdiskuE   VAULT Для текущего APP не используется Rdiskr8   u7   VAULT Получаем настройки для Rdisk r:   r;   )r=   r?   classz/modules.rdisk.data_driver.rdisk:RDiskDataDriveruT   VAULT Получили настройки доступа в Rdisk из vault для rF   )
rH   ra   rJ   rK   rM   rN   rP   rQ   rR   rS   )r=   rW   rdisk_configrdisk_settingsrY   r[   r\   s       r#   load_rdisk_settingsz(_vault_init.<locals>.load_rdisk_settings   sM   zz,-,&YbeblblmGvRPTvUVW_b_i_ij~~((44$4?G\!'/L F#
w 	w&&|4deijxj}j}j  fA  eB  BD  EI  JV  J[  J[  J]  E^  D_  `  hk  hr  hr  	sW$$^G%<=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 не переданыrg   u=   VAULT Найстройки для Rdisk не переданы)r[   getenvlowerhvacr\   rJ   rK   rH   rL   Clientcache_settingsr*   ra   )ru   r]   re   rl   rq   rr   rY   rZ   r>   r[   r\   s         @@@@@r#   _vault_initrx   C   sm   ( 	yy"%++-7(b (bT.&">J 

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

*$\cfcmcmnRY\YcYcdRZZ'MVYV`V`a'  "!"s   -F FFN)

cmf.configcommon.configcustom.configCORS_ALLOWED_DOMAINS
isinstancestrr   r$   r-   rx   )domains   0r#   <module>r      sf       J';SA1E1K1K1MXvQWFX$N"^bB    } Ys
   AA