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

Reply via email to