Add an updated flag to backup details (#1813)

## Description

Adds a flag in backup details that indicates whether the item in that backup is new/updated.

Currently always set to `true` but once we implement #1800 - we will set this to false for existing items from
base snapshots.

## Does this PR need a docs update or release note?

- [ ]  Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x]  No 

## Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Test
- [ ] 💻 CI/Deployment
- [ ] 🐹 Trivial/Minor

## Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #1812 

## Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
This commit is contained in:
Vaibhav Kamra 2022-12-14 20:19:35 -08:00 committed by GitHub
parent 0b5bf1bc8e
commit debe74a113
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 10 additions and 2 deletions

View File

@ -415,6 +415,7 @@ func restoreCollection(
itemPath.String(), itemPath.String(),
itemPath.ShortRef(), itemPath.ShortRef(),
"", "",
true,
details.ItemInfo{ details.ItemInfo{
Exchange: info, Exchange: info,
}) })

View File

@ -171,6 +171,7 @@ func RestoreCollection(
itemPath.String(), itemPath.String(),
itemPath.ShortRef(), itemPath.ShortRef(),
"", "",
true,
itemInfo) itemInfo)
metrics.Successes++ metrics.Successes++

View File

@ -157,6 +157,7 @@ func (cp *corsoProgress) FinishedFile(relativePath string, err error) {
d.repoPath.String(), d.repoPath.String(),
d.repoPath.ShortRef(), d.repoPath.ShortRef(),
parent.ShortRef(), parent.ShortRef(),
true,
d.info, d.info,
) )

View File

@ -48,7 +48,7 @@ func (suite *StreamStoreIntegrationSuite) TestDetails() {
deets := &details.Details{} deets := &details.Details{}
deets.Add("ref", "shortref", "parentref", deets.Add("ref", "shortref", "parentref", true,
details.ItemInfo{ details.ItemInfo{
Exchange: &details.ExchangeInfo{ Exchange: &details.ExchangeInfo{
Subject: "hello world", Subject: "hello world",
@ -69,6 +69,7 @@ func (suite *StreamStoreIntegrationSuite) TestDetails() {
assert.Equal(t, deets.Entries[0].ParentRef, readDeets.Entries[0].ParentRef) assert.Equal(t, deets.Entries[0].ParentRef, readDeets.Entries[0].ParentRef)
assert.Equal(t, deets.Entries[0].ShortRef, readDeets.Entries[0].ShortRef) assert.Equal(t, deets.Entries[0].ShortRef, readDeets.Entries[0].ShortRef)
assert.Equal(t, deets.Entries[0].RepoRef, readDeets.Entries[0].RepoRef) assert.Equal(t, deets.Entries[0].RepoRef, readDeets.Entries[0].RepoRef)
assert.Equal(t, deets.Entries[0].Updated, readDeets.Entries[0].Updated)
assert.NotNil(t, readDeets.Entries[0].Exchange) assert.NotNil(t, readDeets.Entries[0].Exchange)
assert.Equal(t, *deets.Entries[0].Exchange, *readDeets.Entries[0].Exchange) assert.Equal(t, *deets.Entries[0].Exchange, *readDeets.Entries[0].Exchange)
} }

View File

@ -115,13 +115,14 @@ type Details struct {
knownFolders map[string]struct{} `json:"-"` knownFolders map[string]struct{} `json:"-"`
} }
func (d *Details) Add(repoRef, shortRef, parentRef string, info ItemInfo) { func (d *Details) Add(repoRef, shortRef, parentRef string, updated bool, info ItemInfo) {
d.mu.Lock() d.mu.Lock()
defer d.mu.Unlock() defer d.mu.Unlock()
d.Entries = append(d.Entries, DetailsEntry{ d.Entries = append(d.Entries, DetailsEntry{
RepoRef: repoRef, RepoRef: repoRef,
ShortRef: shortRef, ShortRef: shortRef,
ParentRef: parentRef, ParentRef: parentRef,
Updated: updated,
ItemInfo: info, ItemInfo: info,
}) })
} }
@ -163,6 +164,9 @@ type DetailsEntry struct {
RepoRef string `json:"repoRef"` RepoRef string `json:"repoRef"`
ShortRef string `json:"shortRef"` ShortRef string `json:"shortRef"`
ParentRef string `json:"parentRef,omitempty"` ParentRef string `json:"parentRef,omitempty"`
// Indicates the item was added or updated in this backup
// Always `true` for full backups
Updated bool `json:"updated"`
ItemInfo ItemInfo
} }