public void Send(ElectionMessage.MasterIsResigning message, IPEndPoint endPoint) { Ensure.NotNull(message, nameof(message)); Ensure.NotNull(endPoint, nameof(endPoint)); _client.Post(endPoint.ToHttpUrl(EndpointExtensions.HTTP_SCHEMA, "/elections/masterisresigning"), Codec.Json.To(new ElectionMessageDto.MasterIsResigningDto(message)), Codec.Json.ContentType, r => { /*ignore*/ }, e => { /*Log.ErrorException(e, "Error occured while writing request (elections/masterisresigning)")*/ }); }
public void Handle(ElectionMessage.MasterIsResigning message) { if (_nodeInfo.IsReadOnlyReplica) { Log.Debug( "ELECTIONS: THIS NODE IS A READ ONLY REPLICA. IT IS NOT ALLOWED TO VOTE AND THEREFORE NOT ALLOWED TO ACKNOWLEDGE MASTER RESIGNATION."); return; } Log.Debug("ELECTIONS: MASTER IS RESIGNING [{masterInternalHttp}, {masterId:B}].", message.MasterInternalHttp, message.MasterId); var masterIsResigningMessageOk = new ElectionMessage.MasterIsResigningOk( message.MasterId, message.MasterInternalHttp, _nodeInfo.InstanceId, _nodeInfo.InternalHttp); _resigningMasterInstanceId = message.MasterId; _publisher.Publish(new HttpMessage.SendOverHttp(message.MasterInternalHttp, masterIsResigningMessageOk, _timeProvider.LocalTime.Add(LeaderElectionProgressTimeout))); }