Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public VariableHelper(
     Manifest manifest,
     IOptionsInfo options,
     Func <string, TagInfo> getTagById)
 {
     GetTagById = getTagById;
     Manifest   = manifest;
     Options    = options;
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }