http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java index ccf1e70..cecdc01 100644 --- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java +++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java @@ -16,6 +16,12 @@ */ package org.jclouds.azurecompute.arm.features; +import static org.assertj.core.api.Assertions.assertThat; +import static org.jclouds.util.Predicates2.retry; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; + import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -24,7 +30,6 @@ import java.util.List; import java.util.Map; import org.jclouds.azurecompute.arm.domain.DataDisk; -import org.jclouds.azurecompute.arm.domain.DiagnosticsProfile; import org.jclouds.azurecompute.arm.domain.HardwareProfile; import org.jclouds.azurecompute.arm.domain.IdReference; import org.jclouds.azurecompute.arm.domain.ImageReference; @@ -37,6 +42,7 @@ import org.jclouds.azurecompute.arm.domain.NetworkProfile; import org.jclouds.azurecompute.arm.domain.OSDisk; import org.jclouds.azurecompute.arm.domain.OSProfile; import org.jclouds.azurecompute.arm.domain.ResourceDefinition; +import org.jclouds.azurecompute.arm.domain.StorageAccountType; import org.jclouds.azurecompute.arm.domain.StorageProfile; import org.jclouds.azurecompute.arm.domain.StorageService; import org.jclouds.azurecompute.arm.domain.Subnet; @@ -45,8 +51,8 @@ import org.jclouds.azurecompute.arm.domain.VirtualMachine; import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance; import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance.PowerState; import org.jclouds.azurecompute.arm.domain.VirtualMachineProperties; +import org.jclouds.azurecompute.arm.functions.ParseJobStatus; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; -import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -55,20 +61,12 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; -import static org.assertj.core.api.Assertions.assertThat; -import static org.jclouds.util.Predicates2.retry; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - @Test(groups = "live", testName = "VirtualMachineApiLiveTest") public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { private String subscriptionid; - private String storageServiceName; private String vmName; private String nicName; - private StorageService storageService; private String virtualNetworkName; private String subnetId; @@ -81,9 +79,6 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { createTestResourceGroup(); virtualNetworkName = String.format("vn-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); - storageServiceName = String.format("st%s%s", System.getProperty("user.name"), RAND); - storageService = createStorageService(resourceGroupName, storageServiceName, LOCATION); - // Subnets belong to a virtual network so that needs to be created first assertNotNull(createDefaultVirtualNetwork(resourceGroupName, virtualNetworkName, "10.2.0.0/16", LOCATION)); @@ -103,25 +98,10 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { @Test public void testCreate() { - String blob = storageService.storageServiceProperties().primaryEndpoints().get("blob"); - - VirtualMachine vm = api().createOrUpdate(vmName, LOCATION, getProperties(blob, nicName), + VirtualMachine vm = api().createOrUpdate(vmName, LOCATION, getProperties(nicName, null), Collections.<String, String> emptyMap(), null); assertTrue(!vm.name().isEmpty()); - - //Poll until resource is ready to be used - boolean jobDone = retry(new Predicate<String>() { - @Override - public boolean apply(String name) { - return !api().get(name).properties().provisioningState().equals(VirtualMachineProperties.ProvisioningState.CREATING); - } - }, 60 * 20 * 1000).apply(vmName); - assertTrue(jobDone, "createOrUpdate operation did not complete in the configured timeout"); - - VirtualMachineProperties.ProvisioningState status = api().get(vmName).properties().provisioningState(); - // Cannot be creating anymore. Should be succeeded or running but not failed. - assertThat(status).isNotEqualTo(VirtualMachineProperties.ProvisioningState.CREATING); - assertThat(status).isNotEqualTo(VirtualMachineProperties.ProvisioningState.FAILED); + waitUntilReady(vmName); } @Test(dependsOnMethods = "testCreate") @@ -139,7 +119,7 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(dependsOnMethods = "testGet") public void testStart() { api().start(vmName); - assertTrue(stateReached(PowerState.RUNNING), "start operation did not complete in the configured timeout"); + assertTrue(stateReached(vmName, PowerState.RUNNING), "start operation did not complete in the configured timeout"); } @Test(dependsOnMethods = "testStart") @@ -147,15 +127,12 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { VirtualMachine vm = api().get(vmName); VirtualMachineProperties oldProperties = vm.properties(); StorageProfile oldStorageProfile = oldProperties.storageProfile(); - - String blob = storageService.storageServiceProperties().primaryEndpoints().get("blob"); - VHD vhd = VHD.create(blob + "vhds/" + vmName + "new-data-disk.vhd"); + DataDisk newDataDisk = DataDisk.builder() .name(vmName + "new-data-disk") .diskSizeGB("1") .lun(1) .createOption(DataDisk.DiskCreateOptionTypes.EMPTY) - .vhd(vhd) .build(); List<DataDisk> oldDataDisks = oldStorageProfile.dataDisks(); assertEquals(oldDataDisks.size(), 1); @@ -173,15 +150,15 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(dependsOnMethods = "testUpdate") public void testStop() { api().stop(vmName); - assertTrue(stateReached(PowerState.STOPPED), "stop operation did not complete in the configured timeout"); + assertTrue(stateReached(vmName, PowerState.STOPPED), "stop operation did not complete in the configured timeout"); } @Test(dependsOnMethods = "testStop") public void testRestart() { api().start(vmName); - assertTrue(stateReached(PowerState.RUNNING), "start operation did not complete in the configured timeout"); + assertTrue(stateReached(vmName, PowerState.RUNNING), "start operation did not complete in the configured timeout"); api().restart(vmName); - assertTrue(stateReached(PowerState.RUNNING), "restart operation did not complete in the configured timeout"); + assertTrue(stateReached(vmName, PowerState.RUNNING), "restart operation did not complete in the configured timeout"); } @Test(dependsOnMethods = "testCreate") @@ -201,15 +178,31 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(dependsOnMethods = "testRestart") public void testGeneralize() throws IllegalStateException { api().stop(vmName); - assertTrue(stateReached(PowerState.STOPPED), "restart operation did not complete in the configured timeout"); + assertTrue(stateReached(vmName, PowerState.STOPPED), "restart operation did not complete in the configured timeout"); api().generalize(vmName); } @SuppressWarnings("unchecked") - @Test(dependsOnMethods = "testGeneralize") + @Test public void testCapture() throws IllegalStateException { - URI uri = api().capture(vmName, vmName, vmName); - if (uri == null) Assert.fail(); + // Capture is only allowed for Blob based VMs, so let's create one VM for this test + NetworkInterfaceCard nic = createNetworkInterfaceCard(resourceGroupName, "capture-nic-" + RAND, LOCATION, "ipConfig-" + RAND); + StorageService storageService = createStorageService(resourceGroupName, "capture" + RAND, LOCATION); + String blob = storageService.storageServiceProperties().primaryEndpoints().get("blob"); + + String captureVmName = "capture-" + RAND; + api().createOrUpdate(captureVmName, LOCATION, getProperties(nic.name(), blob), + Collections.<String, String> emptyMap(), null); + waitUntilReady(captureVmName); + + api().stop(captureVmName); + assertTrue(stateReached(captureVmName, PowerState.STOPPED), + "restart operation did not complete in the configured timeout"); + api().generalize(captureVmName); + + URI uri = api().capture(captureVmName, captureVmName, captureVmName); + assertNotNull(uri); + if (imageAvailablePredicate.apply(uri)) { List<ResourceDefinition> definitions = api.getJobApi().captureStatus(uri); if (definitions != null) { @@ -219,18 +212,13 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { Map<String, String> properties2 = (Map<String, String>) storageObject; Object osDiskObject = properties2.get("osDisk"); Map<String, String> osProperties = (Map<String, String>) osDiskObject; - Object dataDisksObject = properties2.get("dataDisks"); - List<Object> dataProperties = (List<Object>) dataDisksObject; - Map<String, String> datadiskObject = (Map<String, String>) dataProperties.get(0); - assertNotNull(osProperties.get("name")); - assertNotNull(datadiskObject.get("name")); } } } } - @Test(dependsOnMethods = "testCapture", alwaysRun = true) + @Test(dependsOnMethods = "testGeneralize", alwaysRun = true) public void testDelete() throws Exception { URI uri = api().delete(vmName); assertResourceDeleted(uri); @@ -240,22 +228,28 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { return api.getVirtualMachineApi(resourceGroupName); } - private VirtualMachineProperties getProperties(String blob, String nic) { + private VirtualMachineProperties getProperties(String nic, String blob) { HardwareProfile hwProf = HardwareProfile.create("Standard_D1"); ImageReference imgRef = ImageReference.builder().publisher("MicrosoftWindowsServerEssentials") .offer("WindowsServerEssentials").sku("WindowsServerEssentials").version("latest").build(); - DataDisk dataDisk = DataDisk.builder().name("data").diskSizeGB("100").lun(0).createOption(DataDisk.DiskCreateOptionTypes.EMPTY).build(); - List<DataDisk> dataDisks = new ArrayList<DataDisk>(); - dataDisks.add(dataDisk); - - OSDisk osDisk = OSDisk.builder() + + DataDisk.Builder dataDisk = DataDisk.builder().name("data").diskSizeGB("100").lun(0).createOption(DataDisk.DiskCreateOptionTypes.EMPTY); + + OSDisk.Builder osDisk = OSDisk.builder() + .name("os") .osType("Windows") .caching(DataDisk.CachingTypes.READ_WRITE.toString()) - .createOption("FromImage") - .managedDiskParameters(ManagedDiskParameters.create(null, ManagedDiskParameters.StorageAccountTypes.STANDARD_LRS.toString())) - .build(); - StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk, dataDisks); + .createOption("FromImage"); + + if (blob == null) { + osDisk.managedDiskParameters(ManagedDiskParameters.create(null, StorageAccountType.STANDARD_LRS.toString())); + } else { + osDisk.vhd(VHD.create(blob + "vhds/" + vmName + ".vhd")); + dataDisk.vhd(VHD.create(blob + "vhds/" + vmName + "data.vhd")); + } + + StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk.build(), ImmutableList.of(dataDisk.build())); OSProfile.WindowsConfiguration windowsConfig = OSProfile.WindowsConfiguration.create(false, null, null, true, null); OSProfile osProfile = OSProfile.create(vmName, "azureuser", "RFe3&432dg", null, null, windowsConfig); @@ -267,15 +261,12 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { new ArrayList<IdReference>(); networkInterfaces.add(networkInterface); NetworkProfile networkProfile = NetworkProfile.create(networkInterfaces); - DiagnosticsProfile.BootDiagnostics bootDiagnostics = - DiagnosticsProfile.BootDiagnostics.create(true, blob); - DiagnosticsProfile diagnosticsProfile = DiagnosticsProfile.create(bootDiagnostics); VirtualMachineProperties properties = VirtualMachineProperties.create(null, - null, null, hwProf, storageProfile, osProfile, networkProfile, diagnosticsProfile, VirtualMachineProperties.ProvisioningState.CREATING); + null, null, hwProf, storageProfile, osProfile, networkProfile, null, VirtualMachineProperties.ProvisioningState.CREATING); return properties; } - protected NetworkInterfaceCard createNetworkInterfaceCard(final String resourceGroupName, String networkInterfaceCardName, String locationName, String ipConfigurationName) { + private NetworkInterfaceCard createNetworkInterfaceCard(final String resourceGroupName, String networkInterfaceCardName, String locationName, String ipConfigurationName) { //Create properties object final NetworkInterfaceCardProperties networkInterfaceCardProperties = NetworkInterfaceCardProperties .builder() @@ -286,12 +277,46 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest"); return api.getNetworkInterfaceCardApi(resourceGroupName).createOrUpdate(networkInterfaceCardName, locationName, networkInterfaceCardProperties, tags); } + + private StorageService createStorageService(final String resourceGroupName, final String storageServiceName, + final String location) { + URI uri = api.getStorageAccountApi(resourceGroupName).create(storageServiceName, location, + ImmutableMap.of("property_name", "property_value"), + ImmutableMap.of("accountType", StorageService.AccountType.Standard_LRS.toString())); + if (uri != null) { + assertTrue(uri.toString().contains("api-version")); + + boolean jobDone = retry(new Predicate<URI>() { + @Override + public boolean apply(final URI uri) { + return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri); + } + }, 60 * 1 * 1000 /* 1 minute timeout */).apply(uri); + assertTrue(jobDone, "create operation did not complete in the configured timeout"); + } + return api.getStorageAccountApi(resourceGroupName).get(storageServiceName); + } private boolean waitForState(String name, final PowerState state) { return api().getInstanceDetails(name).powerState().equals(state); } + + private void waitUntilReady(String vmName) { + boolean ready = retry(new Predicate<String>() { + @Override + public boolean apply(String name) { + return !api().get(name).properties().provisioningState().equals(VirtualMachineProperties.ProvisioningState.CREATING); + } + }, 60 * 20 * 1000).apply(vmName); + assertTrue(ready, "createOrUpdate operation did not complete in the configured timeout"); + + VirtualMachineProperties.ProvisioningState status = api().get(vmName).properties().provisioningState(); + // Cannot be creating anymore. Should be succeeded or running but not failed. + assertThat(status).isNotEqualTo(VirtualMachineProperties.ProvisioningState.CREATING); + assertThat(status).isNotEqualTo(VirtualMachineProperties.ProvisioningState.FAILED); + } - private boolean stateReached(final PowerState state) { + private boolean stateReached(String vmName, final PowerState state) { return retry(new Predicate<String>() { @Override public boolean apply(String name) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java index 34b59c3..27e6f6b 100644 --- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java +++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java @@ -233,7 +233,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { assertNotNull(uri); assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" + "/virtualMachines/vm/capture?api-version=2016-04-30-preview", - "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\"}"); + "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\",\"overwriteVhds\":\"true\"}"); } public void testCapture404() throws Exception { @@ -244,7 +244,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { assertNull(uri); assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" + "/virtualMachines/vm/capture?api-version=2016-04-30-preview", - "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\"}"); + "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\",\"overwriteVhds\":\"true\"}"); } private VirtualMachineProperties getProperties() { @@ -252,7 +252,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { ImageReference imgRef = ImageReference.builder().publisher("publisher").offer("offer").sku("sku").version("ver").build(); VHD vhd = VHD.create("https://groupname2760.blob.core.windows.net/vhds/windowsmachine201624102936.vhd"); List<DataDisk> dataDisks = new ArrayList<DataDisk>(); - OSDisk osDisk = OSDisk.create("Windows", "windowsmachine", vhd, "ReadWrite", "FromImage", null, null); + OSDisk osDisk = OSDisk.create("Windows", "windowsmachine", vhd, "ReadWrite", "FromImage", null, null, null); StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk, dataDisks); OSProfile.WindowsConfiguration windowsConfig = OSProfile.WindowsConfiguration.create(false, null, null, true, null); http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java index 6006392..754f5fe 100644 --- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java +++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java @@ -32,21 +32,20 @@ import static org.jclouds.oauth.v2.config.OAuthProperties.CREDENTIAL_TYPE; public class AzureLiveTestUtils { - public static Properties defaultProperties(Properties properties) { - properties = properties == null ? new Properties() : properties; - properties.put(CREDENTIAL_TYPE, CLIENT_CREDENTIALS_SECRET.toString()); - properties.put(PROPERTY_REGIONS, "westeurope"); - properties.put(IMAGE_PUBLISHERS, "Canonical"); - properties.put(RESOURCENAME_PREFIX, "jcloudstest"); - - String defaultTimeout = String.valueOf(TimeUnit.MILLISECONDS.convert(60, TimeUnit.MINUTES)); - properties.setProperty(TIMEOUT_SCRIPT_COMPLETE, defaultTimeout); - properties.setProperty(TIMEOUT_NODE_RUNNING, defaultTimeout); - properties.setProperty(TIMEOUT_PORT_OPEN, defaultTimeout); - properties.setProperty(TIMEOUT_NODE_TERMINATED, defaultTimeout); - properties.setProperty(TIMEOUT_NODE_SUSPENDED, defaultTimeout); - - return properties; - } -} + public static Properties defaultProperties(Properties properties, String resourceNamePrefix) { + properties = properties == null ? new Properties() : properties; + properties.put(CREDENTIAL_TYPE, CLIENT_CREDENTIALS_SECRET.toString()); + properties.put(PROPERTY_REGIONS, "westeurope"); + properties.put(IMAGE_PUBLISHERS, "Canonical"); + properties.put(RESOURCENAME_PREFIX, resourceNamePrefix); + + String defaultTimeout = String.valueOf(TimeUnit.MILLISECONDS.convert(60, TimeUnit.MINUTES)); + properties.setProperty(TIMEOUT_SCRIPT_COMPLETE, defaultTimeout); + properties.setProperty(TIMEOUT_NODE_RUNNING, defaultTimeout); + properties.setProperty(TIMEOUT_PORT_OPEN, defaultTimeout); + properties.setProperty(TIMEOUT_NODE_TERMINATED, defaultTimeout); + properties.setProperty(TIMEOUT_NODE_SUSPENDED, defaultTimeout); + return properties; + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java index 0633294..cf65462 100644 --- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java +++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java @@ -38,10 +38,8 @@ import org.jclouds.azurecompute.arm.domain.NetworkSecurityRule; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties; import org.jclouds.azurecompute.arm.domain.Provisionable; import org.jclouds.azurecompute.arm.domain.ResourceGroup; -import org.jclouds.azurecompute.arm.domain.StorageService; import org.jclouds.azurecompute.arm.domain.Subnet; import org.jclouds.azurecompute.arm.domain.VirtualNetwork; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus; import org.testng.annotations.AfterClass; import com.google.common.base.Predicate; @@ -99,7 +97,7 @@ public class BaseAzureComputeApiLiveTest extends BaseApiLiveTest<AzureComputeApi @Override protected Properties setupProperties() { Properties properties = super.setupProperties(); // for oauth - AzureLiveTestUtils.defaultProperties(properties); + AzureLiveTestUtils.defaultProperties(properties, getClass().getSimpleName().toLowerCase()); checkNotNull(setIfTestSystemPropertyPresent(properties, "oauth.endpoint"), "test.oauth.endpoint"); return properties; } @@ -139,23 +137,6 @@ public class BaseAzureComputeApiLiveTest extends BaseApiLiveTest<AzureComputeApi return subnet; } - protected StorageService createStorageService(final String resourceGroupName, final String storageServiceName, final String location) { - URI uri = api.getStorageAccountApi(resourceGroupName).create(storageServiceName, location, ImmutableMap.of("property_name", - "property_value"), ImmutableMap.of("accountType", StorageService.AccountType.Standard_LRS.toString())); - if (uri != null) { - assertTrue(uri.toString().contains("api-version")); - - boolean jobDone = retry(new Predicate<URI>() { - @Override - public boolean apply(final URI uri) { - return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 1 * 1000 /* 1 minute timeout */).apply(uri); - assertTrue(jobDone, "create operation did not complete in the configured timeout"); - } - return api.getStorageAccountApi(resourceGroupName).get(storageServiceName); - } - protected void createTestResourceGroup() { String name = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/resources/virtualmachineimagecreate.json ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/resources/virtualmachineimagecreate.json b/providers/azurecompute-arm/src/test/resources/virtualmachineimagecreate.json new file mode 100644 index 0000000..865012f --- /dev/null +++ b/providers/azurecompute-arm/src/test/resources/virtualmachineimagecreate.json @@ -0,0 +1,21 @@ +{ + "type": "Microsoft.Compute/images", + "location": "canadaeast", + "id": "/subscriptions/bd81406c-6028-4037-9f03-9a3af4ff725d/resourceGroups/jcloudstest-canadaeast/providers/Microsoft.Compute/images/testVirtualMachineImage", + "name": "testVirtualMachineImage", + "properties": { + "sourceVirtualMachine": { + "id": "/subscriptions/bd81406c-6028-4037-9f03-9a3af4ff725d/resourceGroups/jcloudstest-canadaeast/providers/Microsoft.Compute/virtualMachines/vm2image" + }, + "storageProfile": { + "osDisk": { + "osType": "Linux", + "osState": "Generalized", + "blobUri": "https://jcloudstestcanadaeast982.blob.core.windows.net/vhds/vm2image20170315140332.vhd", + "caching": "ReadWrite" + }, + "dataDisks": [] + }, + "provisioningState": "Succeeded" + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/resources/virtualmachineimageget.json ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/resources/virtualmachineimageget.json b/providers/azurecompute-arm/src/test/resources/virtualmachineimageget.json new file mode 100644 index 0000000..865012f --- /dev/null +++ b/providers/azurecompute-arm/src/test/resources/virtualmachineimageget.json @@ -0,0 +1,21 @@ +{ + "type": "Microsoft.Compute/images", + "location": "canadaeast", + "id": "/subscriptions/bd81406c-6028-4037-9f03-9a3af4ff725d/resourceGroups/jcloudstest-canadaeast/providers/Microsoft.Compute/images/testVirtualMachineImage", + "name": "testVirtualMachineImage", + "properties": { + "sourceVirtualMachine": { + "id": "/subscriptions/bd81406c-6028-4037-9f03-9a3af4ff725d/resourceGroups/jcloudstest-canadaeast/providers/Microsoft.Compute/virtualMachines/vm2image" + }, + "storageProfile": { + "osDisk": { + "osType": "Linux", + "osState": "Generalized", + "blobUri": "https://jcloudstestcanadaeast982.blob.core.windows.net/vhds/vm2image20170315140332.vhd", + "caching": "ReadWrite" + }, + "dataDisks": [] + }, + "provisioningState": "Succeeded" + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc13cfed/providers/azurecompute-arm/src/test/resources/virtualmachineimagelist.json ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/resources/virtualmachineimagelist.json b/providers/azurecompute-arm/src/test/resources/virtualmachineimagelist.json new file mode 100644 index 0000000..cf4d3ea --- /dev/null +++ b/providers/azurecompute-arm/src/test/resources/virtualmachineimagelist.json @@ -0,0 +1,25 @@ +{ + "value": [ + { + "type": "Microsoft.Compute/images", + "location": "canadaeast", + "id": "/subscriptions/bd81406c-6028-4037-9f03-9a3af4ff725d/resourceGroups/jcloudstest-canadaeast/providers/Microsoft.Compute/images/imageFromRest", + "name": "testVirtualMachineImage", + "properties": { + "sourceVirtualMachine": { + "id": "/subscriptions/bd81406c-6028-4037-9f03-9a3af4ff725d/resourceGroups/jcloudstest-canadaeast/providers/Microsoft.Compute/virtualMachines/vm2image" + }, + "storageProfile": { + "osDisk": { + "osType": "Linux", + "osState": "Generalized", + "blobUri": "https://jcloudstestcanadaeast982.blob.core.windows.net/vhds/vm2image20170315140332.vhd", + "caching": "ReadWrite" + }, + "dataDisks": [] + }, + "provisioningState": "Succeeded" + } + } + ] +} \ No newline at end of file
