public ShardValueDetail(string nodeName, ShardConfiguration configuration, string[] pathChunks) { NodeName = nodeName; NodeType = PathType.Shard; IsContainer = true; IsValid = true; Configuration = configuration; PathChunks = pathChunks; ChilderanTable = new PrintableTable(); ChilderanName = new List <string>(); ClusterInfo clusterInfo = ConfigurationConnection.ClusterInfo; ShardInfo shardInfo = clusterInfo.GetShard(nodeName); List <ServerInfo> running = new List <ServerInfo>(); if (shardInfo != null) { if (shardInfo.RunningNodes != null) { running = shardInfo.RunningNodes.Values.ToList(); } } ChilderanTable.AddHeader("Node IP Address", "Running Status", "Primary Status", "Priority"); foreach (ServerNode node in configuration.Servers.Nodes.Values) { ServerInfo serverInfo = null; string isPrimery = ProviderUtil.NOT_PRIMARY; string isRunning = ProviderUtil.NOT_RUNNING; if (running != null) { serverInfo = running.Find(x => x.Address.ip.Equals(node.Name)); } if (serverInfo != null) { if (running.Contains(serverInfo)) { isRunning = ProviderUtil.RUNNING; } if (shardInfo.Primary != null && serverInfo.Equals(shardInfo.Primary)) { isPrimery = ProviderUtil.PRIMARY; } } ChilderanTable.AddRow(node.Name, isRunning, isPrimery, node.Priority.ToString()); ChilderanName.Add(node.Name); } }
public ShardsDetail(string nodeName, DeploymentConfiguration configuration, string[] pathChunks) { NodeName = nodeName; NodeType = PathType.Shards; IsContainer = true; IsValid = true; Configuration = configuration; ChilderanTable = new PrintableTable(); PathChunks = pathChunks; ChilderanName = new List <string>(); ChilderanTable.AddHeader("Shard Name", "Node(s)", "Status", "Shard Port"); ClusterInfo clusterInfo = ConfigurationConnection.ClusterInfo; foreach (ShardConfiguration shard in configuration.Shards.Values) { List <string> status = new List <string>(); ShardInfo shardInfo = clusterInfo.GetShard(shard.Name); if (shardInfo != null) { foreach (String node in shard.Servers.Nodes.Keys) { string statusString = ""; if (shardInfo.RunningNodes.Values.ToList().Exists(k => k.Address.IpAddress.ToString().Equals(node))) { statusString = ProviderUtil.STARTED; if (shardInfo.Primary != null) { if (shardInfo.Primary.Address.IpAddress.ToString().Equals(node)) { statusString += ProviderUtil.PRIMARY_STATUS; } } } else { statusString = ProviderUtil.STOPPED; } status.Add(statusString); } } ChilderanTable.AddMultiLineRow(new string[] { shard.Name }, shard.Servers.Nodes.Keys.ToArray(), status.ToArray(), new string[] { shard.Port.ToString() }); ChilderanName.Add(shard.Name); } }