public static RepoInfo Create( Repo model, string registry, string modelRegistryName, ManifestFilter manifestFilter, IOptionsInfo options, VariableHelper variableHelper) { RepoInfo repoInfo = new RepoInfo(); repoInfo.Model = model; repoInfo.FullModelName = (string.IsNullOrEmpty(modelRegistryName) ? string.Empty : $"{modelRegistryName}/") + model.Name; repoInfo.Id = model.Id ?? model.Name; if (options.RepoOverrides.TryGetValue(model.Name, out string nameOverride)) { repoInfo.Name = nameOverride; } else { registry = string.IsNullOrEmpty(registry) ? string.Empty : $"{registry}/"; repoInfo.Name = registry + options.RepoPrefix + model.Name; } repoInfo.AllImages = model.Images .Select(image => ImageInfo.Create(image, repoInfo.FullModelName, repoInfo.Name, manifestFilter, variableHelper)) .ToArray(); repoInfo.FilteredImages = repoInfo.AllImages .Where(image => image.FilteredPlatforms.Any()) .ToArray(); return(repoInfo); }
public VariableHelper( Manifest manifest, IOptionsInfo options, Func <string, TagInfo> getTagById) { GetTagById = getTagById; Manifest = manifest; Options = options; }
public static RepoInfo Create(Repo model, ManifestFilter manifestFilter, IOptionsInfo options, VariableHelper variableHelper) { RepoInfo repoInfo = new RepoInfo(); repoInfo.Model = model; repoInfo.HasOverriddenName = options.RepoOverrides.TryGetValue(model.Name, out string nameOverride); repoInfo.Name = repoInfo.HasOverriddenName ? nameOverride : model.Name; repoInfo.Images = model.Images .Select(image => ImageInfo.Create(image, repoInfo.Name, manifestFilter, variableHelper)) .ToArray(); return(repoInfo); }
public static ManifestInfo Create(Manifest model, ManifestFilter manifestFilter, IOptionsInfo options) { ManifestInfo manifestInfo = new ManifestInfo(); manifestInfo.Model = model; manifestInfo.Registry = options.RegistryOverride ?? model.Registry; manifestInfo.VariableHelper = new VariableHelper(model, options, manifestInfo.GetTagById, manifestInfo.GetRepoById); manifestInfo.AllRepos = manifestInfo.Model.Repos .Select(repo => RepoInfo.Create( repo, manifestInfo.Registry, model.Registry, manifestFilter, options, manifestInfo.VariableHelper)) .ToArray(); IEnumerable <string> repoNames = manifestInfo.AllRepos.Select(repo => repo.Name).ToArray(); foreach (PlatformInfo platform in manifestInfo.AllRepos.SelectMany(repo => repo.AllImages).SelectMany(image => image.AllPlatforms)) { platform.Initialize(repoNames, manifestInfo.Registry); } IEnumerable <Repo> filteredRepoModels = manifestFilter.GetRepos(manifestInfo.Model); manifestInfo.FilteredRepos = manifestInfo.AllRepos .Where(repo => filteredRepoModels.Contains(repo.Model)) .ToArray(); return(manifestInfo); }
public static ManifestInfo Create(Manifest model, ManifestFilter manifestFilter, IOptionsInfo options) { ManifestInfo manifestInfo = new ManifestInfo(); manifestInfo.Model = model; manifestInfo.ManifestFilter = manifestFilter; manifestInfo.VariableHelper = new VariableHelper(model, options, manifestInfo.GetTagById); manifestInfo.Repos = manifestFilter.GetRepos(manifestInfo.Model) .Select(repo => RepoInfo.Create(repo, manifestFilter, options, manifestInfo.VariableHelper)) .ToArray(); manifestInfo.ActiveImages = manifestInfo.Repos .SelectMany(repo => repo.Images) .Where(image => image.ActivePlatforms.Any()) .ToArray(); return(manifestInfo); }