Add corrupted backup status to domain content backup info

This commit is contained in:
Ryan Huffman 2018-02-20 10:08:20 -08:00
parent 769d5677b1
commit 479dfaf330
6 changed files with 23 additions and 1 deletions

View file

@ -111,6 +111,17 @@ void AssetsBackupHandler::checkForAssetsToDelete() {
}
}
bool AssetsBackupHandler::isCorruptedBackup(const QString& filePath) {
auto it = find_if(begin(_backups), end(_backups), [&](const std::vector<AssetServerBackup>::value_type& value) {
return value.filePath == filePath;
});
if (it == end(_backups)) {
return false;
}
return it->corruptedBackup;
}
std::pair<bool, float> AssetsBackupHandler::isAvailable(const QString& backupName) {
const auto it = find_if(begin(_backups), end(_backups), [&](const AssetServerBackup& backup) {

View file

@ -39,6 +39,7 @@ public:
void recoverBackup(const QString& backupName, QuaZip& zip) override;
void deleteBackup(const QString& backupName) override;
void consolidateBackup(const QString& backupName, QuaZip& zip) override;
bool isCorruptedBackup(const QString& absoluteFilePath) override;
bool operationInProgress() { return getRecoveryStatus().first; }

View file

@ -32,6 +32,7 @@ public:
virtual void recoverBackup(const QString& backupName, QuaZip& zip) = 0;
virtual void deleteBackup(const QString& backupName) = 0;
virtual void consolidateBackup(const QString& backupName, QuaZip& zip) = 0;
virtual bool isCorruptedBackup(const QString& absoluteFilePath) = 0;
};
using BackupHandlerPointer = std::unique_ptr<BackupHandlerInterface>;

View file

@ -31,6 +31,9 @@ public:
void deleteBackup(const QString& backupName) override {}
void consolidateBackup(const QString& backupName, QuaZip& zip) override {}
bool isCorruptedBackup(const QString& absoluteFilePath) override { return true; }
private:
DomainServerSettingsManager& _settingsManager;
};

View file

@ -363,6 +363,7 @@ void DomainContentBackupManager::getAllBackupsAndStatus(MiniPromise::Promise pro
for (auto& backup : backups) {
bool isAvailable { true };
bool isCorrupted { false };
float availabilityProgress { 0.0f };
for (auto& handler : _backupHandlers) {
bool handlerIsAvailable { true };
@ -370,6 +371,8 @@ void DomainContentBackupManager::getAllBackupsAndStatus(MiniPromise::Promise pro
std::tie(handlerIsAvailable, progress) = handler->isAvailable(backup.id);
isAvailable &= handlerIsAvailable;
availabilityProgress += progress / _backupHandlers.size();
isCorrupted = isCorrupted || handler->isCorruptedBackup(backup.absolutePath);
}
variantBackups.push_back(QVariantMap({
{ "id", backup.id },
@ -377,7 +380,8 @@ void DomainContentBackupManager::getAllBackupsAndStatus(MiniPromise::Promise pro
{ "createdAtMillis", backup.createdAt.toMSecsSinceEpoch() },
{ "isAvailable", isAvailable },
{ "availabilityProgress", availabilityProgress },
{ "isManualBackup", backup.isManualBackup }
{ "isManualBackup", backup.isManualBackup },
{ "isCorrupted", isCorrupted }
}));
}

View file

@ -35,6 +35,8 @@ public:
// Create a full backup
void consolidateBackup(const QString& backupName, QuaZip& zip) override {}
bool isCorruptedBackup(const QString& absoluteFilePath) override { return false; }
private:
QString _entitiesFilePath;
QString _entitiesReplacementFilePath;