Example #1
0
 private static void HandleServiceBindings(YamlSequenceNode yamlSequenceNode, List <ConfigServiceBinding> bindings)
 {
     foreach (var child in yamlSequenceNode.Children)
     {
         YamlParser.ThrowIfNotYamlMapping(child);
         var binding = new ConfigServiceBinding();
         HandleServiceBindingNameMapping((YamlMappingNode)child, binding);
         bindings.Add(binding);
     }
 }
Example #2
0
        private static void ParsePortSequence(YamlSequenceNode portSequence, ConfigService service)
        {
            foreach (var port in portSequence)
            {
                var portString = YamlParser.GetScalarValue(port);
                var binding    = new ConfigServiceBinding();
                if (portString.Contains(':'))
                {
                    var ports = portString.Split(':');
                    binding.Port          = int.Parse(ports[0]);
                    binding.ContainerPort = int.Parse(ports[1]);
                }
                else
                {
                    binding.Port          = int.Parse(portString);
                    binding.ContainerPort = int.Parse(portString);
                }

                // TODO how to specify protocol with docker compose. Using http for now.
                binding.Protocol = "http";
                service.Bindings.Add(binding);
            }
        }
Example #3
0
        private static void HandleServiceBindingNameMapping(YamlMappingNode yamlMappingNode, ConfigServiceBinding 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 "connectionString":
                    binding.ConnectionString = 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 "containerPort":
                    if (!int.TryParse(YamlParser.GetScalarValue(key, child.Value), out var containerPort))
                    {
                        throw new TyeYamlException(child.Value.Start, CoreStrings.FormatMustBeAnInteger(key));
                    }

                    binding.ContainerPort = containerPort;
                    break;

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

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

                default:
                    throw new TyeYamlException(child.Key.Start, CoreStrings.FormatUnrecognizedKey(key));
                }
            }
        }