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);
            }
        }
Exemple #2
0
        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);
            }
        }