a
    b}fi                     @   s   d dl m Z  d dlmZ d dlZd dlmZ d dlZejd eee	
 jjjjj d dlmZ d dlmZmZ d dlmZ d dlmZ d dlZd d	lmZmZ d
d Zdd Zdd ZdS )    )datetime)timeN)Path)CONFIG)run_commandoutput)upload_archive)AWS)ZipFileZIP_DEFLATEDc                 C   s  t  }ttd d jddd | jd }|dv r@td | }ntd d | }| j d	| j }| j}|d
 }|d }|d }t| d|d  d|  d| d|d  d|d  d| d| d| d}t	| ||
|d
|d
t|dd t| d| dtt  | d d dd d! t| j d"| d#td$L}	t|D ]0}
|	tj||
|
 ttj||
 qHW d    n1 s0    Y  t| d%| j d"| d&d! t| |S )'Nsatbotsbackups_directoryT)parentsexist_okz
--database)userslogs	databasesinsarz/export-usernamepasswordportz
Database: databasez
Directory: zexport PGPASSWORD="z"; pg_dump z --host hostz -U z -p z% --verbose --format=directory --file=z	 --jobs=4z--------z----)commandmaskedzDatabase exported to z after <      z minutes(   progress/w)compressionzExport zipped to 2   )r   r   r   mkdir
parametersdownload_directoryid	file_namer   r   replacestrroundr
   r   oslistdirwritepathjoinremovermdir)satbotstartZchosen_database	directoryfilenamer   r   r   r   zipfdump r9   N/var/www/staging/api/app_home/main/services/satbots/scripts/database_backup.py_export_database   s4    
2,8
r;   c              
   C   sT   | j dst| dS ttd d d d | j d| g|dd	d t j| d
 d S )Nupload_to_s3z=Upload to Vault option was unticked.  Not uploading to Vault.r   awsvaultnamer       r   )Z
vault_namer(   Zarc_descZpart_size_mbnum_threadsZ	upload_idZglacier_clientr3   )r%   getr   r   r   r&   r	   clientr3   r6   r9   r9   r:   _upload_to_s32   s    
rE   c                 C   sV   | j d}|r@t| j d| ddd t| d| dd nt| }t| | d S )	Nexisting_dumpr    rzutf-8)encodingzUsing existing file r#   r   )r%   rB   openr&   r   r;   rE   rD   r9   r9   r:   mainA   s    rJ   )r   r   syspathlibr   boto3r/   insertr*   __file__resolveparentsetupr   $main.services.satbots.scripts.sharedr   r   Z,main.services.satbots.scripts.glacier_uploadr   main.services.awsr	   r,   zipfiler
   r   r;   rE   rJ   r9   r9   r9   r:   <module>   s   $$