/// <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(); }
/// <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); }
/// <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>(); }