diff --git a/cmd/peer-rest-server.go b/cmd/peer-rest-server.go index d990abfff..b3099e3d3 100644 --- a/cmd/peer-rest-server.go +++ b/cmd/peer-rest-server.go @@ -1308,6 +1308,7 @@ func (s *peerRESTServer) HeadBucketHandler(mss *grid.MSS) (info *VolInfo, nerr * return &VolInfo{ Name: bucketInfo.Name, Created: bucketInfo.Created, + Deleted: bucketInfo.Deleted, // needed for site replication }, nil } diff --git a/cmd/peer-s3-client.go b/cmd/peer-s3-client.go index ebfd87202..feb0da705 100644 --- a/cmd/peer-s3-client.go +++ b/cmd/peer-s3-client.go @@ -393,6 +393,7 @@ func (client *remotePeerS3Client) GetBucketInfo(ctx context.Context, bucket stri return BucketInfo{ Name: volInfo.Name, Created: volInfo.Created, + Deleted: volInfo.Deleted, }, nil } diff --git a/cmd/storage-datatypes.go b/cmd/storage-datatypes.go index 7ed800b91..0ca7ee96f 100644 --- a/cmd/storage-datatypes.go +++ b/cmd/storage-datatypes.go @@ -111,6 +111,9 @@ type VolInfo struct { // total VolInfo counts count int + + // Date and time when the volume was deleted, if Deleted + Deleted time.Time } // FilesInfo represent a list of files, additionally diff --git a/cmd/storage-datatypes_gen.go b/cmd/storage-datatypes_gen.go index 192aef9cb..f351d823c 100644 --- a/cmd/storage-datatypes_gen.go +++ b/cmd/storage-datatypes_gen.go @@ -6504,8 +6504,8 @@ func (z *VolInfo) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - if zb0001 != 2 { - err = msgp.ArrayError{Wanted: 2, Got: zb0001} + if zb0001 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0001} return } z.Name, err = dc.ReadString() @@ -6518,13 +6518,18 @@ func (z *VolInfo) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err, "Created") return } + z.Deleted, err = dc.ReadTime() + if err != nil { + err = msgp.WrapError(err, "Deleted") + return + } return } // EncodeMsg implements msgp.Encodable func (z VolInfo) EncodeMsg(en *msgp.Writer) (err error) { - // array header, size 2 - err = en.Append(0x92) + // array header, size 3 + err = en.Append(0x93) if err != nil { return } @@ -6538,16 +6543,22 @@ func (z VolInfo) EncodeMsg(en *msgp.Writer) (err error) { err = msgp.WrapError(err, "Created") return } + err = en.WriteTime(z.Deleted) + if err != nil { + err = msgp.WrapError(err, "Deleted") + return + } return } // MarshalMsg implements msgp.Marshaler func (z VolInfo) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) - // array header, size 2 - o = append(o, 0x92) + // array header, size 3 + o = append(o, 0x93) o = msgp.AppendString(o, z.Name) o = msgp.AppendTime(o, z.Created) + o = msgp.AppendTime(o, z.Deleted) return } @@ -6559,8 +6570,8 @@ func (z *VolInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - if zb0001 != 2 { - err = msgp.ArrayError{Wanted: 2, Got: zb0001} + if zb0001 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0001} return } z.Name, bts, err = msgp.ReadStringBytes(bts) @@ -6573,13 +6584,18 @@ func (z *VolInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err, "Created") return } + z.Deleted, bts, err = msgp.ReadTimeBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Deleted") + return + } o = bts return } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z VolInfo) Msgsize() (s int) { - s = 1 + msgp.StringPrefixSize + len(z.Name) + msgp.TimeSize + s = 1 + msgp.StringPrefixSize + len(z.Name) + msgp.TimeSize + msgp.TimeSize return } @@ -6603,8 +6619,8 @@ func (z *VolsInfo) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err, zb0001) return } - if zb0003 != 2 { - err = msgp.ArrayError{Wanted: 2, Got: zb0003} + if zb0003 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0003} return } (*z)[zb0001].Name, err = dc.ReadString() @@ -6617,6 +6633,11 @@ func (z *VolsInfo) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err, zb0001, "Created") return } + (*z)[zb0001].Deleted, err = dc.ReadTime() + if err != nil { + err = msgp.WrapError(err, zb0001, "Deleted") + return + } } return } @@ -6629,8 +6650,8 @@ func (z VolsInfo) EncodeMsg(en *msgp.Writer) (err error) { return } for zb0004 := range z { - // array header, size 2 - err = en.Append(0x92) + // array header, size 3 + err = en.Append(0x93) if err != nil { return } @@ -6644,6 +6665,11 @@ func (z VolsInfo) EncodeMsg(en *msgp.Writer) (err error) { err = msgp.WrapError(err, zb0004, "Created") return } + err = en.WriteTime(z[zb0004].Deleted) + if err != nil { + err = msgp.WrapError(err, zb0004, "Deleted") + return + } } return } @@ -6653,10 +6679,11 @@ func (z VolsInfo) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) o = msgp.AppendArrayHeader(o, uint32(len(z))) for zb0004 := range z { - // array header, size 2 - o = append(o, 0x92) + // array header, size 3 + o = append(o, 0x93) o = msgp.AppendString(o, z[zb0004].Name) o = msgp.AppendTime(o, z[zb0004].Created) + o = msgp.AppendTime(o, z[zb0004].Deleted) } return } @@ -6681,8 +6708,8 @@ func (z *VolsInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err, zb0001) return } - if zb0003 != 2 { - err = msgp.ArrayError{Wanted: 2, Got: zb0003} + if zb0003 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0003} return } (*z)[zb0001].Name, bts, err = msgp.ReadStringBytes(bts) @@ -6695,6 +6722,11 @@ func (z *VolsInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err, zb0001, "Created") return } + (*z)[zb0001].Deleted, bts, err = msgp.ReadTimeBytes(bts) + if err != nil { + err = msgp.WrapError(err, zb0001, "Deleted") + return + } } o = bts return @@ -6704,7 +6736,7 @@ func (z *VolsInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { func (z VolsInfo) Msgsize() (s int) { s = msgp.ArrayHeaderSize for zb0004 := range z { - s += 1 + msgp.StringPrefixSize + len(z[zb0004].Name) + msgp.TimeSize + s += 1 + msgp.StringPrefixSize + len(z[zb0004].Name) + msgp.TimeSize + msgp.TimeSize } return }