private static Task Behaviour(Context arg1, CancellationToken arg2) { throw new PostgresException { SqlState = ChaosPolicyShared.GetRandomString(RetryablePostGreErrors.Errors.ToList()) }; }
private static InjectBehaviourPolicy CreateRetryChaos(IPolicies policies) { return(MonkeyPolicy.InjectBehaviour((context) => throw new SqliteException( "Policy chaos testing", Convert.ToInt32(ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>())), (context) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts), (context) => policies.EnableChaos)); }
private static InjectOutcomePolicy CreateRetryChaos(IPolicies policies) { return(MonkeyPolicy.InjectException(with => with.Fault(Behaviour()) .InjectionRate((context, token) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts)) .Enabled(policies.EnableChaos) )); }
private static InjectBehaviourPolicy CreateRetryChaos(IPolicies policies) { return(MonkeyPolicy.InjectBehaviour( (context) => throw new PostgresException { SqlState = ChaosPolicyShared.GetRandomString(RetryablePostGreErrors.Errors.ToList()) }, (context) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts), (context) => policies.EnableChaos)); }
private static AsyncInjectOutcomePolicy CreateRetryChaosAsync(IPolicies policies) { var fault = new PostgresException(string.Empty, string.Empty, string.Empty, ChaosPolicyShared.GetRandomString(RetryablePostGreErrors.Errors.ToList())); return(MonkeyPolicy.InjectExceptionAsync(with => with.Fault(fault) .InjectionRate((context, token) => ChaosPolicyShared.InjectionRateAsync(context, RetryConstants.RetryCount, RetryAttempts)) .Enabled(policies.EnableChaos) )); }
private static InjectOutcomePolicy CreateRetryChaos(IPolicies policies) { var fault = new SQLiteException( (SQLiteErrorCode)ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>(), "Policy chaos testing"); return(MonkeyPolicy.InjectException(with => with.Fault(fault) .InjectionRate((context, token) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts)) .Enabled(policies.EnableChaos) )); }
private static void Behaviour(Context arg1) { SqlError sqlError = null; #if NETFULL sqlError = CreateInstance <SqlError>(Convert.ToInt32(ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>()), null, null, null, null, null, null); #else sqlError = CreateInstance <SqlError>(Convert.ToInt32(ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>()), null, null, null, null, null, null, null); #endif var collection = CreateInstance <SqlErrorCollection>(); #if NETFULL var errors = collection.GetPrivateFieldValue <ArrayList>("errors"); errors.Add(sqlError); #else var errors = collection.GetPrivateFieldValue <List <object> > ("_errors"); errors.Add(sqlError); #endif var e = CreateInstance <SqlException>(string.Empty, collection, null, Guid.NewGuid()); throw e; }
private static async Task <double> InjectionRate(Context arg, int retryAttempts, string keyName) { return(await ChaosPolicyShared.InjectionRateAsync(arg, retryAttempts, keyName)); }
private static async Task <bool> Enabled(Context arg, IPolicies policy) { return(await ChaosPolicyShared.RunAsync(() => policy.EnableChaos)); }
private static InjectBehaviourPolicy CreateRetryChaos(IPolicies policies) { return(MonkeyPolicy.InjectBehaviour(Behaviour, (context) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts), (context) => policies.EnableChaos)); }