You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/01/08 14:52:26 UTC
[05/50] [abbrv] jclouds git commit: Update ImageExtension to work
with Managed Disks
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