Exemplo n.º 1
0
        public ImageViewModel(DockerService docker, ImagesListResponse image)
        {
            _docker            = docker;
            Name               = image.RepoTags?.ElementAt(0) ?? "---";
            ID                 = image.ID;
            ShortID            = ID.Substring(7, 12);
            IsRoot             = image.ParentID == string.Empty;
            Size               = image.Size;
            DisplaySize        = $"{((float)image.Size) / 1024 / 1024:F1}MB";
            Tags               = image.RepoTags !;
            _raw               = image;
            ConfirmDeleteImage = new Interaction <MessageBoxStandardParams, ButtonResult>();
            NewContainer       = new NewContainerViewModel(docker, this);

            Task.Run(async() =>
            {
                var d            = await docker.Client.Images.InspectImageAsync(ID);
                var exposedPorts = d.Config.ExposedPorts;
                if (exposedPorts == null)
                {
                    return;
                }
                var x        = exposedPorts.Keys.ToArray();
                ExposedPorts = x;
            });
        }
 internal static IEnumerable <DockerImage> CreateMany(ImagesListResponse wr)
 {
     foreach (string tag in wr.RepoTags)
     {
         var image = new DockerImage(wr.ID, wr.ParentID, tag, wr.Size);
         yield return(image);
     }
 }
 /// <summary>
 /// Uses either the list of IDs, or gets the list of IDs from the list of Images.
 /// </summary>
 /// <param name="images">The list of image objects to get values from.</param>
 /// <param name="ids">The list of ids.</param>
 /// <returns>List of IDs to process.</returns>
 internal static string[] GetImageIds(ImagesListResponse[] images, string[] ids)
 {
     if (ids != null && ids.Length != 0)
     {
         return ids;
     }
     
     return images.Select(i => i.ID).ToArray();
 }
Exemplo n.º 4
0
        public static string GetName(this ImagesListResponse container)
        {
            if (container is null)
            {
                throw new ArgumentNullException(nameof(container));
            }

            return(container.RepoTags?.Count > 0 ? container.RepoTags[0] : container.ID);
        }
        public async Task <ImagesListResponse> PhotosList()
        {
            var photos = await _context
                         .Photo
                         .Select(m => m.Path)
                         .ToListAsync();

            var response = new ImagesListResponse
            {
                BaseUrl     = $"{_storageConfig.Value.Url}/{_storageConfig.Value.PublicContainerName}",
                ImagesPaths = photos
            };

            return(response);
        }
Exemplo n.º 6
0
        public static ImagesListResponse FindParent(this ImagesListResponse image, IList <ImagesListResponse> allImages)
        {
            try
            {
                var parentImage = allImages.FirstOrDefault(i => i.ID == image.ParentID && (i.RepoTags.Count > 1 || i.RepoTags[0] != Env.NoneTag));
                if (parentImage != null)
                {
                    return(parentImage);
                }
            }
            catch (Exception)
            {
                return(null);
            }

            var intermediateImage = allImages.FirstOrDefault(i => i.ID == image.ParentID && i.RepoTags.Count == 1 && i.RepoTags[0] == Env.NoneTag);

            if (intermediateImage == null)
            {
                return(null);
            }

            return(intermediateImage.FindParent(allImages));
        }