internal static CouchBaseSiloRegistration FromMembershipEntry(String deploymentId, MembershipEntry entry, String etag) { if (entry.SuspectTimes == null) { entry.SuspectTimes = new List <Tuple <SiloAddress, DateTime> >(); } var ret = new CouchBaseSiloRegistration { DeploymentId = deploymentId, Address = entry.SiloAddress, SerializedAddress = entry.SiloAddress.ToParsableString(), IAmAliveTime = entry.IAmAliveTime, //Cas = Convert.ToUInt64(etag), Hostname = entry.HostName, ProxyPort = entry.ProxyPort, StartTime = entry.StartTime, Status = entry.Status, //SiloName = entry.SiloName, SuspectingSilos = entry.SuspectTimes.Select(silo => new SuspectingSilo { Id = silo.Item1.ToParsableString(), Time = silo.Item2 }).ToList() }; return(ret); }
public async Task <bool> UpdateRow(MembershipEntry entry, TableVersion tableVersion, string eTag) { try { CouchBaseSiloRegistration serializableData = CouchbaseSiloRegistrationmUtility.FromMembershipEntry("", entry, eTag); IOperationResult <CouchBaseSiloRegistration> result = await bucket.UpsertAsync <CouchBaseSiloRegistration>(entry.SiloAddress.ToParsableString(), serializableData, ulong.Parse(eTag)).ConfigureAwait(false); return(result.Success); } catch (Exception) { return(false); } }
internal static Tuple <MembershipEntry, String> ToMembershipEntry(CouchBaseSiloRegistration siloRegistration, string cas = "") { siloRegistration.Address = SiloAddress.FromParsableString(siloRegistration.SerializedAddress); var entry = new MembershipEntry { SiloAddress = siloRegistration.Address, HostName = siloRegistration.Hostname, Status = siloRegistration.Status, ProxyPort = siloRegistration.ProxyPort, StartTime = siloRegistration.StartTime, SuspectTimes = siloRegistration.SuspectingSilos.Select(silo => new Tuple <SiloAddress, DateTime>(SiloAddress.FromParsableString(silo.Id), silo.Time)).ToList(), IAmAliveTime = siloRegistration.IAmAliveTime, //SiloName = siloRegistration.SiloName, // Optional - only for Azure role so initialised here RoleName = String.Empty, UpdateZone = 0, FaultZone = 0 }; return(new Tuple <MembershipEntry, String>(entry, cas)); }