Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 8
0
 internal static void SetOverrides(RequestOverrides overrides)
 {
     SetValue(OVERRIDES_KEY, overrides);
 }
Ejemplo n.º 9
0
 internal static void SetOverrides(RequestOverrides overrides)
 {
     Implementation.Set(OVERRIDES_KEY, overrides);
 }