Exemple #1
0
        //we'll use for when we'll be creating the reference VM
        /// <summary>
        /// Gets available pre configured Azure templates.
        /// </summary>
        public List<VirtualMachineImageModel> GetAvailableTemplateImages(VmImageSourceEnum imageSource, 
			List<string> preferredImageFamilies = null)
        {
            //TODO: use the imageSource to provide the list of images from the gallery or from the storage
            IEnumerable<VirtualMachineOSImageListResponse.VirtualMachineOSImage> images = _compute.VirtualMachineOSImages.List();
            IEnumerable<VirtualMachineOSImageListResponse.VirtualMachineOSImage> userImages = images.Where(x => x.Category == "User");
            var galleryImages = images.Where(x => x.Category != "User" && !(x.IsPremium ?? false))
                .GroupBy(x => x.ImageFamily ?? x.Label)
                    .Select(x => x.OrderByDescending(y => y.PublishedDate).First());

            if (preferredImageFamilies != null && preferredImageFamilies.Any())
            {
                galleryImages = galleryImages.Where(x => preferredImageFamilies.Contains(x.ImageFamily));
            }
            List<VirtualMachineOSImageListResponse.VirtualMachineOSImage> selectedList;
            if (imageSource == VmImageSourceEnum.Storage)
            {
                selectedList = userImages.ToList();
            }
            else if (imageSource == VmImageSourceEnum.Gallery)
            {
                selectedList = galleryImages.ToList();
            }
            else
            {
                selectedList = userImages.Union(galleryImages).ToList();
            }

            var result = selectedList.Select(image => new VirtualMachineImageModel(image)).ToList();
            return result;
        }
Exemple #2
0
        public List<Models.VirtualMachineImageModel> GetAvailableTemplateImages(VmImageSourceEnum imageSource,
			List<string> preferredImageFamilies = null)
        {
            _logger.Info("Entering GetAvailableTemplateImages stub.");
            List<VirtualMachineImageModel> result = new List<VirtualMachineImageModel>();
            VirtualMachineImageModel vmImage1 = new VirtualMachineImageModel(new VirtualMachineOSImageListResponse.VirtualMachineOSImage
                {
                    Name = "VM_Image_1"
                });

            VirtualMachineImageModel vmImage2 = new VirtualMachineImageModel(new VirtualMachineOSImageListResponse.VirtualMachineOSImage
            {
                Name = "VM_Image_2"
            });

            result.Add(vmImage1);
            result.Add(vmImage2);

            _logger.Info("Exiting GetAvailableTemplateImages stub.");

            return result;
        }