delete bucket also removes collection data

This commit is contained in:
Chris Lu 2018-07-20 00:10:01 -07:00
parent feea33d5e0
commit 568132c0c9
4 changed files with 163 additions and 68 deletions

View file

@ -30,6 +30,9 @@ service SeaweedFiler {
rpc LookupVolume (LookupVolumeRequest) returns (LookupVolumeResponse) { rpc LookupVolume (LookupVolumeRequest) returns (LookupVolumeResponse) {
} }
rpc DeleteCollection (DeleteCollectionRequest) returns (DeleteCollectionResponse) {
}
} }
////////////////////////////////////////////////// //////////////////////////////////////////////////
@ -153,3 +156,10 @@ message Location {
message LookupVolumeResponse { message LookupVolumeResponse {
map<string, Locations> locations_map = 1; map<string, Locations> locations_map = 1;
} }
message DeleteCollectionRequest {
string collection = 1;
}
message DeleteCollectionResponse {
}

View file

@ -32,6 +32,8 @@ It has these top-level messages:
Locations Locations
Location Location
LookupVolumeResponse LookupVolumeResponse
DeleteCollectionRequest
DeleteCollectionResponse
*/ */
package filer_pb package filer_pb
@ -663,6 +665,30 @@ func (m *LookupVolumeResponse) GetLocationsMap() map[string]*Locations {
return nil return nil
} }
type DeleteCollectionRequest struct {
Collection string `protobuf:"bytes,1,opt,name=collection" json:"collection,omitempty"`
}
func (m *DeleteCollectionRequest) Reset() { *m = DeleteCollectionRequest{} }
func (m *DeleteCollectionRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteCollectionRequest) ProtoMessage() {}
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (m *DeleteCollectionRequest) GetCollection() string {
if m != nil {
return m.Collection
}
return ""
}
type DeleteCollectionResponse struct {
}
func (m *DeleteCollectionResponse) Reset() { *m = DeleteCollectionResponse{} }
func (m *DeleteCollectionResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteCollectionResponse) ProtoMessage() {}
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func init() { func init() {
proto.RegisterType((*LookupDirectoryEntryRequest)(nil), "filer_pb.LookupDirectoryEntryRequest") proto.RegisterType((*LookupDirectoryEntryRequest)(nil), "filer_pb.LookupDirectoryEntryRequest")
proto.RegisterType((*LookupDirectoryEntryResponse)(nil), "filer_pb.LookupDirectoryEntryResponse") proto.RegisterType((*LookupDirectoryEntryResponse)(nil), "filer_pb.LookupDirectoryEntryResponse")
@ -687,6 +713,8 @@ func init() {
proto.RegisterType((*Locations)(nil), "filer_pb.Locations") proto.RegisterType((*Locations)(nil), "filer_pb.Locations")
proto.RegisterType((*Location)(nil), "filer_pb.Location") proto.RegisterType((*Location)(nil), "filer_pb.Location")
proto.RegisterType((*LookupVolumeResponse)(nil), "filer_pb.LookupVolumeResponse") proto.RegisterType((*LookupVolumeResponse)(nil), "filer_pb.LookupVolumeResponse")
proto.RegisterType((*DeleteCollectionRequest)(nil), "filer_pb.DeleteCollectionRequest")
proto.RegisterType((*DeleteCollectionResponse)(nil), "filer_pb.DeleteCollectionResponse")
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -708,6 +736,7 @@ type SeaweedFilerClient interface {
DeleteEntry(ctx context.Context, in *DeleteEntryRequest, opts ...grpc.CallOption) (*DeleteEntryResponse, error) DeleteEntry(ctx context.Context, in *DeleteEntryRequest, opts ...grpc.CallOption) (*DeleteEntryResponse, error)
AssignVolume(ctx context.Context, in *AssignVolumeRequest, opts ...grpc.CallOption) (*AssignVolumeResponse, error) AssignVolume(ctx context.Context, in *AssignVolumeRequest, opts ...grpc.CallOption) (*AssignVolumeResponse, error)
LookupVolume(ctx context.Context, in *LookupVolumeRequest, opts ...grpc.CallOption) (*LookupVolumeResponse, error) LookupVolume(ctx context.Context, in *LookupVolumeRequest, opts ...grpc.CallOption) (*LookupVolumeResponse, error)
DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*DeleteCollectionResponse, error)
} }
type seaweedFilerClient struct { type seaweedFilerClient struct {
@ -790,6 +819,15 @@ func (c *seaweedFilerClient) LookupVolume(ctx context.Context, in *LookupVolumeR
return out, nil return out, nil
} }
func (c *seaweedFilerClient) DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*DeleteCollectionResponse, error) {
out := new(DeleteCollectionResponse)
err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/DeleteCollection", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for SeaweedFiler service // Server API for SeaweedFiler service
type SeaweedFilerServer interface { type SeaweedFilerServer interface {
@ -801,6 +839,7 @@ type SeaweedFilerServer interface {
DeleteEntry(context.Context, *DeleteEntryRequest) (*DeleteEntryResponse, error) DeleteEntry(context.Context, *DeleteEntryRequest) (*DeleteEntryResponse, error)
AssignVolume(context.Context, *AssignVolumeRequest) (*AssignVolumeResponse, error) AssignVolume(context.Context, *AssignVolumeRequest) (*AssignVolumeResponse, error)
LookupVolume(context.Context, *LookupVolumeRequest) (*LookupVolumeResponse, error) LookupVolume(context.Context, *LookupVolumeRequest) (*LookupVolumeResponse, error)
DeleteCollection(context.Context, *DeleteCollectionRequest) (*DeleteCollectionResponse, error)
} }
func RegisterSeaweedFilerServer(s *grpc.Server, srv SeaweedFilerServer) { func RegisterSeaweedFilerServer(s *grpc.Server, srv SeaweedFilerServer) {
@ -951,6 +990,24 @@ func _SeaweedFiler_LookupVolume_Handler(srv interface{}, ctx context.Context, de
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _SeaweedFiler_DeleteCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteCollectionRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(SeaweedFilerServer).DeleteCollection(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/filer_pb.SeaweedFiler/DeleteCollection",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(SeaweedFilerServer).DeleteCollection(ctx, req.(*DeleteCollectionRequest))
}
return interceptor(ctx, in, info, handler)
}
var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
ServiceName: "filer_pb.SeaweedFiler", ServiceName: "filer_pb.SeaweedFiler",
HandlerType: (*SeaweedFilerServer)(nil), HandlerType: (*SeaweedFilerServer)(nil),
@ -987,6 +1044,10 @@ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
MethodName: "LookupVolume", MethodName: "LookupVolume",
Handler: _SeaweedFiler_LookupVolume_Handler, Handler: _SeaweedFiler_LookupVolume_Handler,
}, },
{
MethodName: "DeleteCollection",
Handler: _SeaweedFiler_DeleteCollection_Handler,
},
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
Metadata: "filer.proto", Metadata: "filer.proto",
@ -995,68 +1056,71 @@ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("filer.proto", fileDescriptor0) } func init() { proto.RegisterFile("filer.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1004 bytes of a gzipped FileDescriptorProto // 1049 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x56, 0x5d, 0x6f, 0xdc, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0x46,
0x14, 0x8d, 0xd7, 0xbb, 0x9b, 0xf5, 0xdd, 0x4d, 0x81, 0xd9, 0xb4, 0x98, 0x6d, 0x52, 0x16, 0xd3, 0x10, 0x0e, 0x45, 0x4b, 0x16, 0x47, 0x72, 0x9a, 0xae, 0x9c, 0x84, 0x55, 0xec, 0x54, 0xd9, 0x26,
0xa2, 0x54, 0x48, 0x51, 0x14, 0x78, 0xa8, 0x40, 0x48, 0x54, 0x49, 0xa9, 0x2a, 0xa5, 0xaa, 0x34, 0x85, 0x83, 0x02, 0x86, 0xe1, 0xf6, 0x90, 0xb6, 0x28, 0xd0, 0xc0, 0x4e, 0x83, 0x00, 0x0e, 0x02,
0x21, 0x48, 0x3c, 0xad, 0x1c, 0xfb, 0x66, 0x19, 0xc5, 0x6b, 0x2f, 0x9e, 0x71, 0x50, 0x78, 0xe5, 0xd0, 0x75, 0x81, 0xa2, 0x07, 0x81, 0x26, 0xc7, 0xea, 0xc2, 0x14, 0xa9, 0x72, 0x97, 0x2e, 0xdc,
0x91, 0xdf, 0x81, 0x78, 0x47, 0xfc, 0x03, 0xfe, 0x18, 0x9a, 0x0f, 0x7b, 0xc7, 0x6b, 0x6f, 0x3f, 0x6b, 0x8f, 0x3d, 0xf5, 0x21, 0x8a, 0xde, 0xfb, 0x0a, 0x7d, 0xb1, 0x62, 0x7f, 0x48, 0x2d, 0x45,
0x1e, 0xfa, 0x36, 0x73, 0xe7, 0xce, 0xb9, 0xe7, 0xd8, 0xf7, 0x1e, 0x1b, 0x86, 0x57, 0x2c, 0xc1, 0xca, 0x49, 0x0e, 0xbd, 0xed, 0xce, 0xce, 0x7c, 0x33, 0xdf, 0x72, 0xe6, 0x5b, 0x09, 0x06, 0x17,
0xfc, 0x70, 0x99, 0x67, 0x22, 0x23, 0x03, 0xb5, 0x99, 0x2d, 0x2f, 0x83, 0x57, 0x70, 0xff, 0x2c, 0x2c, 0xc1, 0x7c, 0x7f, 0x91, 0x67, 0x22, 0x23, 0x7d, 0xb5, 0x99, 0x2e, 0xce, 0xe9, 0x1b, 0x78,
0xcb, 0xae, 0x8b, 0xe5, 0x29, 0xcb, 0x31, 0x12, 0x59, 0x7e, 0xfb, 0x2c, 0x15, 0xf9, 0x2d, 0xc5, 0x70, 0x92, 0x65, 0x97, 0xc5, 0xe2, 0x98, 0xe5, 0x18, 0x89, 0x2c, 0xbf, 0x7e, 0x91, 0x8a, 0xfc,
0x5f, 0x0b, 0xe4, 0x82, 0xec, 0x81, 0x17, 0x97, 0x07, 0xbe, 0x33, 0x75, 0x0e, 0x3c, 0xba, 0x0a, 0x3a, 0xc0, 0x5f, 0x0a, 0xe4, 0x82, 0xec, 0x80, 0x17, 0x97, 0x07, 0xbe, 0x33, 0x71, 0xf6, 0xbc,
0x10, 0x02, 0xdd, 0x34, 0x5c, 0xa0, 0xdf, 0x51, 0x07, 0x6a, 0x1d, 0x3c, 0x83, 0xbd, 0x76, 0x40, 0x60, 0x69, 0x20, 0x04, 0x36, 0xd2, 0x70, 0x8e, 0x7e, 0x47, 0x1d, 0xa8, 0x35, 0x7d, 0x01, 0x3b,
0xbe, 0xcc, 0x52, 0x8e, 0xe4, 0x11, 0xf4, 0x50, 0x06, 0x14, 0xda, 0xf0, 0xf8, 0x83, 0xc3, 0x92, 0xed, 0x80, 0x7c, 0x91, 0xa5, 0x1c, 0xc9, 0x13, 0xe8, 0xa2, 0x34, 0x28, 0xb4, 0xc1, 0xe1, 0x07,
0xca, 0xa1, 0xce, 0xd3, 0xa7, 0xc1, 0x31, 0x90, 0x33, 0xc6, 0x85, 0x8c, 0x31, 0xe4, 0x6f, 0x45, 0xfb, 0x65, 0x29, 0xfb, 0xda, 0x4f, 0x9f, 0xd2, 0x43, 0x20, 0x27, 0x8c, 0x0b, 0x69, 0x63, 0xc8,
0x27, 0xf8, 0x1e, 0xc6, 0xb5, 0x3b, 0xa6, 0xe2, 0x63, 0xd8, 0x46, 0x1d, 0xf2, 0x9d, 0xa9, 0xdb, 0xdf, 0xa9, 0x1c, 0xfa, 0x2d, 0x8c, 0x6a, 0x31, 0x26, 0xe3, 0x53, 0xd8, 0x44, 0x6d, 0xf2, 0x9d,
0x56, 0xb3, 0x3c, 0x0f, 0xfe, 0x72, 0xa0, 0xa7, 0x42, 0x95, 0x34, 0x67, 0x25, 0x8d, 0x7c, 0x06, 0x89, 0xdb, 0x96, 0xb3, 0x3c, 0xa7, 0x7f, 0x39, 0xd0, 0x55, 0xa6, 0x8a, 0x9a, 0xb3, 0xa4, 0x46,
0x23, 0xc6, 0x67, 0x2b, 0x02, 0x52, 0xf6, 0x80, 0x0e, 0x19, 0xaf, 0xa4, 0x92, 0x2f, 0xa1, 0x1f, 0x1e, 0xc1, 0x90, 0xf1, 0xe9, 0xb2, 0x00, 0x49, 0xbb, 0x1f, 0x0c, 0x18, 0xaf, 0xa8, 0x92, 0xcf,
0xfd, 0x52, 0xa4, 0xd7, 0xdc, 0x77, 0x55, 0xa9, 0xf1, 0xaa, 0xd4, 0x0f, 0x2c, 0xc1, 0x13, 0x79, 0xa0, 0x17, 0xfd, 0x5c, 0xa4, 0x97, 0xdc, 0x77, 0x55, 0xaa, 0xd1, 0x32, 0xd5, 0x77, 0x2c, 0xc1,
0x46, 0x4d, 0x0a, 0x79, 0x02, 0x10, 0x0a, 0x91, 0xb3, 0xcb, 0x42, 0x20, 0xf7, 0xbb, 0xea, 0x79, 0x23, 0x79, 0x16, 0x18, 0x17, 0xf2, 0x0c, 0x20, 0x14, 0x22, 0x67, 0xe7, 0x85, 0x40, 0xee, 0x6f,
0xf8, 0xd6, 0x85, 0x82, 0xe3, 0xd3, 0xea, 0x9c, 0x5a, 0xb9, 0xc1, 0x15, 0x78, 0x15, 0x1c, 0xf9, 0xa8, 0xfb, 0xf0, 0xad, 0x80, 0x82, 0xe3, 0xf3, 0xea, 0x3c, 0xb0, 0x7c, 0xe9, 0x05, 0x78, 0x15,
0x18, 0xb6, 0xe5, 0x9d, 0x19, 0x8b, 0x0d, 0xdb, 0xbe, 0xdc, 0xbe, 0x88, 0xc9, 0x3d, 0xe8, 0x67, 0x1c, 0xb9, 0x0f, 0x9b, 0x32, 0x66, 0xca, 0x62, 0x53, 0x6d, 0x4f, 0x6e, 0x5f, 0xc5, 0xe4, 0x1e,
0x57, 0x57, 0x1c, 0x85, 0x62, 0xea, 0x52, 0xb3, 0x93, 0xda, 0x38, 0xfb, 0x1d, 0x7d, 0x77, 0xea, 0xf4, 0xb2, 0x8b, 0x0b, 0x8e, 0x42, 0x55, 0xea, 0x06, 0x66, 0x27, 0xb9, 0x71, 0xf6, 0x1b, 0xfa,
0x1c, 0x74, 0xa9, 0x5a, 0x93, 0x5d, 0xe8, 0x2d, 0x04, 0x5b, 0xa0, 0xa2, 0xe1, 0x52, 0xbd, 0x09, 0xee, 0xc4, 0xd9, 0xdb, 0x08, 0xd4, 0x9a, 0x6c, 0x43, 0x77, 0x2e, 0xd8, 0x1c, 0x55, 0x19, 0x6e,
0xfe, 0xec, 0xc0, 0x9d, 0x3a, 0x0d, 0x72, 0x1f, 0x3c, 0x55, 0x4d, 0x21, 0x38, 0x0a, 0x41, 0x75, 0xa0, 0x37, 0xf4, 0x8f, 0x0e, 0xdc, 0xae, 0x97, 0x41, 0x1e, 0x80, 0xa7, 0xb2, 0x29, 0x04, 0x47,
0xd3, 0x79, 0x0d, 0xa5, 0x63, 0xa1, 0x54, 0x57, 0x16, 0x59, 0xac, 0x8b, 0xee, 0xe8, 0x2b, 0x2f, 0x21, 0xa8, 0x6e, 0x3a, 0xad, 0xa1, 0x74, 0x2c, 0x94, 0x2a, 0x64, 0x9e, 0xc5, 0x3a, 0xe9, 0x96,
0xb3, 0x18, 0xc9, 0x87, 0xe0, 0x16, 0x2c, 0x56, 0x65, 0x77, 0xa8, 0x5c, 0xca, 0xc8, 0x9c, 0xc5, 0x0e, 0x79, 0x9d, 0xc5, 0x48, 0xee, 0x80, 0x5b, 0xb0, 0x58, 0xa5, 0xdd, 0x0a, 0xe4, 0x52, 0x5a,
0x7e, 0x4f, 0x47, 0xe6, 0x4c, 0x09, 0x89, 0x72, 0x85, 0xdb, 0xd7, 0x42, 0xf4, 0x4e, 0x0a, 0x59, 0x66, 0x2c, 0xf6, 0xbb, 0xda, 0x32, 0x63, 0x8a, 0x48, 0x94, 0x2b, 0xdc, 0x9e, 0x26, 0xa2, 0x77,
0xc8, 0xe8, 0xb6, 0x7e, 0x49, 0x72, 0x4d, 0xa6, 0x30, 0xcc, 0x71, 0x99, 0xb0, 0x28, 0x14, 0x2c, 0x92, 0xc8, 0x5c, 0x5a, 0x37, 0xf5, 0x47, 0x92, 0x6b, 0x32, 0x81, 0x41, 0x8e, 0x8b, 0x84, 0x45,
0x4b, 0xfd, 0x81, 0x3a, 0xb2, 0x43, 0xe4, 0x01, 0x40, 0x94, 0x25, 0x09, 0x46, 0x2a, 0xc1, 0x53, 0xa1, 0x60, 0x59, 0xea, 0xf7, 0xd5, 0x91, 0x6d, 0x22, 0x0f, 0x01, 0xa2, 0x2c, 0x49, 0x30, 0x52,
0x09, 0x56, 0x44, 0x3e, 0x4f, 0x21, 0x92, 0x19, 0xc7, 0xc8, 0x87, 0xa9, 0x73, 0xd0, 0xa3, 0x7d, 0x0e, 0x9e, 0x72, 0xb0, 0x2c, 0xf2, 0x3e, 0x85, 0x48, 0xa6, 0x1c, 0x23, 0x1f, 0x26, 0xce, 0x5e,
0x21, 0x92, 0x73, 0x8c, 0x82, 0x39, 0x7c, 0xf2, 0x1c, 0x55, 0x7b, 0xdd, 0x5a, 0xef, 0xc5, 0xb4, 0x37, 0xe8, 0x09, 0x91, 0x9c, 0x62, 0x44, 0x67, 0xf0, 0xd1, 0x4b, 0x54, 0xed, 0x75, 0x6d, 0x7d,
0x66, 0x5b, 0xc3, 0xec, 0x03, 0x2c, 0xc3, 0x1c, 0x53, 0x21, 0x9b, 0xc6, 0x4c, 0x89, 0xa7, 0x23, 0x17, 0xd3, 0x9a, 0x6d, 0x0d, 0xb3, 0x0b, 0xb0, 0x08, 0x73, 0x4c, 0x85, 0x6c, 0x1a, 0x33, 0x25,
0xa7, 0x2c, 0xb7, 0x5f, 0x9c, 0x6b, 0xbf, 0xb8, 0xe0, 0x0f, 0x07, 0x26, 0x6d, 0x95, 0x4c, 0x43, 0x9e, 0xb6, 0x1c, 0xb3, 0xdc, 0xfe, 0x70, 0xae, 0xfd, 0xe1, 0xe8, 0xef, 0x0e, 0x8c, 0xdb, 0x32,
0xd7, 0xfb, 0xc6, 0x79, 0xfb, 0xbe, 0xb1, 0xda, 0xb3, 0xf3, 0xc6, 0xf6, 0x0c, 0x8e, 0xe0, 0xee, 0x99, 0x86, 0xae, 0xf7, 0x8d, 0xf3, 0xee, 0x7d, 0x63, 0xb5, 0x67, 0xe7, 0xad, 0xed, 0x49, 0x0f,
0x73, 0x14, 0x2a, 0x9e, 0xa5, 0x02, 0x53, 0x51, 0x4a, 0xdd, 0xd4, 0x70, 0xc1, 0x31, 0xdc, 0x5b, 0xe0, 0xee, 0x4b, 0x14, 0xca, 0x9e, 0xa5, 0x02, 0x53, 0x51, 0x52, 0x5d, 0xd7, 0x70, 0xf4, 0x10,
0xbf, 0x61, 0x28, 0xfb, 0xb0, 0x1d, 0xe9, 0x90, 0xba, 0x32, 0xa2, 0xe5, 0x36, 0xf8, 0x19, 0xc8, 0xee, 0xad, 0x46, 0x98, 0x92, 0x7d, 0xd8, 0x8c, 0xb4, 0x49, 0x85, 0x0c, 0x83, 0x72, 0x4b, 0x7f,
0x49, 0x8e, 0xa1, 0xc0, 0x77, 0xf0, 0x9d, 0xca, 0x43, 0x3a, 0xaf, 0xf5, 0x90, 0xbb, 0x30, 0xae, 0x04, 0x72, 0x94, 0x63, 0x28, 0xf0, 0x3d, 0x74, 0xa7, 0xd2, 0x90, 0xce, 0x8d, 0x1a, 0x72, 0x17,
0x41, 0x6b, 0x2e, 0xb2, 0xe2, 0xc5, 0x32, 0x7e, 0x5f, 0x15, 0x6b, 0xd0, 0xa6, 0xe2, 0x3f, 0x0e, 0x46, 0x35, 0x68, 0x5d, 0x8b, 0xcc, 0x78, 0xb6, 0x88, 0xff, 0xaf, 0x8c, 0x35, 0x68, 0x93, 0xf1,
0x90, 0x53, 0x4c, 0xf0, 0x9d, 0x4a, 0xb6, 0x98, 0x6b, 0xc3, 0x81, 0xdc, 0xa6, 0x03, 0x3d, 0x84, 0x1f, 0x07, 0xc8, 0x31, 0x26, 0xf8, 0x5e, 0x29, 0x5b, 0xc4, 0xb5, 0xa1, 0x40, 0x6e, 0x53, 0x81,
0x3b, 0x32, 0x45, 0x55, 0x9b, 0xc5, 0xa1, 0x08, 0xd5, 0x68, 0x0d, 0xe8, 0x88, 0x71, 0x4d, 0xe1, 0x1e, 0xc3, 0x6d, 0xe9, 0xa2, 0xb2, 0x4d, 0xe3, 0x50, 0x84, 0x6a, 0xb4, 0xfa, 0xc1, 0x90, 0x71,
0x34, 0x14, 0xa1, 0x01, 0xca, 0x31, 0x2a, 0x72, 0xce, 0x6e, 0x50, 0x0d, 0x9b, 0x02, 0xa2, 0x65, 0x5d, 0xc2, 0x71, 0x28, 0x42, 0x03, 0x94, 0x63, 0x54, 0xe4, 0x9c, 0x5d, 0xa1, 0x1a, 0x36, 0x05,
0x48, 0x6a, 0xa9, 0x71, 0x36, 0x5a, 0xfe, 0x76, 0x60, 0xfc, 0x94, 0x73, 0x36, 0x4f, 0x7f, 0xca, 0x14, 0x94, 0x26, 0xc9, 0xa5, 0x56, 0xb3, 0xe1, 0xf2, 0xb7, 0x03, 0xa3, 0xe7, 0x9c, 0xb3, 0x59,
0x92, 0x62, 0x81, 0xa5, 0x98, 0x5d, 0xe8, 0x45, 0x59, 0x61, 0xde, 0x6f, 0x8f, 0xea, 0xcd, 0xda, 0xfa, 0x43, 0x96, 0x14, 0x73, 0x2c, 0xc9, 0x6c, 0x43, 0x37, 0xca, 0x0a, 0xf3, 0x7d, 0xbb, 0x81,
0xac, 0x75, 0x1a, 0xb3, 0xb6, 0x36, 0xad, 0x6e, 0x73, 0x5a, 0xad, 0x69, 0xec, 0xda, 0xd3, 0x48, 0xde, 0xac, 0xcc, 0x5a, 0xa7, 0x31, 0x6b, 0x2b, 0xd3, 0xea, 0x36, 0xa7, 0xd5, 0x9a, 0xc6, 0x0d,
0x3e, 0x85, 0xa1, 0x94, 0x37, 0x8b, 0x30, 0x15, 0x98, 0x2b, 0x05, 0x1e, 0x05, 0x19, 0x3a, 0x51, 0x7b, 0x1a, 0xc9, 0xc7, 0x30, 0x90, 0xf4, 0xa6, 0x11, 0xa6, 0x02, 0x73, 0xc5, 0xc0, 0x0b, 0x40,
0x91, 0xe0, 0x06, 0x76, 0xeb, 0x44, 0x4d, 0x2f, 0x6e, 0xf4, 0x4b, 0x69, 0x45, 0x79, 0x62, 0x58, 0x9a, 0x8e, 0x94, 0x85, 0x5e, 0xc1, 0x76, 0xbd, 0x50, 0xd3, 0x8b, 0x6b, 0xf5, 0x52, 0x4a, 0x51,
0xca, 0xa5, 0x1a, 0xe0, 0xe2, 0x32, 0x61, 0xd1, 0x4c, 0x1e, 0xb8, 0x66, 0x80, 0x55, 0xe4, 0x22, 0x9e, 0x98, 0x2a, 0xe5, 0x52, 0x0d, 0x70, 0x71, 0x9e, 0xb0, 0x68, 0x2a, 0x0f, 0x5c, 0x33, 0xc0,
0x4f, 0x56, 0x9a, 0xbb, 0x96, 0xe6, 0xe0, 0x6b, 0x18, 0xeb, 0x2f, 0x60, 0xfd, 0x01, 0xed, 0x03, 0xca, 0x72, 0x96, 0x27, 0x4b, 0xce, 0x1b, 0x16, 0x67, 0xfa, 0x05, 0x8c, 0xf4, 0x0b, 0x58, 0xbf,
0xdc, 0xa8, 0xc0, 0x8c, 0xc5, 0xfa, 0x4b, 0xe4, 0x51, 0x4f, 0x47, 0x5e, 0xc4, 0x3c, 0xf8, 0x0e, 0xa0, 0x5d, 0x80, 0x2b, 0x65, 0x98, 0xb2, 0x58, 0xbf, 0x44, 0x5e, 0xe0, 0x69, 0xcb, 0xab, 0x98,
0xbc, 0xb3, 0x4c, 0x6b, 0xe6, 0xe4, 0x08, 0xbc, 0xa4, 0xdc, 0x98, 0x8f, 0x16, 0x59, 0xb5, 0x5c, 0xd3, 0x6f, 0xc0, 0x3b, 0xc9, 0x34, 0x67, 0x4e, 0x0e, 0xc0, 0x4b, 0xca, 0x8d, 0x79, 0xb4, 0xc8,
0x99, 0x47, 0x57, 0x49, 0xc1, 0xb7, 0x30, 0x28, 0xc3, 0xa5, 0x0e, 0x67, 0x93, 0x8e, 0xce, 0x9a, 0xb2, 0xe5, 0x4a, 0xbf, 0x60, 0xe9, 0x44, 0xbf, 0x86, 0x7e, 0x69, 0x2e, 0x79, 0x38, 0xeb, 0x78,
0x8e, 0xe0, 0x3f, 0x07, 0x76, 0xeb, 0x94, 0xcd, 0xa3, 0xba, 0x80, 0x9d, 0xaa, 0xc4, 0x6c, 0x11, 0x74, 0x56, 0x78, 0xd0, 0x7f, 0x1d, 0xd8, 0xae, 0x97, 0x6c, 0xae, 0xea, 0x0c, 0xb6, 0xaa, 0x14,
0x2e, 0x0d, 0x97, 0x23, 0x9b, 0x4b, 0xf3, 0x5a, 0x45, 0x90, 0xbf, 0x0c, 0x97, 0xba, 0x7b, 0x46, 0xd3, 0x79, 0xb8, 0x30, 0xb5, 0x1c, 0xd8, 0xb5, 0x34, 0xc3, 0xaa, 0x02, 0xf9, 0xeb, 0x70, 0xa1,
0x89, 0x15, 0x9a, 0xfc, 0x08, 0x1f, 0x35, 0x52, 0x24, 0xeb, 0x6b, 0x2c, 0xe7, 0x40, 0x2e, 0xc9, 0xbb, 0x67, 0x98, 0x58, 0xa6, 0xf1, 0xf7, 0xf0, 0x61, 0xc3, 0x45, 0x56, 0x7d, 0x89, 0xe5, 0x1c,
0x63, 0xe8, 0xdd, 0x84, 0x49, 0x81, 0x66, 0xe8, 0xc6, 0xcd, 0x27, 0xc0, 0xa9, 0xce, 0xf8, 0xa6, 0xc8, 0x25, 0x79, 0x0a, 0xdd, 0xab, 0x30, 0x29, 0xd0, 0x0c, 0xdd, 0xa8, 0x79, 0x03, 0x3c, 0xd0,
0xf3, 0xc4, 0x39, 0xfe, 0xb7, 0x07, 0xa3, 0x73, 0x0c, 0x7f, 0x43, 0x8c, 0xa5, 0x05, 0xe5, 0x64, 0x1e, 0x5f, 0x75, 0x9e, 0x39, 0xf4, 0x4b, 0xb8, 0xaf, 0x1b, 0xf6, 0xa8, 0xea, 0xaf, 0xf2, 0xee,
0x5e, 0xaa, 0xaa, 0xff, 0x8a, 0x90, 0x47, 0xeb, 0xf4, 0x5b, 0xff, 0x7d, 0x26, 0x5f, 0xbc, 0x29, 0xeb, 0x6d, 0xe8, 0xac, 0xb6, 0x21, 0x1d, 0x83, 0xdf, 0x0c, 0xd5, 0x64, 0x0e, 0xff, 0xec, 0xc1,
0xcd, 0x4c, 0xc4, 0x16, 0x39, 0x83, 0xa1, 0xf5, 0xe3, 0x41, 0xf6, 0xac, 0x8b, 0x8d, 0x7f, 0x98, 0xf0, 0x14, 0xc3, 0x5f, 0x11, 0x63, 0xa9, 0x6c, 0x39, 0x99, 0x95, 0x97, 0x55, 0xff, 0x85, 0x43,
0xc9, 0xfe, 0x86, 0xd3, 0x0a, 0x2d, 0x04, 0xd2, 0x34, 0x7f, 0xf2, 0xf9, 0xea, 0xda, 0xc6, 0x8f, 0x9e, 0xac, 0xde, 0x4a, 0xeb, 0x4f, 0xaa, 0xf1, 0xa7, 0x6f, 0x73, 0x33, 0x83, 0x76, 0x8b, 0x9c,
0xd0, 0xe4, 0xe1, 0xeb, 0x93, 0x6c, 0xc2, 0x96, 0x33, 0xda, 0x84, 0x9b, 0x5e, 0x6c, 0x13, 0x6e, 0xc0, 0xc0, 0xfa, 0x3d, 0x43, 0x76, 0xac, 0xc0, 0xc6, 0x4f, 0xa3, 0xf1, 0xee, 0x9a, 0xd3, 0x0a,
0xb3, 0x53, 0x85, 0x66, 0xb9, 0x9e, 0x8d, 0xd6, 0xf4, 0x59, 0x1b, 0xad, 0xcd, 0x2a, 0x15, 0x9a, 0x2d, 0x04, 0xd2, 0x7c, 0x53, 0xc8, 0x27, 0xcb, 0xb0, 0xb5, 0x6f, 0xdb, 0xf8, 0xf1, 0xcd, 0x4e,
0xe5, 0x3b, 0x36, 0x5a, 0xd3, 0x42, 0x6d, 0xb4, 0x36, 0xb3, 0xda, 0x22, 0xaf, 0x60, 0x64, 0x9b, 0x76, 0xc1, 0x96, 0xe0, 0xda, 0x05, 0x37, 0x25, 0xde, 0x2e, 0xb8, 0x4d, 0xa5, 0x15, 0x9a, 0x25,
0x00, 0xb1, 0x2e, 0xb4, 0xb8, 0xd8, 0xe4, 0xc1, 0xa6, 0x63, 0x1b, 0xd0, 0xee, 0x79, 0x1b, 0xb0, 0xa6, 0x36, 0x5a, 0x53, 0xbe, 0x6d, 0xb4, 0x36, 0x05, 0x56, 0x68, 0x96, 0x9c, 0xd9, 0x68, 0x4d,
0x65, 0xea, 0x6d, 0xc0, 0xb6, 0x51, 0x09, 0xb6, 0x2e, 0xfb, 0xea, 0x97, 0xfc, 0xab, 0xff, 0x03, 0x65, 0xb6, 0xd1, 0xda, 0x34, 0xf0, 0x16, 0x79, 0x03, 0x43, 0x5b, 0x5b, 0x88, 0x15, 0xd0, 0x22,
0x00, 0x00, 0xff, 0xff, 0x27, 0x89, 0x58, 0x67, 0xa1, 0x0b, 0x00, 0x00, 0x8e, 0xe3, 0x87, 0xeb, 0x8e, 0x6d, 0x40, 0x7b, 0x94, 0x6c, 0xc0, 0x16, 0x31, 0xb1, 0x01, 0xdb,
0x26, 0x90, 0xde, 0x22, 0x3f, 0xc1, 0x9d, 0xd5, 0x96, 0x26, 0x8f, 0x56, 0x69, 0x35, 0x26, 0x65,
0x4c, 0x6f, 0x72, 0x29, 0xc1, 0xcf, 0x7b, 0xea, 0x6f, 0xc4, 0xe7, 0xff, 0x05, 0x00, 0x00, 0xff,
0xff, 0x45, 0xa6, 0x48, 0x98, 0x55, 0x0c, 0x00, 0x00,
} }

View file

@ -91,7 +91,7 @@ func (s3a *S3ApiServer) PutBucketHandler(w http.ResponseWriter, r *http.Request)
return fmt.Errorf("mkdir %s/%s: %v", s3a.option.BucketsPath, bucket, err) return fmt.Errorf("mkdir %s/%s: %v", s3a.option.BucketsPath, bucket, err)
} }
// TODO create collection // lazily create collection
return nil return nil
}) })
@ -109,10 +109,21 @@ func (s3a *S3ApiServer) DeleteBucketHandler(w http.ResponseWriter, r *http.Reque
vars := mux.Vars(r) vars := mux.Vars(r)
bucket := vars["bucket"] bucket := vars["bucket"]
// TODO delete collection
err := s3a.withFilerClient(func(client filer_pb.SeaweedFilerClient) error { err := s3a.withFilerClient(func(client filer_pb.SeaweedFilerClient) error {
ctx := context.Background()
// delete collection
deleteCollectionRequest := &filer_pb.DeleteCollectionRequest{
Collection: bucket,
}
glog.V(1).Infof("delete collection: %v", deleteCollectionRequest)
if _, err := client.DeleteCollection(ctx, deleteCollectionRequest); err != nil {
return fmt.Errorf("delete collection %%s: %v", bucket, err)
}
// delete bucket metadata
request := &filer_pb.DeleteEntryRequest{ request := &filer_pb.DeleteEntryRequest{
Directory: s3a.option.BucketsPath, Directory: s3a.option.BucketsPath,
Name: bucket, Name: bucket,
@ -122,7 +133,7 @@ func (s3a *S3ApiServer) DeleteBucketHandler(w http.ResponseWriter, r *http.Reque
} }
glog.V(1).Infof("delete bucket: %v", request) glog.V(1).Infof("delete bucket: %v", request)
if _, err := client.DeleteEntry(context.Background(), request); err != nil { if _, err := client.DeleteEntry(ctx, request); err != nil {
return fmt.Errorf("delete bucket %s/%s: %v", s3a.option.BucketsPath, bucket, err) return fmt.Errorf("delete bucket %s/%s: %v", s3a.option.BucketsPath, bucket, err)
} }

View file

@ -12,6 +12,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/operation" "github.com/chrislusf/seaweedfs/weed/operation"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"strconv" "strconv"
"github.com/chrislusf/seaweedfs/weed/util"
) )
func (fs *FilerServer) LookupDirectoryEntry(ctx context.Context, req *filer_pb.LookupDirectoryEntryRequest) (*filer_pb.LookupDirectoryEntryResponse, error) { func (fs *FilerServer) LookupDirectoryEntry(ctx context.Context, req *filer_pb.LookupDirectoryEntryRequest) (*filer_pb.LookupDirectoryEntryResponse, error) {
@ -211,3 +212,12 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol
PublicUrl: assignResult.PublicUrl, PublicUrl: assignResult.PublicUrl,
}, err }, err
} }
func (fs *FilerServer) DeleteCollection(ctx context.Context, req *filer_pb.DeleteCollectionRequest) (resp *filer_pb.DeleteCollectionResponse, err error) {
for _, master := range fs.masters {
_, err = util.Get(fmt.Sprintf("http://%s/col/delete?collection=%s", master, req.Collection))
}
return &filer_pb.DeleteCollectionResponse{}, err
}