Exemple #1
0
 private static void HandleIngressBindings(YamlSequenceNode yamlSequenceNode, List <ConfigIngressBinding> bindings)
 {
     foreach (var child in yamlSequenceNode.Children)
     {
         YamlParser.ThrowIfNotYamlMapping(child);
         var binding = new ConfigIngressBinding();
         HandleIngressBindingMapping((YamlMappingNode)child, binding);
         bindings.Add(binding);
     }
 }
Exemple #2
0
        private static void HandleIngressBindingMapping(YamlMappingNode yamlMappingNode, ConfigIngressBinding binding)
        {
            foreach (var child in yamlMappingNode !.Children)
            {
                var key = YamlParser.GetScalarValue(child.Key);

                switch (key)
                {
                case "name":
                    binding.Name = YamlParser.GetScalarValue(key, child.Value);
                    break;

                case "port":
                    if (!int.TryParse(YamlParser.GetScalarValue(key, child.Value), out var port))
                    {
                        throw new TyeYamlException(child.Value.Start, CoreStrings.FormatMustBeAnInteger(key));
                    }

                    binding.Port = port;
                    break;

                case "protocol":
                    binding.Protocol = YamlParser.GetScalarValue(key, child.Value);
                    break;

                default:
                    throw new TyeYamlException(child.Key.Start, CoreStrings.FormatUnrecognizedKey(key));
                }
            }
        }
Exemple #3
0
        private static void HandleIngressBindingMapping(YamlMappingNode yamlMappingNode, ConfigIngressBinding binding)
        {
            foreach (var child in yamlMappingNode !.Children)
            {
                var key = YamlParser.GetScalarValue(child.Key);

                switch (key)
                {
                case "name":
                    binding.Name = YamlParser.GetScalarValue(key, child.Value);
                    break;

                case "port":
                    if (!int.TryParse(YamlParser.GetScalarValue(key, child.Value), out var port))
                    {
                        throw new TyeYamlException(child.Value.Start, CoreStrings.FormatMustBeAnInteger(key));
                    }

                    binding.Port = port;
                    break;

                case "ip":
                    if (YamlParser.GetScalarValue(key, child.Value) is string ipString &&
                        (IPAddress.TryParse(ipString, out var ip) || ipString == "*" || ipString.Equals("localhost", StringComparison.OrdinalIgnoreCase)))
                    {
                        binding.IPAddress = ipString;
                    }
                    else
                    {
                        throw new TyeYamlException(child.Value.Start, CoreStrings.FormatMustBeAnIPAddress(key));
                    }
                    break;