/// <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!");
        }
Пример #2
0
        /// <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();
        }