Example #1
0
        /// <summary>
        /// Updates the traffic manager settings.
        /// </summary>
        /// <param name="settings">The new settings.</param>
        public void UpdateSettings(TrafficSettings settings)
        {
            Covenant.Requires <ArgumentNullException>(settings != null);

            hive.Consul.Client.KV.PutObject(GetProxySettingsKey(), settings, Formatting.Indented).Wait();
            Update();
        }
Example #2
0
        /// <summary>
        /// Returns the traffic manager definition including its settings and rules.
        /// </summary>
        /// <returns>The <see cref="TrafficDefinition"/>.</returns>
        /// <exception cref="HiveException">Thrown if the traffic manager definition could not be loaded.</exception>
        public TrafficDefinition GetDefinition()
        {
            // Fetch the proxy settings and all of its rules to create a full [TrafficManagerDefinition].

            var proxyDefinition = new TrafficDefinition()
            {
                Name = this.Name
            };
            var proxySettingsKey = GetProxySettingsKey();

            if (hive.Consul.Client.KV.Exists(proxySettingsKey).Result)
            {
                proxyDefinition.Settings = TrafficSettings.ParseJson(hive.Consul.Client.KV.GetString(proxySettingsKey).Result);
            }
            else
            {
                throw new HiveException($"Settings for traffic manager [{Name}] do not exist or could not be loaded.");
            }

            foreach (var rule in ListRules())
            {
                proxyDefinition.Rules.Add(rule.Name, rule);
            }

            return(proxyDefinition);
        }
Example #3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="trafficManagerName">The traffic manager name.</param>
        /// <param name="settings">The traffic manager settings.</param>
        /// <param name="certificates">The optional certificates as name/value tuples.</param>
        public TrafficValidationContext(string trafficManagerName, TrafficSettings settings, Dictionary <string, TlsCertificate> certificates = null)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(trafficManagerName));

            this.TrafficManagerName = trafficManagerName;
            this.Settings           = settings;
            this.Certificates       = certificates ?? new Dictionary <string, TlsCertificate>();
        }