satellite/metabase: versioning, add new statuses

There are several different object types in a versioned table,
which will determine the exact behaviour.

The object type states are:
* Pending   - the object is yet to be committed and is being uploaded.
* Committed - the object has been finished and can be read.
* DeleteMarker - indicates that the object should be treated as not
  present when is at the top of the version stack.

There are also versioning states:
* Unversioned - only one unversioned object is allowed per object key.
* Versioned - multiple objects with the same key are allowed.

Change-Id: I65dfa781e8da253a4e5d572b799d53c351196eee
This commit is contained in:
Egon Elbre 2023-10-13 19:13:18 +03:00 committed by Storj Robot
parent 58f75502f3
commit 41e16bc398
27 changed files with 295 additions and 256 deletions

View File

@ -217,7 +217,7 @@ func (s *scenario) run(ctx *testcontext.Context, b *testing.B, db *metabase.DB)
err := db.IterateObjectsAllVersionsWithStatus(ctx, metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: "bucket",
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
}, func(ctx context.Context, it metabase.ObjectsIterator) error {
var entry metabase.ObjectEntry
for it.Next(ctx, &entry) {
@ -241,7 +241,7 @@ func (s *scenario) run(ctx *testcontext.Context, b *testing.B, db *metabase.DB)
ProjectID: projectID,
BucketName: "bucket",
Prefix: metabase.ObjectKey(prefixes[i]),
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
}, func(ctx context.Context, it metabase.ObjectsIterator) error {
var entry metabase.ObjectEntry
for it.Next(ctx, &entry) {
@ -333,7 +333,7 @@ func (s *scenario) run(ctx *testcontext.Context, b *testing.B, db *metabase.DB)
Cursor: metabase.IterateCursor{
Key: object.ObjectKey,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
}, func(ctx context.Context, it metabase.ObjectsIterator) error {

View File

@ -302,7 +302,7 @@ func (db *DB) BeginSegment(ctx context.Context, opts BeginSegment) (err error) {
object_key = $3 AND
version = $4 AND
stream_id = $5 AND
status = `+pendingStatus,
status = `+statusPending,
opts.ProjectID, []byte(opts.BucketName), opts.ObjectKey, opts.Version, opts.StreamID).Scan(&value)
}
if err != nil {
@ -440,7 +440,7 @@ func (db *DB) CommitSegment(ctx context.Context, opts CommitSegment) (err error)
object_key = $14 AND
version = $15 AND
stream_id = $16 AND
status = `+pendingStatus+
status = `+statusPending+
` ), $1, $2,
$3, $4, $5,
$6, $7, $8, $9,
@ -566,7 +566,7 @@ func (db *DB) CommitInlineSegment(ctx context.Context, opts CommitInlineSegment)
object_key = $13 AND
version = $14 AND
stream_id = $15 AND
status = `+pendingStatus+
status = `+statusPending+
` ), $1, $2,
$3, $4, $5,
$6, $7, $8, $9,
@ -703,7 +703,7 @@ func (db *DB) CommitObject(ctx context.Context, opts CommitObject) (object Objec
project_id = $1 AND
bucket_name = $2 AND
object_key = $3 AND
status = `+committedStatus,
status = `+statusCommittedUnversioned,
opts.ProjectID, []byte(opts.BucketName), opts.ObjectKey))(func(rows tagsql.Rows) error {
for rows.Next() {
var version Version
@ -777,7 +777,7 @@ func (db *DB) CommitObject(ctx context.Context, opts CommitObject) (object Objec
)
SELECT
$1 as project_id, $2 as bucket_name, $3 as object_key, $4::INT4 as version, $5 as stream_id,
`+committedStatus+` as status, $6::INT4 as segment_count, $7::INT8 as total_plain_size, $8::INT8 as total_encrypted_size,
`+statusCommittedUnversioned+` as status, $6::INT4 as segment_count, $7::INT8 as total_plain_size, $8::INT8 as total_encrypted_size,
$9::INT4 as fixed_segment_size, NULL::timestamp as zombie_deletion_deadline, expires_at,
-- TODO should we allow to override existing encryption parameters or return error if don't match with opts?
CASE
@ -838,7 +838,7 @@ func (db *DB) CommitObject(ctx context.Context, opts CommitObject) (object Objec
}
err = tx.QueryRowContext(ctx, `
UPDATE objects SET
status =`+committedStatus+`,
status =`+statusCommittedUnversioned+`,
segment_count = $6,
total_plain_size = $7,
@ -859,7 +859,7 @@ func (db *DB) CommitObject(ctx context.Context, opts CommitObject) (object Objec
object_key = $3 AND
version = $4 AND
stream_id = $5 AND
status = `+pendingStatus+`
status = `+statusPending+`
RETURNING
created_at, expires_at,
encrypted_metadata, encrypted_metadata_encrypted_key, encrypted_metadata_nonce,
@ -899,7 +899,7 @@ func (db *DB) CommitObject(ctx context.Context, opts CommitObject) (object Objec
object.BucketName = opts.BucketName
object.ObjectKey = opts.ObjectKey
object.Version = opts.Version
object.Status = Committed
object.Status = CommittedUnversioned
object.SegmentCount = int32(len(segments))
object.TotalPlainSize = totalPlainSize
object.TotalEncryptedSize = totalEncryptedSize

View File

@ -88,7 +88,7 @@ func (db *DB) CommitObjectWithSegments(ctx context.Context, opts CommitObjectWit
err = tx.QueryRowContext(ctx, `
UPDATE objects SET
status =`+committedStatus+`,
status =`+statusCommittedUnversioned+`,
segment_count = $6,
encrypted_metadata_nonce = $7,
@ -105,7 +105,7 @@ func (db *DB) CommitObjectWithSegments(ctx context.Context, opts CommitObjectWit
object_key = $3 AND
version = $4 AND
stream_id = $5 AND
status = `+pendingStatus+`
status = `+statusPending+`
RETURNING
created_at, expires_at,
encryption;
@ -132,7 +132,7 @@ func (db *DB) CommitObjectWithSegments(ctx context.Context, opts CommitObjectWit
object.BucketName = opts.BucketName
object.ObjectKey = opts.ObjectKey
object.Version = opts.Version
object.Status = Committed
object.Status = CommittedUnversioned
object.SegmentCount = int32(len(finalSegments))
object.EncryptedMetadataNonce = opts.EncryptedMetadataNonce
object.EncryptedMetadata = opts.EncryptedMetadata

View File

@ -159,7 +159,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
EncryptedMetadataNonce: encryptedMetadataNonce[:],
EncryptedMetadata: encryptedMetadata,
@ -285,7 +285,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -383,7 +383,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -486,7 +486,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
TotalPlainSize: 1024,
@ -609,7 +609,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
TotalPlainSize: 1024,
@ -732,7 +732,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
TotalPlainSize: 1024,
@ -803,7 +803,7 @@ func TestCommitObjectWithSegments(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},

View File

@ -211,7 +211,7 @@ func TestBeginObjectNextVersion(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now2,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -278,7 +278,7 @@ func TestBeginObjectNextVersion(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now1,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -701,7 +701,7 @@ func TestBeginObjectExactVersion(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now1,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -758,7 +758,7 @@ func TestBeginObjectExactVersion(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now1,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -813,7 +813,7 @@ func TestBeginObjectExactVersion(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now1,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -1034,7 +1034,7 @@ func TestBeginSegment(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -1178,7 +1178,7 @@ func TestBeginSegment(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -1784,7 +1784,7 @@ func TestCommitSegment(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -2565,7 +2565,7 @@ func TestCommitInlineSegment(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
},
@ -3250,7 +3250,7 @@ func TestCommitObject(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
EncryptedMetadataNonce: encryptedMetadataNonce[:],
EncryptedMetadata: encryptedMetadata,
@ -3361,7 +3361,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
FixedSegmentSize: 512,
@ -3468,7 +3468,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
FixedSegmentSize: math.MaxInt32,
@ -3539,7 +3539,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 0,
@ -3580,7 +3580,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 0,
Encryption: metabasetest.DefaultEncryption,
@ -3621,7 +3621,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
@ -3670,7 +3670,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
@ -3715,7 +3715,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -3791,7 +3791,7 @@ func TestCommitObject(t *testing.T) {
StreamID: obj.StreamID,
},
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
EncryptedMetadataNonce: encryptedMetadataNonce[:],
EncryptedMetadata: encryptedMetadata,
@ -3908,7 +3908,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
FixedSegmentSize: 512,
@ -4022,7 +4022,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
FixedSegmentSize: math.MaxInt32,
@ -4067,7 +4067,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 0,
Encryption: metabasetest.DefaultEncryption,
@ -4113,7 +4113,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
@ -4167,7 +4167,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
@ -4217,7 +4217,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -4279,7 +4279,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalEncryptedSize: int64(len(expectedInlineData)),
@ -4343,7 +4343,7 @@ func TestCommitObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 0,
ExpiresAt: &expectedExpiresAt,
@ -4528,7 +4528,7 @@ func TestCommitObjectWithIncorrectPartSize(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
FixedSegmentSize: -1,

View File

@ -349,18 +349,57 @@ const PendingVersion = Version(0)
// Version in DB is represented as INT4.
const MaxVersion = Version(math.MaxInt32)
// ObjectStatus defines the statuses that the object might be in.
// ObjectStatus defines the status that the object is in.
//
// There are two types of objects:
// - Regular (i.e. Committed), which is used for storing data.
// - Delete Marker, which is used to show that an object has been deleted, while preserving older versions.
//
// Each object can be in two states:
// - Pending, meaning that it's still being uploaded.
// - Committed, meaning it has finished uploading.
// Delete Markers are always considered committed, because they do not require committing.
//
// There are two options for versioning:
// - Unversioned, there's only one allowed per project, bucket and encryption key.
// - Versioned, there can be any number of such objects for a given project, bucket and encryption key.
//
// These lead to a few meaningful distinct statuses, listed below.
type ObjectStatus byte
const (
// Pending means that the object is being uploaded or that the client failed during upload.
// The failed upload may be continued in the future.
Pending = ObjectStatus(1)
// Committed means that the object is finished and should be visible for general listing.
Committed = ObjectStatus(3)
// CommittedUnversioned means that the object is finished and should be visible for general listing.
CommittedUnversioned = ObjectStatus(3)
// CommittedVersioned means that the object is finished and should be visible for general listing.
CommittedVersioned = ObjectStatus(4)
// DeleteMarkerUnversioned is inserted when an unversioned object is deleted in a versioning suspended bucket.
DeleteMarkerUnversioned = ObjectStatus(5)
// DeleteMarkerVersioned is inserted when an object is deleted in a versioning enabled bucket.
DeleteMarkerVersioned = ObjectStatus(6)
pendingStatus = "1"
committedStatus = "3"
// Constants that can be used while constructing SQL queries.
statusPending = "1"
statusCommittedUnversioned = "3"
statusCommittedVersioned = "4"
statusesCommitted = "(3,4)"
statusDeleteMarkerUnversioned = "5"
statusDeleteMarkerVersioned = "6"
statusesDeleteMarker = "(5,6)"
)
// stub uses so the linter wouldn't complain.
var (
_ = CommittedVersioned
_ = DeleteMarkerUnversioned
_ = DeleteMarkerVersioned
_ = statusCommittedVersioned
_ = statusesCommitted
_ = statusDeleteMarkerUnversioned
_ = statusDeleteMarkerVersioned
_ = statusesDeleteMarker
)
// Pieces defines information for pieces.

View File

@ -251,7 +251,7 @@ func (db *DB) FinishCopyObject(ctx context.Context, opts FinishCopyObject) (obje
zombie_deletion_deadline
) VALUES (
$1, $2, $3, $4, $5,
$6,`+committedStatus+`, $7,
$6,`+statusCommittedUnversioned+`, $7,
$8,
$9, $10, $11,
$12, $13, $14, null
@ -342,7 +342,7 @@ func getObjectAtCopySourceAndDestination(
sourceObject.BucketName = opts.BucketName
sourceObject.ObjectKey = opts.ObjectKey
sourceObject.Version = opts.Version
sourceObject.Status = Committed
sourceObject.Status = CommittedUnversioned
// get objects at source and destination (if any)
rows, err := tx.QueryContext(ctx, `
@ -370,7 +370,7 @@ func getObjectAtCopySourceAndDestination(
bucket_name = $3 AND
object_key = $4 AND
version = $2 AND
status = `+committedStatus+`
status = `+statusCommittedUnversioned+`
UNION ALL
SELECT
stream_id,
@ -387,7 +387,7 @@ func getObjectAtCopySourceAndDestination(
bucket_name = $5 AND
object_key = $6 AND
version = (SELECT version FROM destination_current_versions
WHERE status = `+committedStatus+`)`,
WHERE status = `+statusCommittedUnversioned+`)`,
sourceObject.ProjectID, sourceObject.Version,
[]byte(sourceObject.BucketName), sourceObject.ObjectKey,
opts.NewBucket, opts.NewEncryptedObjectKey)

View File

@ -182,7 +182,7 @@ func (db *DB) TestMigrateToLatest(ctx context.Context) error {
created_at TIMESTAMPTZ NOT NULL default now(),
expires_at TIMESTAMPTZ,
status INT2 NOT NULL default ` + pendingStatus + `,
status INT2 NOT NULL default ` + statusPending + `,
segment_count INT4 NOT NULL default 0,
encrypted_metadata_nonce BYTEA default NULL,
@ -409,7 +409,7 @@ func (db *DB) PostgresMigration() *migrate.Migration {
created_at TIMESTAMPTZ NOT NULL default now(),
expires_at TIMESTAMPTZ,
status INT2 NOT NULL default ` + pendingStatus + `,
status INT2 NOT NULL default ` + statusPending + `,
segment_count INT4 NOT NULL default 0,
encrypted_metadata_nonce BYTEA default NULL,

View File

@ -113,7 +113,7 @@ WITH deleted_objects AS (
project_id = $1 AND
bucket_name = $2 AND
object_key = $3 AND
status = ` + committedStatus + ` AND
status = ` + statusCommittedUnversioned + ` AND
(expires_at IS NULL OR expires_at > now())
ORDER BY version DESC
)
@ -207,7 +207,7 @@ func (db *DB) DeletePendingObject(ctx context.Context, opts DeletePendingObject)
object_key = $3 AND
version = $4 AND
stream_id = $5 AND
status = `+pendingStatus+`
status = `+statusPending+`
RETURNING
version, stream_id, created_at, expires_at, status, segment_count,
encrypted_metadata_nonce, encrypted_metadata, encrypted_metadata_encrypted_key,
@ -325,7 +325,7 @@ func (db *DB) DeleteObjectsAllVersions(ctx context.Context, opts DeleteObjectsAl
project_id = $1 AND
bucket_name = $2 AND
object_key = ANY ($3) AND
status = `+committedStatus+`
status = `+statusCommittedUnversioned+`
RETURNING
project_id, bucket_name, object_key, version, stream_id, created_at, expires_at,
status, segment_count, encrypted_metadata_nonce, encrypted_metadata,

View File

@ -142,7 +142,7 @@ func TestDeleteBucketObjects(t *testing.T) {
{
ObjectStream: objX,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -153,7 +153,7 @@ func TestDeleteBucketObjects(t *testing.T) {
{
ObjectStream: objY,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,

View File

@ -116,7 +116,7 @@ func (db *DB) DeleteZombieObjects(ctx context.Context, opts DeleteZombieObjects)
` + db.impl.AsOfSystemInterval(opts.AsOfSystemInterval) + `
WHERE
(project_id, bucket_name, object_key, version) > ($1, $2, $3, $4)
AND status = ` + pendingStatus + `
AND status = ` + statusPending + `
AND (zombie_deletion_deadline IS NULL OR zombie_deletion_deadline < $5)
ORDER BY project_id, bucket_name, object_key, version
LIMIT $6;`

View File

@ -114,7 +114,7 @@ func TestDeletePendingObject(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -348,7 +348,7 @@ func TestDeletePendingObjectNew(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -1349,7 +1349,7 @@ func TestDeleteObjectLastCommitted(t *testing.T) {
{
ObjectStream: newObjDiffVersion,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
},

View File

@ -95,7 +95,7 @@ func (db *DB) GetObjectExactVersion(ctx context.Context, opts GetObjectExactVers
bucket_name = $2 AND
object_key = $3 AND
version = $4 AND
status = `+committedStatus+` AND
status = `+statusCommittedUnversioned+` AND
(expires_at IS NULL OR expires_at > now())`,
opts.ProjectID, []byte(opts.BucketName), opts.ObjectKey, opts.Version).
Scan(
@ -118,7 +118,7 @@ func (db *DB) GetObjectExactVersion(ctx context.Context, opts GetObjectExactVers
object.ObjectKey = opts.ObjectKey
object.Version = opts.Version
object.Status = Committed
object.Status = CommittedUnversioned
return object, nil
}
@ -152,7 +152,7 @@ func (db *DB) GetObjectLastCommitted(ctx context.Context, opts GetObjectLastComm
project_id = $1 AND
bucket_name = $2 AND
object_key = $3 AND
status = `+committedStatus+` AND
status = `+statusCommittedUnversioned+` AND
(expires_at IS NULL OR expires_at > now())
ORDER BY version desc
`, opts.ProjectID, []byte(opts.BucketName), opts.ObjectKey))(func(rows tagsql.Rows) error {
@ -200,7 +200,7 @@ func (db *DB) GetObjectLastCommitted(ctx context.Context, opts GetObjectLastComm
object.ProjectID = opts.ProjectID
object.BucketName = opts.BucketName
object.ObjectKey = opts.ObjectKey
object.Status = Committed
object.Status = CommittedUnversioned
return object, nil
}
@ -301,7 +301,7 @@ func (db *DB) GetLatestObjectLastSegment(ctx context.Context, opts GetLatestObje
project_id = $1 AND
bucket_name = $2 AND
object_key = $3 AND
status = `+committedStatus+`
status = `+statusCommittedUnversioned+`
ORDER BY version DESC
LIMIT 1
)
@ -385,7 +385,7 @@ func (db *DB) BucketEmpty(ctx context.Context, opts BucketEmpty) (empty bool, er
func (db *DB) TestingAllCommittedObjects(ctx context.Context, projectID uuid.UUID, bucketName string) (objects []ObjectEntry, err error) {
defer mon.Task()(&ctx)(&err)
return db.testingAllObjectsByStatus(ctx, projectID, bucketName, Committed)
return db.testingAllObjectsByStatus(ctx, projectID, bucketName, CommittedUnversioned)
}
func (db *DB) testingAllObjectsByStatus(ctx context.Context, projectID uuid.UUID, bucketName string, status ObjectStatus) (objects []ObjectEntry, err error) {

View File

@ -90,7 +90,7 @@ func TestGetObjectExactVersion(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -147,7 +147,7 @@ func TestGetObjectExactVersion(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
ExpiresAt: &expiresAt,
Encryption: metabasetest.DefaultEncryption,
},
@ -167,7 +167,7 @@ func TestGetObjectExactVersion(t *testing.T) {
Result: metabase.Object{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -177,7 +177,7 @@ func TestGetObjectExactVersion(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
@ -273,7 +273,7 @@ func TestGetObjectLastCommitted(t *testing.T) {
Result: metabase.Object{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
EncryptedMetadataNonce: encryptedMetadataNonce[:],
EncryptedMetadata: encryptedMetadata,
@ -285,7 +285,7 @@ func TestGetObjectLastCommitted(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
EncryptedMetadataNonce: encryptedMetadataNonce[:],
EncryptedMetadata: encryptedMetadata,
@ -319,7 +319,7 @@ func TestGetObjectLastCommitted(t *testing.T) {
Result: metabase.Object{
ObjectStream: firstObject,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
}.Check(ctx, t, db)
@ -328,7 +328,7 @@ func TestGetObjectLastCommitted(t *testing.T) {
{
ObjectStream: firstObject,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
metabase.RawObject(secondObject),
@ -373,7 +373,7 @@ func TestGetObjectLastCommitted(t *testing.T) {
StreamID: copiedObj.StreamID,
},
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
EncryptedMetadata: copiedObj.EncryptedMetadata,
EncryptedMetadataNonce: copiedObj.EncryptedMetadataNonce,
@ -473,7 +473,7 @@ func TestGetSegmentByPosition(t *testing.T) {
{
ObjectStream: obj1.ObjectStream,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -486,7 +486,7 @@ func TestGetSegmentByPosition(t *testing.T) {
ObjectStream: obj2.ObjectStream,
CreatedAt: now,
ExpiresAt: obj2.ExpiresAt,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -607,7 +607,7 @@ func TestGetSegmentByPosition(t *testing.T) {
{
ObjectStream: obj.ObjectStream,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -620,7 +620,7 @@ func TestGetSegmentByPosition(t *testing.T) {
ObjectStream: copyObjStream,
CreatedAt: now,
ExpiresAt: obj.ExpiresAt,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -778,7 +778,7 @@ func TestGetSegmentByPosition(t *testing.T) {
{
ObjectStream: obj.ObjectStream,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
Encryption: metabasetest.DefaultEncryption,
@ -787,7 +787,7 @@ func TestGetSegmentByPosition(t *testing.T) {
ObjectStream: copyObjStream,
CreatedAt: now,
ExpiresAt: obj.ExpiresAt,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
EncryptedMetadataNonce: newEncryptedMetadataKeyNonce[:],
@ -949,7 +949,7 @@ func TestGetSegmentByPosition(t *testing.T) {
{
ObjectStream: obj.ObjectStream,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
Encryption: metabasetest.DefaultEncryption,
@ -960,7 +960,7 @@ func TestGetSegmentByPosition(t *testing.T) {
ObjectStream: copyObjStream,
CreatedAt: now,
ExpiresAt: obj.ExpiresAt,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
EncryptedMetadataNonce: newEncryptedMetadataKeyNonce[:],
@ -1053,7 +1053,7 @@ func TestGetLatestObjectLastSegment(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 2,
TotalPlainSize: 1024,
@ -1302,7 +1302,7 @@ func TestGetLatestObjectLastSegment(t *testing.T) {
{
ObjectStream: obj.ObjectStream,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
Encryption: metabasetest.DefaultEncryption,
@ -1311,7 +1311,7 @@ func TestGetLatestObjectLastSegment(t *testing.T) {
ObjectStream: copyObjStream,
CreatedAt: now,
ExpiresAt: obj.ExpiresAt,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
EncryptedMetadataNonce: newEncryptedMetadataKeyNonce[:],
@ -1469,7 +1469,7 @@ func TestGetLatestObjectLastSegment(t *testing.T) {
{
ObjectStream: obj.ObjectStream,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
Encryption: metabasetest.DefaultEncryption,
@ -1480,7 +1480,7 @@ func TestGetLatestObjectLastSegment(t *testing.T) {
ObjectStream: copyObjStream,
CreatedAt: now,
ExpiresAt: obj.ExpiresAt,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
EncryptedMetadataNonce: newEncryptedMetadataKeyNonce[:],

View File

@ -327,7 +327,7 @@ func doNextQueryStreamsByKey(ctx context.Context, it *objectsIterator) (_ tagsql
project_id = $1 AND bucket_name = $2
AND object_key = $3
AND stream_id > $4::BYTEA
AND status = `+pendingStatus+`
AND status = `+statusPending+`
ORDER BY stream_id ASC
LIMIT $5
`, it.projectID, it.bucketName,

View File

@ -29,7 +29,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: uuid.UUID{},
BucketName: "sj://mybucket",
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
},
ErrClass: &metabase.ErrInvalidRequest,
ErrText: "ProjectID missing",
@ -41,7 +41,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: uuid.UUID{1},
BucketName: "",
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
},
ErrClass: &metabase.ErrInvalidRequest,
ErrText: "BucketName missing",
@ -54,7 +54,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
BucketName: "mybucket",
BatchSize: -1,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
},
ErrClass: &metabase.ErrInvalidRequest,
ErrText: "BatchSize is negative",
@ -83,7 +83,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
BucketName: "myemptybucket",
BatchSize: 10,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
},
Result: nil,
}.Check(ctx, t, db)
@ -135,7 +135,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -144,7 +144,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Version: committed.Version,
StreamID: committed.StreamID,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
EncryptedMetadataNonce: encryptedMetadataNonce[:],
EncryptedMetadata: encryptedMetadata,
@ -187,7 +187,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
BucketName: "mybucket",
Recursive: true,
BatchSize: limit,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -211,7 +211,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
BucketName: "mybucket",
Recursive: true,
BatchSize: limit,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -238,7 +238,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: uuid.UUID{1},
BucketName: "bucket-a",
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -267,7 +267,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: uuid.UUID{1},
BucketName: "mybucket",
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -300,7 +300,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -322,7 +322,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -345,7 +345,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -368,7 +368,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -386,7 +386,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -405,7 +405,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -423,7 +423,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -454,15 +454,15 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
objects["a"],
prefixEntry("b/", metabase.Committed),
prefixEntry("b/", metabase.CommittedUnversioned),
objects["c"],
prefixEntry("c/", metabase.Committed),
prefixEntry("c/", metabase.CommittedUnversioned),
objects["g"],
},
}.Check(ctx, t, db)
@ -471,16 +471,16 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
Cursor: metabase.IterateCursor{Key: "a", Version: objects["a"].Version + 1},
},
Result: []metabase.ObjectEntry{
prefixEntry("b/", metabase.Committed),
prefixEntry("b/", metabase.CommittedUnversioned),
objects["c"],
prefixEntry("c/", metabase.Committed),
prefixEntry("c/", metabase.CommittedUnversioned),
objects["g"],
},
}.Check(ctx, t, db)
@ -489,16 +489,16 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
Cursor: metabase.IterateCursor{Key: "b", Version: 0},
},
Result: []metabase.ObjectEntry{
prefixEntry("b/", metabase.Committed),
prefixEntry("b/", metabase.CommittedUnversioned),
objects["c"],
prefixEntry("c/", metabase.Committed),
prefixEntry("c/", metabase.CommittedUnversioned),
objects["g"],
},
}.Check(ctx, t, db)
@ -507,7 +507,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -524,7 +524,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -542,7 +542,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -559,7 +559,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -573,7 +573,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -582,7 +582,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
},
Result: withoutPrefix("c/",
objects["c/"],
prefixEntry("c//", metabase.Committed),
prefixEntry("c//", metabase.CommittedUnversioned),
objects["c/1"],
),
}.Check(ctx, t, db)
@ -591,7 +591,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Opts: metabase.IterateObjectsWithStatus{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -635,7 +635,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Version: -1,
},
Prefix: prefix,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
}, collector.Add)
require.NoError(t, err)
@ -650,7 +650,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
},
Prefix: prefix,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
}, collector.Add)
require.NoError(t, err)
@ -672,7 +672,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
Version: -1,
},
Prefix: metabase.ObjectKey([]byte{1}),
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
}, collector.Add)
@ -695,7 +695,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
BucketName: bucketName,
Prefix: metabase.ObjectKey("a/"),
BatchSize: 1,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
}, collector.Add)
require.NoError(t, err)
@ -721,7 +721,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: obj1.ProjectID,
BucketName: obj1.BucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
}, collector.Add)
@ -754,7 +754,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: obj1.ProjectID,
BucketName: obj1.BucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: false,
IncludeSystemMetadata: true,
}, collector.Add)
@ -788,7 +788,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: obj1.ProjectID,
BucketName: obj1.BucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: false,
}, collector.Add)
@ -800,7 +800,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
require.NotEmpty(t, entry.ObjectKey)
require.NotEmpty(t, entry.StreamID)
require.NotZero(t, entry.Version)
require.Equal(t, metabase.Committed, entry.Status)
require.Equal(t, metabase.CommittedUnversioned, entry.Status)
require.False(t, entry.Encryption.IsZero())
require.True(t, entry.CreatedAt.IsZero())
@ -830,7 +830,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Prefix: metabase.ObjectKey("a/"),
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
BatchSize: 1,
}, collector.Add)
require.NoError(t, err)
@ -927,7 +927,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
BucketName: bucketName,
Recursive: false,
Prefix: "aaaa/",
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
BatchSize: 2,
IncludeSystemMetadata: true,
},
@ -974,7 +974,7 @@ func TestIterateObjectsWithStatus(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
BatchSize: 3,
IncludeSystemMetadata: true,
},
@ -1010,13 +1010,13 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("08/"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
@ -1030,13 +1030,13 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("08"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("08/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("08/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
@ -1050,12 +1050,12 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("08/a/x"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
})
@ -1079,13 +1079,13 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("08/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("08/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
@ -1099,12 +1099,12 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
@ -1118,12 +1118,12 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/a/x"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
})
@ -1164,15 +1164,15 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08"),
Version: objects["2017/05/08"].Version,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("08/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("08/"), metabase.CommittedUnversioned),
withoutPrefix1("2017/05/", objects["2017/05/08"+afterDelimiter]),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
@ -1187,14 +1187,14 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
withoutPrefix1("2017/05/", objects["2017/05/08"+afterDelimiter]),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
@ -1208,14 +1208,14 @@ func TestIterateObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/a/x"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: []metabase.ObjectEntry{
withoutPrefix1("2017/05/", objects["2017/05/08"+afterDelimiter]),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
},
}.Check(ctx, t, db)
})
@ -1482,7 +1482,7 @@ func createObjects(ctx *testcontext.Context, t *testing.T, db *metabase.DB, numb
objects[i] = metabase.RawObject{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
}
}
@ -1508,7 +1508,7 @@ func createObjectsWithKeys(ctx *testcontext.Context, t *testing.T, db *metabase.
Version: obj.Version,
StreamID: obj.StreamID,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
}
}
@ -1584,7 +1584,7 @@ func BenchmarkNonRecursiveListing(b *testing.B) {
ProjectID: baseObj.ProjectID,
BucketName: baseObj.BucketName,
BatchSize: 5,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
}, func(ctx context.Context, oi metabase.ObjectsIterator) error {
entry := metabase.ObjectEntry{}
for oi.Next(ctx, &entry) {
@ -1602,7 +1602,7 @@ func BenchmarkNonRecursiveListing(b *testing.B) {
BucketName: baseObj.BucketName,
Prefix: "foo/",
BatchSize: 5,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
}, func(ctx context.Context, oi metabase.ObjectsIterator) error {
entry := metabase.ObjectEntry{}
for oi.Next(ctx, &entry) {
@ -1620,7 +1620,7 @@ func BenchmarkNonRecursiveListing(b *testing.B) {
BucketName: baseObj.BucketName,
Prefix: "boo/",
BatchSize: 5,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
}, func(ctx context.Context, oi metabase.ObjectsIterator) error {
entry := metabase.ObjectEntry{}
for oi.Next(ctx, &entry) {

View File

@ -92,7 +92,7 @@ func (opts *IterateObjectsWithStatus) Verify() error {
return ErrInvalidRequest.New("BucketName missing")
case opts.BatchSize < 0:
return ErrInvalidRequest.New("BatchSize is negative")
case !(opts.Status == Pending || opts.Status == Committed):
case !(opts.Status == Pending || opts.Status == CommittedUnversioned):
return ErrInvalidRequest.New("Status %v is not supported", opts.Status)
}
return nil

View File

@ -38,7 +38,7 @@ func (opts *ListObjects) Verify() error {
return ErrInvalidRequest.New("BucketName missing")
case opts.Limit < 0:
return ErrInvalidRequest.New("Invalid limit: %d", opts.Limit)
case !(opts.Status == Pending || opts.Status == Committed):
case !(opts.Status == Pending || opts.Status == CommittedUnversioned):
return ErrInvalidRequest.New("Status is invalid")
}
return nil

View File

@ -86,7 +86,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: obj.ProjectID,
BucketName: obj.BucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
},
Result: metabase.ListObjectsResult{},
}.Check(ctx, t, db)
@ -116,7 +116,7 @@ func TestListObjects(t *testing.T) {
ProjectID: uuid.UUID{1},
BucketName: "mybucket",
Recursive: false,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
Limit: limit,
@ -143,7 +143,7 @@ func TestListObjects(t *testing.T) {
BucketName: "mybucket",
Recursive: true,
Limit: limit,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -172,7 +172,7 @@ func TestListObjects(t *testing.T) {
ProjectID: uuid.UUID{1},
BucketName: "bucket-a",
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -202,7 +202,7 @@ func TestListObjects(t *testing.T) {
ProjectID: uuid.UUID{1},
BucketName: "mybucket",
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -236,7 +236,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
@ -259,7 +259,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -283,7 +283,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -307,7 +307,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -326,7 +326,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -346,7 +346,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -365,7 +365,7 @@ func TestListObjects(t *testing.T) {
ProjectID: projectID,
BucketName: bucketName,
Recursive: true,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -396,16 +396,16 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
objects["a"],
prefixEntry("b/", metabase.Committed),
prefixEntry("b/", metabase.CommittedUnversioned),
objects["c"],
prefixEntry("c/", metabase.Committed),
prefixEntry("c/", metabase.CommittedUnversioned),
objects["g"],
}},
}.Check(ctx, t, db)
@ -414,7 +414,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -422,9 +422,9 @@ func TestListObjects(t *testing.T) {
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry("b/", metabase.Committed),
prefixEntry("b/", metabase.CommittedUnversioned),
objects["c"],
prefixEntry("c/", metabase.Committed),
prefixEntry("c/", metabase.CommittedUnversioned),
objects["g"],
}},
}.Check(ctx, t, db)
@ -433,7 +433,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -441,9 +441,9 @@ func TestListObjects(t *testing.T) {
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry("b/", metabase.Committed),
prefixEntry("b/", metabase.CommittedUnversioned),
objects["c"],
prefixEntry("c/", metabase.Committed),
prefixEntry("c/", metabase.CommittedUnversioned),
objects["g"],
}},
}.Check(ctx, t, db)
@ -452,7 +452,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -470,7 +470,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -489,7 +489,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -507,7 +507,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -521,7 +521,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -531,7 +531,7 @@ func TestListObjects(t *testing.T) {
Result: metabase.ListObjectsResult{
Objects: withoutPrefix("c/",
objects["c/"],
prefixEntry("c//", metabase.Committed),
prefixEntry("c//", metabase.CommittedUnversioned),
objects["c/1"],
)},
}.Check(ctx, t, db)
@ -540,7 +540,7 @@ func TestListObjects(t *testing.T) {
Opts: metabase.ListObjects{
ProjectID: projectID,
BucketName: bucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
@ -579,14 +579,14 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("08/"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
@ -600,14 +600,14 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("08"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("08/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("08/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
@ -621,13 +621,13 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("08/a/x"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
})
@ -651,14 +651,14 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("08/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("08/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
@ -672,13 +672,13 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
@ -692,13 +692,13 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/a/x"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
})
@ -738,16 +738,16 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08"),
Version: objects["2017/05/08"].Version,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
prefixEntry(metabase.ObjectKey("08/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("08/"), metabase.CommittedUnversioned),
withoutPrefix1("2017/05/", objects["2017/05/08"+afterDelimiter]),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
@ -762,15 +762,15 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
withoutPrefix1("2017/05/", objects["2017/05/08"+afterDelimiter]),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
@ -784,15 +784,15 @@ func TestListObjectsSkipCursor(t *testing.T) {
Key: metabase.ObjectKey("2017/05/08/a/x"),
Version: 1,
},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
IncludeCustomMetadata: true,
IncludeSystemMetadata: true,
},
Result: metabase.ListObjectsResult{
Objects: []metabase.ObjectEntry{
withoutPrefix1("2017/05/", objects["2017/05/08"+afterDelimiter]),
prefixEntry(metabase.ObjectKey("09/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("10/"), metabase.Committed),
prefixEntry(metabase.ObjectKey("09/"), metabase.CommittedUnversioned),
prefixEntry(metabase.ObjectKey("10/"), metabase.CommittedUnversioned),
}},
}.Check(ctx, t, db)
})
@ -829,7 +829,7 @@ func BenchmarkNonRecursiveObjectsListing(b *testing.B) {
result, err := db.ListObjects(ctx, metabase.ListObjects{
ProjectID: baseObj.ProjectID,
BucketName: baseObj.BucketName,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Limit: batchsize,
})
require.NoError(b, err)
@ -838,7 +838,7 @@ func BenchmarkNonRecursiveObjectsListing(b *testing.B) {
ProjectID: baseObj.ProjectID,
BucketName: baseObj.BucketName,
Cursor: metabase.ListObjectsCursor{Key: result.Objects[len(result.Objects)-1].ObjectKey},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Limit: batchsize,
})
require.NoError(b, err)
@ -852,7 +852,7 @@ func BenchmarkNonRecursiveObjectsListing(b *testing.B) {
ProjectID: baseObj.ProjectID,
BucketName: baseObj.BucketName,
Prefix: "foo/",
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Limit: batchsize,
})
require.NoError(b, err)
@ -863,7 +863,7 @@ func BenchmarkNonRecursiveObjectsListing(b *testing.B) {
BucketName: baseObj.BucketName,
Prefix: "foo/",
Cursor: metabase.ListObjectsCursor{Key: cursorKey},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Limit: batchsize,
})
require.NoError(b, err)
@ -877,7 +877,7 @@ func BenchmarkNonRecursiveObjectsListing(b *testing.B) {
ProjectID: baseObj.ProjectID,
BucketName: baseObj.BucketName,
Prefix: "boo/",
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Limit: batchsize,
})
require.NoError(b, err)
@ -888,7 +888,7 @@ func BenchmarkNonRecursiveObjectsListing(b *testing.B) {
BucketName: baseObj.BucketName,
Prefix: "boo/",
Cursor: metabase.ListObjectsCursor{Key: cursorKey},
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Limit: batchsize,
})
require.NoError(b, err)

View File

@ -106,7 +106,7 @@ func TestIterateLoopObjects(t *testing.T) {
},
{
ObjectStream: committed,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
EncryptedMetadataSize: len(encryptedMetadata),
CreatedAt: createdAt,
},
@ -717,7 +717,7 @@ func TestIterateLoopSegments(t *testing.T) {
func loopObjectEntryFromRaw(m metabase.RawObject) metabase.LoopObjectEntry {
return metabase.LoopObjectEntry{
ObjectStream: m.ObjectStream,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
CreatedAt: m.CreatedAt,
ExpiresAt: m.ExpiresAt,
SegmentCount: m.SegmentCount,

View File

@ -242,7 +242,7 @@ func CreateFullObjectsWithKeys(ctx *testcontext.Context, t *testing.T, db *metab
objects[key] = metabase.LoopObjectEntry{
ObjectStream: obj,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
CreatedAt: time.Now(),
}
}

View File

@ -64,12 +64,12 @@ func (db *DB) UpdateObjectMetadata(ctx context.Context, opts UpdateObjectMetadat
project_id = $1 AND
bucket_name = $2 AND
object_key = $3 AND
status = `+committedStatus+` AND
status = `+statusCommittedUnversioned+` AND
(expires_at IS NULL OR expires_at > now())
ORDER BY version desc
) AND
stream_id = $4 AND
status = `+committedStatus,
status = `+statusCommittedUnversioned,
opts.ProjectID, []byte(opts.BucketName), opts.ObjectKey, opts.StreamID,
opts.EncryptedMetadataNonce, opts.EncryptedMetadata, opts.EncryptedMetadataEncryptedKey)
if err != nil {

View File

@ -82,7 +82,7 @@ func TestUpdateObjectMetadata(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
},
@ -105,7 +105,7 @@ func TestUpdateObjectMetadata(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
EncryptedMetadata: encryptedMetadata,
@ -142,7 +142,7 @@ func TestUpdateObjectMetadata(t *testing.T) {
{
ObjectStream: newObjDiffVersion,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
},
},
@ -172,7 +172,7 @@ func TestUpdateObjectMetadata(t *testing.T) {
{
ObjectStream: newObjDiffVersion,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
Encryption: metabasetest.DefaultEncryption,
EncryptedMetadata: encryptedMetadata,

View File

@ -176,7 +176,7 @@ func (db *DB) FinishMoveObject(ctx context.Context, opts FinishMoveObject) (err
return Error.New("failed to scan objects: %w", err)
}
if status == Committed {
if status == CommittedUnversioned {
return ErrObjectAlreadyExists.New("")
} else if status == Pending && version == opts.Version {
useNewVersion = true

View File

@ -323,7 +323,7 @@ func TestUpdateSegmentPieces(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,
@ -400,7 +400,7 @@ func TestUpdateSegmentPieces(t *testing.T) {
{
ObjectStream: obj,
CreatedAt: now,
Status: metabase.Committed,
Status: metabase.CommittedUnversioned,
SegmentCount: 1,
TotalPlainSize: 512,

View File

@ -83,7 +83,7 @@ func TestZombieDeletion(t *testing.T) {
objects, err = planet.Satellites[0].Metabase.DB.TestingAllObjects(ctx)
require.NoError(t, err)
require.Len(t, objects, 1)
require.Equal(t, metabase.Committed, objects[0].Status)
require.Equal(t, metabase.CommittedUnversioned, objects[0].Status)
})
}

View File

@ -887,7 +887,7 @@ func (endpoint *Endpoint) ListObjects(ctx context.Context, req *pb.ObjectListReq
}
// Default to Commmitted status for backward-compatibility with older uplinks.
status := metabase.Committed
status := metabase.CommittedUnversioned
if req.Status != pb.Object_INVALID {
status = metabase.ObjectStatus(req.Status)
}