public ConsulService() { this.agentSender = new ConsulAgentSender(); this.catalogSender = new ConsulCatalogSender(); }
static void RegisterService() { Console.Clear(); Console.Write("Service Name: "); var name = Console.ReadLine(); Console.Write("Address: "); var address = Console.ReadLine(); Console.Write("Port: "); var port = ushort.Parse(Console.ReadLine()); var registerRequest = new RegisterServiceRequest(name, address, port); string addTagChoice; do { Console.Write("Add Tag? (Y/N) => "); addTagChoice = Console.ReadKey().KeyChar.ToString().ToUpper(); if (addTagChoice == "Y") { Console.Write("\nTag: "); registerRequest.Tags.Add(Console.ReadLine()); } Console.Clear(); } while (addTagChoice != "N"); string addCheckChoice; do { Console.Write("Add Check? (Y/N) => "); addCheckChoice = Console.ReadKey().KeyChar.ToString().ToUpper(); if (addCheckChoice == "Y") { var checkRequest = CreateCheck(); if (checkRequest != null) { registerRequest.Checks.Add(checkRequest); } } Console.Clear(); } while (addCheckChoice != "N"); var consulAgentSender = new ConsulAgentSender(); consulAgentSender.RegisterService(registerRequest); Console.Clear(); AnyKey(); }
static void ShowSelf() { var consulAgentSender = new ConsulAgentSender(); var result = consulAgentSender.ShowSelf(); Console.Clear(); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Local Agent Configuration"); Console.WriteLine("-------------------------"); Console.ResetColor(); Console.WriteLine("\nConfig:"); Console.WriteLine("\tBootstrap: {0}", result.Config.IsBootstrapped); Console.WriteLine("\tServer: {0}", result.Config.IsServer); Console.WriteLine("\tData Center: {0}", result.Config.DataCenter); Console.WriteLine("\tData Directory: {0}", result.Config.DataDir); Console.WriteLine("\tPrimary DNS Recursor: {0}", result.Config.DnsRecursor); Console.WriteLine("\tSecondary DNS Recursors: "); foreach(var item in result.Config.DnsRecursors) { Console.WriteLine("\t\t{0}", item); } Console.WriteLine("\tDomain: {0}", result.Config.Domain); Console.WriteLine("\tLog Level: {0}", result.Config.LogLevel); Console.WriteLine("\tNode Name: {0}", result.Config.NodeName); Console.WriteLine("\tClient Address: {0}", result.Config.ClientAddress); Console.WriteLine("\tBind Address: {0}", result.Config.BindAddress); Console.WriteLine("\tAdvertise Address: {0}", result.Config.AdvertiseAddress); Console.WriteLine("\tPorts:"); foreach(var item in result.Config.Ports) { Console.WriteLine("\t\t{0}: {1}", item.Key, item.Value); } Console.WriteLine("\tLeave On Term: {0}", result.Config.LeaveOnTerm); Console.WriteLine("\tSkip Leave on Interrupt: {0}", result.Config.SkipLeaveOnInt); Console.WriteLine("\tStatistics Site Address: {0}", result.Config.StatSiteAddress); Console.WriteLine("\tProctocol: {0}", result.Config.Protocol); Console.WriteLine("\tDebug Enabled: {0}", result.Config.IsDebugEnabled); Console.WriteLine("\tVerify Incoming: {0}", result.Config.VerifyIncoming); Console.WriteLine("\tVerify Outgoing: {0}", result.Config.VerifyOutgoing); Console.WriteLine("\tCertificate Authority File: {0}", result.Config.CertificateAuthorityFile); Console.WriteLine("\tCertificate File: {0}", result.Config.CertificateFile); Console.WriteLine("\tKey File: {0}", result.Config.KeyFile); Console.WriteLine("\tJoin to cluster on start addresses: "); foreach (var item in result.Config.StartJoin) { Console.WriteLine("\t\t{0}", item); } Console.WriteLine("\tUI Directory: {0}", result.Config.UiDir); Console.WriteLine("\tPID File: {0}", result.Config.PidFile); Console.WriteLine("\tSyslog Enabled: {0}", result.Config.IsSyslogEnabled); Console.WriteLine("\tRejoin Cluster After Leave: {0}", result.Config.RejoinAfterLeave); AnyKey(); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Local Member Information"); Console.WriteLine("------------------------"); Console.ResetColor(); Console.WriteLine("\tNode Name: {0}", result.Member.Name); Console.WriteLine("\tAddress: {0}", result.Member.Address); Console.WriteLine("\tPort: {0}", result.Member.Port); Console.WriteLine("\tTags:"); foreach (var tag in result.Member.Tags) { Console.Write("\t\t"); Console.ForegroundColor = ConsoleColor.Blue; Console.Write(tag.Key); Console.ResetColor(); Console.WriteLine(" : {0}", tag.Value); } Console.WriteLine("\n\tStatus: {0}", result.Member.Status); Console.WriteLine("\tProtocol Max: {0}", result.Member.ProtocolMax); Console.WriteLine("\tProtocol Cur: {0}", result.Member.ProtocolCur); Console.WriteLine("\tDelegate Min: {0}", result.Member.DelegateMin); Console.WriteLine("\tDelegate Max: {0}", result.Member.DelegateMax); Console.WriteLine("\tDelegate Cur: {0}", result.Member.DelegateCur); AnyKey(); }
static void ListMembers(bool getWanMembers) { var consulAgentSender = new ConsulAgentSender(); List<MemberResponse> results; if (getWanMembers) { results = consulAgentSender.GetWanMembers(); } else { results = consulAgentSender.GetLanMembers(); } Console.Clear(); Console.WriteLine("{0} Members: ", getWanMembers ? "WAN" : "LAN"); foreach (var result in results ?? new List<MemberResponse>()) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Node {0}", result.Name); Console.ResetColor(); Console.WriteLine("\tAddress: {0}", result.Address); Console.WriteLine("\tPort: {0}", result.Port); Console.WriteLine("\tTags:"); foreach (var tag in result.Tags) { Console.Write("\t\t"); Console.ForegroundColor = ConsoleColor.Blue; Console.Write(tag.Key); Console.ResetColor(); Console.WriteLine(" : {0}", tag.Value); } Console.WriteLine("\n\tStatus: {0}", result.Status); Console.WriteLine("\tProtocol Min: {0}", result.ProtocolMin); Console.WriteLine("\tProtocol Max: {0}", result.ProtocolMax); Console.WriteLine("\tProtocol Cur: {0}", result.ProtocolCur); Console.WriteLine("\tDelegate Min: {0}", result.DelegateMin); Console.WriteLine("\tDelegate Max: {0}", result.DelegateMax); Console.WriteLine("\tDelegate Cur: {0}", result.DelegateCur); } AnyKey(); }
static void ListChecks() { var consulAgentSender = new ConsulAgentSender(); var results = consulAgentSender.GetLocalChecks(); Console.Clear(); Console.WriteLine("Registered Checks: "); foreach (var result in results) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Check {0}:", result.Key); Console.ResetColor(); Console.WriteLine("\tNode: {0}", result.Value.Node); Console.WriteLine("\tCheck ID: {0}", result.Value.CheckId); Console.WriteLine("\tName: {0}", result.Value.Name); Console.Write("\t"); CheckStatusValue status = result.Value.Status; switch (status) { case CheckStatusValue.passing: Console.ForegroundColor = ConsoleColor.Green; break; case CheckStatusValue.critical: Console.ForegroundColor = ConsoleColor.White; Console.BackgroundColor = ConsoleColor.Red; break; case CheckStatusValue.warning: case CheckStatusValue.any: case CheckStatusValue.unkown: Console.ForegroundColor = ConsoleColor.Yellow; break; } Console.WriteLine("Status: {0}", result.Value.Status); Console.ResetColor(); Console.WriteLine("\tNotes: {0}", result.Value.Notes); Console.WriteLine("\tOutput: {0}", result.Value.Output); Console.WriteLine("\tService Id: {0}", result.Value.ServiceID); Console.WriteLine("\tService Name: {0}", result.Value.ServiceName); } AnyKey(); }
static void ListServices() { var consulAgentSender = new ConsulAgentSender(); var results = consulAgentSender.GetLocalServices(); Console.WriteLine("Registered Services: "); foreach (var result in results) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Service: " + result.Key); Console.ResetColor(); Console.WriteLine("\tID: " + result.Value.ID); Console.WriteLine("\tTags: "); foreach (var tag in result.Value.Tags ?? new List<string>()) { Console.WriteLine("\t\t" + tag); } Console.WriteLine("\tAddress: " + result.Value.Address); Console.WriteLine("\tPort: " + result.Value.Port + "\n"); } AnyKey(); }