public override string ToString()
        {
            var sb = new StringBuilder(4096);

            sb.AppendFormat(
                "PartitionMetadata.ParitionId:{0},Leader:{1},Replicas Count:{2},Isr Count:{3}",
                PartitionId,
                Leader == null ? "null" : Leader.ToString(),
                Replicas.Count(),
                Isr.Count());

            var i = 0;

            foreach (var r in Replicas)
            {
                sb.AppendFormat(",Replicas[{0}]:{1}", i, r);
                i++;
            }

            i = 0;
            foreach (var sr in Isr)
            {
                sb.AppendFormat(",Isr[{0}]:{1}", i, sr);
                i++;
            }

            var s = sb.ToString();

            sb.Length = 0;
            return(s);
        }
        public void WriteTo(KafkaBinaryWriter writer)
        {
            Guard.NotNull(writer, "writer");

            // if leader exists
            writer.Write(PartitionId);
            if (Leader != null)
            {
                writer.Write((byte)1);
                Leader.WriteTo(writer);
            }
            else
            {
                writer.Write((byte)0);
            }

            // number of replicas
            writer.Write((short)Replicas.Count());
            foreach (var replica in Replicas)
            {
                replica.WriteTo(writer);
            }

            // number of in-sync replicas
            writer.Write((short)Isr.Count());
            foreach (var isr in Isr)
            {
                isr.WriteTo(writer);
            }

            writer.Write((byte)0);
        }
Beispiel #3
0
        public JObject ToJson()
        {
            var json = new JObject();

            json["replicas"] = new JArray(Replicas.Select(p => p.ToJson()));
            json["containerBackupFactor"] = ContainerBackupFactor;
            json["selectors"]             = new JArray(Selectors.Select(p => p.ToJson()));
            json["filters"] = new JArray(Filters.Select(p => p.ToJson()));
            return(json);
        }
        /// <summary>
        ///     Returns a JSON representation of the PartitionMetadata object.
        /// </summary>
        /// <returns>
        ///     A JSON representation the PartitionMetadata object.
        /// </returns>
        public override string ToString()
        {
            var result = new StringBuilder();

            result.Append($"{{ \"PartitionId\": {PartitionId}, \"Leader\": {Leader}, \"Replicas\": [");
            result.Append(string.Join(",", Replicas.Select(r => $" {r.ToString()}")));
            result.Append(" ], \"InSyncReplicas\": [");
            result.Append(string.Join(",", InSyncReplicas.Select(r => $" {r.ToString()}")));
            result.Append($" ], \"Error\": \"{Error.Code.ToString()}\" }}");
            return(result.ToString());
        }
Beispiel #5
0
 /// <inheritdoc />
 public override int GetHashCode()
 {
     unchecked {
         var hashCode = (int)ErrorCode;
         hashCode = (hashCode * 397) ^ PartitionId;
         hashCode = (hashCode * 397) ^ LeaderId;
         hashCode = (hashCode * 397) ^ (Replicas?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (Isrs?.GetHashCode() ?? 0);
         return(hashCode);
     }
 }
Beispiel #6
0
        protected override async Task OnEnumChildren(bool deep)
        {
            var replicas = await _fabricClient.QueryManager.GetReplicaListAsync(_partition.PartitionInformation.Id);

            foreach (var replica in replicas)
            {
                var sfReplica = new SFReplica(_fabricClient, this, replica);
                Replicas.Add(sfReplica);
                if (deep)
                {
                    await sfReplica.EnumChildren(deep);
                }
            }

            Loadinformation = await _fabricClient.QueryManager.GetPartitionLoadInformationAsync(_partition.PartitionInformation.Id);
        }
Beispiel #7
0
 /// <inheritdoc />
 public bool Equals(Partition other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(ErrorCode == other.ErrorCode &&
            PartitionId == other.PartitionId &&
            LeaderId == other.LeaderId &&
            Replicas.HasEqualElementsInOrder(other.Replicas) &&
            Isrs.HasEqualElementsInOrder(other.Isrs));
 }