refactoring

This commit is contained in:
Chris Lu 2019-04-20 12:05:28 -07:00
parent 6fc1f53018
commit 2ffe98443b
5 changed files with 128 additions and 126 deletions

View file

@ -22,16 +22,16 @@ func TailVolume(master string, grpcDialOption grpc.DialOption, vid needle.Volume
volumeServer := lookup.Locations[0].Url
return TailVolumeFromServer(volumeServer, grpcDialOption, vid, sinceNs, timeoutSeconds, fn)
return TailVolumeFromSource(volumeServer, grpcDialOption, vid, sinceNs, timeoutSeconds, fn)
}
func TailVolumeFromServer(volumeServer string, grpcDialOption grpc.DialOption, vid needle.VolumeId, sinceNs uint64, timeoutSeconds int, fn func(n *needle.Needle) error) error {
func TailVolumeFromSource(volumeServer string, grpcDialOption grpc.DialOption, vid needle.VolumeId, sinceNs uint64, idleTimeoutSeconds int, fn func(n *needle.Needle) error) error {
return WithVolumeServerClient(volumeServer, grpcDialOption, func(client volume_server_pb.VolumeServerClient) error {
stream, err := client.VolumeTailSender(context.Background(), &volume_server_pb.VolumeTailSenderRequest{
VolumeId: uint32(vid),
SinceNs: sinceNs,
DrainingSeconds: uint32(timeoutSeconds),
IdleTimeoutSeconds: uint32(idleTimeoutSeconds),
})
if err != nil {
return err

View file

@ -174,7 +174,7 @@ message CopyFileResponse {
message VolumeTailSenderRequest {
uint32 volume_id = 1;
uint64 since_ns = 2;
uint32 drainingSeconds = 3;
uint32 idle_timeout_seconds = 3;
}
message VolumeTailSenderResponse {
bytes needle_header = 1;
@ -185,7 +185,7 @@ message VolumeTailSenderResponse {
message VolumeTailReceiverRequest {
uint32 volume_id = 1;
uint64 since_ns = 2;
uint32 drainingSeconds = 3;
uint32 idle_timeout_seconds = 3;
string source_volume_server = 4;
}
message VolumeTailReceiverResponse {

View file

@ -665,7 +665,7 @@ func (m *CopyFileResponse) GetFileContent() []byte {
type VolumeTailSenderRequest struct {
VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
SinceNs uint64 `protobuf:"varint,2,opt,name=since_ns,json=sinceNs" json:"since_ns,omitempty"`
DrainingSeconds uint32 `protobuf:"varint,3,opt,name=drainingSeconds" json:"drainingSeconds,omitempty"`
IdleTimeoutSeconds uint32 `protobuf:"varint,3,opt,name=idle_timeout_seconds,json=idleTimeoutSeconds" json:"idle_timeout_seconds,omitempty"`
}
func (m *VolumeTailSenderRequest) Reset() { *m = VolumeTailSenderRequest{} }
@ -687,9 +687,9 @@ func (m *VolumeTailSenderRequest) GetSinceNs() uint64 {
return 0
}
func (m *VolumeTailSenderRequest) GetDrainingSeconds() uint32 {
func (m *VolumeTailSenderRequest) GetIdleTimeoutSeconds() uint32 {
if m != nil {
return m.DrainingSeconds
return m.IdleTimeoutSeconds
}
return 0
}
@ -729,7 +729,7 @@ func (m *VolumeTailSenderResponse) GetIsLastChunk() bool {
type VolumeTailReceiverRequest struct {
VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
SinceNs uint64 `protobuf:"varint,2,opt,name=since_ns,json=sinceNs" json:"since_ns,omitempty"`
DrainingSeconds uint32 `protobuf:"varint,3,opt,name=drainingSeconds" json:"drainingSeconds,omitempty"`
IdleTimeoutSeconds uint32 `protobuf:"varint,3,opt,name=idle_timeout_seconds,json=idleTimeoutSeconds" json:"idle_timeout_seconds,omitempty"`
SourceVolumeServer string `protobuf:"bytes,4,opt,name=source_volume_server,json=sourceVolumeServer" json:"source_volume_server,omitempty"`
}
@ -752,9 +752,9 @@ func (m *VolumeTailReceiverRequest) GetSinceNs() uint64 {
return 0
}
func (m *VolumeTailReceiverRequest) GetDrainingSeconds() uint32 {
func (m *VolumeTailReceiverRequest) GetIdleTimeoutSeconds() uint32 {
if m != nil {
return m.DrainingSeconds
return m.IdleTimeoutSeconds
}
return 0
}
@ -1696,96 +1696,96 @@ var _VolumeServer_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("volume_server.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 1450 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0xdc, 0xc4,
0x17, 0x8f, 0xbb, 0x9b, 0xec, 0xe6, 0xec, 0x26, 0x4d, 0x27, 0x69, 0xb3, 0xd9, 0x7e, 0xa5, 0x6e,
0xff, 0xed, 0xf6, 0xe3, 0x9f, 0x96, 0x56, 0x40, 0x81, 0x0b, 0x68, 0x13, 0x10, 0x91, 0x68, 0x2b,
0x39, 0x6d, 0x05, 0x02, 0xc9, 0x9a, 0xd8, 0x27, 0x89, 0x15, 0xaf, 0xed, 0x78, 0xc6, 0xa1, 0x01,
0x2e, 0x79, 0x13, 0xee, 0x7a, 0x01, 0xaf, 0xc0, 0x0b, 0xf1, 0x04, 0xdc, 0x20, 0xcf, 0x8c, 0xbd,
0xfe, 0xcc, 0xba, 0x54, 0xe2, 0x6e, 0xf6, 0xcc, 0xf9, 0xf6, 0xf9, 0x9d, 0x39, 0x67, 0x61, 0xf9,
0xd8, 0x77, 0xa3, 0x31, 0x9a, 0x0c, 0xc3, 0x63, 0x0c, 0x37, 0x82, 0xd0, 0xe7, 0x3e, 0x59, 0xca,
0x11, 0xcd, 0x60, 0x57, 0xbf, 0x0f, 0xe4, 0x29, 0xe5, 0xd6, 0xc1, 0x16, 0xba, 0xc8, 0xd1, 0xc0,
0xa3, 0x08, 0x19, 0x27, 0x6b, 0xd0, 0xdd, 0x73, 0x5c, 0x34, 0x1d, 0x9b, 0x0d, 0xb4, 0xf5, 0xd6,
0x68, 0xde, 0xe8, 0xc4, 0xbf, 0xb7, 0x6d, 0xa6, 0xbf, 0x80, 0xe5, 0x9c, 0x00, 0x0b, 0x7c, 0x8f,
0x21, 0x79, 0x0c, 0x9d, 0x10, 0x59, 0xe4, 0x72, 0x29, 0xd0, 0x7b, 0x78, 0x65, 0xa3, 0x68, 0x6b,
0x23, 0x15, 0x89, 0x5c, 0x6e, 0x24, 0xec, 0xba, 0x03, 0xfd, 0xec, 0x05, 0x59, 0x85, 0x8e, 0xb2,
0x3d, 0xd0, 0xd6, 0xb5, 0xd1, 0xbc, 0x31, 0x27, 0x4d, 0x93, 0x0b, 0x30, 0xc7, 0x38, 0xe5, 0x11,
0x1b, 0x9c, 0x59, 0xd7, 0x46, 0xb3, 0x86, 0xfa, 0x45, 0x56, 0x60, 0x16, 0xc3, 0xd0, 0x0f, 0x07,
0x2d, 0xc1, 0x2e, 0x7f, 0x10, 0x02, 0x6d, 0xe6, 0xfc, 0x84, 0x83, 0xf6, 0xba, 0x36, 0x5a, 0x30,
0xc4, 0x59, 0xef, 0xc0, 0xec, 0x97, 0xe3, 0x80, 0x9f, 0xe8, 0x1f, 0xc3, 0xe0, 0x35, 0xb5, 0xa2,
0x68, 0xfc, 0x5a, 0xf8, 0xb8, 0x79, 0x80, 0xd6, 0x61, 0x12, 0xfb, 0x45, 0x98, 0x57, 0x9e, 0x2b,
0x0f, 0x16, 0x8c, 0xae, 0x24, 0x6c, 0xdb, 0xfa, 0x17, 0xb0, 0x56, 0x21, 0xa8, 0x72, 0x70, 0x1d,
0x16, 0xf6, 0x69, 0xb8, 0x4b, 0xf7, 0xd1, 0x0c, 0x29, 0x77, 0x7c, 0x21, 0xad, 0x19, 0x7d, 0x45,
0x34, 0x62, 0x9a, 0xfe, 0x3d, 0x0c, 0x73, 0x1a, 0xfc, 0x71, 0x40, 0x2d, 0xde, 0xc4, 0x38, 0x59,
0x87, 0x5e, 0x10, 0x22, 0x75, 0x5d, 0xdf, 0xa2, 0x1c, 0x45, 0x16, 0x5a, 0x46, 0x96, 0xa4, 0x5f,
0x86, 0x8b, 0x95, 0xca, 0xa5, 0x83, 0xfa, 0xe3, 0x82, 0xf7, 0xfe, 0x78, 0xec, 0x34, 0x32, 0xad,
0x5f, 0x2a, 0x79, 0x2d, 0x24, 0x95, 0xde, 0x4f, 0x0a, 0xb7, 0x2e, 0x52, 0x2f, 0x0a, 0x1a, 0x29,
0x2e, 0x7a, 0x9c, 0x88, 0xa6, 0x9a, 0x57, 0x65, 0x71, 0x6c, 0xfa, 0xae, 0x8b, 0x16, 0x77, 0x7c,
0x2f, 0x51, 0x7b, 0x05, 0xc0, 0x4a, 0x89, 0xaa, 0x54, 0x32, 0x14, 0x7d, 0x08, 0x83, 0xb2, 0xa8,
0x52, 0xfb, 0x56, 0x83, 0xf3, 0x4f, 0x54, 0xd2, 0xa4, 0xe1, 0x46, 0x1f, 0x20, 0x6f, 0xf2, 0x4c,
0xd1, 0x64, 0xf1, 0x03, 0xb5, 0x4a, 0x1f, 0x28, 0xe6, 0x08, 0x31, 0x70, 0x1d, 0x8b, 0x0a, 0x15,
0x6d, 0xa1, 0x22, 0x4b, 0x22, 0x4b, 0xd0, 0xe2, 0xdc, 0x1d, 0xcc, 0x8a, 0x9b, 0xf8, 0xa8, 0x0f,
0xe0, 0x42, 0xd1, 0x57, 0x15, 0xc6, 0x47, 0xb0, 0x2a, 0x29, 0x3b, 0x27, 0x9e, 0xb5, 0x23, 0xd0,
0xd0, 0x28, 0xe9, 0x7f, 0x6b, 0x30, 0x28, 0x0b, 0xaa, 0x2a, 0x7e, 0xdf, 0x0c, 0xbc, 0x6b, 0x7c,
0xe4, 0x2a, 0xf4, 0x38, 0x75, 0x5c, 0xd3, 0xdf, 0xdb, 0x63, 0xc8, 0x07, 0x73, 0xeb, 0xda, 0xa8,
0x6d, 0x40, 0x4c, 0x7a, 0x21, 0x28, 0xe4, 0x36, 0x2c, 0x59, 0xb2, 0x92, 0xcd, 0x10, 0x8f, 0x1d,
0x16, 0x6b, 0xee, 0x08, 0xc7, 0xce, 0x5a, 0x49, 0x85, 0x4b, 0x32, 0xd1, 0x61, 0xc1, 0xb1, 0xdf,
0x98, 0xa2, 0x81, 0x08, 0xf8, 0x77, 0x85, 0xb6, 0x9e, 0x63, 0xbf, 0xf9, 0xca, 0x71, 0x71, 0x27,
0xee, 0x02, 0xaf, 0xe1, 0x92, 0x0c, 0x7e, 0xdb, 0xb3, 0x42, 0x1c, 0xa3, 0xc7, 0xa9, 0xbb, 0xe9,
0x07, 0x27, 0x8d, 0x4a, 0x60, 0x0d, 0xba, 0xcc, 0xf1, 0x2c, 0x34, 0x3d, 0xd9, 0x86, 0xda, 0x46,
0x47, 0xfc, 0x7e, 0xce, 0xf4, 0xa7, 0x70, 0xb9, 0x46, 0xaf, 0xca, 0xec, 0x35, 0xe8, 0x0b, 0xc7,
0x2c, 0xdf, 0xe3, 0xe8, 0x71, 0xa1, 0xbb, 0x6f, 0xf4, 0x62, 0xda, 0xa6, 0x24, 0xe9, 0x1f, 0x00,
0x91, 0x3a, 0x9e, 0xf9, 0x91, 0xd7, 0x0c, 0x9a, 0xe7, 0x61, 0x39, 0x27, 0xa2, 0x6a, 0xe3, 0x11,
0xac, 0x48, 0xf2, 0x2b, 0x6f, 0xdc, 0x58, 0xd7, 0x2a, 0x9c, 0x2f, 0x08, 0x29, 0x6d, 0x0f, 0x13,
0x23, 0xf9, 0x77, 0xe2, 0x54, 0x65, 0x17, 0x12, 0x0f, 0xf2, 0x4f, 0x85, 0xfe, 0xbb, 0x06, 0xe7,
0x92, 0x36, 0xd2, 0x30, 0xeb, 0xef, 0x58, 0x76, 0xad, 0xda, 0xb2, 0x6b, 0x4f, 0xca, 0x6e, 0x04,
0x4b, 0xcc, 0x8f, 0x42, 0x0b, 0x4d, 0x9b, 0x72, 0x6a, 0x7a, 0xbe, 0x8d, 0xaa, 0x2a, 0x17, 0x25,
0x7d, 0x8b, 0x72, 0xfa, 0xdc, 0xb7, 0x51, 0xff, 0x3c, 0xf9, 0x28, 0xb9, 0xaf, 0x79, 0x1b, 0xce,
0xb9, 0x94, 0x71, 0x93, 0x06, 0x01, 0x7a, 0xb6, 0x49, 0x79, 0x5c, 0x12, 0x9a, 0x28, 0x89, 0xc5,
0xf8, 0xe2, 0x89, 0xa0, 0x3f, 0xe1, 0xcf, 0x99, 0xfe, 0xa7, 0x06, 0x67, 0x63, 0xd9, 0xb8, 0x04,
0x1b, 0xc6, 0xdb, 0x73, 0x98, 0x99, 0x54, 0xb2, 0x08, 0xb8, 0x6b, 0xcc, 0x3b, 0x6c, 0x5b, 0x96,
0xb1, 0xba, 0xb7, 0x29, 0x97, 0xf7, 0xad, 0xe4, 0x7e, 0x8b, 0x72, 0x71, 0x7f, 0x1f, 0x96, 0x15,
0x32, 0x1c, 0xdf, 0x9b, 0x80, 0x46, 0xbe, 0x85, 0x64, 0x72, 0x95, 0xe2, 0xe6, 0x2a, 0xf4, 0x18,
0xf7, 0x83, 0x04, 0x83, 0xb3, 0x12, 0x83, 0x31, 0x49, 0x62, 0x50, 0xff, 0x10, 0x96, 0x26, 0x11,
0x34, 0xaf, 0xe7, 0x9f, 0x93, 0x0e, 0xf5, 0x92, 0x3a, 0xee, 0x0e, 0x7a, 0x36, 0x86, 0xef, 0x09,
0x33, 0x32, 0x82, 0xb3, 0x76, 0x48, 0x1d, 0xcf, 0xf1, 0xf6, 0x77, 0xd0, 0xf2, 0x3d, 0x9b, 0x89,
0xf8, 0x17, 0x8c, 0x22, 0x59, 0xff, 0x35, 0x6d, 0x73, 0x59, 0xeb, 0x93, 0xc7, 0xda, 0x43, 0xb4,
0x5d, 0x34, 0x0f, 0x90, 0xda, 0x18, 0x2a, 0xef, 0xfb, 0x92, 0xf8, 0xb5, 0xa0, 0xc5, 0x69, 0x51,
0x4c, 0xbb, 0xbe, 0x7d, 0x22, 0x3c, 0xe9, 0x1b, 0x20, 0x49, 0x4f, 0x7d, 0xfb, 0x44, 0xf4, 0x1b,
0x66, 0x8a, 0x3a, 0xb0, 0x0e, 0x22, 0xef, 0x50, 0x7d, 0x8a, 0x9e, 0xc3, 0xbe, 0xa1, 0x8c, 0x6f,
0xc6, 0x24, 0xfd, 0x0f, 0x0d, 0xd6, 0x26, 0x6e, 0x18, 0x68, 0xa1, 0x73, 0xfc, 0x1f, 0xa6, 0x81,
0x3c, 0x80, 0x15, 0x55, 0xe8, 0xb9, 0x89, 0x4c, 0x61, 0x81, 0xc8, 0x3b, 0xf5, 0x1c, 0x88, 0x1b,
0xf1, 0xda, 0x57, 0x38, 0xac, 0xf0, 0xfb, 0x29, 0x5c, 0x34, 0x90, 0xda, 0x92, 0x43, 0x74, 0xd5,
0xe6, 0x2f, 0xcf, 0x5f, 0x67, 0xe0, 0x52, 0xb5, 0x70, 0x93, 0xd7, 0xe7, 0x33, 0x18, 0xa6, 0xdd,
0x9d, 0x3b, 0x63, 0x64, 0x9c, 0x8e, 0x03, 0x93, 0xa9, 0xf0, 0x65, 0x82, 0x56, 0x55, 0xab, 0x7f,
0x99, 0xdc, 0x27, 0x69, 0x28, 0x3d, 0x0d, 0xad, 0xd2, 0xd3, 0x10, 0x1b, 0x48, 0x40, 0x55, 0x61,
0xa0, 0x2d, 0x0d, 0xd8, 0x12, 0x64, 0x55, 0x06, 0x52, 0x61, 0x61, 0x40, 0xa2, 0xa8, 0xa7, 0xf8,
0x85, 0x81, 0xcb, 0x00, 0x0a, 0x32, 0x91, 0x97, 0x3c, 0x75, 0xf3, 0x12, 0x30, 0x91, 0xc7, 0xeb,
0x70, 0xdb, 0xa9, 0xc5, 0x6d, 0xbe, 0x31, 0x76, 0x4b, 0x43, 0xd0, 0xb7, 0x00, 0x5b, 0x0e, 0x3b,
0x94, 0x49, 0x8e, 0x9b, 0xa0, 0xed, 0x84, 0x6a, 0x56, 0x8a, 0x8f, 0x31, 0x85, 0xba, 0xae, 0x4a,
0x5d, 0x7c, 0x8c, 0xe7, 0xe6, 0x88, 0xa1, 0xad, 0xb2, 0x23, 0xce, 0x31, 0x6d, 0x2f, 0x44, 0x54,
0x09, 0x10, 0x67, 0xfd, 0x37, 0x0d, 0xe6, 0x9f, 0xe1, 0x58, 0x69, 0xbe, 0x02, 0xb0, 0xef, 0x87,
0x7e, 0xc4, 0x1d, 0x0f, 0x65, 0x17, 0x9c, 0x35, 0x32, 0x94, 0x7f, 0x6f, 0x47, 0xcc, 0xf1, 0xe8,
0xee, 0xa9, 0x64, 0x8a, 0x73, 0x4c, 0x3b, 0x40, 0x1a, 0xa8, 0xfc, 0x89, 0x73, 0xbc, 0x05, 0x30,
0x4e, 0xad, 0x43, 0x91, 0xac, 0xb6, 0x21, 0x7f, 0x3c, 0x7c, 0xbb, 0x08, 0xfd, 0x6c, 0x69, 0x93,
0x1f, 0xa0, 0x97, 0x59, 0x5f, 0xc8, 0x8d, 0xf2, 0x96, 0x52, 0x5e, 0x87, 0x86, 0xff, 0x9b, 0xc2,
0xa5, 0x80, 0x31, 0x43, 0x3c, 0x38, 0x57, 0x5a, 0x0f, 0xc8, 0x9d, 0xb2, 0x74, 0xdd, 0xf2, 0x31,
0xbc, 0xdb, 0x88, 0x37, 0xb5, 0xc7, 0x61, 0xb9, 0x62, 0xde, 0x27, 0xf7, 0xa6, 0x68, 0xc9, 0xed,
0x1c, 0xc3, 0xff, 0x37, 0xe4, 0x4e, 0xad, 0x1e, 0x01, 0x29, 0x2f, 0x03, 0xe4, 0xee, 0x54, 0x35,
0x93, 0x65, 0x63, 0x78, 0xaf, 0x19, 0x73, 0x6d, 0xa0, 0x72, 0x4d, 0x98, 0x1a, 0x68, 0x6e, 0x11,
0x99, 0x1a, 0x68, 0x61, 0xf7, 0x98, 0x21, 0x87, 0xb0, 0x54, 0x5c, 0x21, 0xc8, 0xed, 0xba, 0xbd,
0xb6, 0xb4, 0xa1, 0x0c, 0xef, 0x34, 0x61, 0x4d, 0x8d, 0x21, 0x2c, 0xe6, 0xc7, 0x7c, 0x72, 0xab,
0x2c, 0x5f, 0xb9, 0xb4, 0x0c, 0x47, 0xd3, 0x19, 0xb3, 0x31, 0x15, 0x47, 0xff, 0xaa, 0x98, 0x6a,
0xf6, 0x8a, 0xaa, 0x98, 0xea, 0x36, 0x09, 0x7d, 0x86, 0xfc, 0x92, 0xcc, 0x93, 0x85, 0x91, 0x98,
0x6c, 0xd4, 0xa9, 0xa9, 0x9e, 0xc9, 0x87, 0xf7, 0x1b, 0xf3, 0x27, 0xb6, 0x1f, 0x68, 0x31, 0xd6,
0x33, 0x93, 0x71, 0x15, 0xd6, 0xcb, 0xb3, 0x76, 0x15, 0xd6, 0xab, 0xc6, 0xeb, 0x19, 0xb2, 0x0b,
0x0b, 0xb9, 0x59, 0x99, 0xdc, 0xac, 0x93, 0xcc, 0x4f, 0xe0, 0xc3, 0x5b, 0x53, 0xf9, 0x52, 0x1b,
0x66, 0xd2, 0xbd, 0x54, 0xbb, 0xaa, 0x75, 0x2e, 0xdf, 0xaf, 0x6e, 0x4e, 0x63, 0x4b, 0x0d, 0x7c,
0x07, 0x30, 0x19, 0x6d, 0xc9, 0xf5, 0x3a, 0xb9, 0xec, 0xa7, 0xb8, 0x71, 0x3a, 0x53, 0xaa, 0xfa,
0x47, 0x58, 0xa9, 0x7a, 0xe9, 0x49, 0x05, 0x0a, 0x4f, 0x19, 0x27, 0x86, 0x1b, 0x4d, 0xd9, 0x53,
0xc3, 0xaf, 0xa0, 0x9b, 0x8c, 0xaa, 0xe4, 0x5a, 0x59, 0xba, 0x30, 0x88, 0x0f, 0xf5, 0xd3, 0x58,
0x32, 0xd5, 0x34, 0x4e, 0x80, 0x33, 0x19, 0x26, 0xeb, 0x81, 0x53, 0x1a, 0x77, 0xeb, 0x81, 0x53,
0x9e, 0x4d, 0x85, 0xb9, 0xa3, 0x64, 0xe9, 0xc8, 0xce, 0x60, 0x95, 0x4d, 0xb6, 0x6e, 0xb4, 0xac,
0x6c, 0xb2, 0xf5, 0x63, 0xdd, 0xcc, 0xee, 0x9c, 0xf8, 0x93, 0xf0, 0xd1, 0x3f, 0x01, 0x00, 0x00,
0xff, 0xff, 0x4c, 0x2f, 0x65, 0x47, 0x3b, 0x14, 0x00, 0x00,
// 1453 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xc4, 0x18, 0x4b, 0x73, 0xdc, 0x44,
0xd3, 0xca, 0xae, 0xed, 0x75, 0xef, 0xda, 0x71, 0xc6, 0x4e, 0xbc, 0x56, 0x5e, 0x8e, 0x92, 0x2f,
0xd9, 0x3c, 0x3e, 0x27, 0x24, 0x05, 0x04, 0x38, 0x40, 0x62, 0x43, 0xe1, 0x2a, 0x92, 0x54, 0xc9,
0x49, 0x0a, 0x0a, 0xaa, 0x54, 0x63, 0x69, 0x1c, 0xab, 0xac, 0xd5, 0x28, 0x9a, 0x91, 0x89, 0x29,
0x6e, 0xf0, 0x4f, 0xb8, 0xe5, 0xc0, 0x95, 0x2b, 0x7f, 0x88, 0x5f, 0xc0, 0x85, 0x9a, 0x87, 0xb4,
0x7a, 0x7a, 0x15, 0x72, 0xe0, 0x36, 0xea, 0x77, 0xf7, 0x74, 0xf7, 0x74, 0x0b, 0x56, 0x8e, 0x68,
0x90, 0x8c, 0x89, 0xc3, 0x48, 0x7c, 0x44, 0xe2, 0xcd, 0x28, 0xa6, 0x9c, 0xa2, 0xe5, 0x02, 0xd0,
0x89, 0xf6, 0xac, 0xbb, 0x80, 0x1e, 0x63, 0xee, 0x1e, 0x6c, 0x93, 0x80, 0x70, 0x62, 0x93, 0xd7,
0x09, 0x61, 0x1c, 0xad, 0x43, 0x6f, 0xdf, 0x0f, 0x88, 0xe3, 0x7b, 0x6c, 0x68, 0x6c, 0x74, 0x46,
0x0b, 0xf6, 0xbc, 0xf8, 0xde, 0xf1, 0x98, 0xf5, 0x0c, 0x56, 0x0a, 0x0c, 0x2c, 0xa2, 0x21, 0x23,
0xe8, 0x21, 0xcc, 0xc7, 0x84, 0x25, 0x01, 0x57, 0x0c, 0xfd, 0xfb, 0x97, 0x36, 0xcb, 0xba, 0x36,
0x33, 0x96, 0x24, 0xe0, 0x76, 0x4a, 0x6e, 0xf9, 0x30, 0xc8, 0x23, 0xd0, 0x1a, 0xcc, 0x6b, 0xdd,
0x43, 0x63, 0xc3, 0x18, 0x2d, 0xd8, 0x73, 0x4a, 0x35, 0x3a, 0x07, 0x73, 0x8c, 0x63, 0x9e, 0xb0,
0xe1, 0xa9, 0x0d, 0x63, 0x34, 0x6b, 0xeb, 0x2f, 0xb4, 0x0a, 0xb3, 0x24, 0x8e, 0x69, 0x3c, 0xec,
0x48, 0x72, 0xf5, 0x81, 0x10, 0x74, 0x99, 0xff, 0x13, 0x19, 0x76, 0x37, 0x8c, 0xd1, 0xa2, 0x2d,
0xcf, 0xd6, 0x3c, 0xcc, 0x7e, 0x39, 0x8e, 0xf8, 0xb1, 0xf5, 0x31, 0x0c, 0x5f, 0x62, 0x37, 0x49,
0xc6, 0x2f, 0xa5, 0x8d, 0x5b, 0x07, 0xc4, 0x3d, 0x4c, 0x7d, 0x3f, 0x0f, 0x0b, 0xda, 0x72, 0x6d,
0xc1, 0xa2, 0xdd, 0x53, 0x80, 0x1d, 0xcf, 0xfa, 0x02, 0xd6, 0x6b, 0x18, 0x75, 0x0c, 0xae, 0xc2,
0xe2, 0x2b, 0x1c, 0xef, 0xe1, 0x57, 0xc4, 0x89, 0x31, 0xf7, 0xa9, 0xe4, 0x36, 0xec, 0x81, 0x06,
0xda, 0x02, 0x66, 0x7d, 0x0f, 0x66, 0x41, 0x02, 0x1d, 0x47, 0xd8, 0xe5, 0x6d, 0x94, 0xa3, 0x0d,
0xe8, 0x47, 0x31, 0xc1, 0x41, 0x40, 0x5d, 0xcc, 0x89, 0x8c, 0x42, 0xc7, 0xce, 0x83, 0xac, 0x8b,
0x70, 0xbe, 0x56, 0xb8, 0x32, 0xd0, 0x7a, 0x58, 0xb2, 0x9e, 0x8e, 0xc7, 0x7e, 0x2b, 0xd5, 0xd6,
0x85, 0x8a, 0xd5, 0x92, 0x53, 0xcb, 0xfd, 0xa4, 0x84, 0x0d, 0x08, 0x0e, 0x93, 0xa8, 0x95, 0xe0,
0xb2, 0xc5, 0x29, 0x6b, 0x26, 0x79, 0x4d, 0x25, 0xc7, 0x16, 0x0d, 0x02, 0xe2, 0x72, 0x9f, 0x86,
0xa9, 0xd8, 0x4b, 0x00, 0x6e, 0x06, 0xd4, 0xa9, 0x92, 0x83, 0x58, 0x26, 0x0c, 0xab, 0xac, 0x5a,
0xec, 0x5b, 0x03, 0xce, 0x3e, 0xd2, 0x41, 0x53, 0x8a, 0x5b, 0x5d, 0x40, 0x51, 0xe5, 0xa9, 0xb2,
0xca, 0xf2, 0x05, 0x75, 0x2a, 0x17, 0x24, 0x28, 0x62, 0x12, 0x05, 0xbe, 0x8b, 0xa5, 0x88, 0xae,
0x14, 0x91, 0x07, 0xa1, 0x65, 0xe8, 0x70, 0x1e, 0x0c, 0x67, 0x25, 0x46, 0x1c, 0xad, 0x21, 0x9c,
0x2b, 0xdb, 0xaa, 0xdd, 0xf8, 0x08, 0xd6, 0x14, 0x64, 0xf7, 0x38, 0x74, 0x77, 0x65, 0x35, 0xb4,
0x0a, 0xfa, 0xdf, 0x06, 0x0c, 0xab, 0x8c, 0x3a, 0x8b, 0xdf, 0x37, 0x02, 0xef, 0xea, 0x1f, 0xba,
0x0c, 0x7d, 0x8e, 0xfd, 0xc0, 0xa1, 0xfb, 0xfb, 0x8c, 0xf0, 0xe1, 0xdc, 0x86, 0x31, 0xea, 0xda,
0x20, 0x40, 0xcf, 0x24, 0x04, 0xdd, 0x84, 0x65, 0x57, 0x65, 0xb2, 0x13, 0x93, 0x23, 0x9f, 0x09,
0xc9, 0xf3, 0xd2, 0xb0, 0xd3, 0x6e, 0x9a, 0xe1, 0x0a, 0x8c, 0x2c, 0x58, 0xf4, 0xbd, 0x37, 0x8e,
0x6c, 0x20, 0xb2, 0xfc, 0x7b, 0x52, 0x5a, 0xdf, 0xf7, 0xde, 0x7c, 0xe5, 0x07, 0x64, 0x57, 0x74,
0x81, 0x97, 0x70, 0x41, 0x39, 0xbf, 0x13, 0xba, 0x31, 0x19, 0x93, 0x90, 0xe3, 0x60, 0x8b, 0x46,
0xc7, 0xad, 0x52, 0x60, 0x1d, 0x7a, 0xcc, 0x0f, 0x5d, 0xe2, 0x84, 0xaa, 0x0d, 0x75, 0xed, 0x79,
0xf9, 0xfd, 0x94, 0x59, 0x8f, 0xe1, 0x62, 0x83, 0x5c, 0x1d, 0xd9, 0x2b, 0x30, 0x90, 0x86, 0xb9,
0x34, 0xe4, 0x24, 0xe4, 0x52, 0xf6, 0xc0, 0xee, 0x0b, 0xd8, 0x96, 0x02, 0x59, 0x1f, 0x00, 0x52,
0x32, 0x9e, 0xd0, 0x24, 0x6c, 0x57, 0x9a, 0x67, 0x61, 0xa5, 0xc0, 0xa2, 0x73, 0xe3, 0x01, 0xac,
0x2a, 0xf0, 0x8b, 0x70, 0xdc, 0x5a, 0xd6, 0x1a, 0x9c, 0x2d, 0x31, 0x69, 0x69, 0xf7, 0x53, 0x25,
0xc5, 0x77, 0xe2, 0x44, 0x61, 0xe7, 0x52, 0x0b, 0x8a, 0x4f, 0x85, 0xf5, 0xbb, 0x01, 0x67, 0xd2,
0x36, 0xd2, 0x32, 0xea, 0xef, 0x98, 0x76, 0x9d, 0xc6, 0xb4, 0xeb, 0x4e, 0xd2, 0x6e, 0x04, 0xcb,
0x8c, 0x26, 0xb1, 0x4b, 0x1c, 0x0f, 0x73, 0xec, 0x84, 0xd4, 0x23, 0x3a, 0x2b, 0x97, 0x14, 0x7c,
0x1b, 0x73, 0xfc, 0x94, 0x7a, 0xc4, 0xfa, 0x3c, 0xbd, 0x94, 0xc2, 0x6d, 0xde, 0x84, 0x33, 0x01,
0x66, 0xdc, 0xc1, 0x51, 0x44, 0x42, 0xcf, 0xc1, 0x5c, 0xa4, 0x84, 0x21, 0x53, 0x62, 0x49, 0x20,
0x1e, 0x49, 0xf8, 0x23, 0xfe, 0x94, 0x59, 0x7f, 0x1a, 0x70, 0x5a, 0xf0, 0x8a, 0x14, 0x6c, 0xe9,
0x6f, 0xdf, 0x67, 0x4e, 0x9a, 0xc9, 0xd2, 0xe1, 0x9e, 0xbd, 0xe0, 0xb3, 0x1d, 0x95, 0xc6, 0x1a,
0xef, 0x61, 0xae, 0xf0, 0x9d, 0x14, 0xbf, 0x8d, 0xb9, 0xc4, 0xdf, 0x85, 0x15, 0x5d, 0x19, 0x3e,
0x0d, 0x27, 0x45, 0xa3, 0xde, 0x42, 0x34, 0x41, 0x65, 0x75, 0x73, 0x19, 0xfa, 0x8c, 0xd3, 0x28,
0xad, 0xc1, 0x59, 0x55, 0x83, 0x02, 0xa4, 0x6a, 0xd0, 0xfa, 0x10, 0x96, 0x27, 0x1e, 0xb4, 0xcf,
0xe7, 0x5f, 0x8c, 0xb4, 0x45, 0x3d, 0xc7, 0x7e, 0xb0, 0x4b, 0x42, 0x8f, 0xc4, 0xef, 0x59, 0x67,
0xe8, 0x1e, 0xac, 0xfa, 0x5e, 0x40, 0x1c, 0xee, 0x8f, 0x09, 0x4d, 0xb8, 0xc3, 0x88, 0x4b, 0x43,
0x8f, 0xc9, 0x28, 0x2c, 0xda, 0x48, 0xe0, 0x9e, 0x2b, 0xd4, 0xae, 0xc2, 0x58, 0xbf, 0x66, 0xfd,
0x2e, 0x6f, 0xc5, 0xe4, 0xd5, 0x0e, 0x09, 0x11, 0x02, 0x0f, 0x08, 0xf6, 0x48, 0xac, 0xdd, 0x18,
0x28, 0xe0, 0xd7, 0x12, 0x26, 0xe2, 0xa3, 0x89, 0xf6, 0xa8, 0x77, 0x2c, 0x2d, 0x1a, 0xd8, 0xa0,
0x40, 0x8f, 0xa9, 0x77, 0x2c, 0x1b, 0x0f, 0x73, 0x64, 0x42, 0xb8, 0x07, 0x49, 0x78, 0xa8, 0xef,
0xa4, 0xef, 0xb3, 0x6f, 0x30, 0xe3, 0x5b, 0x02, 0x64, 0xfd, 0x61, 0xc0, 0xfa, 0xc4, 0x0c, 0x9b,
0xb8, 0xc4, 0x3f, 0xfa, 0x0f, 0xc2, 0x21, 0x38, 0x74, 0xe6, 0x17, 0x46, 0x34, 0x5d, 0x1c, 0x48,
0xe1, 0xf4, 0xfb, 0x20, 0x31, 0xf2, 0xf9, 0xaf, 0x31, 0x5c, 0x17, 0xf4, 0xa7, 0x70, 0xde, 0x26,
0xd8, 0x53, 0x14, 0xb2, 0xcd, 0xb6, 0x7f, 0x8a, 0xfe, 0x3a, 0x05, 0x17, 0xea, 0x99, 0xdb, 0x3c,
0x47, 0x9f, 0x81, 0x99, 0xb5, 0x7b, 0xe1, 0x3f, 0xe3, 0x78, 0x1c, 0x65, 0x11, 0x50, 0x81, 0x5a,
0xd3, 0xbd, 0xff, 0x79, 0x8a, 0x4f, 0xc3, 0x50, 0x79, 0x2b, 0x3a, 0x95, 0xb7, 0x42, 0x28, 0x48,
0xab, 0xac, 0x46, 0x41, 0x57, 0x29, 0xf0, 0x54, 0xd5, 0xd5, 0x29, 0xc8, 0x98, 0xa5, 0x02, 0x55,
0x56, 0x7d, 0x4d, 0x2f, 0x15, 0x5c, 0x04, 0xd0, 0x35, 0x94, 0x84, 0xe9, 0xdb, 0xb7, 0xa0, 0x2a,
0x28, 0x09, 0x79, 0x53, 0x21, 0xcf, 0x37, 0x16, 0x72, 0xb1, 0x53, 0xf6, 0x2a, 0x53, 0xd1, 0xb7,
0x00, 0xdb, 0x3e, 0x3b, 0x54, 0x41, 0x16, 0x5d, 0xd1, 0xf3, 0x63, 0x3d, 0x3c, 0x89, 0xa3, 0x80,
0xe0, 0x20, 0xd0, 0xa1, 0x13, 0x47, 0x31, 0x48, 0x27, 0x8c, 0x78, 0x3a, 0x3a, 0xf2, 0x2c, 0x60,
0xfb, 0x31, 0x21, 0x3a, 0x00, 0xf2, 0x6c, 0xfd, 0x66, 0xc0, 0xc2, 0x13, 0x32, 0xd6, 0x92, 0x2f,
0x01, 0xbc, 0xa2, 0x31, 0x4d, 0xb8, 0x1f, 0x12, 0xd5, 0x16, 0x67, 0xed, 0x1c, 0xe4, 0xdf, 0xeb,
0x91, 0x83, 0x3d, 0x09, 0xf6, 0x75, 0x30, 0xe5, 0x59, 0xc0, 0x0e, 0x08, 0x8e, 0x74, 0xfc, 0xe4,
0x59, 0xac, 0x05, 0x8c, 0x63, 0xf7, 0x50, 0x06, 0xab, 0x6b, 0xab, 0x8f, 0xfb, 0x6f, 0x97, 0x60,
0x90, 0x4f, 0x6d, 0xf4, 0x03, 0xf4, 0x73, 0xfb, 0x0c, 0xba, 0x56, 0x5d, 0x5b, 0xaa, 0xfb, 0x91,
0xf9, 0xbf, 0x29, 0x54, 0xba, 0x30, 0x66, 0x50, 0x08, 0x67, 0x2a, 0xfb, 0x02, 0xba, 0x55, 0xe5,
0x6e, 0xda, 0x46, 0xcc, 0xdb, 0xad, 0x68, 0x33, 0x7d, 0x1c, 0x56, 0x6a, 0x16, 0x00, 0x74, 0x67,
0x8a, 0x94, 0xc2, 0x12, 0x62, 0xfe, 0xbf, 0x25, 0x75, 0xa6, 0xf5, 0x35, 0xa0, 0xea, 0x76, 0x80,
0x6e, 0x4f, 0x15, 0x33, 0xd9, 0x3e, 0xcc, 0x3b, 0xed, 0x88, 0x1b, 0x1d, 0x55, 0x7b, 0xc3, 0x54,
0x47, 0x0b, 0x9b, 0xc9, 0x54, 0x47, 0x4b, 0xcb, 0xc8, 0x0c, 0x3a, 0x84, 0xe5, 0xf2, 0x4e, 0x81,
0x6e, 0x36, 0x2d, 0xba, 0x95, 0x95, 0xc5, 0xbc, 0xd5, 0x86, 0x34, 0x53, 0x46, 0x60, 0xa9, 0x38,
0xf7, 0xa3, 0x1b, 0x55, 0xfe, 0xda, 0x2d, 0xc6, 0x1c, 0x4d, 0x27, 0xcc, 0xfb, 0x54, 0xde, 0x05,
0xea, 0x7c, 0x6a, 0x58, 0x34, 0xea, 0x7c, 0x6a, 0x5a, 0x2d, 0xac, 0x19, 0xf4, 0x73, 0x3a, 0x60,
0x96, 0x66, 0x64, 0xb4, 0xd9, 0x24, 0xa6, 0x7e, 0x48, 0x37, 0xef, 0xb6, 0xa6, 0x4f, 0x75, 0xdf,
0x33, 0x44, 0xad, 0xe7, 0x46, 0xe5, 0xba, 0x5a, 0xaf, 0x0e, 0xdf, 0x75, 0xb5, 0x5e, 0x37, 0x6f,
0xcf, 0xa0, 0x3d, 0x58, 0x2c, 0x0c, 0xcf, 0xe8, 0x7a, 0x13, 0x67, 0x71, 0x24, 0x37, 0x6f, 0x4c,
0xa5, 0xcb, 0x74, 0x38, 0x69, 0xf7, 0xd2, 0xed, 0xaa, 0xd1, 0xb8, 0x62, 0xbf, 0xba, 0x3e, 0x8d,
0x2c, 0x53, 0xf0, 0x1d, 0xc0, 0x64, 0xd6, 0x45, 0x57, 0x9b, 0xf8, 0xf2, 0x57, 0x71, 0xed, 0x64,
0xa2, 0x4c, 0xf4, 0x8f, 0xb0, 0x5a, 0xf7, 0xd2, 0xa3, 0x9a, 0x2a, 0x3c, 0x61, 0x9c, 0x30, 0x37,
0xdb, 0x92, 0x67, 0x8a, 0x5f, 0x40, 0x2f, 0x9d, 0x5d, 0xd1, 0x95, 0x2a, 0x77, 0x69, 0x32, 0x37,
0xad, 0x93, 0x48, 0x72, 0xd9, 0x34, 0x4e, 0x0b, 0x67, 0x32, 0x54, 0x36, 0x17, 0x4e, 0x65, 0xfc,
0x6d, 0x2e, 0x9c, 0xea, 0x8c, 0x2a, 0xd5, 0xbd, 0x4e, 0xb7, 0x90, 0xfc, 0x0c, 0x56, 0xdb, 0x64,
0x9b, 0x46, 0xcc, 0xda, 0x26, 0xdb, 0x3c, 0xd6, 0xcd, 0xec, 0xcd, 0xc9, 0xbf, 0x86, 0x0f, 0xfe,
0x09, 0x00, 0x00, 0xff, 0xff, 0x5d, 0xcf, 0xff, 0x14, 0x4c, 0x14, 0x00, 0x00,
}

View file

@ -22,7 +22,7 @@ func (vs *VolumeServer) VolumeTailSender(req *volume_server_pb.VolumeTailSenderR
defer glog.V(1).Infof("tailing volume %d finished", v.Id)
lastTimestampNs := req.SinceNs
drainingSeconds := req.DrainingSeconds
drainingSeconds := req.IdleTimeoutSeconds
for {
lastProcessedTimestampNs, err := sendNeedlesSince(stream, v, lastTimestampNs)
@ -32,7 +32,7 @@ func (vs *VolumeServer) VolumeTailSender(req *volume_server_pb.VolumeTailSenderR
}
time.Sleep(2 * time.Second)
if req.DrainingSeconds == 0 {
if req.IdleTimeoutSeconds == 0 {
lastTimestampNs = lastProcessedTimestampNs
continue
}
@ -44,7 +44,7 @@ func (vs *VolumeServer) VolumeTailSender(req *volume_server_pb.VolumeTailSenderR
glog.V(1).Infof("tailing volume %d drains requests with %d seconds remaining", v.Id, drainingSeconds)
} else {
lastTimestampNs = lastProcessedTimestampNs
drainingSeconds = req.DrainingSeconds
drainingSeconds = req.IdleTimeoutSeconds
glog.V(1).Infof("tailing volume %d resets draining wait time to %d seconds", v.Id, drainingSeconds)
}
@ -110,7 +110,7 @@ func (vs *VolumeServer) VolumeTailReceiver(ctx context.Context, req *volume_serv
defer glog.V(1).Infof("receive tailing volume %d finished", v.Id)
return resp, operation.TailVolumeFromServer(req.SourceVolumeServer, vs.grpcDialOption, v.Id, req.SinceNs, int(req.DrainingSeconds), func(n *needle.Needle) error {
return resp, operation.TailVolumeFromSource(req.SourceVolumeServer, vs.grpcDialOption, v.Id, req.SinceNs, int(req.IdleTimeoutSeconds), func(n *needle.Needle) error {
_, err := vs.store.Write(v.Id, n)
return err
})

View file

@ -18,7 +18,6 @@ func init() {
}
type commandVolumeMove struct {
grpcDialOption grpc.DialOption
}
func (c *commandVolumeMove) Name() string {
@ -49,9 +48,6 @@ func (c *commandVolumeMove) Do(args []string, commandEnv *commandEnv, writer io.
fmt.Fprintf(writer, "received args: %+v\n", args)
return fmt.Errorf("need 3 args of <source volume server host:port> <target volume server host:port> <volume id>")
}
c.grpcDialOption = commandEnv.option.GrpcDialOption
ctx := context.Background()
sourceVolumeServer, targetVolumeServer, volumeIdString := args[0], args[1], args[2]
volumeId, err := needle.NewVolumeId(volumeIdString)
@ -63,30 +59,36 @@ func (c *commandVolumeMove) Do(args []string, commandEnv *commandEnv, writer io.
return fmt.Errorf("source and target volume servers are the same!")
}
ctx := context.Background()
return LiveMoveVolume(ctx, commandEnv.option.GrpcDialOption, volumeId, sourceVolumeServer, targetVolumeServer, 5*time.Second)
}
// LiveMoveVolume moves one volume from one source volume server to one target volume server, with idleTimeout to drain the incoming requests.
func LiveMoveVolume(ctx context.Context, grpcDialOption grpc.DialOption, volumeId needle.VolumeId, sourceVolumeServer, targetVolumeServer string, idleTimeout time.Duration) (err error) {
log.Printf("copying volume %d from %s to %s", volumeId, sourceVolumeServer, targetVolumeServer)
lastAppendAtNs, err := c.copyVolume(ctx, volumeId, sourceVolumeServer, targetVolumeServer)
lastAppendAtNs, err := copyVolume(ctx, grpcDialOption, volumeId, sourceVolumeServer, targetVolumeServer)
if err != nil {
return fmt.Errorf("copy volume %d from %s to %s: %v", volumeId, sourceVolumeServer, targetVolumeServer, err)
}
log.Printf("tailing volume %d from %s to %s", volumeId, sourceVolumeServer, targetVolumeServer)
if err = c.tailVolume(ctx, volumeId, sourceVolumeServer, targetVolumeServer, lastAppendAtNs, 5*time.Second); err != nil {
if err = tailVolume(ctx, grpcDialOption, volumeId, sourceVolumeServer, targetVolumeServer, lastAppendAtNs, idleTimeout); err != nil {
return fmt.Errorf("tail volume %d from %s to %s: %v", volumeId, sourceVolumeServer, targetVolumeServer, err)
}
log.Printf("deleting volume %d from %s", volumeId, sourceVolumeServer)
if err = c.deleteVolume(ctx, volumeId, sourceVolumeServer); err != nil {
if err = deleteVolume(ctx, grpcDialOption, volumeId, sourceVolumeServer); err != nil {
return fmt.Errorf("delete volume %d from %s: %v", volumeId, sourceVolumeServer, err)
}
log.Printf("moved volume %d from %s to %s", volumeId, sourceVolumeServer, targetVolumeServer)
return nil
}
func (c *commandVolumeMove) copyVolume(ctx context.Context, volumeId needle.VolumeId, sourceVolumeServer, targetVolumeServer string) (lastAppendAtNs uint64, err error) {
func copyVolume(ctx context.Context, grpcDialOption grpc.DialOption, volumeId needle.VolumeId, sourceVolumeServer, targetVolumeServer string) (lastAppendAtNs uint64, err error) {
err = operation.WithVolumeServerClient(targetVolumeServer, c.grpcDialOption, func(volumeServerClient volume_server_pb.VolumeServerClient) error {
err = operation.WithVolumeServerClient(targetVolumeServer, grpcDialOption, func(volumeServerClient volume_server_pb.VolumeServerClient) error {
resp, replicateErr := volumeServerClient.VolumeCopy(ctx, &volume_server_pb.VolumeCopyRequest{
VolumeId: uint32(volumeId),
SourceDataNode: sourceVolumeServer,
@ -100,13 +102,13 @@ func (c *commandVolumeMove) copyVolume(ctx context.Context, volumeId needle.Volu
return
}
func (c *commandVolumeMove) tailVolume(ctx context.Context, volumeId needle.VolumeId, sourceVolumeServer, targetVolumeServer string, lastAppendAtNs uint64, timeout time.Duration) (err error) {
func tailVolume(ctx context.Context, grpcDialOption grpc.DialOption, volumeId needle.VolumeId, sourceVolumeServer, targetVolumeServer string, lastAppendAtNs uint64, idleTimeout time.Duration) (err error) {
return operation.WithVolumeServerClient(targetVolumeServer, c.grpcDialOption, func(volumeServerClient volume_server_pb.VolumeServerClient) error {
return operation.WithVolumeServerClient(targetVolumeServer, grpcDialOption, func(volumeServerClient volume_server_pb.VolumeServerClient) error {
_, replicateErr := volumeServerClient.VolumeTailReceiver(ctx, &volume_server_pb.VolumeTailReceiverRequest{
VolumeId: uint32(volumeId),
SinceNs: lastAppendAtNs,
DrainingSeconds: uint32(timeout.Seconds()),
IdleTimeoutSeconds: uint32(idleTimeout.Seconds()),
SourceVolumeServer: sourceVolumeServer,
})
return replicateErr
@ -114,8 +116,8 @@ func (c *commandVolumeMove) tailVolume(ctx context.Context, volumeId needle.Volu
}
func (c *commandVolumeMove) deleteVolume(ctx context.Context, volumeId needle.VolumeId, sourceVolumeServer string) (err error) {
return operation.WithVolumeServerClient(sourceVolumeServer, c.grpcDialOption, func(volumeServerClient volume_server_pb.VolumeServerClient) error {
func deleteVolume(ctx context.Context, grpcDialOption grpc.DialOption, volumeId needle.VolumeId, sourceVolumeServer string) (err error) {
return operation.WithVolumeServerClient(sourceVolumeServer, grpcDialOption, func(volumeServerClient volume_server_pb.VolumeServerClient) error {
_, unmountErr := volumeServerClient.VolumeDelete(ctx, &volume_server_pb.VolumeDeleteRequest{
VolumeId: uint32(volumeId),
})