mirror of
https://github.com/lubosz/overte.git
synced 2025-04-10 18:36:32 +02:00
Update backup delete to not break rolling backups and remove unused asset files
This commit is contained in:
parent
218edf878e
commit
efa55c0a63
7 changed files with 24 additions and 10 deletions
|
@ -306,7 +306,7 @@ void AssetsBackupHandler::recoverBackup(QuaZip& zip) {
|
|||
restoreAllAssets();
|
||||
}
|
||||
|
||||
void AssetsBackupHandler::deleteBackup(QuaZip& zip) {
|
||||
void AssetsBackupHandler::deleteBackup(const QString& absoluteFilePath) {
|
||||
Q_ASSERT(QThread::currentThread() == thread());
|
||||
|
||||
if (operationInProgress()) {
|
||||
|
@ -315,10 +315,10 @@ void AssetsBackupHandler::deleteBackup(QuaZip& zip) {
|
|||
}
|
||||
|
||||
auto it = find_if(begin(_backups), end(_backups), [&](const std::vector<AssetServerBackup>::value_type& value) {
|
||||
return value.filePath == zip.getZipName();
|
||||
return value.filePath == absoluteFilePath;
|
||||
});
|
||||
if (it == end(_backups)) {
|
||||
qCDebug(asset_backup) << "Could not find backup" << zip.getZipName() << "to delete.";
|
||||
qCDebug(asset_backup) << "Could not find backup" << absoluteFilePath << "to delete.";
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ public:
|
|||
void loadBackup(QuaZip& zip) override;
|
||||
void createBackup(QuaZip& zip) override;
|
||||
void recoverBackup(QuaZip& zip) override;
|
||||
void deleteBackup(QuaZip& zip) override;
|
||||
void deleteBackup(const QString& absoluteFilePath) override;
|
||||
void consolidateBackup(QuaZip& zip) override;
|
||||
|
||||
bool operationInProgress() { return getRecoveryStatus().first; }
|
||||
|
|
|
@ -30,7 +30,7 @@ public:
|
|||
virtual void loadBackup(QuaZip& zip) = 0;
|
||||
virtual void createBackup(QuaZip& zip) = 0;
|
||||
virtual void recoverBackup(QuaZip& zip) = 0;
|
||||
virtual void deleteBackup(QuaZip& zip) = 0;
|
||||
virtual void deleteBackup(const QString& absoluteFilePath) = 0;
|
||||
virtual void consolidateBackup(QuaZip& zip) = 0;
|
||||
};
|
||||
using BackupHandlerPointer = std::unique_ptr<BackupHandlerInterface>;
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
|
||||
void recoverBackup(QuaZip& zip) override;
|
||||
|
||||
void deleteBackup(QuaZip& zip) override {}
|
||||
void deleteBackup(const QString& absoluteFilePath) override {}
|
||||
|
||||
void consolidateBackup(QuaZip& zip) override {}
|
||||
private:
|
||||
|
|
|
@ -89,8 +89,7 @@ void DomainContentBackupManager::parseSettings(const QJsonObject& settings) {
|
|||
}
|
||||
|
||||
auto name = obj["Name"].toString();
|
||||
auto format = obj["format"].toString();
|
||||
format = name.replace(" ", "_").toLower();
|
||||
auto format = name.replace(" ", "_").toLower();
|
||||
|
||||
qCDebug(domain_server) << " Name:" << name;
|
||||
qCDebug(domain_server) << " format:" << format;
|
||||
|
@ -116,6 +115,12 @@ void DomainContentBackupManager::parseSettings(const QJsonObject& settings) {
|
|||
}
|
||||
}
|
||||
|
||||
void DomainContentBackupManager::refreshBackupRules() {
|
||||
for (auto& backup : _backupRules) {
|
||||
backup.lastBackupSeconds = getMostRecentBackupTimeInSecs(backup.extensionFormat);
|
||||
}
|
||||
}
|
||||
|
||||
int64_t DomainContentBackupManager::getMostRecentBackupTimeInSecs(const QString& format) {
|
||||
int64_t mostRecentBackupInSecs = 0;
|
||||
|
||||
|
@ -235,8 +240,16 @@ void DomainContentBackupManager::deleteBackup(MiniPromise::Promise promise, cons
|
|||
}
|
||||
|
||||
QDir backupDir { _backupDirectory };
|
||||
QFile backupFile { backupDir.filePath(backupName) };
|
||||
auto absoluteFilePath { backupDir.filePath(backupName) };
|
||||
QFile backupFile { absoluteFilePath };
|
||||
auto success = backupFile.remove();
|
||||
|
||||
refreshBackupRules();
|
||||
|
||||
for (auto& handler : _backupHandlers) {
|
||||
handler->deleteBackup(absoluteFilePath);
|
||||
}
|
||||
|
||||
promise->resolve({
|
||||
{ "success", success }
|
||||
});
|
||||
|
|
|
@ -68,6 +68,7 @@ protected:
|
|||
void load();
|
||||
void backup();
|
||||
void removeOldBackupVersions(const BackupRule& rule);
|
||||
void refreshBackupRules();
|
||||
bool getMostRecentBackup(const QString& format, QString& mostRecentBackupFileName, QDateTime& mostRecentBackupTime);
|
||||
int64_t getMostRecentBackupTimeInSecs(const QString& format);
|
||||
void parseSettings(const QJsonObject& settings);
|
||||
|
|
|
@ -30,7 +30,7 @@ public:
|
|||
void recoverBackup(QuaZip& zip) override;
|
||||
|
||||
// Delete a skeleton backup
|
||||
void deleteBackup(QuaZip& zip) override {}
|
||||
void deleteBackup(const QString& absoluteFilePath) override {}
|
||||
|
||||
// Create a full backup
|
||||
void consolidateBackup(QuaZip& zip) override {}
|
||||
|
|
Loading…
Reference in a new issue