def upload_new_backups_to_ftp_servers(backups, vmPathBackupFolderTree): failedUploads = {} logging.debug('-----------') logging.debug('FIX- upload_new_backups_to_ftp_server') logging.debug(backups) logging.debug('-----------') for vmName in backups: logging.debug(backups[vmName]) logging.debug('end fix -----------') for vmName in backups: try: ftphost = _get_ftpHost_by_vmName(vmName) logging.info("** backup's upload for VM {0} with ftp server {1} will now start!".format(vmName, ftphost.hostname)) ftphost.connect_to_host() backupsToDelete, backupsToUpload = backupManager.get_backups_for_upload_and_delete(backups, ftphost) ftphost.disconnect_from_host() # unico pezzo dove non e richiesta una connessione aperta if len(backupsToUpload) > 0: if _use_real_ftp_sync: backupManager.upload_backups_to_ftpHost(backupsToUpload, ftphost, vmName, vmPathBackupFolderTree, uploadMethod=_upload_method) except Exception as ex: logging.error('An error occurred during the upload of ' + vmName) logging.error(ex) failedUploads[vmName] = backups return failedUploads
def deleted_old_backups_from_ftp_servers(backups): ftpServersCleaned = [] for vmName in backups: connectionInfo = _get_connectionInfo_by_vmName(vmName) if connectionInfo[0] not in ftpServersCleaned: logging.warn("* a connection to ftp server [{0}] will be performed to see if contains old backups. "\ "If old backups are found, they will be deleted".format(connectionInfo[0])) ftpServersCleaned.append(connectionInfo[0]) ftphost = _get_ftpHost_by_vmName(vmName) ftphost.connect_to_host() backupsOnRemoteFtpServer = backupManager.getBackupsFromFtpServer(ftphost) logging.debug("** Ftp Server [{0}] stores the following backups: \n{1}".format(connectionInfo[0], backupRender.get_backups_infos(backupsOnRemoteFtpServer))) backupsToDelete, backupsToUpload = backupManager.get_backups_for_upload_and_delete(backups, ftphost) if len(backupsToDelete) > 0: logging.warn( "** Ftp Server [{0}] contains {1} old backups that will be now deleted.".format(connectionInfo[0], len(backupsToDelete))) logging.debug("** this are the backups that will be deleted:\n{0}".format( backupRender.get_backups_infos(backupsToDelete))) if _use_real_ftp_sync: backupManager.delete_backups_from_ftpHost(backupsToDelete, ftphost) else: logging.info( "Ftp Server [{0}] does not contains old backups. No file deletions will be performed.".format( connectionInfo[0])) ftphost.disconnect_from_host()