import os
import time
import datetime
import pipes
import ftplib

from subprocess import Popen, PIPE

# DB_LIST = ['BDECR', 'BDEDO', 'BDEGT', 'BDEHN', 'BDENI', 'BDEPA', 'BDESV'] DB_LIST = ['BDALPHAGT']
DB_LIST = ['BDEDO']
DB_USER = 'haproxy'
DB_PASS = str(os.getenv('QAPASS'))
DB_HOST = '159.203.104.215'
BACKUP_PATH = '/backup/'


def PutOverSSH(path = '/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql', remote='mingmecca.sql'):
    ftp = ftplib.FTP("165.227.114.190")
    ftp.login("factor", 'rh$2021')
    ftp.cwd('upload')
    with open(path, "rb") as file:
        ftp.storbinary('STOR %s' % remote, file)


def Backup():

    BACKUP_PATH = 'backup/'
    DATETIME = time.strftime('%d%m%d-%H%M')

    for DB_NAME in DB_LIST:
        DATETIME = time.strftime('%d%m%Y-%H%M')
        FILE_NAME = BACKUP_PATH + f'{DB_NAME}-' + DATETIME + '.sql'

        try:
            os.stat(BACKUP_PATH)
        except:
            os.mkdir(BACKUP_PATH)


        params = ' --routines --quick --compress --skip-lock-tables --verbose '
        command = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_PASS + " " + DB_NAME + params + " > " + FILE_NAME

        with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
            output = process.communicate()[0].decode("utf-8")
            print(output)



# Backup()
PutOverSSH()