Search in sources :

Example 1 with NetworkInterface

use of com.azure.resourcemanager.network.models.NetworkInterface in project azure-vm-agents-plugin by jenkinsci.

the class ITAzureVMManagementServiceDelegate method createDeploymentWithAvailabilitySet.

@Test
public void createDeploymentWithAvailabilitySet() throws Exception {
    azureClient.resourceGroups().define(testEnv.azureResourceGroup).withRegion(testEnv.azureLocation).create();
    AvailabilitySet availabilitySet = azureClient.availabilitySets().define("test-av-set").withRegion(testEnv.azureLocation).withExistingResourceGroup(testEnv.azureResourceGroup).withFaultDomainCount(2).withUpdateDomainCount(4).withSku(AvailabilitySetSkuTypes.ALIGNED).create();
    Assert.assertNotNull("Failed to create availability set in resourceGroup " + testEnv.azureResourceGroup, availabilitySet);
    testEnv.availabilityType = AvailabilityType.AVAILABILITY_SET.getName();
    testEnv.availabilitySet = availabilitySet.name();
    AzureVMAgentCleanUpTask.DeploymentRegistrar deploymentRegistrar = mock(AzureVMAgentCleanUpTask.DeploymentRegistrar.class);
    when(deploymentRegistrar.getDeploymentTag()).thenReturn(new AzureUtil.DeploymentTag("some_tag/123"));
    AzureVMDeploymentInfo deploymentInfo;
    deploymentInfo = createDefaultDeployment(1, deploymentRegistrar);
    verify(deploymentRegistrar).registerDeployment("testCloud", testEnv.azureResourceGroup, deploymentInfo.getDeploymentName(), null);
    Network actualVNet = null;
    StorageAccount actualStorageAcc = null;
    try {
        actualVNet = azureClient.networks().getByResourceGroup(testEnv.azureResourceGroup, "jenkinsarm-vnet");
        actualStorageAcc = azureClient.storageAccounts().getByResourceGroup(testEnv.azureResourceGroup, testEnv.azureStorageAccountName);
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VNet doesn't exist: " + testEnv.azureResourceGroup, actualVNet);
    Assert.assertNotNull("The deployed Storage Account doesn't exist: " + testEnv.azureResourceGroup, actualStorageAcc);
    final String baseName = deploymentInfo.getVmBaseName() + "0";
    final String commonAssertMsg = testEnv.azureResourceGroup + ":" + baseName;
    VirtualMachine actualVM = null;
    NetworkInterface actualNetIface = null;
    PublicIpAddress actualIP = null;
    try {
        actualVM = azureClient.virtualMachines().getByResourceGroup(testEnv.azureResourceGroup, baseName);
        actualNetIface = azureClient.networkInterfaces().getByResourceGroup(testEnv.azureResourceGroup, baseName + "NIC");
        actualIP = azureClient.publicIpAddresses().getByResourceGroup(testEnv.azureResourceGroup, baseName + "IPName");
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VM doesn't exist: " + commonAssertMsg, actualVM);
    Assert.assertNotNull("The deployed Network interface doesn't exist: " + commonAssertMsg, actualNetIface);
    Assert.assertNotNull("The deployed public IP doesn't exist: " + commonAssertMsg, actualIP);
    assertThat(availabilitySet.id(), is(equalToIgnoringCase(actualVM.availabilitySetId())));
}
Also used : AzureVMAgentCleanUpTask(com.microsoft.azure.vmagent.AzureVMAgentCleanUpTask) AzureVMDeploymentInfo(com.microsoft.azure.vmagent.AzureVMDeploymentInfo) NetworkInterface(com.azure.resourcemanager.network.models.NetworkInterface) AzureCloudException(com.microsoft.azure.vmagent.exceptions.AzureCloudException) IOException(java.io.IOException) ManagementException(com.azure.core.management.exception.ManagementException) PublicIpAddress(com.azure.resourcemanager.network.models.PublicIpAddress) StorageAccount(com.azure.resourcemanager.storage.models.StorageAccount) Network(com.azure.resourcemanager.network.models.Network) AzureUtil(com.microsoft.azure.vmagent.util.AzureUtil) AvailabilitySet(com.azure.resourcemanager.compute.models.AvailabilitySet) VirtualMachine(com.azure.resourcemanager.compute.models.VirtualMachine) Test(org.junit.Test)

Example 2 with NetworkInterface

use of com.azure.resourcemanager.network.models.NetworkInterface in project azure-vm-agents-plugin by jenkinsci.

the class ITAzureVMManagementServiceDelegate method createDeploymentTest.

@Test
public void createDeploymentTest() throws Exception {
    Random rand = new Random();
    final int numberOfAgents = rand.nextInt(4) + 1;
    AzureVMDeploymentInfo deploymentInfo = null;
    AzureVMAgentCleanUpTask.DeploymentRegistrar deploymentRegistrar = mock(AzureVMAgentCleanUpTask.DeploymentRegistrar.class);
    when(deploymentRegistrar.getDeploymentTag()).thenReturn(new AzureUtil.DeploymentTag("some_tag/123"));
    deploymentInfo = createDefaultDeployment(numberOfAgents, deploymentRegistrar);
    verify(deploymentRegistrar).registerDeployment("testCloud", testEnv.azureResourceGroup, deploymentInfo.getDeploymentName(), null);
    Network actualVNet = null;
    StorageAccount actualStorageAcc = null;
    try {
        actualVNet = azureClient.networks().getByResourceGroup(testEnv.azureResourceGroup, "jenkinsarm-vnet");
        actualStorageAcc = azureClient.storageAccounts().getByResourceGroup(testEnv.azureResourceGroup, testEnv.azureStorageAccountName);
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VNet doesn't exist: " + testEnv.azureResourceGroup, actualVNet);
    Assert.assertNotNull("The deployed Storage Account doesn't exist: " + testEnv.azureResourceGroup, actualStorageAcc);
    for (int i = 0; i < numberOfAgents; i++) {
        final String baseName = deploymentInfo.getVmBaseName() + i;
        final String commonAssertMsg = testEnv.azureResourceGroup + ":" + baseName;
        VirtualMachine actualVM = null;
        NetworkInterface actualNetIface = null;
        PublicIpAddress actualIP = null;
        try {
            actualVM = azureClient.virtualMachines().getByResourceGroup(testEnv.azureResourceGroup, baseName);
            actualNetIface = azureClient.networkInterfaces().getByResourceGroup(testEnv.azureResourceGroup, baseName + "NIC");
            actualIP = azureClient.publicIpAddresses().getByResourceGroup(testEnv.azureResourceGroup, baseName + "IPName");
        } catch (Exception e) {
            LOGGER.log(Level.SEVERE, null, e);
        }
        Assert.assertNotNull("The deployed VM doesn't exist: " + commonAssertMsg, actualVM);
        Assert.assertNotNull("The deployed Network interface doesn't exist: " + commonAssertMsg, actualNetIface);
        Assert.assertNotNull("The deployed public IP doesn't exist: " + commonAssertMsg, actualIP);
        Assert.assertFalse(actualVM.isManagedServiceIdentityEnabled());
        Assert.assertEquals(getDefaultOsDiskSize(OS_TYPE), actualVM.osDiskSize());
        Assert.assertEquals("gavin", actualVM.tags().get("author"));
        Assert.assertEquals("test", actualVM.tags().get("env"));
        Assert.assertEquals("gavin", actualIP.tags().get("author"));
        Assert.assertEquals("test", actualIP.tags().get("env"));
        Assert.assertEquals("gavin", actualNetIface.tags().get("author"));
        Assert.assertEquals("test", actualNetIface.tags().get("env"));
        Assert.assertEquals("gavin", actualStorageAcc.tags().get("author"));
        Assert.assertEquals("test", actualStorageAcc.tags().get("env"));
        Assert.assertEquals("gavin", actualVNet.tags().get("author"));
        Assert.assertEquals("test", actualVNet.tags().get("env"));
    }
}
Also used : AzureVMAgentCleanUpTask(com.microsoft.azure.vmagent.AzureVMAgentCleanUpTask) AzureVMDeploymentInfo(com.microsoft.azure.vmagent.AzureVMDeploymentInfo) NetworkInterface(com.azure.resourcemanager.network.models.NetworkInterface) AzureCloudException(com.microsoft.azure.vmagent.exceptions.AzureCloudException) IOException(java.io.IOException) ManagementException(com.azure.core.management.exception.ManagementException) PublicIpAddress(com.azure.resourcemanager.network.models.PublicIpAddress) Random(java.util.Random) StorageAccount(com.azure.resourcemanager.storage.models.StorageAccount) Network(com.azure.resourcemanager.network.models.Network) AzureUtil(com.microsoft.azure.vmagent.util.AzureUtil) VirtualMachine(com.azure.resourcemanager.compute.models.VirtualMachine) Test(org.junit.Test)

Example 3 with NetworkInterface

use of com.azure.resourcemanager.network.models.NetworkInterface in project azure-vm-agents-plugin by jenkinsci.

the class ITAzureVMManagementServiceDelegate method createDeploymentWithSpecificOsDiskSize.

@Test
public void createDeploymentWithSpecificOsDiskSize() throws Exception {
    int osDiskSize = 100;
    testEnv.osDiskSize = osDiskSize;
    AzureVMAgentCleanUpTask.DeploymentRegistrar deploymentRegistrar = mock(AzureVMAgentCleanUpTask.DeploymentRegistrar.class);
    when(deploymentRegistrar.getDeploymentTag()).thenReturn(new AzureUtil.DeploymentTag("some_tag/123"));
    AzureVMDeploymentInfo deploymentInfo;
    deploymentInfo = createDefaultDeployment(1, deploymentRegistrar);
    verify(deploymentRegistrar).registerDeployment("testCloud", testEnv.azureResourceGroup, deploymentInfo.getDeploymentName(), null);
    Network actualVNet = null;
    StorageAccount actualStorageAcc = null;
    try {
        actualVNet = azureClient.networks().getByResourceGroup(testEnv.azureResourceGroup, "jenkinsarm-vnet");
        actualStorageAcc = azureClient.storageAccounts().getByResourceGroup(testEnv.azureResourceGroup, testEnv.azureStorageAccountName);
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VNet doesn't exist: " + testEnv.azureResourceGroup, actualVNet);
    Assert.assertNotNull("The deployed Storage Account doesn't exist: " + testEnv.azureResourceGroup, actualStorageAcc);
    final String baseName = deploymentInfo.getVmBaseName() + "0";
    final String commonAssertMsg = testEnv.azureResourceGroup + ":" + baseName;
    VirtualMachine actualVM = null;
    NetworkInterface actualNetIface = null;
    PublicIpAddress actualIP = null;
    try {
        actualVM = azureClient.virtualMachines().getByResourceGroup(testEnv.azureResourceGroup, baseName);
        actualNetIface = azureClient.networkInterfaces().getByResourceGroup(testEnv.azureResourceGroup, baseName + "NIC");
        actualIP = azureClient.publicIpAddresses().getByResourceGroup(testEnv.azureResourceGroup, baseName + "IPName");
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VM doesn't exist: " + commonAssertMsg, actualVM);
    Assert.assertNotNull("The deployed Network interface doesn't exist: " + commonAssertMsg, actualNetIface);
    Assert.assertNotNull("The deployed public IP doesn't exist: " + commonAssertMsg, actualIP);
    Assert.assertEquals(osDiskSize, actualVM.osDiskSize());
}
Also used : AzureVMAgentCleanUpTask(com.microsoft.azure.vmagent.AzureVMAgentCleanUpTask) AzureVMDeploymentInfo(com.microsoft.azure.vmagent.AzureVMDeploymentInfo) NetworkInterface(com.azure.resourcemanager.network.models.NetworkInterface) AzureCloudException(com.microsoft.azure.vmagent.exceptions.AzureCloudException) IOException(java.io.IOException) ManagementException(com.azure.core.management.exception.ManagementException) PublicIpAddress(com.azure.resourcemanager.network.models.PublicIpAddress) StorageAccount(com.azure.resourcemanager.storage.models.StorageAccount) Network(com.azure.resourcemanager.network.models.Network) AzureUtil(com.microsoft.azure.vmagent.util.AzureUtil) VirtualMachine(com.azure.resourcemanager.compute.models.VirtualMachine) Test(org.junit.Test)

Example 4 with NetworkInterface

use of com.azure.resourcemanager.network.models.NetworkInterface in project azure-maven-plugins by microsoft.

the class DraftVirtualMachine method create.

VirtualMachine create(final AzureVirtualMachine module) {
    this.module = module;
    final NetworkInterface.DefinitionStages.WithCreate interfaceWithCreate = module.getVirtualMachinesManager(subscriptionId).manager().networkManager().networkInterfaces().define(name + "-interface-" + Utils.getTimestamp()).withRegion(this.getRegion().getName()).withExistingResourceGroup(this.getResourceGroup()).withExistingPrimaryNetwork(this.getNetworkClient()).withSubnet(subnet.getName()).withPrimaryPrivateIPAddressDynamic();
    if (ipAddress != null) {
        final com.azure.resourcemanager.network.models.PublicIpAddress publicIpAddressClient = getPublicIpAddressClient();
        if (publicIpAddressClient.hasAssignedNetworkInterface()) {
            AzureMessager.getMessager().warning(AzureString.format("Can not assign public ip %s to vm %s, which has been assigned to %s", ipAddress.getName(), name, publicIpAddressClient.getAssignedNetworkInterfaceIPConfiguration().name()));
        } else {
            interfaceWithCreate.withExistingPrimaryPublicIPAddress(getPublicIpAddressClient());
        }
    }
    if (securityGroup != null) {
        interfaceWithCreate.withExistingNetworkSecurityGroup(getSecurityGroupClient());
    }
    final NetworkInterface networkInterface = interfaceWithCreate.create();
    final WithProximityPlacementGroup withProximityPlacementGroup = module.getVirtualMachinesManager(subscriptionId).define(this.getName()).withRegion(this.getRegion().getName()).withExistingResourceGroup(this.getResourceGroup()).withExistingPrimaryNetworkInterface(networkInterface);
    final WithCreate withCreate = configureImage(withProximityPlacementGroup);
    if (StringUtils.isNotEmpty(availabilitySet)) {
        withCreate.withExistingAvailabilitySet(getAvailabilitySetClient());
    }
    if (storageAccount != null) {
        withCreate.withExistingStorageAccount(getStorageAccountClient());
    }
    if (azureSpotConfig != null) {
        final VirtualMachineEvictionPolicyTypes evictionPolicyTypes = azureSpotConfig.getPolicy() == StopAndDeallocate ? DEALLOCATE : DELETE;
        withCreate.withSpotPriority(evictionPolicyTypes).withMaxPrice(azureSpotConfig.getMaximumPrice());
    }
    try {
        this.remote = withCreate.create();
    } catch (Exception e) {
        // clean up resource once creation failed
        networkInterface.manager().networkInterfaces().deleteById(networkInterface.id());
        throw e;
    }
    refreshStatus();
    module.refresh();
    return this;
}
Also used : WithProximityPlacementGroup(com.azure.resourcemanager.compute.models.VirtualMachine.DefinitionStages.WithProximityPlacementGroup) WithCreate(com.azure.resourcemanager.compute.models.VirtualMachine.DefinitionStages.WithCreate) VirtualMachineEvictionPolicyTypes(com.azure.resourcemanager.compute.models.VirtualMachineEvictionPolicyTypes) NetworkInterface(com.azure.resourcemanager.network.models.NetworkInterface)

Example 5 with NetworkInterface

use of com.azure.resourcemanager.network.models.NetworkInterface in project azure-vm-agents-plugin by jenkinsci.

the class ITAzureVMManagementServiceDelegate method createDeploymentWithPurchasePlan.

/**
 * This test requires legal terms accepted in order for it to pass
 * You can run: az vm image accept-terms --urn kali-linux:kali-linux:kali:2018.4.0
 */
@Test
public void createDeploymentWithPurchasePlan() throws Exception {
    testEnv.azureImagePublisher = "kali-linux";
    testEnv.azureImageOffer = "kali-linux";
    testEnv.azureImageSku = "kali";
    AzureVMAgentCleanUpTask.DeploymentRegistrar deploymentRegistrar = mock(AzureVMAgentCleanUpTask.DeploymentRegistrar.class);
    when(deploymentRegistrar.getDeploymentTag()).thenReturn(new AzureUtil.DeploymentTag("some_tag/123"));
    AzureVMDeploymentInfo deploymentInfo;
    deploymentInfo = createDefaultDeployment(1, deploymentRegistrar);
    verify(deploymentRegistrar).registerDeployment("testCloud", testEnv.azureResourceGroup, deploymentInfo.getDeploymentName(), null);
    Network actualVNet = null;
    StorageAccount actualStorageAcc = null;
    try {
        actualVNet = azureClient.networks().getByResourceGroup(testEnv.azureResourceGroup, "jenkinsarm-vnet");
        actualStorageAcc = azureClient.storageAccounts().getByResourceGroup(testEnv.azureResourceGroup, testEnv.azureStorageAccountName);
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VNet doesn't exist: " + testEnv.azureResourceGroup, actualVNet);
    Assert.assertNotNull("The deployed Storage Account doesn't exist: " + testEnv.azureResourceGroup, actualStorageAcc);
    final String baseName = deploymentInfo.getVmBaseName() + "0";
    final String commonAssertMsg = testEnv.azureResourceGroup + ":" + baseName;
    VirtualMachine actualVM = null;
    NetworkInterface actualNetIface = null;
    PublicIpAddress actualIP = null;
    try {
        actualVM = azureClient.virtualMachines().getByResourceGroup(testEnv.azureResourceGroup, baseName);
        actualNetIface = azureClient.networkInterfaces().getByResourceGroup(testEnv.azureResourceGroup, baseName + "NIC");
        actualIP = azureClient.publicIpAddresses().getByResourceGroup(testEnv.azureResourceGroup, baseName + "IPName");
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, null, e);
    }
    Assert.assertNotNull("The deployed VM doesn't exist: " + commonAssertMsg, actualVM);
    Assert.assertNotNull("The deployed Network interface doesn't exist: " + commonAssertMsg, actualNetIface);
    Assert.assertNotNull("The deployed public IP doesn't exist: " + commonAssertMsg, actualIP);
}
Also used : PublicIpAddress(com.azure.resourcemanager.network.models.PublicIpAddress) AzureVMAgentCleanUpTask(com.microsoft.azure.vmagent.AzureVMAgentCleanUpTask) AzureVMDeploymentInfo(com.microsoft.azure.vmagent.AzureVMDeploymentInfo) StorageAccount(com.azure.resourcemanager.storage.models.StorageAccount) Network(com.azure.resourcemanager.network.models.Network) AzureUtil(com.microsoft.azure.vmagent.util.AzureUtil) NetworkInterface(com.azure.resourcemanager.network.models.NetworkInterface) AzureCloudException(com.microsoft.azure.vmagent.exceptions.AzureCloudException) IOException(java.io.IOException) ManagementException(com.azure.core.management.exception.ManagementException) VirtualMachine(com.azure.resourcemanager.compute.models.VirtualMachine) Test(org.junit.Test)

Aggregations

NetworkInterface (com.azure.resourcemanager.network.models.NetworkInterface)8 ManagementException (com.azure.core.management.exception.ManagementException)7 VirtualMachine (com.azure.resourcemanager.compute.models.VirtualMachine)7 Network (com.azure.resourcemanager.network.models.Network)7 PublicIpAddress (com.azure.resourcemanager.network.models.PublicIpAddress)7 StorageAccount (com.azure.resourcemanager.storage.models.StorageAccount)7 AzureVMAgentCleanUpTask (com.microsoft.azure.vmagent.AzureVMAgentCleanUpTask)7 AzureVMDeploymentInfo (com.microsoft.azure.vmagent.AzureVMDeploymentInfo)7 AzureCloudException (com.microsoft.azure.vmagent.exceptions.AzureCloudException)7 AzureUtil (com.microsoft.azure.vmagent.util.AzureUtil)7 IOException (java.io.IOException)7 Test (org.junit.Test)7 AvailabilitySet (com.azure.resourcemanager.compute.models.AvailabilitySet)1 WithCreate (com.azure.resourcemanager.compute.models.VirtualMachine.DefinitionStages.WithCreate)1 WithProximityPlacementGroup (com.azure.resourcemanager.compute.models.VirtualMachine.DefinitionStages.WithProximityPlacementGroup)1 VirtualMachineEvictionPolicyTypes (com.azure.resourcemanager.compute.models.VirtualMachineEvictionPolicyTypes)1 Random (java.util.Random)1