public static SafetyCheck CreateRandomSafetyCheck(this Random random) { SafetyCheck result; SafetyCheckKind kind = random.CreateRandom <SafetyCheckKind>(); switch (kind) { case SafetyCheckKind.EnsureSeedNodeQuorum: result = new SeedNodeSafetyCheck(kind); break; case SafetyCheckKind.EnsurePartitionQuorum: case SafetyCheckKind.WaitForInBuildReplica: case SafetyCheckKind.WaitForPrimaryPlacement: case SafetyCheckKind.WaitForPrimarySwap: case SafetyCheckKind.WaitForReconfiguration: case SafetyCheckKind.EnsureAvailability: result = new PartitionSafetyCheck(kind, random.CreateRandom <Guid>()); break; default: result = new UnknownSafetyCheck(kind); break; } return(result); }
/// <inheritdoc /> public override object ReadJson( JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { ThrowIf.Null(reader, "reader"); if (reader.TokenType == JsonToken.Null) { return(null); } SafetyCheck result = null; var wrapperJObject = JObject.Load(reader); JToken safetyCheckJToken = wrapperJObject[JsonSerializerImplConstants.SafetyCheck]; if (safetyCheckJToken != null) { JToken safetyCheckKindJToken = safetyCheckJToken[JsonSerializerImplConstants.Kind]; SafetyCheckKind kind = (SafetyCheckKind)safetyCheckKindJToken.ToObject(typeof(SafetyCheckKind)); switch (kind) { case SafetyCheckKind.EnsureSeedNodeQuorum: result = new SeedNodeSafetyCheck(kind); break; case SafetyCheckKind.EnsurePartitionQuorum: case SafetyCheckKind.WaitForInBuildReplica: case SafetyCheckKind.WaitForPrimaryPlacement: case SafetyCheckKind.WaitForPrimarySwap: case SafetyCheckKind.WaitForReconfiguration: case SafetyCheckKind.EnsureAvailability: JToken partitionIdJToken = safetyCheckJToken[JsonSerializerImplConstants.PartitionId]; Guid partitionId = partitionIdJToken.ToObject <Guid>(serializer); result = new PartitionSafetyCheck(kind, partitionId); break; default: result = new UnknownSafetyCheck(kind); break; } } return(result); }
internal static unsafe PartitionSafetyCheck FromNative( SafetyCheckKind kind, NativeTypes.FABRIC_PARTITION_SAFETY_CHECK *nativePtr) { return(new PartitionSafetyCheck(kind, nativePtr->PartitionId)); }
internal PartitionSafetyCheck(SafetyCheckKind kind, Guid partitionId) : base(kind) { this.PartitionId = partitionId; }
/// <summary> /// <para> /// Instantiates a <see cref="System.Fabric.SafetyCheck" /> object with the specified kind. /// Can only be invoked from derived classes. /// </para> /// </summary> /// <param name="kind"> /// <para>The safety check kind.</para> /// </param> internal protected SafetyCheck(SafetyCheckKind kind) { this.Kind = kind; }
internal static unsafe SeedNodeSafetyCheck FromNative( SafetyCheckKind kind, NativeTypes.FABRIC_SEED_NODE_SAFETY_CHECK *nativePtr) { return(new SeedNodeSafetyCheck(kind)); }
internal SeedNodeSafetyCheck(SafetyCheckKind kind) : base(kind) { }
internal UnknownSafetyCheck(SafetyCheckKind kind) : base(kind) { }