public static void SetHostOverride(string serviceName, string host) { SetUpStorage(); var overrides = TryGetValue <RequestOverrides>(OVERRIDES_KEY); if (overrides == null) { overrides = new RequestOverrides(); SetValue(OVERRIDES_KEY, overrides); } if (overrides.Hosts == null) { overrides.Hosts = new List <HostOverride>(); } var hostOverride = overrides.Hosts.SingleOrDefault(o => o.ServiceName == serviceName); if (hostOverride == null) { hostOverride = new HostOverride { ServiceName = serviceName }; overrides.Hosts.Add(hostOverride); } hostOverride.Host = host; }
public static void SetHostOverride(string serviceName, string host, int?port = null) { var overrides = (RequestOverrides)Implementation.Get(OVERRIDES_KEY); if (overrides == null) { overrides = new RequestOverrides(); Implementation.Set(OVERRIDES_KEY, overrides); } if (overrides.Hosts == null) { overrides.Hosts = new List <HostOverride>(); } var hostOverride = overrides.Hosts.SingleOrDefault(o => o.ServiceName == serviceName); if (hostOverride == null) { hostOverride = new HostOverride { ServiceName = serviceName, }; overrides.Hosts.Add(hostOverride); } hostOverride.Host = host; hostOverride.Port = port; }
public void CheckRequestOverridesShallowClone() { RequestOverrides ro = new RequestOverrides(); HostOverride ho1 = new HostOverride { Host = "testHost1", Port = 1234, ServiceName = "testService1" }; ho1.AdditionalProperties = new Dictionary <string, object>(); ho1.AdditionalProperties.Add("ho1Key", "ho1Value"); HostOverride ho2 = new HostOverride { Host = "testHost2", Port = 1235, ServiceName = "testService2" }; ho2.AdditionalProperties = new Dictionary <string, object>(); ho2.AdditionalProperties.Add("ho2Key", "ho2Value"); ro.Hosts = new List <HostOverride>(new [] { ho1, ho2 }); ro.PreferredEnvironment = "pe1"; ro.AdditionalProperties = new Dictionary <string, object>(); ro.AdditionalProperties.Add("roKey", "roValue"); RequestOverrides roResult = ro.ShallowCloneWithOverrides("pe2", CacheSuppress.UpToNextServices); Assert.AreEqual(ro.Hosts.Count, roResult.Hosts.Count); Assert.AreEqual(ro.Hosts.Join(roResult.Hosts, h => new { h.Host, h.Port, h.ServiceName }, hr => new { hr.Host, hr.Port, hr.ServiceName }, (h, hr) => hr).Count(), roResult.Hosts.Count); Assert.AreEqual(roResult.Hosts[0].AdditionalProperties["ho1Key"], "ho1Value"); Assert.AreEqual(roResult.Hosts[1].AdditionalProperties["ho2Key"], "ho2Value"); Assert.AreEqual(roResult.AdditionalProperties["roKey"], "roValue"); Assert.AreEqual(ro.PreferredEnvironment, "pe1"); Assert.AreEqual(roResult.PreferredEnvironment, "pe2"); Assert.AreEqual(roResult.SuppressCaching, CacheSuppress.UpToNextServices); }
public static void SetPreferredEnvironment(string preferredEnvironment) { RequestOverrides overrides = (RequestOverrides)Implementation.Get(OVERRIDES_KEY); if (overrides == null) { overrides = new RequestOverrides(); Implementation.Set(OVERRIDES_KEY, overrides); } overrides.PreferredEnvironment = preferredEnvironment; }
public static void SetPreferredEnvironment(string preferredEnvironment) { SetUpStorage(); RequestOverrides overrides = TryGetValue <RequestOverrides>(OVERRIDES_KEY); if (overrides == null) { overrides = new RequestOverrides(); SetValue(OVERRIDES_KEY, overrides); } overrides.PreferredEnvironment = preferredEnvironment; }
/// <summary> /// warning: CacheSuppress value of 'RecursiveAllDownstreamServices' will cause all downstream services to not use caching and might cause them performance issues. /// It should be used sparingly. /// </summary> public static IDisposable SuppressCaching(CacheSuppress cacheSuppress) { var overrides = (RequestOverrides)Implementation.Get(OVERRIDES_KEY); if (overrides == null) { overrides = new RequestOverrides(); Implementation.Set(OVERRIDES_KEY, overrides); } var prevCacheSuppress = overrides.SuppressCaching; overrides.SuppressCaching = cacheSuppress; return(new DisposableAction <CacheSuppress?>(prevCacheSuppress, x => { ((RequestOverrides)Implementation.Get(OVERRIDES_KEY)).SuppressCaching = x; })); }
public void HttpServiceRequestShouldContainAdditionaPropertiesRecursively() { TracingData tData = new TracingData { ParentSpanID = "ParentSpanID1", SpanID = "SpanID1" }; RequestOverrides requestOverrides = new RequestOverrides { Hosts = new[] { new HostOverride { ServiceName = "Service1", Host = "HostNameOverride" } }.ToList(), SuppressCaching = CacheSuppress.RecursiveAllDownstreamServices }; InvocationTarget invocationTarget = new InvocationTarget { MethodName = "MethodName1" }; HttpServiceRequest serviceRequest = new HttpServiceRequest { TracingData = tData, Overrides = requestOverrides, Target = invocationTarget }; dynamic jObject = JObject.FromObject(serviceRequest); HttpServiceRequest serviceRequestResult = DeserializeObject <HttpServiceRequest>(jObject); AssertShouldBeNull(serviceRequestResult); jObject.Add("ServiceRequestData", "ServiceRequestData1"); jObject["TracingData"].Add("TracingData", "TracingData1"); jObject["Overrides"].Add("OverridesData", "OverridesData1"); jObject["Overrides"]["Hosts"][0].Add("HostOverrideData", "HostOverrideData1"); jObject["Target"].Add("TargetData", "TargetData1"); serviceRequestResult = DeserializeObject <HttpServiceRequest>(jObject); AssertShouldNotBeNull(serviceRequestResult); }
internal static void SetOverrides(RequestOverrides overrides) { SetValue(OVERRIDES_KEY, overrides); }
internal static void SetOverrides(RequestOverrides overrides) { Implementation.Set(OVERRIDES_KEY, overrides); }