http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/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 deleted file mode 100644 index 372b303..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java +++ /dev/null @@ -1,409 +0,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. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -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; -import org.jclouds.azurecompute.arm.domain.ManagedDiskParameters; -import org.jclouds.azurecompute.arm.domain.NetworkProfile; -import org.jclouds.azurecompute.arm.domain.NetworkProfile.NetworkInterface; -import org.jclouds.azurecompute.arm.domain.OSDisk; -import org.jclouds.azurecompute.arm.domain.OSProfile; -import org.jclouds.azurecompute.arm.domain.OSProfile.LinuxConfiguration; -import org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration.AdditionalUnattendContent; -import org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration.WinRM.Protocol; -import org.jclouds.azurecompute.arm.domain.Plan; -import org.jclouds.azurecompute.arm.domain.Secrets; -import org.jclouds.azurecompute.arm.domain.Secrets.SourceVault; -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.VaultCertificate; -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.internal.BaseAzureComputeApiMockTest; -import org.testng.annotations.Test; - -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 { - - public void testGet() throws Exception { - server.enqueue(jsonResponse("/virtualmachine.json")); - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - 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-04-30-preview"); - } - - public void testGetEmpty() throws Exception { - server.enqueue(new MockResponse().setResponseCode(404)); - 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-04-30-preview"); - } - - public void testGetInstanceDetails() throws Exception { - server.enqueue(jsonResponse("/virtualmachineInstance.json")); - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - VirtualMachineInstance actual = vmAPI.getInstanceDetails("windowsmachine"); - VirtualMachineInstance expected = getVMInstance(); - - 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()); - assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/instanceView?api-version=2016-04-30-preview"); - } - - public void testGetInstanceDetailsEmpty() throws Exception { - server.enqueue(new MockResponse().setResponseCode(404)); - 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-04-30-preview"); - } - - public void testList() throws Exception { - server.enqueue(jsonResponse("/virtualmachines.json")); - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - assertEquals(vmAPI.list(), getVMList()); - assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines?api-version=2016-04-30-preview"); - } - - public void testListEmpty() throws Exception { - server.enqueue(new MockResponse().setResponseCode(404)); - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - assertTrue(isEmpty(vmAPI.list())); - assertSent(server, "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines?api-version=2016-04-30-preview"); - } - - public void testCreateWithPlan() throws Exception { - server.enqueue(jsonResponse("/createvirtualmachineresponse.json")); - Plan plan = Plan.create("thinkboxsoftware", "deadline-slave-7-2", "deadline7-2"); - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - VirtualMachine vm = vmAPI - .createOrUpdate("windowsmachine", "westus", getVMWithManagedDisksProperties(), ImmutableMap.of("foo", "bar"), plan); - assertEquals(vm, getVM(plan)); - assertSent( - server, - "PUT", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?validating=false&api-version=2016-04-30-preview", - "{\"location\":\"westus\",\"properties\":" - + "{\"vmId\":\"27ee085b-d707-xxxx-yyyy-2370e2eb1cc1\",\"licenseType\":\"Windows_Server\"," - + "\"availabilitySet\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet\"}," - + "\"hardwareProfile\":{\"vmSize\":\"Standard_D1\"}," - + "\"storageProfile\":{\"imageReference\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest\"," - + "\"publisher\":\"publisher\",\"offer\":\"OFFER\",\"sku\":\"sku\",\"version\":\"ver\"}," - + "\"osDisk\":{\"osType\":\"Windows\",\"name\":\"windowsmachine\"," - + "\"caching\":\"ReadWrite\",\"createOption\":\"FromImage\"," - + "\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}}," - + "\"dataDisks\":[{\"name\":\"mydatadisk1\",\"diskSizeGB\":\"1\",\"lun\":0,\"createOption\":\"Empty\",\"caching\":\"ReadWrite\",\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}}]}," - + "\"osProfile\":{\"computerName\":\"windowsmachine\",\"adminUsername\":\"azureuser\",\"adminPassword\":\"password\",\"customData\":\"\",\"windowsConfiguration\":{\"provisionVMAgent\":false," - + "\"winRM\":{\"listeners\":[{\"protocol\":\"https\",\"certificateUrl\":\"url-to-certificate\"}]},\"additionalUnattendContent\":[{\"passName\":\"oobesystem\",\"componentName\":\"Microsoft-Windows-Shell-Setup\",\"settingName\":\"FirstLogonCommands\",\"content\":\"<XML unattend content>\"}]," - + "\"enableAutomaticUpdates\":true}," - + "\"secrets\":[{\"sourceVault\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1\"},\"vaultCertificates\":[{\"certificateUrl\":\"https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION\",\"certificateStore\":\"CERTIFICATESTORENAME\"}]}]}," - + "\"networkProfile\":{\"networkInterfaces\":[{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/windowsmachine167\"}]}," - + "\"diagnosticsProfile\":{\"bootDiagnostics\":{\"enabled\":true,\"storageUri\":\"https://groupname2760.blob.core.windows.net/\"}},\"provisioningState\":\"CREATING\"}," - + "\"tags\":{\"foo\":\"bar\"}," - + "\"plan\":{\"name\":\"deadline-slave-7-2\",\"publisher\":\"thinkboxsoftware\",\"product\":\"deadline7-2\"}}"); - } - - // See https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-create-or-update - // for where part of the example json response comes from. Unfortunately examples in the microsoft docs - // are not valid json (e.g. missing commas, illegal quotes). Therefore this example merges the original - // real-world example (presumably taken from the jclouds wire log), and snippets from the microsoft docs. - public void testCreate() throws Exception { - server.enqueue(jsonResponse("/createvirtualmachineresponse.json")); - - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - VirtualMachine vm = vmAPI.createOrUpdate("windowsmachine", "westus", getVMWithManagedDisksProperties(), ImmutableMap.of("foo", "bar"), null); - assertEquals(vm, getVM()); - assertSent( - server, - "PUT", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?validating=false&api-version=2016-04-30-preview", - "{\"location\":\"westus\",\"properties\":" - + "{\"vmId\":\"27ee085b-d707-xxxx-yyyy-2370e2eb1cc1\",\"licenseType\":\"Windows_Server\"," - + "\"availabilitySet\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet\"}," - + "\"hardwareProfile\":{\"vmSize\":\"Standard_D1\"}," - + "\"storageProfile\":{\"imageReference\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest\"," - + "\"publisher\":\"publisher\",\"offer\":\"OFFER\",\"sku\":\"sku\",\"version\":\"ver\"}," - + "\"osDisk\":{\"osType\":\"Windows\",\"name\":\"windowsmachine\"," - + "\"caching\":\"ReadWrite\",\"createOption\":\"FromImage\"," - + "\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}}," - + "\"dataDisks\":[{\"name\":\"mydatadisk1\",\"diskSizeGB\":\"1\",\"lun\":0,\"createOption\":\"Empty\",\"caching\":\"ReadWrite\",\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}}]}," - + "\"osProfile\":{\"computerName\":\"windowsmachine\",\"adminUsername\":\"azureuser\",\"adminPassword\":\"password\",\"customData\":\"\",\"windowsConfiguration\":{\"provisionVMAgent\":false," - + "\"winRM\":{\"listeners\":[{\"protocol\":\"https\",\"certificateUrl\":\"url-to-certificate\"}]},\"additionalUnattendContent\":[{\"passName\":\"oobesystem\",\"componentName\":\"Microsoft-Windows-Shell-Setup\",\"settingName\":\"FirstLogonCommands\",\"content\":\"<XML unattend content>\"}]," - + "\"enableAutomaticUpdates\":true}," - + "\"secrets\":[{\"sourceVault\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1\"},\"vaultCertificates\":[{\"certificateUrl\":\"https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION\",\"certificateStore\":\"CERTIFICATESTORENAME\"}]}]}," - + "\"networkProfile\":{\"networkInterfaces\":[{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/windowsmachine167\"}]}," - + "\"diagnosticsProfile\":{\"bootDiagnostics\":{\"enabled\":true,\"storageUri\":\"https://groupname2760.blob.core.windows.net/\"}},\"provisioningState\":\"CREATING\"}," - + "\"tags\":{\"foo\":\"bar\"}}"); - } - - public void testDeleteReturns404() throws Exception { - server.enqueue(response404()); - - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - - URI uri = vmAPI.delete("windowsmachine"); - - assertEquals(server.getRequestCount(), 1); - assertNull(uri); - - assertSent(server, "DELETE", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?api-version=2016-04-30-preview"); - } - - public void testDelete() throws Exception { - server.enqueue(response202WithHeader()); - - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - - URI uri = vmAPI.delete("windowsmachine"); - - assertEquals(server.getRequestCount(), 1); - assertNotNull(uri); - - assertSent(server, "DELETE", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine?api-version=2016-04-30-preview"); - } - - public void testStart() throws Exception { - server.enqueue(new MockResponse().setResponseCode(204)); - - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - - vmAPI.start("windowsmachine"); - - assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/start?api-version=2016-04-30-preview"); - } - - public void testRestart() throws Exception { - server.enqueue(new MockResponse().setResponseCode(204)); - - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - - vmAPI.restart("windowsmachine"); - - assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/restart?api-version=2016-04-30-preview"); - } - - public void testStop() throws Exception { - server.enqueue(new MockResponse().setResponseCode(204)); - - final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname"); - - vmAPI.stop("windowsmachine"); - - assertSent(server, "POST", "/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute" - + "/virtualMachines/windowsmachine/powerOff?api-version=2016-04-30-preview"); - } - - 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=2016-04-30-preview"); - } - - 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=2016-04-30-preview", - "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\",\"overwriteVhds\":\"true\"}"); - } - - 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=2016-04-30-preview", - "{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\",\"overwriteVhds\":\"true\"}"); - } - - private VirtualMachineProperties getVMWithBlobDisksProperties() { - String licenseType = "Windows_Server"; - IdReference availabilitySet = IdReference.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet"); - HardwareProfile hwProf = HardwareProfile.create("Standard_D1"); - ImageReference imgRef = ImageReference.builder().publisher("publisher").offer("OFFER").sku("sku").version("ver") - .customImageId("/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest") - .build(); - VHD vhd = VHD.create("https://groupname2760.blob.core.windows.net/vhds/windowsmachine201624102936.vhd"); - List<DataDisk> dataDisks = ImmutableList.of( - DataDisk.create("mydatadisk1", "1", 0, VHD.create("http://mystorage1.blob.core.windows.net/vhds/mydatadisk1.vhd"), - null, "Empty", null, null, null)); - ManagedDiskParameters managedDiskParameters = ManagedDiskParameters.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk", - "Standard_LRS"); - OSDisk osDisk = OSDisk.create("Windows", "windowsmachine", vhd, "ReadWrite", "FromImage", null, managedDiskParameters, null); - StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk, dataDisks); - LinuxConfiguration linuxConfig = null; - OSProfile.WindowsConfiguration.WinRM winrm = OSProfile.WindowsConfiguration.WinRM.create( - ImmutableList.of( - OSProfile.WindowsConfiguration.WinRM.ProtocolListener.create(Protocol.HTTPS, "url-to-certificate"))); - List<AdditionalUnattendContent> additionalUnattendContent = ImmutableList.of( - AdditionalUnattendContent.create("oobesystem", "Microsoft-Windows-Shell-Setup", "FirstLogonCommands", "<XML unattend content>")); - OSProfile.WindowsConfiguration windowsConfig = OSProfile.WindowsConfiguration.create(false, winrm, additionalUnattendContent, true); - List<Secrets> secrets = ImmutableList.of( - Secrets.create(SourceVault.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1"), - ImmutableList.of(VaultCertificate.create("https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION", "CERTIFICATESTORENAME")))); - OSProfile osProfile = OSProfile.create("windowsmachine", "azureuser", "password", "", linuxConfig, windowsConfig, secrets); - NetworkInterface networkInterface = NetworkInterface.create("/subscriptions/SUBSCRIPTIONID" - + "/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/" + "windowsmachine167", null); - List<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>(); - networkInterfaces.add(networkInterface); - NetworkProfile networkProfile = NetworkProfile.create(networkInterfaces); - DiagnosticsProfile.BootDiagnostics bootDiagnostics = DiagnosticsProfile.BootDiagnostics.create(true, - "https://groupname2760.blob.core.windows.net/"); - DiagnosticsProfile diagnosticsProfile = DiagnosticsProfile.create(bootDiagnostics); - VirtualMachineProperties properties = VirtualMachineProperties.create("27ee085b-d707-xxxx-yyyy-2370e2eb1cc1", - licenseType, availabilitySet, hwProf, storageProfile, osProfile, networkProfile, diagnosticsProfile, - VirtualMachineProperties.ProvisioningState.CREATING); - return properties; - } - - private VirtualMachineProperties getVMWithManagedDisksProperties() { - String licenseType = "Windows_Server"; - IdReference availabilitySet = IdReference.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet"); - HardwareProfile hwProf = HardwareProfile.create("Standard_D1"); - ImageReference imgRef = ImageReference.builder().publisher("publisher").offer("OFFER").sku("sku").version("ver") - .customImageId("/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest") - .build(); - ManagedDiskParameters managedDiskParameters = ManagedDiskParameters.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk", - "Standard_LRS"); - List<DataDisk> dataDisks = ImmutableList.of( - DataDisk.builder().name("mydatadisk1").diskSizeGB("1").lun(0).managedDiskParameters(managedDiskParameters).createOption(DataDisk.DiskCreateOptionTypes.EMPTY).caching(DataDisk.CachingTypes.READ_WRITE).build()); - OSDisk osDisk = OSDisk.builder().osType("Windows").name("windowsmachine").caching("ReadWrite").createOption("FromImage").managedDiskParameters(managedDiskParameters).build(); - StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk, dataDisks); - LinuxConfiguration linuxConfig = null; - OSProfile.WindowsConfiguration.WinRM winrm = OSProfile.WindowsConfiguration.WinRM.create( - ImmutableList.of( - OSProfile.WindowsConfiguration.WinRM.ProtocolListener.create(Protocol.HTTPS, "url-to-certificate"))); - List<AdditionalUnattendContent> additionalUnattendContent = ImmutableList.of( - AdditionalUnattendContent.create("oobesystem", "Microsoft-Windows-Shell-Setup", "FirstLogonCommands", "<XML unattend content>")); - OSProfile.WindowsConfiguration windowsConfig = OSProfile.WindowsConfiguration.create(false, winrm, additionalUnattendContent, true); - List<Secrets> secrets = ImmutableList.of( - Secrets.create(SourceVault.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1"), - ImmutableList.of(VaultCertificate.create("https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION", "CERTIFICATESTORENAME")))); - OSProfile osProfile = OSProfile.create("windowsmachine", "azureuser", "password", "", linuxConfig, windowsConfig, secrets); - NetworkInterface networkInterface = NetworkInterface.create("/subscriptions/SUBSCRIPTIONID" - + "/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/" + "windowsmachine167", null); - List<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>(); - networkInterfaces.add(networkInterface); - NetworkProfile networkProfile = NetworkProfile.create(networkInterfaces); - DiagnosticsProfile.BootDiagnostics bootDiagnostics = DiagnosticsProfile.BootDiagnostics.create(true, - "https://groupname2760.blob.core.windows.net/"); - DiagnosticsProfile diagnosticsProfile = DiagnosticsProfile.create(bootDiagnostics); - VirtualMachineProperties properties = VirtualMachineProperties.create("27ee085b-d707-xxxx-yyyy-2370e2eb1cc1", - licenseType, availabilitySet, hwProf, storageProfile, osProfile, networkProfile, diagnosticsProfile, - VirtualMachineProperties.ProvisioningState.CREATING); - return properties; - } - - private VirtualMachine getVM() { - VirtualMachineProperties properties = getVMWithManagedDisksProperties(); - VirtualMachine machine = VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + "" - + "resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine", "windowsmachine", - "Microsoft.Compute/virtualMachines", "westus", ImmutableMap.of("foo", "bar"), properties, - Plan.create("thinkboxsoftware", "deadline-slave-7-2", "deadline7-2")); - return machine; - } - - private VirtualMachine getVM(Plan plan) { - VirtualMachineProperties properties = getVMWithManagedDisksProperties(); - VirtualMachine machine = VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + "" - + "resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine", "windowsmachine", - "Microsoft.Compute/virtualMachines", "westus", ImmutableMap.of("foo", "bar"), properties, plan); - return machine; - } - - private VirtualMachineInstance getVMInstance() { - List<Status> statuses = new ArrayList<Status>(); - String testDate = "Wed May 04 01:38:52 PDT 2016"; - DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); - Date date = null; - try { - date = formatter.parse(testDate); - } catch (Exception e) { - e.printStackTrace(); - } - Status vmStatus = Status.create( - "ProvisioningState/succeeded", "Info", "Provisioning succeeded", null, date); - statuses.add(vmStatus); - Status vmStatus1 = Status.create( - "PowerState/running", "Info", "VM running", null, null); - statuses.add(vmStatus1); - - VirtualMachineInstance machineInstance = VirtualMachineInstance - .create(null, null, ImmutableList.copyOf(statuses)); - return machineInstance; - } - - private List<VirtualMachine> getVMList() { - List<VirtualMachine> list = new ArrayList<VirtualMachine>(); - VirtualMachineProperties propertiesWithManagedDisks = getVMWithManagedDisksProperties(); - VirtualMachine machineWithManagedDisks = VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + "" - + "resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine", "windowsmachine", - "Microsoft.Compute/virtualMachines", "westus", null, propertiesWithManagedDisks, null); - list.add(machineWithManagedDisks); - VirtualMachineProperties propertiesWithBlobDisks = getVMWithBlobDisksProperties(); - VirtualMachine machineWithBlobDisks = VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + "" - + "resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine", "windowsmachine", - "Microsoft.Compute/virtualMachines", "westus", null, propertiesWithBlobDisks, null); - list.add(machineWithBlobDisks); - return list; - } -}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java deleted file mode 100644 index ff93998..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java +++ /dev/null @@ -1,265 +0,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. - */ -package org.jclouds.azurecompute.arm.features; - -import com.google.common.collect.ImmutableMap; -import org.jclouds.azurecompute.arm.domain.Extension; -import org.jclouds.azurecompute.arm.domain.ExtensionProfile; -import org.jclouds.azurecompute.arm.domain.ExtensionProfileSettings; -import org.jclouds.azurecompute.arm.domain.ExtensionProperties; -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.NetworkInterfaceConfiguration; -import org.jclouds.azurecompute.arm.domain.NetworkInterfaceConfigurationProperties; -import org.jclouds.azurecompute.arm.domain.NetworkProfile; -import org.jclouds.azurecompute.arm.domain.OSDisk; -import org.jclouds.azurecompute.arm.domain.StorageProfile; -import org.jclouds.azurecompute.arm.domain.Subnet; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSet; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetDNSSettings; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfiguration; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfigurationProperties; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetNetworkProfile; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetNetworkSecurityGroup; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetOSProfile; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetProperties; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressConfiguration; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressProperties; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetSKU; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetUpgradePolicy; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetVirtualMachineProfile; -import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.net.URI; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.HashMap; -import java.util.Arrays; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - -@Test(groups = "live", testName = "VirtualMachineScaleSetApiLiveTest") -public class VirtualMachineScaleSetApiLiveTest extends BaseAzureComputeApiLiveTest { - - private String subscriptionid; - private String vmssName; - private String virtualNetworkName; - private String subnetId; - private Subnet subnet; - - @BeforeClass - @Override - public void setup() { - super.setup(); - subscriptionid = getSubscriptionId(); - - createTestResourceGroup(); //BASE: Creates a random resource group using the properties location - - virtualNetworkName = String.format("vn-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); - - // Subnets belong to a virtual network so that needs to be created first - assertNotNull(createDefaultVirtualNetwork(resourceGroupName, virtualNetworkName, "10.2.0.0/16", LOCATION)); - - //Subnet needs to be up & running before NIC can be created - String subnetName = String.format("s-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); - this.subnet = createDefaultSubnet(resourceGroupName, subnetName, virtualNetworkName, "10.2.0.0/23"); - assertNotNull(subnet); - assertNotNull(subnet.id()); - this.subnetId = subnet.id(); - - - vmssName = String.format("%3.24s", System.getProperty("user.name") + RAND + this.getClass().getSimpleName()).toLowerCase().substring(0, 15); - } - - private VirtualMachineScaleSetApi api() { - return api.getVirtualMachineScaleSetApi(resourceGroupName); - } - - @Test - public void testCreate() { - VirtualMachineScaleSet vmss = api().createOrUpdate(vmssName, LOCATIONDESCRIPTION, getSKU(), - Collections.<String, String>emptyMap(), getProperties()); - assertTrue(!vmss.name().isEmpty()); -// waitUntilReady(vmssName); - } - - @Test(dependsOnMethods = "testCreate") - public void testList() throws InterruptedException { - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourceGroupName); - assertEquals(vmssAPI.list().size(), 1); - } - - @Test(dependsOnMethods = "testList") - public void testGet() { - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourceGroupName); - assertEquals(vmssAPI.get(vmssName).name(), vmssName); - } - - @Test(dependsOnMethods = "testGet", alwaysRun = true) - public void testDelete() throws Exception { - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourceGroupName); - URI uri = vmssAPI.delete(vmssName); - assertResourceDeleted(uri); - } - - protected void assertResourceDeleted(URI uri) { - if (uri != null) { - assertTrue(resourceDeleted.apply(uri), - String.format("Resource %s was not terminated in the configured timeout", uri)); - } - } - - - /** - * Create a standard SKU - * - * @return VirtualMachineScaleSetSKU - */ - public VirtualMachineScaleSetSKU getSKU() { - return VirtualMachineScaleSetSKU.create("Standard_A1", "Standard", 10); - } - - private VirtualMachineScaleSetUpgradePolicy getUpgradePolicy() { - return VirtualMachineScaleSetUpgradePolicy.create("Manual"); - } - - private StorageProfile getLinuxStorageProfile_Default() { - return StorageProfile.create(getLinuxImageReference(), getLinuxOSDisk(), null); - } - - private ManagedDiskParameters getManagedDiskParameters() { - return ManagedDiskParameters.create(null, "Standard_LRS"); - } - - private OSDisk getLinuxOSDisk() { - return OSDisk.create("Linux", null, null, null, "FromImage", - null, getManagedDiskParameters(), null); - } - - private ImageReference getLinuxImageReference() { - return ImageReference.create(null, "Canonical", "UbuntuServer", - "16.04-LTS", "latest"); - } - - private VirtualMachineScaleSetOSProfile getOSProfile() { - VirtualMachineScaleSetOSProfile.LinuxConfiguration linuxConfiguration = - VirtualMachineScaleSetOSProfile.LinuxConfiguration.create(false, null); - VirtualMachineScaleSetOSProfile.WindowsConfiguration windowsConfiguration = null; - - return VirtualMachineScaleSetOSProfile.create(vmssName, "jclouds", "jClouds1!", - linuxConfiguration, windowsConfiguration, null); - } - - - private VirtualMachineScaleSetNetworkProfile getNetworkProfile() { - List<NetworkProfile.NetworkInterface> networkInterfacesList = new ArrayList<NetworkProfile.NetworkInterface>(); - - NetworkInterfaceCard nic = createNetworkInterfaceCard(resourceGroupName, "jc-nic-" + RAND, LOCATION, "ipConfig-" + RAND); - assertNotNull(nic); - networkInterfacesList.add(NetworkProfile.NetworkInterface.create(nic.id(), NetworkProfile.NetworkInterface.NetworkInterfaceProperties.create(true))); - - List<NetworkInterfaceConfiguration> networkInterfaceConfigurations = new ArrayList<NetworkInterfaceConfiguration>(); - List<VirtualMachineScaleSetIpConfiguration> virtualMachineScaleSetIpConfigurations = new ArrayList<VirtualMachineScaleSetIpConfiguration>(); - - - VirtualMachineScaleSetPublicIPAddressConfiguration publicIPAddressConfiguration = - VirtualMachineScaleSetPublicIPAddressConfiguration.create("pub1", VirtualMachineScaleSetPublicIPAddressProperties.create(15)); - - - VirtualMachineScaleSetIpConfigurationProperties virtualMachineScaleSetIpConfigurationProperties = - VirtualMachineScaleSetIpConfigurationProperties.create(publicIPAddressConfiguration, - this.subnet, "IPv4", null, - null, null); - - VirtualMachineScaleSetIpConfiguration virtualMachineScaleSetIpConfiguration = - VirtualMachineScaleSetIpConfiguration.create("ipconfig1", virtualMachineScaleSetIpConfigurationProperties); - - virtualMachineScaleSetIpConfigurations.add(virtualMachineScaleSetIpConfiguration); - - VirtualMachineScaleSetNetworkSecurityGroup networkSecurityGroup = null; - - ArrayList<String> dnsList = new ArrayList<String>(); - dnsList.add("8.8.8.8"); - VirtualMachineScaleSetDNSSettings dnsSettings = VirtualMachineScaleSetDNSSettings.create(dnsList); - - NetworkInterfaceConfigurationProperties networkInterfaceConfigurationProperties = - NetworkInterfaceConfigurationProperties.create(true, false, networkSecurityGroup, dnsSettings, virtualMachineScaleSetIpConfigurations); - NetworkInterfaceConfiguration networkInterfaceConfiguration = NetworkInterfaceConfiguration.create("nicconfig1", networkInterfaceConfigurationProperties); - networkInterfaceConfigurations.add(networkInterfaceConfiguration); - - return VirtualMachineScaleSetNetworkProfile.create(networkInterfaceConfigurations); - } - - - private ExtensionProfile getExtensionProfile() { - List<Extension> extensions = new ArrayList<Extension>(); - - List<String> uris = new ArrayList<String>(); - uris.add("https://mystorage1.blob.core.windows.net/winvmextekfacnt/SampleCmd_1.cmd"); - ExtensionProfileSettings extensionProfileSettings = ExtensionProfileSettings.create(uris, "SampleCmd_1.cmd"); - - Map<String, String> protectedSettings = new HashMap<String, String>(); - protectedSettings.put("StorageAccountKey", "jclouds-accountkey"); - - ExtensionProperties extensionProperties = ExtensionProperties.create("Microsoft.compute", "CustomScriptExtension", - "1.1", false, extensionProfileSettings, - protectedSettings); - - Extension extension = Extension.create("extensionName", extensionProperties); - extensions.add(extension); - - return ExtensionProfile.create(extensions); - } - - - private VirtualMachineScaleSetVirtualMachineProfile getVirtualMachineProfile() { - return VirtualMachineScaleSetVirtualMachineProfile.create(getLinuxStorageProfile_Default(), getOSProfile(), getNetworkProfile(), getExtensionProfile()); - } - - public VirtualMachineScaleSetProperties getProperties() { - - return VirtualMachineScaleSetProperties.create(null, null, getUpgradePolicy(), null, getVirtualMachineProfile()); - } - - private NetworkInterfaceCard createNetworkInterfaceCard(final String resourceGroupName, String networkInterfaceCardName, String locationName, String ipConfigurationName) { - //Create properties object - final NetworkInterfaceCardProperties networkInterfaceCardProperties = NetworkInterfaceCardProperties - .builder() - .ipConfigurations( - Arrays.asList(IpConfiguration.create(ipConfigurationName, null, null, null, IpConfigurationProperties - .create(null, null, "Dynamic", IdReference.create(subnetId), null, null, null)))).build(); - - final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest"); - return api.getNetworkInterfaceCardApi(resourceGroupName).createOrUpdate(networkInterfaceCardName, locationName, networkInterfaceCardProperties, tags); - } - - public String getSubscriptionid() { - return subscriptionid; - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java deleted file mode 100644 index e0420fa..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java +++ /dev/null @@ -1,453 +0,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. - */ -package org.jclouds.azurecompute.arm.features; - -import com.google.common.collect.ImmutableMap; -import org.jclouds.azurecompute.arm.domain.DataDisk; -import org.jclouds.azurecompute.arm.domain.Extension; -import org.jclouds.azurecompute.arm.domain.ExtensionProfile; -import org.jclouds.azurecompute.arm.domain.ExtensionProfileSettings; -import org.jclouds.azurecompute.arm.domain.ExtensionProperties; -import org.jclouds.azurecompute.arm.domain.IdReference; -import org.jclouds.azurecompute.arm.domain.ImageReference; -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.NetworkInterfaceConfiguration; -import org.jclouds.azurecompute.arm.domain.NetworkInterfaceConfigurationProperties; -import org.jclouds.azurecompute.arm.domain.NetworkProfile; -import org.jclouds.azurecompute.arm.domain.OSDisk; -import org.jclouds.azurecompute.arm.domain.Secrets; -import org.jclouds.azurecompute.arm.domain.StorageProfile; -import org.jclouds.azurecompute.arm.domain.Subnet; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSet; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetDNSSettings; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfiguration; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfigurationProperties; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetNetworkProfile; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetOSProfile; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetProperties; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressConfiguration; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressProperties; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetSKU; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetUpgradePolicy; -import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetVirtualMachineProfile; -import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest; -import org.testng.annotations.Test; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -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 = "VirtualMachineScaleSetAPIMockTest", singleThreaded = true) -public class VirtualMachineScaleSetApiMockTest extends BaseAzureComputeApiMockTest { - - private final String resourcegroup = "myresourcegroup"; - private final String vmssname = "jclouds-vmssname"; - - public void testGet() throws InterruptedException { - server.enqueue(jsonResponse("/virtualmachinescalesetget.json").setResponseCode(200)); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourcegroup); - assertEquals(vmssAPI.get(vmssname).name(), vmssname); - assertSent(server, - "GET", "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/" + - "providers/Microsoft.Compute" - + "/VirtualMachineScaleSets/jclouds-vmssname?api-version=2017-03-30"); - } - - public void testGetWhen404() throws InterruptedException { - server.enqueue(jsonResponse("/virtualmachinescalesetgetwhen404.json").setResponseCode(404)); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourcegroup); - VirtualMachineScaleSet vmss = vmssAPI.get(vmssname + 1); - assertSent(server, - "GET", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" + - "Microsoft.Compute/VirtualMachineScaleSets/" + - vmssname + "1?api-version=2017-03-30"); - assertNull(vmss); - } - - public void testCreateOrUpdate() throws InterruptedException { - server.enqueue( - jsonResponse( - "/virtualmachinescalesetresponsecreateorupdate.json").setResponseCode(200)); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourcegroup); - VirtualMachineScaleSet vmss = CreateOrUpdateVMSS(vmssAPI); - - assertNotNull(vmss); - assertSent(server, - "PUT", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" + - "Microsoft.Compute" - + "/VirtualMachineScaleSets/" + vmssname + "?api-version=2017-03-30", - "{\n" + - " \"location\": \"eastus\",\n" + - " \"sku\": {\n" + - " \"name\": \"Standard_A1\",\n" + - " \"tier\": \"Standard\",\n" + - " \"capacity\": 10\n" + - " },\n" + - " \"properties\": {\n" + - " \"singlePlacementGroup\": true,\n" + - " \"overProvision\": true,\n" + - " \"upgradePolicy\": {\n" + - " \"mode\": \"Manual\"\n" + - " },\n" + - " \"virtualMachineProfile\": {\n" + - " \"storageProfile\": {\n" + - " \"imageReference\": {\n" + - " \"publisher\": \"Canonical\",\n" + - " \"offer\": \"UbuntuServer\",\n" + - " \"sku\": \"16.04-LTS\",\n" + - " \"version\": \"latest\"\n" + - " },\n" + - " \"osDisk\": {\n" + - " \"osType\": \"Windows\",\n" + - " \"createOption\": \"FromImage\",\n" + - " \"managedDisk\": {\n" + - " \"storageAccountType\": \"Standard_LRS\"\n" + - " }\n" + - " },\n" + - " \"dataDisks\": [{\n" + - " \"diskSizeGB\": \"10\",\n" + - " \"lun\": 1,\n" + - " \"createOption\": \"Unrecognized\",\n" + - " \"caching\": \"None\",\n" + - " \"managedDisk\": {\n" + - " \"storageAccountType\": \"Standard_LRS\"\n" + - " }\n" + - " }\n" + - " ]\n" + - " },\n" + - " \"osProfile\": {\n" + - " \"computerNamePrefix\": \"jclouds-vmssname\",\n" + - " \"adminUsername\": \"admin\",\n" + - " \"adminPassword\": \"password\",\n" + - " \"linuxConfiguration\": {\n" + - " \"disablePasswordAuthentication\": false\n" + - " },\n" + - " \"secrets\": []\n" + - " },\n" + - " \"networkProfile\": {\n" + - " \"networkInterfaceConfigurations\": [{\n" + - " \"name\": \"nicconfig1\",\n" + - " \"properties\": {\n" + - " \"primary\": true,\n" + - " \"enableAcceleratedNetworking\": false,\n" + - " \"dnsSettings\": {\n" + - " \"dnsServers\": [\"8.8.8.8\"]\n" + - " },\n" + - " \"ipConfigurations\": [{\n" + - " \"name\": \"ipconfig1\",\n" + - " \"properties\": {\n" + - " \"publicIPAddressConfiguration\": {\n" + - " \"name\": \"pub1\",\n" + - " \"properties\": {\n" + - " \"idleTimeoutInMinutes\": 15\n" + - " }\n" + - " },\n" + - " \"subnet\": {\n" + - " \"name\": \"virtualNetworkName\",\n" + - " \"id\": \"/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/" + - "jcloud-eastus/providers/Microsoft.Network/virtualNetworks/" + - "jclouds-eastus-virtualNetworkName/subnets/jclouds-eastus-subnet\",\n" + - " \"properties\": {}\n" + - " },\n" + - " \"privateIPAddressVersion\": \"IPv4\",\n" + - " \"loadBalancerBackendAddressPools\": [],\n" + - " \"loadBalancerInboundNatPools\": []\n" + - " }\n" + - " }\n" + - " ]\n" + - " }\n" + - " }\n" + - " ]\n" + - " },\n" + - " \"extensionProfile\": {\n" + - " \"extensions\": [{\n" + - " \"name\": \"extensionName\",\n" + - " \"properties\": {\n" + - " \"publisher\": \"Microsoft.compute\",\n" + - " \"type\": \"CustomScriptExtension\",\n" + - " \"typeHandlerVersion\": \"1.1\",\n" + - " \"autoUpgradeMinorVersion\": false,\n" + - " \"settings\": {\n" + - " \"fileUris\": [\"https://mystorage1.blob.core.windows.net/winvmextekfacnt/" + - "SampleCmd_1.cmd\"],\n" + - " \"commandToExecute\": \"SampleCmd_1.cmd\"\n" + - " },\n" + - " \"protectedSettings\": {\n" + - " \"StorageAccountKey\": \"jclouds-accountkey\"\n" + - " }\n" + - " }\n" + - " }\n" + - " ]\n" + - " }\n" + - " }\n" + - " }\n" + - "}\n" - ); - } - - private VirtualMachineScaleSet CreateOrUpdateVMSS(VirtualMachineScaleSetApi vmssAPI) { - return vmssAPI.createOrUpdate( - vmssname, - "eastus", - VirtualMachineScaleSetSKU.create( - "Standard_A1", - "Standard", - 10), - null, - VirtualMachineScaleSetProperties.create( - true, - true, - VirtualMachineScaleSetUpgradePolicy.create("Manual"), - null, - VirtualMachineScaleSetVirtualMachineProfile.create( - StorageProfile.create( - ImageReference.create( - null, - "Canonical", - "UbuntuServer", - "16.04-LTS", - "latest"), - OSDisk.create( - "Windows", - null, - null, - null, - "FromImage", - null, - ManagedDiskParameters.create( - null, - "Standard_LRS"), - null), - Arrays.asList(DataDisk.create( - null, - "10", - 1, - null, - null, - "FromImage", - "None", - ManagedDiskParameters.create( - null, - "Standard_LRS"), - null))), - VirtualMachineScaleSetOSProfile.create( - "jclouds-vmssname", - "admin", - "password", - VirtualMachineScaleSetOSProfile.LinuxConfiguration.create( - false, - null), - null, - new ArrayList<Secrets>()), - getNetworkProfile(), - getExtensionProfile() - - ) - )); - } - - - private VirtualMachineScaleSetNetworkProfile getNetworkProfile() { - List<NetworkProfile.NetworkInterface> networkInterfacesList = - new ArrayList<NetworkProfile.NetworkInterface>(); - - NetworkInterfaceCard nic = - createNetworkInterfaceCard( - "jc-nic-" + 123, - "eastus"); - networkInterfacesList.add(NetworkProfile.NetworkInterface.create( - nic.id(), - NetworkProfile.NetworkInterface.NetworkInterfaceProperties.create(true))); - - List<NetworkInterfaceConfiguration> networkInterfaceConfigurations = - new ArrayList<NetworkInterfaceConfiguration>(); - List<VirtualMachineScaleSetIpConfiguration> virtualMachineScaleSetIpConfigurations = - new ArrayList<VirtualMachineScaleSetIpConfiguration>(); - - - VirtualMachineScaleSetPublicIPAddressConfiguration publicIPAddressConfiguration = - VirtualMachineScaleSetPublicIPAddressConfiguration.create( - "pub1", - VirtualMachineScaleSetPublicIPAddressProperties.create(15)); - - - VirtualMachineScaleSetIpConfigurationProperties virtualMachineScaleSetIpConfigurationProperties = - VirtualMachineScaleSetIpConfigurationProperties.create( - publicIPAddressConfiguration, - createDefaultSubnet( - "virtualNetworkName" - ), - "IPv4", - null, - null, - null); - - VirtualMachineScaleSetIpConfiguration virtualMachineScaleSetIpConfiguration = - VirtualMachineScaleSetIpConfiguration.create( - "ipconfig1", - virtualMachineScaleSetIpConfigurationProperties); - - virtualMachineScaleSetIpConfigurations.add(virtualMachineScaleSetIpConfiguration); - - ArrayList<String> dnsList = new ArrayList<String>(); - dnsList.add("8.8.8.8"); - VirtualMachineScaleSetDNSSettings dnsSettings = VirtualMachineScaleSetDNSSettings.create(dnsList); - - NetworkInterfaceConfigurationProperties networkInterfaceConfigurationProperties = - NetworkInterfaceConfigurationProperties.create( - true, - false, - null, - dnsSettings, - virtualMachineScaleSetIpConfigurations); - NetworkInterfaceConfiguration networkInterfaceConfiguration = - NetworkInterfaceConfiguration.create( - "nicconfig1", - networkInterfaceConfigurationProperties); - networkInterfaceConfigurations.add(networkInterfaceConfiguration); - - return VirtualMachineScaleSetNetworkProfile.create(networkInterfaceConfigurations); - } - - - private NetworkInterfaceCard createNetworkInterfaceCard( - String networkInterfaceCardName, String locationName) { - //Create properties object - NetworkInterfaceCardProperties networkInterfaceCardProperties = - NetworkInterfaceCardProperties.create( - null, - null, - false, - null, - IdReference.create( - "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/" + - "jcloud-eastus/providers/" + - "Microsoft.Network/virtualNetworks/" + - "jclouds-eastus-virtualNetworkName/subnets/" + - "jclouds-eastus-subnet") - ); - - Map<String, String> tags = ImmutableMap.of("jclouds", "livetest"); - return NetworkInterfaceCard.create( - networkInterfaceCardName, - "", - null, - locationName, - networkInterfaceCardProperties, tags); - } - - protected Subnet createDefaultSubnet(final String subnetName) { - Subnet.SubnetProperties properties = Subnet.SubnetProperties.create( - null, - null, - null); - return Subnet.create( - subnetName, - "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/jcloud-eastus/providers/" + - "Microsoft.Network/virtualNetworks/jclouds-eastus-virtualNetworkName/subnets/" + - "jclouds-eastus-subnet", - null, - properties); - } - - private ExtensionProfile getExtensionProfile() { - List<Extension> extensions = new ArrayList<Extension>(); - - List<String> uris = new ArrayList<String>(); - uris.add("https://mystorage1.blob.core.windows.net/winvmextekfacnt/SampleCmd_1.cmd"); - - Map<String, String> protectedSettings = new HashMap<String, String>(); - protectedSettings.put("StorageAccountKey", "jclouds-accountkey"); - - Extension extension = Extension.create( - "extensionName", - ExtensionProperties.create( - "Microsoft.compute", - "CustomScriptExtension", - "1.1", - false, - ExtensionProfileSettings.create( - uris, - "SampleCmd_1.cmd"), - protectedSettings)); - extensions.add(extension); - - return ExtensionProfile.create(extensions); - } - - public void testList() throws InterruptedException { - server.enqueue(jsonResponse("/virtualmachinescalesetlist.json").setResponseCode(200)); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourcegroup); - assertEquals(vmssAPI.list().size(), 1); - assertSent(server, - "GET", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" + - "Microsoft.Compute" - + "/VirtualMachineScaleSets?api-version=2017-03-30"); - } - - public void testListWhen404() throws InterruptedException { - server.enqueue( - jsonResponse("/virtualmachinescalesetlistwhen404.json").setResponseCode(404)); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi( - resourcegroup + "1"); - List<VirtualMachineScaleSet> vmssList = vmssAPI.list(); - assertSent(server, - "GET", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/" + - "Microsoft.Compute" - + "/VirtualMachineScaleSets?api-version=2017-03-30"); - assertTrue(isEmpty(vmssList)); - } - - - public void testDeleteWhen404() throws InterruptedException { - server.enqueue(jsonResponse("/virtualmachinescalesetlist.json").setResponseCode(404)); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourcegroup); - assertNull(vmssAPI.delete(vmssname)); - assertSent(server, - "DELETE", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" + - "Microsoft.Compute" - + "/VirtualMachineScaleSets/" + vmssname + "?api-version=2017-03-30"); - - } - - public void testDelete() throws InterruptedException { - server.enqueue(response202WithHeader()); - final VirtualMachineScaleSetApi vmssAPI = api.getVirtualMachineScaleSetApi(resourcegroup); - assertNotNull(vmssAPI.delete(vmssname)); - assertSent(server, - "DELETE", - "/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" + - "Microsoft.Compute" - + "/VirtualMachineScaleSets/jclouds-vmssname?api-version=2017-03-30"); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java deleted file mode 100644 index c0271d3..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java +++ /dev/null @@ -1,89 +0,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. - */ -package org.jclouds.azurecompute.arm.features; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - -import java.util.Arrays; -import java.util.List; - -import org.jclouds.azurecompute.arm.domain.VirtualNetwork; -import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -@Test(groups = "live", singleThreaded = true) -public class VirtualNetworkApiLiveTest extends BaseAzureComputeApiLiveTest { - - private String virtualNetworkName; - - @BeforeClass - @Override - public void setup() { - super.setup(); - createTestResourceGroup(); - virtualNetworkName = String.format("vn-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); - } - - @Test - public void deleteVirtualNetworkResourceDoesNotExist() { - boolean status = api().delete(virtualNetworkName); - assertFalse(status); - } - - @Test(dependsOnMethods = "deleteVirtualNetworkResourceDoesNotExist") - public void createVirtualNetwork() { - - final VirtualNetwork.VirtualNetworkProperties virtualNetworkProperties = - VirtualNetwork.VirtualNetworkProperties.builder().addressSpace( - VirtualNetwork.AddressSpace.create(Arrays.asList(DEFAULT_VIRTUALNETWORK_ADDRESS_PREFIX))).build(); - - VirtualNetwork vn = api().createOrUpdate(virtualNetworkName, LOCATION, null, virtualNetworkProperties); - - assertEquals(vn.name(), virtualNetworkName); - assertEquals(vn.location(), LOCATION); - } - - @Test(dependsOnMethods = "createVirtualNetwork") - public void getVirtualNetwork() { - VirtualNetwork vn = api().get(virtualNetworkName); - - assertNotNull(vn.name()); - assertNotNull(vn.location()); - assertNotNull(vn.properties().addressSpace().addressPrefixes()); - } - - @Test(dependsOnMethods = "createVirtualNetwork") - public void listVirtualNetworks() { - List<VirtualNetwork> vnList = api().list(); - assertTrue(vnList.size() > 0); - } - - @Test(dependsOnMethods = {"listVirtualNetworks", "getVirtualNetwork"}, alwaysRun = true) - public void deleteVirtualNetwork() { - boolean status = api().delete(virtualNetworkName); - assertTrue(status); - } - - private VirtualNetworkApi api() { - return api.getVirtualNetworkApi(resourceGroupName); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java deleted file mode 100644 index 8ba0406..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java +++ /dev/null @@ -1,137 +0,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. - */ -package org.jclouds.azurecompute.arm.features; - -import org.jclouds.azurecompute.arm.domain.VirtualNetwork; - -import org.testng.annotations.Test; - -import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest; - -import java.util.Arrays; -import java.util.List; - -import static com.google.common.collect.Iterables.isEmpty; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.assertNull; - -@Test(groups = "unit", testName = "VirtualNetworkApiMockTest", singleThreaded = true) -public class VirtualNetworkApiMockTest extends BaseAzureComputeApiMockTest { - - private final String subscriptionid = "SUBSCRIPTIONID"; - private final String resourcegroup = "myresourcegroup"; - private final String virtualNetwork = "mockvirtualnetwork"; - private final String apiVersion = "api-version=2015-06-15"; - private final String location = "westeurope"; - - public void getVirtualNetwork() throws InterruptedException { - server.enqueue(jsonResponse("/virtualnetwork.json")); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - VirtualNetwork vn = vnApi.get(virtualNetwork); - - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s", subscriptionid, resourcegroup, virtualNetwork, apiVersion); - assertSent(server, "GET", path); - assertEquals(vn.name(), "mockvirtualnetwork"); - assertEquals(vn.properties().resourceGuid(), "1568c76a-73a4-4a60-8dfb-53b823197ccb"); - assertEquals(vn.properties().addressSpace().addressPrefixes().get(0), "10.2.0.0/16"); - assertEquals(vn.tags().get("tagkey"), "tagvalue"); - } - - public void getVirtualNetworkReturns404() throws InterruptedException { - server.enqueue(response404()); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - VirtualNetwork vn = vnApi.get(virtualNetwork); - - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s", subscriptionid, resourcegroup, virtualNetwork, apiVersion); - assertSent(server, "GET", path); - - assertNull(vn); - } - - public void listVirtualNetworks() throws InterruptedException { - server.enqueue(jsonResponse("/listvirtualnetworks.json")); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - List<VirtualNetwork> vnList = vnApi.list(); - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks?%s", subscriptionid, resourcegroup, apiVersion); - - assertSent(server, "GET", path); - assertEquals(vnList.size(), 3); - } - - public void listVirtualNetworkReturns404() throws InterruptedException { - server.enqueue(response404()); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - List<VirtualNetwork> vnList = vnApi.list(); - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks?%s", subscriptionid, resourcegroup, apiVersion); - - assertSent(server, "GET", path); - - assertTrue(isEmpty(vnList)); - } - - public void createVirtualNetwork() throws InterruptedException { - - server.enqueue(jsonResponse("/createvirtualnetwork.json").setStatus("HTTP/1.1 201 Created")); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - - final VirtualNetwork.VirtualNetworkProperties virtualNetworkProperties = - VirtualNetwork.VirtualNetworkProperties.create(null, null, - VirtualNetwork.AddressSpace.create(Arrays.asList("10.2.0.0/16")), null); - - - vnApi.createOrUpdate(virtualNetwork, location, null, virtualNetworkProperties); - - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s", subscriptionid, resourcegroup, virtualNetwork, apiVersion); - String json = String.format("{\"location\":\"%s\",\"properties\":{\"addressSpace\":{\"addressPrefixes\":[\"%s\"]}}}", location, "10.2.0.0/16"); - assertSent(server, "PUT", path, json); - } - - public void deleteVirtualNetwork() throws InterruptedException { - - server.enqueue(response202()); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - - boolean status = vnApi.delete(virtualNetwork); - assertTrue(status); - - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s", subscriptionid, resourcegroup, virtualNetwork, apiVersion); - assertSent(server, "DELETE", path); - - } - - public void deleteVirtualNetworkResourceDoesNotExist() throws InterruptedException { - - server.enqueue(response204()); - - final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup); - - boolean status = vnApi.delete(virtualNetwork); - assertFalse(status); - - String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s", subscriptionid, resourcegroup, virtualNetwork, apiVersion); - assertSent(server, "DELETE", path); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java deleted file mode 100644 index f3b15ce..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java +++ /dev/null @@ -1,129 +0,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. - */ -package org.jclouds.azurecompute.arm.filters; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.API_VERSION_PREFIX; -import static org.jclouds.reflect.Reflection2.method; -import static org.testng.Assert.assertEquals; - -import java.util.Properties; - -import javax.inject.Named; - -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.internal.FilterStringsBoundToInjectorByName; -import org.jclouds.reflect.Invocation; -import org.jclouds.rest.config.InvocationConfig; -import org.jclouds.rest.internal.GeneratedHttpRequest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Injector; -import com.google.inject.name.Names; - -@Test(groups = "unit", testName = "ApiVersionFilterTest", singleThreaded = true) -public class ApiVersionFilterTest { - - public interface VersionedApi { - HttpResponse noName(); - - @Named("named:get") - HttpResponse named(); - } - - private Invocation noName; - private Invocation named; - private InvocationConfig config; - - @BeforeMethod - public void setup() { - noName = Invocation.create(method(VersionedApi.class, "noName"), ImmutableList.of()); - named = Invocation.create(method(VersionedApi.class, "named"), ImmutableList.of()); - - config = createMock(InvocationConfig.class); - expect(config.getCommandName(noName)).andReturn("VersionedApi.noName"); - expect(config.getCommandName(named)).andReturn("named:get"); - replay(config); - } - - @Test(expectedExceptions = IllegalArgumentException.class) - public void testFailIfNoGeneratedHttpRequest() { - ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(new Properties())); - filter.filter(HttpRequest.builder().method("GET").endpoint("http://localhost").build()); - } - - @Test - public void testOverrideMethodVersion() { - Properties props = new Properties(); - props.setProperty(API_VERSION_PREFIX + "named:get", "namedversion"); - props.setProperty(API_VERSION_PREFIX + "VersionedApi.noName", "noNameversion"); - ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(props)); - - HttpRequest request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost") - .invocation(noName).addQueryParam("api-version", "original", "original2").build(); - HttpRequest filtered = filter.filter(request); - assertEquals(filtered.getEndpoint().getQuery(), "api-version=noNameversion"); - - request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost").invocation(named) - .addQueryParam("api-version", "original", "original2").build(); - filtered = filter.filter(request); - assertEquals(filtered.getEndpoint().getQuery(), "api-version=namedversion"); - } - - @Test - public void testFallbackToClassName() { - Properties props = new Properties(); - props.setProperty(API_VERSION_PREFIX + "VersionedApi", "classversion"); - ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(props)); - - HttpRequest request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost") - .invocation(noName).addQueryParam("api-version", "original", "original2").build(); - HttpRequest filtered = filter.filter(request); - assertEquals(filtered.getEndpoint().getQuery(), "api-version=classversion"); - - request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost").invocation(named) - .addQueryParam("api-version", "original", "original2").build(); - filtered = filter.filter(request); - assertEquals(filtered.getEndpoint().getQuery(), "api-version=classversion"); - } - - @Test - public void testNothingChangesIfNoCustomVersion() { - ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(new Properties())); - - HttpRequest request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost").invocation(named) - .addQueryParam("api-version", "foo").build(); - HttpRequest filtered = filter.filter(request); - assertEquals(filtered.getEndpoint().getQuery(), "api-version=foo"); - } - - private FilterStringsBoundToInjectorByName filterStringsBoundToInjectorByName(final Properties props) { - Injector injector = Guice.createInjector(new AbstractModule() { - protected void configure() { - Names.bindProperties(binder(), props); - } - }); - return new FilterStringsBoundToInjectorByName(injector); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java deleted file mode 100644 index cd0eb02..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java +++ /dev/null @@ -1,51 +0,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. - */ -package org.jclouds.azurecompute.arm.functions; - -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertNotNull; - -import java.net.URI; - -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; -import com.google.common.collect.Multimap; -import com.google.common.collect.LinkedHashMultimap; - -@Test(groups = "unit", testName = "URIParserTest") -public class URIParserTest { - - public void testApply() { - URIParser parser = new URIParser(); - Multimap<String, String> headers = LinkedHashMultimap.<String, String>create(); - - URI uri = parser.apply(HttpResponse.builder().statusCode(200).build()); - assertNull(uri); - - try { - uri = parser.apply(HttpResponse.builder().statusCode(202).build()); - } catch (IllegalStateException ex) { - assertNotNull(ex); - } - - headers.put("Location", "https://someuri"); - - uri = parser.apply(HttpResponse.builder().statusCode(202).headers(headers).build()); - assertNotNull(uri); - - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/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 deleted file mode 100644 index 4d101ca..0000000 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java +++ /dev/null @@ -1,49 +0,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. - */ -package org.jclouds.azurecompute.arm.internal; - -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_PORT_OPEN; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_SCRIPT_COMPLETE; -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, "westeurope"); - properties.put(IMAGE_PUBLISHERS, "Canonical"); - - 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; - } -}
