Пример #1
0
        public IEnumerable <Node> ToNodes(bool forceHttp = false)
        {
            foreach (var kv in nodes.Where(n => n.Value.HttpEnabled))
            {
                var info         = kv.Value;
                var httpEndpoint = info.http?.publish_address;
                if (string.IsNullOrWhiteSpace(httpEndpoint))
                {
                    httpEndpoint = kv.Value.http?.bound_address.FirstOrDefault();
                }
                if (string.IsNullOrWhiteSpace(httpEndpoint))
                {
                    continue;
                }

                var uri  = SniffParser.ParseToUri(httpEndpoint, forceHttp);
                var node = new Node(uri)
                {
                    Name           = info.name,
                    Id             = kv.Key,
                    MasterEligible = info.MasterEligible,
                    HoldsData      = info.HoldsData,
                    IngestEnabled  = info.IngestEnabled,
                    HttpEnabled    = info.HttpEnabled,
                    Settings       = new ReadOnlyDictionary <string, object>(info.settings)
                };
                yield return(node);
            }
        }
Пример #2
0
        public IEnumerable <Node> ToNodes(bool forceHttp = false)
        {
            foreach (var kv in nodes.Where(n => n.Value.HttpEnabled))
            {
                var info         = kv.Value;
                var httpEndpoint = info.http?.publish_address;
                if (string.IsNullOrWhiteSpace(httpEndpoint))
                {
                    httpEndpoint = kv.Value.http?.bound_address.FirstOrDefault();
                }
                if (string.IsNullOrWhiteSpace(httpEndpoint))
                {
                    continue;
                }

                var uri  = SniffParser.ParseToUri(httpEndpoint, forceHttp);
                var node = new Node(uri)
                {
                    Name           = kv.Value.name,
                    Id             = kv.Key,
                    MasterEligible = kv.Value.MasterEligible,
                    HoldsData      = kv.Value.HoldsData,
                    HttpEnabled    = kv.Value.HttpEnabled
                };
                //TODO selector
                yield return(node);
            }
        }