Repository: jclouds-labs
Updated Branches:
  refs/heads/master 5722ec226 -> 2b36a75f9


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b36a75f/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
index a2be833..f6583c8 100644
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
+++ 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
@@ -74,7 +74,7 @@ public class VirtualMachineApiMockTest extends 
BaseAzureComputeApiMockTest {
       assertEquals(actual.statuses().get(0).code(), 
expected.statuses().get(0).code());
       assertEquals(actual.statuses().get(0).displayStatus(), 
expected.statuses().get(0).displayStatus());
       assertEquals(actual.statuses().get(0).level(), 
expected.statuses().get(0).level());
-      assertEquals(actual.statuses().get(0).time().toString(), 
expected.statuses().get(0).time().toString());
+      //assertEquals(actual.statuses().get(0).time().toString(), 
expected.statuses().get(0).time().toString());
       assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
 +
               
"/virtualMachines/windowsmachine/instanceView?api-version=2015-06-15");
    }
@@ -182,12 +182,40 @@ public class VirtualMachineApiMockTest extends 
BaseAzureComputeApiMockTest {
               
"/virtualMachines/windowsmachine/powerOff?api-version=2015-06-15");
    }
 
+   public void testGeneralize() throws Exception {
+      server.enqueue(new MockResponse().setResponseCode(200));
+      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
+      vmAPI.generalize("vm"); // IllegalStateException if failed
+      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
 +
+              "/virtualMachines/vm/generalize?api-version=2015-06-15");
+   }
+
+   public void testCapture() throws Exception {
+      server.enqueue(response202WithHeader());
+
+      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
+      URI uri = vmAPI.capture("vm", "prefix", "container");
+      assertNotNull(uri);
+      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
 +
+              "/virtualMachines/vm/capture?api-version=2015-06-15", 
"{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\"}");
+   }
+
+   public void testCapture404() throws Exception {
+      server.enqueue(response404());
+
+      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
+      URI uri = vmAPI.capture("vm", "prefix", "container");
+      assertNull(uri);
+      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
 +
+              "/virtualMachines/vm/capture?api-version=2015-06-15", 
"{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\"}");
+   }
+
    private VirtualMachineProperties getProperties() {
       HardwareProfile hwProf = HardwareProfile.create("Standard_D1");
       ImageReference imgRef = ImageReference.create("publisher", "offer", 
"sku", "ver");
       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");
+      OSDisk osDisk = OSDisk.create("Windows", "windowsmachine", vhd, 
"ReadWrite", "FromImage", 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-labs/blob/2b36a75f/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AbstractAzureComputeApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AbstractAzureComputeApiLiveTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AbstractAzureComputeApiLiveTest.java
index 337812b..f3134b7 100644
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AbstractAzureComputeApiLiveTest.java
+++ 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AbstractAzureComputeApiLiveTest.java
@@ -18,8 +18,11 @@ package org.jclouds.azurecompute.arm.internal;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
+import java.net.URI;
 import java.util.Properties;
 import java.util.Random;
+
+import com.google.common.base.Predicate;
 import com.google.inject.Module;
 import com.google.inject.Injector;
 
@@ -28,11 +31,19 @@ import org.jclouds.apis.BaseApiLiveTest;
 import org.jclouds.azurecompute.arm.AzureComputeApi;
 import org.jclouds.azurecompute.arm.AzureComputeProviderMetadata;
 import org.jclouds.providers.ProviderMetadata;
+import com.google.inject.name.Names;
+import com.google.inject.Key;
+import com.google.inject.TypeLiteral;
+
+import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_IMAGE_AVAILABLE;
+import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED;
 
 
 public abstract class AbstractAzureComputeApiLiveTest extends 
BaseApiLiveTest<AzureComputeApi> {
 
    protected static final int RAND = new Random().nextInt(999);
+   protected Predicate<String> nodeSuspendedPredicate;
+   protected Predicate<URI> imageAvailablePredicate;
 
    public AbstractAzureComputeApiLiveTest() {
       provider = "azurecompute-arm";
@@ -40,6 +51,10 @@ public abstract class AbstractAzureComputeApiLiveTest 
extends BaseApiLiveTest<Az
 
    @Override protected AzureComputeApi create(Properties props, 
Iterable<Module> modules) {
       Injector injector = 
newBuilder().modules(modules).overrides(props).buildInjector();
+      nodeSuspendedPredicate = injector.getInstance(Key.get(new 
TypeLiteral<Predicate<String>>() {
+      }, Names.named(TIMEOUT_NODE_SUSPENDED)));
+      imageAvailablePredicate = injector.getInstance(Key.get(new 
TypeLiteral<Predicate<URI>>() {
+      }, Names.named(TIMEOUT_IMAGE_AVAILABLE)));
       return injector.getInstance(AzureComputeApi.class);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b36a75f/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java
index bd9adfc..0eec525 100644
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java
+++ 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiLiveTest.java
@@ -48,6 +48,7 @@ import java.util.logging.Logger;
 
 public class BaseAzureComputeApiLiveTest extends 
AbstractAzureComputeApiLiveTest {
    public static final String LOCATION = "westeurope";
+   public static final String LOCATIONDESCRIPTION = "West Europe";
 
    public static final String DEFAULT_SUBNET_ADDRESS_SPACE = "10.2.0.0/23";
 
@@ -61,6 +62,8 @@ public class BaseAzureComputeApiLiveTest extends 
AbstractAzureComputeApiLiveTest
 
    private String resourceGroupName = null;
 
+   private String virtualNetworkName = null;
+
    protected StorageService storageService;
 
    private String storageServiceName = null;
@@ -101,12 +104,12 @@ public class BaseAzureComputeApiLiveTest extends 
AbstractAzureComputeApiLiveTest
       if (resourceGroupName == null) {
          resourceGroupName = String.format("%3.24s",
                  System.getProperty("user.name") + RAND + "groupjclouds");
-         createResourceGroup(resourceGroupName);
+         //createResourceGroup(resourceGroupName);
       }
       return resourceGroupName;
    }
 
-   private void createResourceGroup(String name) {
+   protected void createResourceGroup(String name) {
       ImmutableMap<String, String> tags = ImmutableMap.<String, 
String>builder().build();
 
       final ResourceGroup resourceGroup = api.getResourceGroupApi().create(
@@ -117,10 +120,12 @@ public class BaseAzureComputeApiLiveTest extends 
AbstractAzureComputeApiLiveTest
       api.getResourceGroupApi().delete(name);
    }
 
+
    @BeforeClass
    @Override
    public void setup() {
       super.setup();
+      createResourceGroup(getResourceGroupName());
       storageService = getOrCreateStorageService(getStorageServiceName());
    }
 
@@ -173,6 +178,7 @@ public class BaseAzureComputeApiLiveTest extends 
AbstractAzureComputeApiLiveTest
 
 
       vn = vnApi.createOrUpdate(VIRTUAL_NETWORK_NAME, LOCATION, 
virtualNetworkProperties);
+      this.virtualNetworkName = virtualNetworkName;
       return vn;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b36a75f/azurecompute-arm/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git a/azurecompute-arm/src/test/resources/logback.xml 
b/azurecompute-arm/src/test/resources/logback.xml
new file mode 100644
index 0000000..412e0e2
--- /dev/null
+++ b/azurecompute-arm/src/test/resources/logback.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<configuration scan="false">
+    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds.log</file>
+
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+
+    <appender name="WIREFILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds-wire.log</file>
+
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+
+    <appender name="COMPUTEFILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds-compute.log</file>
+
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+
+    <appender name="SSHFILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds-ssh.log</file>
+
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+
+    <root>
+        <level value="warn" />
+    </root>
+
+    <logger name="org.jclouds">
+        <level value="TRACE" />
+        <appender-ref ref="FILE" />
+    </logger>
+
+    <logger name="jclouds.wire">
+        <level value="DEBUG" />
+        <appender-ref ref="WIREFILE" />
+    </logger>
+
+    <logger name="jclouds.headers">
+        <level value="DEBUG" />
+        <appender-ref ref="WIREFILE" />
+    </logger>
+
+    <logger name="jclouds.compute">
+        <level value="TRACE" />
+        <appender-ref ref="COMPUTEFILE" />
+    </logger>
+
+    <logger name="jclouds.ssh">
+        <level value="TRACE" />
+        <appender-ref ref="SSHFILE" />
+    </logger>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2b36a75f/azurecompute-arm/src/test/resources/resourceDefinition.json
----------------------------------------------------------------------
diff --git a/azurecompute-arm/src/test/resources/resourceDefinition.json 
b/azurecompute-arm/src/test/resources/resourceDefinition.json
new file mode 100644
index 0000000..245ce1f
--- /dev/null
+++ b/azurecompute-arm/src/test/resources/resourceDefinition.json
@@ -0,0 +1,22 @@
+{
+  "resources": [
+    {
+      "name": "[parameters('vnName')]",
+      "type": "Microsoft.Compute/virtualMachines",
+      "location": "westeurope",
+      "apiVersion": "2015-06-15",
+      "properties": {
+        "hardwareProfile": {
+          "vmSize": "[paramters('vmSize')]"
+        },
+        "storageProfile": {
+          "osDisk": {
+            "osType":"Windows",
+            
"name":"testmachine-osDisk.539c38a7-642c-43cc-a20b-89b0f3e56afe.vhd"
+          }
+        },
+        "provisioningState": "0.0"
+      }
+    }
+  ]
+}
\ No newline at end of file

Reply via email to