Skip to content

Commit

Permalink
Fix middleware and some changes to accessing the changed Go APIs
Browse files Browse the repository at this point in the history
Includes 7e0c91c, thanks
@Jonathan-Rosenberg!
  • Loading branch information
arielshaqed committed Apr 10, 2024
1 parent daad4b7 commit 15f6aab
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 42 deletions.
4 changes: 2 additions & 2 deletions esti/hooks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func testCommitMerge(t *testing.T, ctx context.Context, repo string) {
BranchID: branch,
Committer: commitRecord.Committer,
CommitMessage: commitRecord.Message,
Metadata: commitRecord.Metadata.AdditionalProperties,
Metadata: *commitRecord.Metadata,
}, preCommitEvent)
require.NotNil(t, webhookData.queryParams)
require.Contains(t, webhookData.queryParams, "check_env_vars")
Expand All @@ -166,7 +166,7 @@ func testCommitMerge(t *testing.T, ctx context.Context, repo string) {
CommitID: commitRecord.Id,
Committer: commitRecord.Committer,
CommitMessage: commitRecord.Message,
Metadata: commitRecord.Metadata.AdditionalProperties,
Metadata: *commitRecord.Metadata,
}, postCommitEvent)

mergeResp, err := client.MergeIntoBranchWithResponse(ctx, repo, branch, mainBranch, apigen.MergeIntoBranchJSONRequestBody{})
Expand Down
6 changes: 3 additions & 3 deletions esti/import_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ func TestImport(t *testing.T) {
require.NoError(t, err)
require.NotNil(t, metadataResp.JSON200)

repoMetadata := metadataResp.JSON200.AdditionalProperties
repoMetadata := *metadataResp.JSON200
require.NotNil(t, repoMetadata)
importMetadata, ok := repoMetadata[graveler.MetadataKeyLastImportTimeStamp]
require.True(t, ok)
Expand Down Expand Up @@ -264,7 +264,7 @@ func testImportNew(t testing.TB, ctx context.Context, repoName, importBranch str
Force: swag.Bool(force),
}
if len(metadata) > 0 {
body.Commit.Metadata = &apigen.CommitCreation_Metadata{AdditionalProperties: metadata}
body.Commit.Metadata = &metadata
}

importResp, err := client.ImportStartWithResponse(ctx, repoName, importBranch, body)
Expand Down Expand Up @@ -314,7 +314,7 @@ func TestImportCancel(t *testing.T) {
importResp, err := client.ImportStartWithResponse(ctx, repoName, branch, apigen.ImportStartJSONRequestBody{
Commit: apigen.CommitCreation{
Message: "created by import",
Metadata: &apigen.CommitCreation_Metadata{AdditionalProperties: map[string]string{"created_by": "import"}},
Metadata: &map[string]string{"created_by": "import"},
},
Paths: []apigen.ImportLocation{{
Destination: importTargetPrefix,
Expand Down
4 changes: 2 additions & 2 deletions esti/merge_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ func doMergeAndListIteration(t *testing.T, logger logging.Logger, ctx context.Co
res, err := client.GetCommitWithResponse(ctx, repo, mergeRes.JSON200.Reference)
require.NoError(t, err, "failed to get commit")
require.NotNil(t, res.JSON200)
metadata := res.JSON200.Metadata
val, ok := metadata.AdditionalProperties[graveler.MergeStrategyMetadataKey]
metadata := *res.JSON200.Metadata
val, ok := metadata[graveler.MergeStrategyMetadataKey]
require.True(t, ok)
require.Equal(t, strategy, val)

Expand Down
4 changes: 1 addition & 3 deletions esti/presign_multipart_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,9 +234,7 @@ func TestCompletePresignMultipartUpload(t *testing.T) {
ContentType: swag.String("application/octet-stream"),
Parts: parts,
PhysicalAddress: respCreate.JSON201.PhysicalAddress,
UserMetadata: &apigen.CompletePresignMultipartUpload_UserMetadata{
AdditionalProperties: map[string]string{"foo": "bar"},
},
UserMetadata: &map[string]string{"foo": "bar"},
})
require.NoError(t, err, "CompletePresignMultipartUpload should succeed")
require.Equalf(t, http.StatusOK, resp.StatusCode(), "CompletePresignMultipartUpload status code mismatch: %s - %s", resp.Status(), resp.Body)
Expand Down
12 changes: 5 additions & 7 deletions esti/system_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,13 +223,11 @@ func uploadContentDirect(ctx context.Context, client apigen.ClientWithResponsesI
resp, err := client.LinkPhysicalAddressWithResponse(ctx, repoID, branchID, &apigen.LinkPhysicalAddressParams{
Path: objPath,
}, apigen.LinkPhysicalAddressJSONRequestBody{
Checksum: stats.ETag,
SizeBytes: stats.Size,
Staging: *stagingLocation,
UserMetadata: &apigen.StagingMetadata_UserMetadata{
AdditionalProperties: metadata,
},
ContentType: &contentType,
Checksum: stats.ETag,
SizeBytes: stats.Size,
Staging: *stagingLocation,
UserMetadata: &metadata,
ContentType: &contentType,
})
if err != nil {
return nil, fmt.Errorf("link object to backing store: %w", err)
Expand Down
41 changes: 19 additions & 22 deletions pkg/api/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -828,14 +828,13 @@ func TestController_GetCommitHandler(t *testing.T) {
if len(commit.Id) == 0 {
t.Errorf("GetCommit initial commit missing ID: %+v", commit)
}
metadata := apigen.Commit_Metadata{}
expectedCommit := &apigen.Commit{
Committer: "",
CreationDate: commit.CreationDate,
Id: commit.Id,
Message: graveler.FirstCommitMsg,
MetaRangeId: "",
Metadata: &metadata,
Metadata: nil,
Parents: []string{},
Generation: swag.Int64(1),
Version: swag.Int(1),
Expand Down Expand Up @@ -1300,15 +1299,15 @@ func TestController_SetRepositoryMetadataHandler(t *testing.T) {
})
verifyResponseOK(t, createResp, err)

resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: tt1.properties}})
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: tt1.properties})
verifyResponseOK(t, resp, err)

resp, err = clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: tt1.appendProps}})
resp, err = clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: tt1.appendProps})
verifyResponseOK(t, resp, err)

getResp, err := clt.GetRepositoryMetadataWithResponse(ctx, repoName)
verifyResponseOK(t, resp, err)
if diff := deep.Equal(getResp.JSON200.AdditionalProperties, tt1.expected); diff != nil {
if diff := deep.Equal(*getResp.JSON200, apigen.RepositoryMetadata(tt1.expected)); diff != nil {
t.Fatal("Get repository metadata results diff:", diff)
}
})
Expand All @@ -1328,13 +1327,13 @@ func TestController_SetRepositoryMetadataHandler(t *testing.T) {
})
verifyResponseOK(t, createResp, err)

resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: map[string]string{"foo": "bar"}}})
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: map[string]string{"foo": "bar"}})
verifyResponseOK(t, resp, err)
})

t.Run("set repository metadata not exist", func(t *testing.T) {
repoName := testUniqueRepoName()
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: map[string]string{"foo": "bar"}}})
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: map[string]string{"foo": "bar"}})
require.NoError(t, err)
require.NotNil(t, resp.JSON404)
})
Expand All @@ -1352,7 +1351,7 @@ func TestController_SetRepositoryMetadataHandler(t *testing.T) {
creds := createUserWithDefaultGroup(t, clt)
// create a client with the user
regClt := setupClientByEndpoint(t, deps.server.URL, creds.AccessKeyID, creds.SecretAccessKey)
resp, err := regClt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: map[string]string{"foo": "bar"}}})
resp, err := regClt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: map[string]string{"foo": "bar"}})
require.NoError(t, err)
require.NotNil(t, resp.JSON401)
})
Expand Down Expand Up @@ -1404,15 +1403,15 @@ func TestController_DeleteRepositoryMetadataHandler(t *testing.T) {
})
verifyResponseOK(t, createResp, err)

resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: tt.properties}})
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: tt.properties})
verifyResponseOK(t, resp, err)

deleteResp, err := clt.DeleteRepositoryMetadataWithResponse(ctx, repoName, apigen.DeleteRepositoryMetadataJSONRequestBody{Keys: tt.deleteProps})
verifyResponseOK(t, deleteResp, err)

getResp, err := clt.GetRepositoryMetadataWithResponse(ctx, repoName)
verifyResponseOK(t, getResp, err)
if diff := deep.Equal(getResp.JSON200.AdditionalProperties, tt.expected); diff != nil {
if diff := deep.Equal(*getResp.JSON200, apigen.RepositoryMetadata(tt.expected)); diff != nil {
t.Fatal("Get repository metadata results diff:", diff)
}
})
Expand All @@ -1432,13 +1431,13 @@ func TestController_DeleteRepositoryMetadataHandler(t *testing.T) {
})
verifyResponseOK(t, createResp, err)

resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: map[string]string{"foo": "bar"}}})
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: map[string]string{"foo": "bar"}})
verifyResponseOK(t, resp, err)
})

t.Run("delete repository metadata, repository not exist", func(t *testing.T) {
repoName := testUniqueRepoName()
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: apigen.RepositoryMetadataSet_Metadata{AdditionalProperties: map[string]string{"foo": "bar"}}})
resp, err := clt.SetRepositoryMetadataWithResponse(ctx, repoName, apigen.SetRepositoryMetadataJSONRequestBody{Metadata: map[string]string{"foo": "bar"}})
require.NoError(t, err)
require.NotNil(t, resp.JSON404)
})
Expand Down Expand Up @@ -1477,8 +1476,7 @@ func TestController_GetRepositoryMetadataHandler(t *testing.T) {

resp, err := clt.GetRepositoryMetadataWithResponse(ctx, repoName)
verifyResponseOK(t, resp, err)
require.NotNil(t, resp.JSON200)
require.Nil(t, resp.JSON200.AdditionalProperties)
require.Empty(t, resp.JSON200, 0)
})

t.Run("get metadata bare repo", func(t *testing.T) {
Expand All @@ -1496,8 +1494,7 @@ func TestController_GetRepositoryMetadataHandler(t *testing.T) {

resp, err := clt.GetRepositoryMetadataWithResponse(ctx, repoName)
verifyResponseOK(t, resp, err)
require.NotNil(t, resp.JSON200)
require.Nil(t, resp.JSON200.AdditionalProperties)
require.Empty(t, resp.JSON200)
})

t.Run("get repository metadata not exist", func(t *testing.T) {
Expand Down Expand Up @@ -2328,7 +2325,7 @@ func TestController_ObjectsStatObjectHandler(t *testing.T) {
if objectStats.PhysicalAddress != onBlock(deps, "some-bucket/")+entry.PhysicalAddress {
t.Fatalf("expected correct PhysicalAddress, got %s", objectStats.PhysicalAddress)
}
if diff := deep.Equal(objectStats.Metadata.AdditionalProperties, map[string]string(entry.Metadata)); diff != nil {
if diff := deep.Equal(*objectStats.Metadata, apigen.ObjectUserMetadata(entry.Metadata)); diff != nil {
t.Fatalf("expected to get back user-defined metadata: %s", diff)
}
contentType := apiutil.Value(objectStats.ContentType)
Expand All @@ -2341,8 +2338,8 @@ func TestController_ObjectsStatObjectHandler(t *testing.T) {
resp, err = clt.StatObjectWithResponse(ctx, repo, "main", &apigen.StatObjectParams{Path: "foo/bar", UserMetadata: &getUserMetadata})
verifyResponseOK(t, resp, err)
objectStatsNoMetadata := resp.JSON200
if objectStatsNoMetadata.Metadata == nil || len(objectStatsNoMetadata.Metadata.AdditionalProperties) != 0 {
t.Fatalf("expected to not get back empty user-defined metadata, got %+v", objectStatsNoMetadata.Metadata.AdditionalProperties)
if objectStatsNoMetadata.Metadata == nil || len(*objectStatsNoMetadata.Metadata) != 0 {
t.Fatalf("expected to not get back empty user-defined metadata, got %+v", objectStatsNoMetadata.Metadata)
}
})

Expand Down Expand Up @@ -2439,7 +2436,7 @@ func TestController_ObjectsListObjectsHandler(t *testing.T) {
results := resp.JSON200.Results
for _, obj := range results {
if obj.Metadata != nil {
t.Fatalf("expected no user-defined metadata, got %+v", obj.Metadata.AdditionalProperties)
t.Fatalf("expected no user-defined metadata, got %+v", obj.Metadata)
}
}
})
Expand Down Expand Up @@ -5536,7 +5533,7 @@ func TestController_CreateCommitRecord(t *testing.T) {
CreationDate: 1e9,
Generation: 1,
Message: "message",
Metadata: &apigen.CommitRecordCreation_Metadata{AdditionalProperties: map[string]string{"key": "value"}},
Metadata: &map[string]string{"key": "value"},
MetarangeId: "metarangeId",
Parents: []string{"parent1", "parent2"},
Version: 1,
Expand All @@ -5558,7 +5555,7 @@ func TestController_CreateCommitRecord(t *testing.T) {
Committer: body.Committer,
Message: body.Message,
CreationDate: time.Unix(body.CreationDate, 0).UTC(),
Metadata: body.Metadata.AdditionalProperties,
Metadata: *body.Metadata,
MetaRangeID: body.MetarangeId,
Parents: body.Parents,
Generation: catalog.CommitGeneration(body.Generation),
Expand Down
1 change: 1 addition & 0 deletions pkg/api/tmpl/chi/chi-middleware.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
type ServerInterfaceWrapper struct {
Handler ServerInterface
HandlerMiddlewares []MiddlewareFunc
ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)
}

type MiddlewareFunc func(http.HandlerFunc) http.HandlerFunc
Expand Down
6 changes: 3 additions & 3 deletions pkg/auth/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1907,7 +1907,7 @@ func TestAPIAuthService_WritePolicy(t *testing.T) {
CreatedAt: creationTime,
Statement: []model.Statement{{
Action: tt.firstStatementAction,
Effect: tt.firstStatementEffect,
Effect: string(tt.firstStatementEffect),
Resource: tt.firstStatementResource,
}},
}, tt.overwrite)
Expand Down Expand Up @@ -1963,7 +1963,7 @@ func TestAPIAuthService_GetPolicy(t *testing.T) {
Statement: []auth.Statement{
{
Action: tt.firstStatementAction,
Effect: tt.firstStatementEffect,
Effect: auth.StatementEffect(tt.firstStatementEffect),
Resource: tt.firstStatementResource,
},
},
Expand Down Expand Up @@ -2011,7 +2011,7 @@ func statementEquals(t *testing.T, authStatement []auth.Statement, modalStatemen
return
}
for i, authS := range authStatement {
if authS.Effect != modalStatement[i].Effect {
if string(authS.Effect) != modalStatement[i].Effect {
t.Errorf("Effect (authStatement)%s != (modelStatement)%s", modalStatement[i].Effect, authS.Effect)
}
if authS.Resource != modalStatement[i].Resource {
Expand Down

0 comments on commit 15f6aab

Please sign in to comment.