private static Uri ConvertToGatewayUri(ISiloIntance gateway) { // ReSharper disable once PossibleInvalidOperationException var address = SiloAddress.New(new IPEndPoint(IPAddress.Parse(gateway.Address), gateway.ProxyPort.Value), gateway.Generation); return(address.ToGatewayUri()); }
public static MembershipEntry AsMembershipEntry(this ISiloIntance siloIntance) { var entry = new MembershipEntry { SiloName = siloIntance.SiloName, HostName = siloIntance.HostName, Status = (SiloStatus)siloIntance.Status, RoleName = siloIntance.RoleName, UpdateZone = siloIntance.UpdateZone, FaultZone = siloIntance.FaultZone, StartTime = siloIntance.StartTime.UtcDateTime, IAmAliveTime = siloIntance.IAmAliveTime.UtcDateTime, SiloAddress = SiloAddress.New(new IPEndPoint(IPAddress.Parse(siloIntance.Address), siloIntance.Port), siloIntance.Generation) }; if (siloIntance.ProxyPort.HasValue) { entry.ProxyPort = siloIntance.ProxyPort.Value; } var suspectingSilos = new List <SiloAddress>(); var suspectingTimes = new List <DateTime>(); foreach (var silo in siloIntance.SuspectingSilos) { suspectingSilos.Add(SiloAddress.FromParsableString(silo)); } foreach (var time in siloIntance.SuspectingTimes) { suspectingTimes.Add(time.UtcDateTime); } if (suspectingSilos.Count != suspectingTimes.Count) { throw new OrleansException( $"SuspectingSilos.Length of {suspectingSilos.Count} as read from Cassandra " + $"is not equal to SuspectingTimes.Length of {suspectingTimes.Count}"); } for (var i = 0; i < suspectingSilos.Count; i++) { entry.AddSuspector(suspectingSilos[i], suspectingTimes[i]); } return(entry); }