
    sit                         d dl Z d dlZd dlmZ d dlmZ d dlmZ ddl ddl	 ddl
 ddlmZ ddl  e       Z ej                  e      Zd Zd	 Zd
 Zy)    N)BackgroundScheduler)call_command)settings   )*)dump_databasec                  f   t         j                  j                         r#t         j                  j                         } | j                  }t
        j                  d       i }| j                  dk(  rd| j                  j                  i}nW| j                  dk(  r%| j                  | j                  | j                  d}n#t
        j                  d| j                          y | j                  r	 t
        j                  d       t        d      }|ret
        j                  d	| j                          t!        d|| j                  fi | t#        j$                  d       t
        j                  d
       nt
        j                  d       | j(                  r	 t
        j                  d       t*        j,                  }d}t/        ||       t
        j                  d| j                          t!        d|| j                  fi | t#        j$                  d       t
        j                  d       t
        j                  d       y y # t&        $ rl}t
        j                  d|        t"        j                  j                  d      r*t#        j$                  d       t
        j                  d       Y d }~+d }~ww xY w# t&        $ rk}t
        j                  d|        t"        j                  j                  d      r*t#        j$                  d       t
        j                  d       Y d }~d }~ww xY w)Nz$Starting Google Drive backup processservice_accountservice_account_fileoauth)	client_idclient_secretrefresh_tokenzUnknown authentication method: zStarting database backupzbackupdb.dumpz:Database dump successful, uploading to Google Drive using z2Database backup uploaded and local file cleaned upzDatabase backup failedzError during database backup: z$Cleaned up failed database dump filezStarting media backupz	media.zipz4Media files zipped, uploading to Google Drive using z/Media backup uploaded and local file cleaned upzError during media backup: z#Cleaned up failed media backup filez%Google Drive backup process completed)GoogleDriveBackupobjectsexistsfirstgdrive_folder_idloggerinfoauth_methodr   pathoauth_client_idoauth_client_secretoauth_refresh_tokenerror	backup_dbr   upload_fileosremove	Exceptionbackup_mediar   
MEDIA_ROOT
zip_folder)google_driver   auth_paramssuccessefolder_to_zipoutput_zip_files          </var/www/python-projects/worksol/horilla_backup/scheduler.pygoogle_drive_backupr,   Y   s     '')(00668'88:; ##'88&(I(I(N(NK %%0)99!-!A!A!-!A!AK LL:<;S;S:TUV!!H67'8KK"\]i]u]u\v wx1A<C[C[k_jkIIo.KK TULL!9: $$G34 ( 3 3"-=/:RS_SkSkRlmnK)9<;S;ScWbc		+&MN 	;<s *B  H=aSAB77>>/2IIo.KK FGH"  G:1#>?77>>+.IIk*KK EFGs4   -BI BJ< 	J9A!J44J9<	L0A!L++L0c                     t         j                  j                         rt         j                  j                         } 	 t        j                  d       | j                  r(t        j                  t        d| j                  d       n2t        j                  t        d| j                  | j                  d       t        j                  st        j                          yyt                y#  Y xY w)zF
    Start the backup job based on the LocalBackup configuration.
    
backup_jobintervalgdrive_backup_job)secondsidcron)triggerhourminuter2   N)r   r   r   r   	scheduler
remove_jobr/   add_jobr,   r1   r5   r6   runningstartstop_gdrive_backup_job)gdrive_backups    r+   start_gdrive_backup_jobr>      s    
   ''))11779	  . !!#%--&	   #"''$++&     OO ! 	 1	s   C* *C.c                  >    	 t         j                  d       y#  Y yxY w)z+
    Stop the backup job if it exists.
    r0   N)r7   r8        r+   r<   r<      s     01s    )r   logging!apscheduler.schedulers.backgroundr   django.core.managementr   horillar   gdrivemodelspgdumpdb_utilsr   zipr7   	getLogger__name__r   r,   r>   r<   r@   rA   r+   <module>rM      sS    	  A /     # !	 
		8	$J:=z#!LrA   