/// <inheritdoc/> protected override void ProcessRecordInternal() { var clusterHealthPolicy = new ClusterHealthPolicy( considerWarningAsError: this.ConsiderWarningAsError, maxPercentUnhealthyNodes: this.MaxPercentUnhealthyNodes, maxPercentUnhealthyApplications: this.MaxPercentUnhealthyApplications, applicationTypeHealthPolicyMap: this.ApplicationTypeHealthPolicyMap); var chaosContext = new ChaosContext( map: this.Map?.ToDictionary <string, string>()); var chaosTargetFilter = new ChaosTargetFilter( nodeTypeInclusionList: this.NodeTypeInclusionList, applicationInclusionList: this.ApplicationInclusionList); var chaosParameters = new ChaosParameters( timeToRunInSeconds: this.TimeToRunInSeconds, maxClusterStabilizationTimeoutInSeconds: this.MaxClusterStabilizationTimeoutInSeconds, maxConcurrentFaults: this.MaxConcurrentFaults, enableMoveReplicaFaults: this.EnableMoveReplicaFaults, waitTimeBetweenFaultsInSeconds: this.WaitTimeBetweenFaultsInSeconds, waitTimeBetweenIterationsInSeconds: this.WaitTimeBetweenIterationsInSeconds, clusterHealthPolicy: clusterHealthPolicy, context: chaosContext, chaosTargetFilter: chaosTargetFilter); this.ServiceFabricClient.ChaosClient.StartChaosAsync( chaosParameters: chaosParameters, serverTimeout: this.ServerTimeout, cancellationToken: this.CancellationToken).GetAwaiter().GetResult(); Console.WriteLine("Success!"); }
/// <summary> /// Serializes the object to JSON. /// </summary> /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param> /// <param name="obj">The object to serialize to JSON.</param> internal static void Serialize(JsonWriter writer, ChaosContext obj) { // Required properties are always serialized, optional properties are serialized when not null. writer.WriteStartObject(); if (obj.Map != null) { writer.WriteDictionaryProperty(obj.Map, "Map", (w, v) => writer.WriteStringValue(v)); } writer.WriteEndObject(); }