Merge pull request #12456 from influxdata/bucket_update_issue
fix(kv): fix bucket update issuepull/12465/head
commit
e78b34b799
|
@ -6,8 +6,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/coreos/bbolt"
|
bolt "github.com/coreos/bbolt"
|
||||||
|
|
||||||
platform "github.com/influxdata/influxdb"
|
platform "github.com/influxdata/influxdb"
|
||||||
platformcontext "github.com/influxdata/influxdb/context"
|
platformcontext "github.com/influxdata/influxdb/context"
|
||||||
"github.com/influxdata/influxdb/kit/tracing"
|
"github.com/influxdata/influxdb/kit/tracing"
|
||||||
|
@ -557,8 +556,8 @@ func (c *Client) updateBucket(ctx context.Context, tx *bolt.Tx, id platform.ID,
|
||||||
}
|
}
|
||||||
|
|
||||||
if upd.Name != nil {
|
if upd.Name != nil {
|
||||||
_, err := c.findBucketByName(ctx, tx, b.OrganizationID, *upd.Name)
|
b0, err := c.findBucketByName(ctx, tx, b.OrganizationID, *upd.Name)
|
||||||
if err == nil {
|
if err == nil && b0.ID != id {
|
||||||
return nil, &platform.Error{
|
return nil, &platform.Error{
|
||||||
Code: platform.EConflict,
|
Code: platform.EConflict,
|
||||||
Msg: "bucket name is not unique",
|
Msg: "bucket name is not unique",
|
||||||
|
|
|
@ -294,10 +294,10 @@ func (s *Service) UpdateBucket(ctx context.Context, id platform.ID, upd platform
|
||||||
b.RetentionPeriod = *upd.RetentionPeriod
|
b.RetentionPeriod = *upd.RetentionPeriod
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = s.FindBucket(ctx, platform.BucketFilter{
|
b0, err := s.FindBucket(ctx, platform.BucketFilter{
|
||||||
Name: upd.Name,
|
Name: upd.Name,
|
||||||
})
|
})
|
||||||
if err == nil {
|
if err == nil && b0.ID != id {
|
||||||
return nil, &platform.Error{
|
return nil, &platform.Error{
|
||||||
Code: platform.EConflict,
|
Code: platform.EConflict,
|
||||||
Msg: "bucket name is not unique",
|
Msg: "bucket name is not unique",
|
||||||
|
|
|
@ -622,8 +622,8 @@ func (s *Service) updateBucket(ctx context.Context, tx Tx, id influxdb.ID, upd i
|
||||||
}
|
}
|
||||||
|
|
||||||
if upd.Name != nil {
|
if upd.Name != nil {
|
||||||
_, err := s.findBucketByName(ctx, tx, b.OrganizationID, *upd.Name)
|
b0, err := s.findBucketByName(ctx, tx, b.OrganizationID, *upd.Name)
|
||||||
if err == nil {
|
if err == nil && b0.ID != id {
|
||||||
return nil, &influxdb.Error{
|
return nil, &influxdb.Error{
|
||||||
Code: influxdb.EConflict,
|
Code: influxdb.EConflict,
|
||||||
Msg: "bucket name is not unique",
|
Msg: "bucket name is not unique",
|
||||||
|
|
|
@ -1239,6 +1239,43 @@ func UpdateBucket(
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "update retention and same name",
|
||||||
|
fields: BucketFields{
|
||||||
|
Organizations: []*platform.Organization{
|
||||||
|
{
|
||||||
|
Name: "theorg",
|
||||||
|
ID: MustIDBase16(orgOneID),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Buckets: []*platform.Bucket{
|
||||||
|
{
|
||||||
|
ID: MustIDBase16(bucketOneID),
|
||||||
|
OrganizationID: MustIDBase16(orgOneID),
|
||||||
|
Name: "bucket1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: MustIDBase16(bucketTwoID),
|
||||||
|
OrganizationID: MustIDBase16(orgOneID),
|
||||||
|
Name: "bucket2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
args: args{
|
||||||
|
id: MustIDBase16(bucketTwoID),
|
||||||
|
retention: 101,
|
||||||
|
name: "bucket2",
|
||||||
|
},
|
||||||
|
wants: wants{
|
||||||
|
bucket: &platform.Bucket{
|
||||||
|
ID: MustIDBase16(bucketTwoID),
|
||||||
|
OrganizationID: MustIDBase16(orgOneID),
|
||||||
|
Organization: "theorg",
|
||||||
|
Name: "bucket2",
|
||||||
|
RetentionPeriod: 101 * time.Minute,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
|
Loading…
Reference in New Issue