Repository: jclouds-labs Updated Branches: refs/heads/2.0.x a372d1142 -> f47711858
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java new file mode 100644 index 0000000..becfccd --- /dev/null +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java @@ -0,0 +1,107 @@ +/* + * 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. + */ +package org.jclouds.azurecompute.arm.features; + +import java.net.URI; +import java.util.List; +import java.util.UUID; + +import org.jclouds.azurecompute.arm.domain.CreationData; +import org.jclouds.azurecompute.arm.domain.Disk; +import org.jclouds.azurecompute.arm.domain.DiskProperties; +import org.jclouds.azurecompute.arm.domain.Provisionable; +import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import com.google.common.base.Predicate; +import com.google.common.base.Supplier; +import com.google.common.collect.Iterables; + +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; + +@Test(groups = "live", singleThreaded = true) +public class DiskApiLiveTest extends BaseAzureComputeApiLiveTest { + + public static final String JCLOUDS_IMAGE_PREFIX = "jclouds-"; + private String diskName; + + @BeforeClass + @Override + public void setup() { + super.setup(); + createTestResourceGroup(); + diskName = JCLOUDS_IMAGE_PREFIX + RAND; + } + + @Test + public void deleteDiskResourceDoesNotExist() { + assertNull(api().delete(JCLOUDS_IMAGE_PREFIX + UUID.randomUUID())); + } + + @Test + public void createDisk() { + DiskProperties properties = DiskProperties.builder().creationData(CreationData.create(CreationData.CreateOptions.EMPTY)).diskSizeGB(2).build(); + Disk dataDisk = api().createOrUpdate(diskName, LOCATION, properties); + assertTrue(waitUntilAvailable(diskName), "creation operation did not complete in the configured timeout"); + assertTrue(dataDisk.properties().diskSizeGB() == 2); + } + + @Test(dependsOnMethods = "createDisk") + public void getDisk() { + Disk dataDisk = api().get(diskName); + assertNotNull(dataDisk.name()); + assertTrue(dataDisk.properties().diskSizeGB() == 2); + } + + @Test(dependsOnMethods = "createDisk") + public void listDisks() { + List<Disk> dataDisks = api().list(); + assertTrue(dataDisks.size() > 0); + final Disk dataDisk = api().get(diskName); + + assertTrue(Iterables.any(dataDisks, new Predicate<Disk>() { + @Override + public boolean apply(Disk input) { + return dataDisk.equals(input); + } + })); + } + + @Test(dependsOnMethods = {"listDisks", "getDisk"}, alwaysRun = true) + public void deleteDisk() { + URI uri = api().delete(diskName); + assertNotNull(uri); + } + + private DiskApi api() { + return api.getDiskApi(resourceGroupName); + } + + private boolean waitUntilAvailable(final String name) { + return resourceAvailable.apply(new Supplier<Provisionable>() { + @Override public Provisionable get() { + Disk disk = api().get(name); + return disk == null ? null : disk.properties(); + } + }); + } + +} + http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java new file mode 100644 index 0000000..4c8ba2e --- /dev/null +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java @@ -0,0 +1,141 @@ +/* + * 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. + */ +package org.jclouds.azurecompute.arm.features; + +import java.net.URI; +import java.util.List; + +import org.jclouds.azurecompute.arm.domain.CreationData; +import org.jclouds.azurecompute.arm.domain.Disk; +import org.jclouds.azurecompute.arm.domain.DiskProperties; +import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest; +import org.testng.Assert; +import org.testng.annotations.Test; + +import static com.google.common.collect.Iterables.isEmpty; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; + + +@Test(groups = "unit", testName = "DiskApiMockTest", singleThreaded = true) +public class DiskApiMockTest extends BaseAzureComputeApiMockTest { + + private final String subscriptionid = "SUBSCRIPTIONID"; + private final String resourcegroup = "myresourcegroup"; + private final String diskName = "myDisk"; + private final String apiVersion = "api-version=2017-03-30"; + + public void createDisk() throws InterruptedException { + + server.enqueue(jsonResponse("/creatediskresponse.json").setResponseCode(200)); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + DiskProperties properties = DiskProperties.builder().diskSizeGB(2).creationData(CreationData.create(CreationData.CreateOptions.EMPTY)).build(); + + Disk dataDisk = diskApi.createOrUpdate(diskName, "westus", properties); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks/%s?%s", subscriptionid, resourcegroup, diskName, apiVersion); + String json = "{\"location\":\"westus\",\"properties\":{\"diskSizeGB\":2,\"creationData\":{\"createOption\":\"Empty\"}}}"; + assertSent(server, "PUT", path, json); + + assertEquals(dataDisk.properties().provisioningState(), "Updating"); + assertTrue(dataDisk.properties().diskSizeGB() == 2); + } + + public void getDisk() throws InterruptedException { + + server.enqueue(jsonResponse("/getdisk.json").setResponseCode(200)); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + Disk dataDisk = diskApi.get(diskName); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks/%s?%s", subscriptionid, resourcegroup, diskName, apiVersion); + assertSent(server, "GET", path); + + assertEquals(dataDisk.name(), diskName); + assertTrue(dataDisk.properties().diskSizeGB() == 2); + } + + public void getDiskReturns404() throws InterruptedException { + server.enqueue(response404()); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + Disk dataDisk = diskApi.get(diskName); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks/%s?%s", subscriptionid, resourcegroup, diskName, apiVersion); + assertSent(server, "GET", path); + + assertNull(dataDisk); + } + + public void listDisks() throws InterruptedException { + + server.enqueue(jsonResponse("/listdisks.json").setResponseCode(200)); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + List<Disk> dataDisks = diskApi.list(); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks?%s", subscriptionid, resourcegroup, apiVersion); + assertSent(server, "GET", path); + + assertTrue(dataDisks.size() > 0); + } + + public void listDisksReturns404() throws InterruptedException { + server.enqueue(response404()); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + List<Disk> dataDisks = diskApi.list(); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks?%s", subscriptionid, resourcegroup, apiVersion); + assertSent(server, "GET", path); + + assertTrue(isEmpty(dataDisks)); + } + + public void deleteDisk() throws InterruptedException { + + server.enqueue(response202WithHeader()); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + URI uri = diskApi.delete(diskName); + Assert.assertNotNull(uri); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks/%s?%s", subscriptionid, resourcegroup, diskName, apiVersion); + assertSent(server, "DELETE", path); + } + + public void deleteDiskResourceDoesNotExist() throws InterruptedException { + + server.enqueue(response204()); + + final DiskApi diskApi = api.getDiskApi(resourcegroup); + + URI uri = diskApi.delete(diskName); + assertNull(uri); + + String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks/%s?%s", subscriptionid, resourcegroup, diskName, apiVersion); + assertSent(server, "DELETE", path); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ImageApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ImageApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ImageApiLiveTest.java new file mode 100644 index 0000000..038fc31 --- /dev/null +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ImageApiLiveTest.java @@ -0,0 +1,105 @@ +/* + * 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. + */ +package org.jclouds.azurecompute.arm.features; + +import java.net.URI; +import java.util.Collections; +import java.util.List; +import java.util.UUID; + +import org.jclouds.azurecompute.arm.domain.Image; +import org.jclouds.azurecompute.arm.domain.ImageProperties; +import org.jclouds.azurecompute.arm.domain.Provisionable; +import org.jclouds.azurecompute.arm.domain.VirtualMachine; +import org.jclouds.azurecompute.arm.domain.VirtualMachineProperties; +import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import com.google.common.base.Supplier; + +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; + +@Test(groups = "live", singleThreaded = true) +public class ImageApiLiveTest extends BaseAzureComputeApiLiveTest { + + public static final String JCLOUDS_VM_IMAGE_PREFIX = "jclouds-vm-image-"; + private String imageName; + private VirtualMachine virtualMachine; + + @BeforeClass + @Override + public void setup() { + super.setup(); + createTestResourceGroup(); + imageName = JCLOUDS_VM_IMAGE_PREFIX + RAND; + String vmName = "jclouds-vm-" + RAND; + + virtualMachine = api.getVirtualMachineApi(resourceGroupName).createOrUpdate(vmName, LOCATION, VirtualMachineProperties.builder().build(), + Collections.<String, String> emptyMap(), null); + } + + @Test + public void deleteImageResourceDoesNotExist() { + assertNull(api().delete(JCLOUDS_VM_IMAGE_PREFIX + UUID.randomUUID())); + } + + @Test + public void CreateVirtualMachineImageFromExistingVM() { + String id = String.format("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/myVM", getSubscriptionId(), resourceGroupName); + ImageProperties properties = ImageProperties.builder() + .sourceVirtualMachine(ImageProperties.SourceVirtualMachine.create(id)) + .build(); + Image image = api().createOrUpdate(imageName, LOCATION, properties); + assertTrue(waitUntilAvailable(imageName), "creation operation did not complete in the configured timeout"); + assertTrue(id.equals(image.properties().sourceVirtualMachine().id())); + } + + @Test(dependsOnMethods = "CreateVirtualMachineImageFromExistingVM") + public void getImage() { + Image image = api().get(imageName); + assertNotNull(image); + } + + @Test(dependsOnMethods = "CreateVirtualMachineImageFromExistingVM") + public void listImages() { + List<Image> images = api().list(); + assertTrue(images.size() > 0); + } + + @Test(dependsOnMethods = {"listImages", "getImage"}, alwaysRun = true) + public void deleteImage() { + URI uri = api().delete(imageName); + assertNotNull(uri); + } + + private ImageApi api() { + return api.getVirtualMachineImageApi(resourceGroupName); + } + + private boolean waitUntilAvailable(final String name) { + return resourceAvailable.apply(new Supplier<Provisionable>() { + @Override public Provisionable get() { + Image image = api().get(name); + return image == null ? null : image.properties(); + } + }); + } +} + http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java index 6fe65e3..ccf1e70 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java @@ -30,6 +30,7 @@ import org.jclouds.azurecompute.arm.domain.IdReference; import org.jclouds.azurecompute.arm.domain.ImageReference; import org.jclouds.azurecompute.arm.domain.IpConfiguration; import org.jclouds.azurecompute.arm.domain.IpConfigurationProperties; +import org.jclouds.azurecompute.arm.domain.ManagedDiskParameters; import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard; import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties; import org.jclouds.azurecompute.arm.domain.NetworkProfile; @@ -149,7 +150,13 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { String blob = storageService.storageServiceProperties().primaryEndpoints().get("blob"); VHD vhd = VHD.create(blob + "vhds/" + vmName + "new-data-disk.vhd"); - DataDisk newDataDisk = DataDisk.create(vmName + "new-data-disk", "1", 1, vhd, "Empty"); + 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); @@ -236,14 +243,18 @@ public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest { private VirtualMachineProperties getProperties(String blob, String nic) { HardwareProfile hwProf = HardwareProfile.create("Standard_D1"); - ImageReference imgRef = ImageReference.create("MicrosoftWindowsServerEssentials", - "WindowsServerEssentials", "WindowsServerEssentials", "latest"); - VHD vhd = VHD.create(blob + "vhds/" + vmName + ".vhd"); - VHD vhd2 = VHD.create(blob + "vhds/" + vmName + "data.vhd"); - DataDisk dataDisk = DataDisk.create(vmName + "data", "100", 0, vhd2, "Empty"); + 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.create(null, vmName, vhd, "ReadWrite", "FromImage", null); + + OSDisk osDisk = OSDisk.builder() + .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); OSProfile.WindowsConfiguration windowsConfig = OSProfile.WindowsConfiguration.create(false, null, null, true, null); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/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 0c03fb1..34b59c3 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 @@ -16,12 +16,6 @@ */ package org.jclouds.azurecompute.arm.features; -import static com.google.common.collect.Iterables.isEmpty; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - import java.net.URI; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -38,12 +32,12 @@ 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.Plan; +import org.jclouds.azurecompute.arm.domain.Status; import org.jclouds.azurecompute.arm.domain.StorageProfile; import org.jclouds.azurecompute.arm.domain.VHD; import org.jclouds.azurecompute.arm.domain.VirtualMachine; import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance; import org.jclouds.azurecompute.arm.domain.VirtualMachineProperties; -import org.jclouds.azurecompute.arm.domain.Status; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest; import org.testng.annotations.Test; @@ -51,6 +45,12 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.squareup.okhttp.mockwebserver.MockResponse; +import static com.google.common.collect.Iterables.isEmpty; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; + @Test(groups = "unit", testName = "VirtualMachineApiMockTest", singleThreaded = true) public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { @@ -60,7 +60,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { assertEquals(vmAPI.get("windowsmachine"), getVM(Plan.create("thinkboxsoftware", "deadline-slave-7-2", "deadline7-2"))); assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?api-version=2016-03-30"); + + "/virtualMachines/windowsmachine?api-version=2016-04-30-preview"); } public void testGetEmpty() throws Exception { @@ -68,7 +68,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); assertNull(vmAPI.get("windowsmachine")); assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?api-version=2016-03-30"); + + "/virtualMachines/windowsmachine?api-version=2016-04-30-preview"); } public void testGetInstanceDetails() throws Exception { @@ -83,7 +83,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { // 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=2016-03-30"); + + "/virtualMachines/windowsmachine/instanceView?api-version=2016-04-30-preview"); } public void testGetInstanceDetailsEmpty() throws Exception { @@ -91,7 +91,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); assertNull(vmAPI.getInstanceDetails("windowsmachine")); assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/instanceView?api-version=2016-03-30"); + + "/virtualMachines/windowsmachine/instanceView?api-version=2016-04-30-preview"); } public void testList() throws Exception { @@ -99,7 +99,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); assertEquals(vmAPI.list(), getVMList()); assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines?api-version=2015-06-15"); + + "/virtualMachines?api-version=2016-04-30-preview"); } public void testListEmpty() throws Exception { @@ -107,7 +107,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); assertTrue(isEmpty(vmAPI.list())); assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines?api-version=2015-06-15"); + + "/virtualMachines?api-version=2016-04-30-preview"); } public void testCreateWithPlan() throws Exception { @@ -121,7 +121,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { server, "PUT", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?validating=false&api-version=2016-03-30", + + "/virtualMachines/windowsmachine?validating=false&api-version=2016-04-30-preview", "{\"location\":\"westus\",\"tags\":{\"foo\":\"bar\"},\"properties\":" + "{\"vmId\":\"27ee085b-d707-xxxx-yyyy-2370e2eb1cc1\"," + "\"hardwareProfile\":{\"vmSize\":\"Standard_D1\"}," @@ -144,7 +144,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { server, "PUT", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?validating=false&api-version=2016-03-30", + + "/virtualMachines/windowsmachine?validating=false&api-version=2016-04-30-preview", "{\"location\":\"westus\",\"tags\":{\"foo\":\"bar\"},\"properties\":" + "{\"vmId\":\"27ee085b-d707-xxxx-yyyy-2370e2eb1cc1\"," + "\"hardwareProfile\":{\"vmSize\":\"Standard_D1\"}," @@ -167,7 +167,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { assertNull(uri); assertSent(server, "DELETE", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?api-version=2016-03-30"); + + "/virtualMachines/windowsmachine?api-version=2016-04-30-preview"); } public void testDelete() throws Exception { @@ -181,7 +181,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { assertNotNull(uri); assertSent(server, "DELETE", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?api-version=2016-03-30"); + + "/virtualMachines/windowsmachine?api-version=2016-04-30-preview"); } public void testStart() throws Exception { @@ -192,7 +192,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { vmAPI.start("windowsmachine"); assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/start?api-version=2015-06-15"); + + "/virtualMachines/windowsmachine/start?api-version=2016-04-30-preview"); } public void testRestart() throws Exception { @@ -203,7 +203,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { vmAPI.restart("windowsmachine"); assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/restart?api-version=2015-06-15"); + + "/virtualMachines/windowsmachine/restart?api-version=2016-04-30-preview"); } public void testStop() throws Exception { @@ -214,7 +214,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { vmAPI.stop("windowsmachine"); assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/powerOff?api-version=2015-06-15"); + + "/virtualMachines/windowsmachine/powerOff?api-version=2016-04-30-preview"); } public void testGeneralize() throws Exception { @@ -222,7 +222,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { 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"); + + "/virtualMachines/vm/generalize?api-version=2016-04-30-preview"); } public void testCapture() throws Exception { @@ -232,7 +232,7 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { 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", + + "/virtualMachines/vm/capture?api-version=2016-04-30-preview", "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\"}"); } @@ -243,16 +243,16 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest { 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", + + "/virtualMachines/vm/capture?api-version=2016-04-30-preview", "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\"}"); } private VirtualMachineProperties getProperties() { HardwareProfile hwProf = HardwareProfile.create("Standard_D1"); - ImageReference imgRef = ImageReference.create("publisher", "offer", "sku", "ver"); + 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); + OSDisk osDisk = OSDisk.create("Windows", "windowsmachine", vhd, "ReadWrite", "FromImage", 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-labs/blob/f4771185/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java index 8cd662a..6006392 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java @@ -16,6 +16,9 @@ */ package org.jclouds.azurecompute.arm.internal; +import java.util.Properties; +import java.util.concurrent.TimeUnit; + import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS; import static org.jclouds.compute.config.ComputeServiceProperties.RESOURCENAME_PREFIX; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; @@ -27,15 +30,12 @@ import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.oauth.v2.config.CredentialType.CLIENT_CREDENTIALS_SECRET; import static org.jclouds.oauth.v2.config.OAuthProperties.CREDENTIAL_TYPE; -import java.util.Properties; -import java.util.concurrent.TimeUnit; - 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, "eastus"); + properties.put(PROPERTY_REGIONS, "westeurope"); properties.put(IMAGE_PUBLISHERS, "Canonical"); properties.put(RESOURCENAME_PREFIX, "jcloudstest"); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/resources/creatediskresponse.json ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/resources/creatediskresponse.json b/azurecompute-arm/src/test/resources/creatediskresponse.json new file mode 100644 index 0000000..1fcc2bb --- /dev/null +++ b/azurecompute-arm/src/test/resources/creatediskresponse.json @@ -0,0 +1,11 @@ +{ + "properties": { + "creationData": { + "createOption": "Empty" + }, + "diskSizeGB": 2, + "provisioningState": "Updating", + "isArmResource": true + }, + "location": "westeurope" +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/resources/getdisk.json ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/resources/getdisk.json b/azurecompute-arm/src/test/resources/getdisk.json new file mode 100644 index 0000000..db09d8d --- /dev/null +++ b/azurecompute-arm/src/test/resources/getdisk.json @@ -0,0 +1,19 @@ +{ + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "properties": { + "creationData": { + "createOption": "Empty" + }, + "diskSizeGB": 2, + "timeCreated": "2017-03-01T09:38:18.5808215+00:00", + "provisioningState": "Succeeded", + "diskState": "Unattached" + }, + "type": "Microsoft.Compute/disks", + "location": "westeurope", + "id": "/subscriptions/610bba05-d7a7-4567-96af-48ecbd09453b/resourceGroups/rg-diskapilivetest-andrea/providers/Microsoft.Compute/disks/myDisk", + "name": "myDisk" +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/resources/image.json ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/resources/image.json b/azurecompute-arm/src/test/resources/image.json new file mode 100644 index 0000000..3dbdf11 --- /dev/null +++ b/azurecompute-arm/src/test/resources/image.json @@ -0,0 +1,43 @@ +{ + "location": "West US", + "tags": { + "key": "value" + }, + "properties": { + "sourceVirtualMachine": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM" + }, + "storageProfile": { + "osDisk": { + "osType": "Windows", + "blobUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd", + "snapshot": { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1" + }, + "managedDisk": { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk1" + }, + "osState": "generalized", + "hostCaching": "readwrite", + "storageAccountType": "Standard_LRS", + "diskSizeGB": 20 + }, + "dataDisks": [ + { + "lun": "1", + "blobUri": "https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd", + "snapshot": { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2" + }, + "managedDisk": { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2" + }, + "hostCaching": "readwrite", + "storageAccountType": "Standard_LRS", + "diskSizeInGB": 20 + } + ] + }, + "provisioningState": "creating" + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f4771185/azurecompute-arm/src/test/resources/listdisks.json ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/resources/listdisks.json b/azurecompute-arm/src/test/resources/listdisks.json new file mode 100644 index 0000000..c84c561 --- /dev/null +++ b/azurecompute-arm/src/test/resources/listdisks.json @@ -0,0 +1,23 @@ +{ + "value": [ + { + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "properties": { + "creationData": { + "createOption": "Empty" + }, + "diskSizeGB": 2, + "timeCreated": "2017-03-01T09:48:27.4526118+00:00", + "provisioningState": "Succeeded", + "diskState": "Unattached" + }, + "type": "Microsoft.Compute/disks", + "location": "westeurope", + "id": "/subscriptions/610bba05-d7a7-4567-96af-48ecbd09453b/resourceGroups/rg-diskapilivetest-andrea/providers/Microsoft.Compute/disks/jclouds-646", + "name": "jclouds-646" + } + ] +}
