Exemple #1
0
        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);
            }
        }
Exemple #3
0
        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));
        }