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); } }
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)); } } }
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;