コード例 #1
0
 public ConsulService()
 {
     this.agentSender = new ConsulAgentSender();
     this.catalogSender = new ConsulCatalogSender();
 }
コード例 #2
0
		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();
		}
コード例 #3
0
		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();
		}
コード例 #4
0
		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();
		}
コード例 #5
0
		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();
		}
コード例 #6
0
		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();
		}