// todo: remove after feature-flag DistributedTask.EvaluateContainerOnRunner is enabled everywhere internal static TemplateToken ConvertToTemplateToken(ContainerResource resource) { var result = new MappingToken(null, null, null); var image = resource.Image; if (!string.IsNullOrEmpty(image)) { result.Add(new StringToken(null, null, null, "image"), new StringToken(null, null, null, image)); } var options = resource.Options; if (!string.IsNullOrEmpty(options)) { result.Add(new StringToken(null, null, null, "options"), new StringToken(null, null, null, options)); } var environment = resource.Environment; if (environment?.Count > 0) { var mapping = new MappingToken(null, null, null); foreach (var pair in environment) { mapping.Add(new StringToken(null, null, null, pair.Key), new StringToken(null, null, null, pair.Value)); } result.Add(new StringToken(null, null, null, "env"), mapping); } var ports = resource.Ports; if (ports?.Count > 0) { var sequence = new SequenceToken(null, null, null); foreach (var item in ports) { sequence.Add(new StringToken(null, null, null, item)); } result.Add(new StringToken(null, null, null, "ports"), sequence); } var volumes = resource.Volumes; if (volumes?.Count > 0) { var sequence = new SequenceToken(null, null, null); foreach (var item in volumes) { sequence.Add(new StringToken(null, null, null, item)); } result.Add(new StringToken(null, null, null, "volumes"), sequence); } return(result); }
private ContainerResource(ContainerResource referenceToCopy) : base(referenceToCopy) { }