Page MenuHomePhabricator

D4079.id12937.diff
No OneTemporary

D4079.id12937.diff

diff --git a/services/backup/src/DatabaseManager.h b/services/backup/src/DatabaseManager.h
--- a/services/backup/src/DatabaseManager.h
+++ b/services/backup/src/DatabaseManager.h
@@ -28,6 +28,8 @@
void removeBackupItem(std::shared_ptr<BackupItem> item);
void putLogItem(const LogItem &item);
+ std::shared_ptr<LogItem>
+ findLogItem(const std::string &backupID, const std::string &logID);
std::vector<std::shared_ptr<LogItem>>
findLogItemsForBackup(const std::string &backupID);
void removeLogItem(std::shared_ptr<LogItem> item);
diff --git a/services/backup/src/DatabaseManager.cpp b/services/backup/src/DatabaseManager.cpp
--- a/services/backup/src/DatabaseManager.cpp
+++ b/services/backup/src/DatabaseManager.cpp
@@ -7,6 +7,7 @@
#include <aws/dynamodb/model/DeleteItemRequest.h>
#include <aws/dynamodb/model/QueryRequest.h>
#include <aws/dynamodb/model/ScanRequest.h>
+#include <aws/dynamodb/model/UpdateItemRequest.h>
#include <iostream>
@@ -121,6 +122,18 @@
this->innerPutItem(std::make_shared<LogItem>(item), request);
}
+std::shared_ptr<LogItem> DatabaseManager::findLogItem(
+ const std::string &backupID,
+ const std::string &logID) {
+ Aws::DynamoDB::Model::GetItemRequest request;
+ request.AddKey(
+ LogItem::FIELD_BACKUP_ID, Aws::DynamoDB::Model::AttributeValue(backupID));
+ request.AddKey(
+ LogItem::FIELD_LOG_ID, Aws::DynamoDB::Model::AttributeValue(logID));
+
+ return std::move(this->innerFindItem<LogItem>(request));
+}
+
std::vector<std::shared_ptr<LogItem>>
DatabaseManager::findLogItemsForBackup(const std::string &backupID) {
std::vector<std::shared_ptr<database::LogItem>> result;
diff --git a/services/backup/test/DatabaseManagerTest.cpp b/services/backup/test/DatabaseManagerTest.cpp
--- a/services/backup/test/DatabaseManagerTest.cpp
+++ b/services/backup/test/DatabaseManagerTest.cpp
@@ -71,11 +71,15 @@
for (const std::string &logID : logIDs1) {
DatabaseManager::getInstance().putLogItem(
generateLogItem(backupID1, logID));
+ EXPECT_NE(
+ DatabaseManager::getInstance().findLogItem(backupID1, logID), nullptr);
}
std::vector<std::string> logIDs2 = {"log021", "log022"};
for (const std::string &logID : logIDs2) {
DatabaseManager::getInstance().putLogItem(
generateLogItem(backupID2, logID));
+ EXPECT_NE(
+ DatabaseManager::getInstance().findLogItem(backupID2, logID), nullptr);
}
std::vector<std::shared_ptr<LogItem>> items1 =
@@ -90,6 +94,9 @@
for (size_t i = 0; i < items1.size(); ++i) {
EXPECT_EQ(logIDs1.at(i), items1.at(i)->getLogID());
DatabaseManager::getInstance().removeLogItem(items1.at(i));
+ EXPECT_EQ(
+ DatabaseManager::getInstance().findLogItem(backupID1, logIDs1.at(i)),
+ nullptr);
}
EXPECT_EQ(
DatabaseManager::getInstance().findLogItemsForBackup(backupID1).size(),
@@ -98,6 +105,9 @@
for (size_t i = 0; i < items2.size(); ++i) {
EXPECT_EQ(logIDs2.at(i), items2.at(i)->getLogID());
DatabaseManager::getInstance().removeLogItem(items2.at(i));
+ EXPECT_EQ(
+ DatabaseManager::getInstance().findLogItem(backupID2, logIDs2.at(i)),
+ nullptr);
}
EXPECT_EQ(
DatabaseManager::getInstance().findLogItemsForBackup(backupID2).size(),

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 11:28 PM (21 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2507155
Default Alt Text
D4079.id12937.diff (3 KB)

Event Timeline