Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions pkg/fetch/logging_fetcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ func (lf *loggingFetcher) FetchBlob(ctx context.Context, req *remoteasset.FetchB
log.Printf("Fetching Blob %s with qualifiers %s", req.Uris, req.Qualifiers)
resp, err := lf.fetcher.FetchBlob(ctx, req)
if err == nil {
log.Printf("FetchBlob completed for %s with status code %d", req.Uris, resp.Status.GetCode())
log.Printf("FetchBlob completed for %s with status %v:", req.Uris, resp.Status.String())
} else {
log.Printf("FetchBlob completed for %s with status code %d", req.Uris, status.Code(err))
log.Printf("FetchBlob completed for %s with status: %v", req.Uris, err)
}
return resp, err
}
Expand All @@ -35,9 +35,9 @@ func (lf *loggingFetcher) FetchDirectory(ctx context.Context, req *remoteasset.F
log.Printf("Fetching Directory %s with qualifiers %s", req.Uris, req.Qualifiers)
resp, err := lf.fetcher.FetchDirectory(ctx, req)
if err == nil {
log.Printf("FetchBlob completed for %s with status code %d", req.Uris, resp.Status.GetCode())
log.Printf("FetchDirectory completed for %s with status code %d", req.Uris, resp.Status.GetCode())
} else {
log.Printf("FetchBlob completed for %s with status code %d", req.Uris, status.Code(err))
log.Printf("FetchDirectory completed for %s with status code %d", req.Uris, status.Code(err))
}
return resp, err
}
Expand Down
3 changes: 3 additions & 0 deletions pkg/fetch/validating_fetcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ func (vf *validatingFetcher) FetchBlob(ctx context.Context, req *remoteasset.Fet
if len(req.Uris) == 0 {
return nil, status.Error(codes.InvalidArgument, "FetchBlob does not support requests without any URIs specified.")
}
if len(req.Qualifiers) == 0 {
return nil, status.Error(codes.InvalidArgument, "FetchBlob does not support requests without any Qualifiers specified.")
}
if unsupported := vf.CheckQualifiers(qualifier.QualifiersToSet(req.Qualifiers)); !(unsupported.IsEmpty()) {
violations := []*errdetails.BadRequest_FieldViolation{}
for q := range unsupported {
Expand Down
6 changes: 3 additions & 3 deletions pkg/fetch/validating_fetcher_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@ func TestFetchBlobUriRequirement(t *testing.T) {
request := &remoteasset.FetchBlobRequest{
InstanceName: "",
Uris: []string{uri},
Qualifiers: []*remoteasset.Qualifier{{Name: "foo", Value: "bar"}},
}
badRequest := &remoteasset.FetchBlobRequest{
InstanceName: "",
Uris: []string{},
}
mockFetcher := mock.NewMockFetcher(ctrl)

validatingFetcher := fetch.NewValidatingFetcher(mockFetcher)

t.Run("Success", func(t *testing.T) {
mockFetcher.EXPECT().CheckQualifiers(qualifier.Set{}).Return(qualifier.Set{})
mockFetcher.EXPECT().CheckQualifiers(qualifier.Set{"foo": {}}).Return(qualifier.Set{})
mockFetcher.EXPECT().FetchBlob(ctx, request).Return(&remoteasset.FetchBlobResponse{
Status: status.New(codes.OK, "Success!").Proto(),
Uri: uri,
BlobDigest: &remoteexecution.Digest{Hash: "d0d829c4c0ce64787cb1c998a9c29a109f8ed005633132fda4f29982487b04db", SizeBytes: 123},
}, nil)
response, err := validatingFetcher.FetchBlob(ctx, request)
require.Nil(t, err)
require.NoError(t, err)
require.Equal(t, response.Status.Code, int32(codes.OK))
})

Expand Down