satellite/metabase: simplify UpdateObjectLastCommitted
Change-Id: Ifec596ab1868baa03688e717adec7d2ab45eafa9
This commit is contained in:
parent
55bddb6ce1
commit
1fa918c255
@ -13,10 +13,8 @@ import (
|
|||||||
|
|
||||||
// UpdateObjectLastCommittedMetadata contains arguments necessary for replacing an object metadata.
|
// UpdateObjectLastCommittedMetadata contains arguments necessary for replacing an object metadata.
|
||||||
type UpdateObjectLastCommittedMetadata struct {
|
type UpdateObjectLastCommittedMetadata struct {
|
||||||
ProjectID uuid.UUID
|
ObjectLocation
|
||||||
BucketName string
|
StreamID uuid.UUID
|
||||||
ObjectKey ObjectKey
|
|
||||||
StreamID uuid.UUID
|
|
||||||
|
|
||||||
EncryptedMetadata []byte
|
EncryptedMetadata []byte
|
||||||
EncryptedMetadataNonce []byte
|
EncryptedMetadataNonce []byte
|
||||||
@ -25,14 +23,10 @@ type UpdateObjectLastCommittedMetadata struct {
|
|||||||
|
|
||||||
// Verify object stream fields.
|
// Verify object stream fields.
|
||||||
func (obj *UpdateObjectLastCommittedMetadata) Verify() error {
|
func (obj *UpdateObjectLastCommittedMetadata) Verify() error {
|
||||||
switch {
|
if err := obj.ObjectLocation.Verify(); err != nil {
|
||||||
case obj.ProjectID.IsZero():
|
return err
|
||||||
return ErrInvalidRequest.New("ProjectID missing")
|
}
|
||||||
case obj.BucketName == "":
|
if obj.StreamID.IsZero() {
|
||||||
return ErrInvalidRequest.New("BucketName missing")
|
|
||||||
case len(obj.ObjectKey) == 0:
|
|
||||||
return ErrInvalidRequest.New("ObjectKey missing")
|
|
||||||
case obj.StreamID.IsZero():
|
|
||||||
return ErrInvalidRequest.New("StreamID missing")
|
return ErrInvalidRequest.New("StreamID missing")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -23,9 +23,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
defer metabasetest.DeleteAll{}.Check(ctx, t, db)
|
defer metabasetest.DeleteAll{}.Check(ctx, t, db)
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: test.ObjectLocation.ProjectID,
|
ObjectLocation: test.ObjectLocation,
|
||||||
BucketName: test.ObjectLocation.BucketName,
|
|
||||||
ObjectKey: test.ObjectLocation.ObjectKey,
|
|
||||||
},
|
},
|
||||||
ErrClass: test.ErrClass,
|
ErrClass: test.ErrClass,
|
||||||
ErrText: test.ErrText,
|
ErrText: test.ErrText,
|
||||||
@ -40,10 +38,8 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
obj := metabasetest.RandObjectStream()
|
obj := metabasetest.RandObjectStream()
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: obj.ProjectID,
|
ObjectLocation: obj.Location(),
|
||||||
BucketName: obj.BucketName,
|
StreamID: uuid.UUID{},
|
||||||
ObjectKey: obj.ObjectKey,
|
|
||||||
StreamID: uuid.UUID{},
|
|
||||||
},
|
},
|
||||||
ErrClass: &metabase.ErrInvalidRequest,
|
ErrClass: &metabase.ErrInvalidRequest,
|
||||||
ErrText: "StreamID missing",
|
ErrText: "StreamID missing",
|
||||||
@ -57,10 +53,8 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
obj := metabasetest.RandObjectStream()
|
obj := metabasetest.RandObjectStream()
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: obj.ProjectID,
|
ObjectLocation: obj.Location(),
|
||||||
BucketName: obj.BucketName,
|
StreamID: obj.StreamID,
|
||||||
ObjectKey: obj.ObjectKey,
|
|
||||||
StreamID: obj.StreamID,
|
|
||||||
},
|
},
|
||||||
ErrClass: &metabase.ErrObjectNotFound,
|
ErrClass: &metabase.ErrObjectNotFound,
|
||||||
ErrText: "object with specified version and committed status is missing",
|
ErrText: "object with specified version and committed status is missing",
|
||||||
@ -80,10 +74,8 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
|
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: obj.ProjectID,
|
ObjectLocation: object.Location(),
|
||||||
BucketName: obj.BucketName,
|
StreamID: object.StreamID,
|
||||||
ObjectKey: obj.ObjectKey,
|
|
||||||
StreamID: obj.StreamID,
|
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
EncryptedMetadataEncryptedKey: encryptedMetadataKey,
|
EncryptedMetadataEncryptedKey: encryptedMetadataKey,
|
||||||
@ -117,9 +109,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
|
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: object2.ProjectID,
|
ObjectLocation: object2.Location(),
|
||||||
BucketName: object2.BucketName,
|
|
||||||
ObjectKey: object2.ObjectKey,
|
|
||||||
StreamID: object2.StreamID,
|
StreamID: object2.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -151,9 +141,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
|
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: object.ProjectID,
|
ObjectLocation: object.Location(),
|
||||||
BucketName: object.BucketName,
|
|
||||||
ObjectKey: object.ObjectKey,
|
|
||||||
StreamID: object.StreamID,
|
StreamID: object.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -203,9 +191,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
// verify we cannot update the metadata of a deleted object
|
// verify we cannot update the metadata of a deleted object
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: object.ProjectID,
|
ObjectLocation: object.Location(),
|
||||||
BucketName: object.BucketName,
|
|
||||||
ObjectKey: object.ObjectKey,
|
|
||||||
StreamID: object.StreamID,
|
StreamID: object.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -218,9 +204,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
// verify cannot update the metadata of the delete marker either
|
// verify cannot update the metadata of the delete marker either
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: marker.ProjectID,
|
ObjectLocation: marker.Location(),
|
||||||
BucketName: marker.BucketName,
|
|
||||||
ObjectKey: marker.ObjectKey,
|
|
||||||
StreamID: marker.StreamID,
|
StreamID: marker.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -276,9 +260,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
// verify we cannot update the metadata of a deleted object
|
// verify we cannot update the metadata of a deleted object
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: object2.ProjectID,
|
ObjectLocation: object2.Location(),
|
||||||
BucketName: object2.BucketName,
|
|
||||||
ObjectKey: object2.ObjectKey,
|
|
||||||
StreamID: object2.StreamID,
|
StreamID: object2.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -291,9 +273,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
// verify cannot update the metadata of the delete marker either
|
// verify cannot update the metadata of the delete marker either
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: marker.ProjectID,
|
ObjectLocation: marker.Location(),
|
||||||
BucketName: marker.BucketName,
|
|
||||||
ObjectKey: marker.ObjectKey,
|
|
||||||
StreamID: marker.StreamID,
|
StreamID: marker.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -346,9 +326,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
|
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: object2.ProjectID,
|
ObjectLocation: object2.Location(),
|
||||||
BucketName: object2.BucketName,
|
|
||||||
ObjectKey: object2.ObjectKey,
|
|
||||||
StreamID: object2.StreamID,
|
StreamID: object2.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
@ -391,9 +369,7 @@ func TestUpdateObjectLastCommittedMetadata(t *testing.T) {
|
|||||||
|
|
||||||
metabasetest.UpdateObjectLastCommittedMetadata{
|
metabasetest.UpdateObjectLastCommittedMetadata{
|
||||||
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
Opts: metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: object3.ProjectID,
|
ObjectLocation: object3.Location(),
|
||||||
BucketName: object3.BucketName,
|
|
||||||
ObjectKey: object3.ObjectKey,
|
|
||||||
StreamID: object3.StreamID,
|
StreamID: object3.StreamID,
|
||||||
EncryptedMetadata: encryptedMetadata,
|
EncryptedMetadata: encryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
EncryptedMetadataNonce: encryptedMetadataNonce[:],
|
||||||
|
@ -1471,9 +1471,11 @@ func (endpoint *Endpoint) UpdateObjectMetadata(ctx context.Context, req *pb.Obje
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = endpoint.metabase.UpdateObjectLastCommittedMetadata(ctx, metabase.UpdateObjectLastCommittedMetadata{
|
err = endpoint.metabase.UpdateObjectLastCommittedMetadata(ctx, metabase.UpdateObjectLastCommittedMetadata{
|
||||||
ProjectID: keyInfo.ProjectID,
|
ObjectLocation: metabase.ObjectLocation{
|
||||||
BucketName: string(req.Bucket),
|
ProjectID: keyInfo.ProjectID,
|
||||||
ObjectKey: metabase.ObjectKey(req.EncryptedObjectKey),
|
BucketName: string(req.Bucket),
|
||||||
|
ObjectKey: metabase.ObjectKey(req.EncryptedObjectKey),
|
||||||
|
},
|
||||||
StreamID: id,
|
StreamID: id,
|
||||||
EncryptedMetadata: req.EncryptedMetadata,
|
EncryptedMetadata: req.EncryptedMetadata,
|
||||||
EncryptedMetadataNonce: encryptedMetadataNonce,
|
EncryptedMetadataNonce: encryptedMetadataNonce,
|
||||||
|
Loading…
Reference in New Issue
Block a user