/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */ package com.microsoft.azure.management.compute; import com.microsoft.azure.management.resources.fluentcore.arm.Region; import org.junit.Assert; import org.junit.Test; import java.util.List; public class VirtualMachineExtensionImageOperationsTests extends ComputeManagementTest { @Test public void canListExtensionImages() throws Exception { final int maxListing = 20; int count = 0; List<VirtualMachineExtensionImage> extensionImages = computeManager.virtualMachineExtensionImages() .listByRegion(Region.US_EAST); // Lazy listing for (VirtualMachineExtensionImage extensionImage : extensionImages) { Assert.assertNotNull(extensionImage); count++; if (count >= maxListing) { break; } } Assert.assertTrue(count == maxListing); } @Test public void canGetExtensionTypeVersionAndImage() throws Exception { List<VirtualMachineExtensionImage> extensionImages = computeManager.virtualMachineExtensionImages() .listByRegion(Region.US_EAST); final String dockerExtensionPublisherName = "Microsoft.Azure.Extensions"; final String dockerExtensionImageTypeName = "DockerExtension"; // Lookup Azure docker extension publisher // List<VirtualMachinePublisher> publishers = computeManager.virtualMachineExtensionImages() .publishers() .listByRegion(Region.US_EAST); VirtualMachinePublisher azureDockerExtensionPublisher = null; for (VirtualMachinePublisher publisher : publishers) { if (publisher.name().equalsIgnoreCase(dockerExtensionPublisherName)) { azureDockerExtensionPublisher = publisher; break; } } Assert.assertNotNull(azureDockerExtensionPublisher); // Lookup Azure docker extension type // VirtualMachineExtensionImageTypes extensionImageTypes = azureDockerExtensionPublisher.extensionTypes(); Assert.assertTrue(extensionImageTypes.list().size() > 0); VirtualMachineExtensionImageType dockerExtensionImageType = null; for (VirtualMachineExtensionImageType extensionImageType : extensionImageTypes.list()) { if (extensionImageType.name().equalsIgnoreCase(dockerExtensionImageTypeName)) { dockerExtensionImageType = extensionImageType; break; } } Assert.assertNotNull(dockerExtensionImageType); Assert.assertNotNull(dockerExtensionImageType.id()); Assert.assertTrue(dockerExtensionImageType.name().equalsIgnoreCase(dockerExtensionImageTypeName)); Assert.assertTrue(dockerExtensionImageType.regionName().equalsIgnoreCase(Region.US_EAST.toString())); Assert.assertTrue(dockerExtensionImageType.id() .toLowerCase() .endsWith("/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Extensions/ArtifactTypes/VMExtension/Types/DockerExtension".toLowerCase())); Assert.assertNotNull(dockerExtensionImageType.publisher()); Assert.assertTrue(dockerExtensionImageType.publisher().name().equalsIgnoreCase(dockerExtensionPublisherName)); // Fetch Azure docker extension versions // VirtualMachineExtensionImageVersions extensionImageVersions = dockerExtensionImageType.versions(); Assert.assertTrue(extensionImageVersions.list().size() > 0); VirtualMachineExtensionImageVersion extensionImageFirstVersion = null; for (VirtualMachineExtensionImageVersion extensionImageVersion : extensionImageVersions.list()) { extensionImageFirstVersion = extensionImageVersion; break; } Assert.assertNotNull(extensionImageFirstVersion); String versionName = extensionImageFirstVersion.name(); Assert.assertTrue(extensionImageFirstVersion.id() .toLowerCase() .endsWith(("/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Extensions/ArtifactTypes/VMExtension/Types/DockerExtension/Versions/" + versionName).toLowerCase())); Assert.assertNotNull(extensionImageFirstVersion.type()); // Fetch the Azure docker extension image // VirtualMachineExtensionImage dockerExtensionImage = extensionImageFirstVersion.getImage(); Assert.assertTrue(dockerExtensionImage.regionName().equalsIgnoreCase(Region.US_EAST.toString())); Assert.assertTrue(dockerExtensionImage.publisherName().equalsIgnoreCase(dockerExtensionPublisherName)); Assert.assertTrue(dockerExtensionImage.typeName().equalsIgnoreCase(dockerExtensionImageTypeName)); Assert.assertTrue(dockerExtensionImage.versionName().equalsIgnoreCase(versionName)); Assert.assertTrue(dockerExtensionImage.osType() == OperatingSystemTypes.LINUX || dockerExtensionImage.osType() == OperatingSystemTypes.WINDOWS); } }