add a BuildMetadata func to path package (#4192)

just a QoL shorthand to match the Build func.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [=x] 💚 E2E
This commit is contained in:
Keepers 2023-09-07 13:05:58 -06:00 committed by GitHub
parent c74585eafc
commit bf02f57527
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 48 additions and 35 deletions

View File

@ -1129,7 +1129,7 @@ func (suite *OneDriveCollectionsUnitSuite) TestDeserializeMetadata() {
cols := []data.RestoreCollection{} cols := []data.RestoreCollection{}
for _, c := range test.cols { for _, c := range test.cols {
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath( pathPrefix, err := path.BuildMetadata(
tenant, tenant,
user, user,
path.OneDriveService, path.OneDriveService,
@ -1194,7 +1194,7 @@ func (suite *OneDriveCollectionsUnitSuite) TestGet() {
delta2 = "delta2" delta2 = "delta2"
) )
metadataPath, err := path.Builder{}.ToServiceCategoryMetadataPath( metadataPath, err := path.BuildMetadata(
tenant, tenant,
user, user,
path.OneDriveService, path.OneDriveService,

View File

@ -53,7 +53,7 @@ func (h groupBackupHandler) PathPrefix(
} }
func (h groupBackupHandler) MetadataPathPrefix(tenantID string) (path.Path, error) { func (h groupBackupHandler) MetadataPathPrefix(tenantID string) (path.Path, error) {
p, err := path.Builder{}.ToServiceCategoryMetadataPath( p, err := path.BuildMetadata(
tenantID, tenantID,
h.groupID, h.groupID,
h.service, h.service,

View File

@ -57,7 +57,7 @@ func (h itemBackupHandler) PathPrefix(
func (h itemBackupHandler) MetadataPathPrefix( func (h itemBackupHandler) MetadataPathPrefix(
tenantID string, tenantID string,
) (path.Path, error) { ) (path.Path, error) {
p, err := path.Builder{}.ToServiceCategoryMetadataPath( p, err := path.BuildMetadata(
tenantID, tenantID,
h.userID, h.userID,
path.OneDriveService, path.OneDriveService,

View File

@ -61,7 +61,7 @@ func (h libraryBackupHandler) PathPrefix(
func (h libraryBackupHandler) MetadataPathPrefix( func (h libraryBackupHandler) MetadataPathPrefix(
tenantID string, tenantID string,
) (path.Path, error) { ) (path.Path, error) {
p, err := path.Builder{}.ToServiceCategoryMetadataPath( p, err := path.BuildMetadata(
tenantID, tenantID,
h.siteID, h.siteID,
h.service, h.service,

View File

@ -267,7 +267,7 @@ func populateCollections(
"num_paths_entries", len(currPaths), "num_paths_entries", len(currPaths),
"num_deltas_entries", len(deltaURLs)) "num_deltas_entries", len(deltaURLs))
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath( pathPrefix, err := path.BuildMetadata(
qp.TenantID, qp.TenantID,
qp.ProtectedResource.ID(), qp.ProtectedResource.ID(),
path.ExchangeService, path.ExchangeService,

View File

@ -299,7 +299,7 @@ func (suite *DataCollectionsUnitSuite) TestParseMetadataCollections() {
graph.NewMetadataEntry(d.fileName, map[string]string{"key": d.value})) graph.NewMetadataEntry(d.fileName, map[string]string{"key": d.value}))
} }
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath( pathPrefix, err := path.BuildMetadata(
"t", "u", "t", "u",
path.ExchangeService, path.ExchangeService,
path.EmailCategory, path.EmailCategory,

View File

@ -165,7 +165,7 @@ func (suite *MetadataCollectionUnitSuite) TestMakeMetadataCollection() {
ctx, flush := tester.NewContext(t) ctx, flush := tester.NewContext(t)
defer flush() defer flush()
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath( pathPrefix, err := path.BuildMetadata(
tenant, tenant,
user, user,
test.service, test.service,

View File

@ -191,7 +191,7 @@ var defaultOneDrivePathPrefixer = func(tID, ro, driveID string) (path.Path, erro
} }
var defaultOneDriveMetadataPathPrefixer = func(tID, ro string) (path.Path, error) { var defaultOneDriveMetadataPathPrefixer = func(tID, ro string) (path.Path, error) {
return path.Builder{}.ToServiceCategoryMetadataPath( return path.BuildMetadata(
tID, tID,
ro, ro,
path.OneDriveService, path.OneDriveService,
@ -212,7 +212,7 @@ var defaultSharePointPathPrefixer = func(tID, ro, driveID string) (path.Path, er
} }
var defaultSharePointMetadataPathPrefixer = func(tID, ro string) (path.Path, error) { var defaultSharePointMetadataPathPrefixer = func(tID, ro string) (path.Path, error) {
return path.Builder{}.ToServiceCategoryMetadataPath( return path.BuildMetadata(
tID, tID,
ro, ro,
path.SharePointService, path.SharePointService,

View File

@ -218,7 +218,7 @@ func makeMetadataBasePath(
) path.Path { ) path.Path {
t.Helper() t.Helper()
p, err := path.Builder{}.ToServiceCategoryMetadataPath( p, err := path.BuildMetadata(
tenant, tenant,
resourceOwner, resourceOwner,
service, service,
@ -1871,7 +1871,7 @@ func (suite *AssistBackupIntegrationSuite) TestBackupTypesForFailureModes() {
cs := test.collFunc() cs := test.collFunc()
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath( pathPrefix, err := path.BuildMetadata(
tenantID, tenantID,
userID, userID,
path.OneDriveService, path.OneDriveService,
@ -2189,7 +2189,7 @@ func (suite *AssistBackupIntegrationSuite) TestExtensionsIncrementals() {
cs := test.collFunc() cs := test.collFunc()
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath( pathPrefix, err := path.BuildMetadata(
tenantID, tenantID,
userID, userID,
path.OneDriveService, path.OneDriveService,

View File

@ -141,14 +141,13 @@ func collectMetadata(
for _, fn := range fileNames { for _, fn := range fileNames {
for _, reason := range man.Reasons { for _, reason := range man.Reasons {
p, err := path.Builder{}. p, err := path.BuildMetadata(
Append(fn).
ToServiceCategoryMetadataPath(
tenantID, tenantID,
reason.ProtectedResource(), reason.ProtectedResource(),
reason.Service(), reason.Service(),
reason.Category(), reason.Category(),
true) true,
fn)
if err != nil { if err != nil {
return nil, clues. return nil, clues.
Wrap(err, "building metadata path"). Wrap(err, "building metadata path").

View File

@ -286,9 +286,7 @@ func checkMetadataFilesExist(
pathsByRef := map[string][]string{} pathsByRef := map[string][]string{}
for _, fName := range files { for _, fName := range files {
p, err := path.Builder{}. p, err := path.BuildMetadata(tenant, resourceOwner, service, category, true, fName)
Append(fName).
ToServiceCategoryMetadataPath(tenant, resourceOwner, service, category, true)
if !assert.NoError(t, err, "bad metadata path", clues.ToCore(err)) { if !assert.NoError(t, err, "bad metadata path", clues.ToCore(err)) {
continue continue
} }

View File

@ -258,7 +258,7 @@ func (pb Builder) ToStreamStorePath(
} }
func (pb Builder) ToServiceCategoryMetadataPath( func (pb Builder) ToServiceCategoryMetadataPath(
tenant, user string, tenant, protectedResource string,
service ServiceType, service ServiceType,
category CategoryType, category CategoryType,
isItem bool, isItem bool,
@ -267,7 +267,7 @@ func (pb Builder) ToServiceCategoryMetadataPath(
return nil, err return nil, err
} }
if err := verifyInputValues(tenant, user); err != nil { if err := verifyInputValues(tenant, protectedResource); err != nil {
return nil, err return nil, err
} }
@ -288,17 +288,18 @@ func (pb Builder) ToServiceCategoryMetadataPath(
metadataService = GroupsMetadataService metadataService = GroupsMetadataService
} }
return &dataLayerResourcePath{ rp := dataLayerResourcePath{
Builder: *pb.withPrefix( Builder: *pb.withPrefix(
tenant, tenant,
metadataService.String(), metadataService.String(),
user, protectedResource,
category.String(), category.String()),
),
service: metadataService, service: metadataService,
category: category, category: category,
hasItem: isItem, hasItem: isItem,
}, nil }
return &rp, nil
} }
func (pb Builder) ToDataLayerPath( func (pb Builder) ToDataLayerPath(

View File

@ -146,6 +146,22 @@ func Build(
hasItem) hasItem)
} }
// BuildMetadata is a shorthand for Builder{}.Append(...).ToServiceCategoryMetadataPath(...)
func BuildMetadata(
tenant, resourceOwner string,
service ServiceType,
category CategoryType,
hasItem bool,
elements ...string,
) (Path, error) {
return Builder{}.
Append(elements...).
ToServiceCategoryMetadataPath(
tenant, resourceOwner,
service, category,
hasItem)
}
func BuildPrefix( func BuildPrefix(
tenant, resourceOwner string, tenant, resourceOwner string,
s ServiceType, s ServiceType,

View File

@ -344,14 +344,13 @@ func (suite *DataLayerResourcePath) TestToServiceCategoryMetadataPath() {
test.category.String(), test.category.String(),
}, "_"), func() { }, "_"), func() {
t := suite.T() t := suite.T()
pb := path.Builder{}.Append(test.postfix...) p, err := path.BuildMetadata(
p, err := pb.ToServiceCategoryMetadataPath(
tenant, tenant,
user, user,
test.service, test.service,
test.category, test.category,
false) false,
test.postfix...)
test.check(t, err, clues.ToCore(err)) test.check(t, err, clues.ToCore(err))
if err != nil { if err != nil {