From 99708fe379fa040e1950c0cddf912b2b39edccc6 Mon Sep 17 00:00:00 2001 From: Asir Vedamuthu Selvasingh Date: Tue, 21 Jun 2016 15:11:08 -0700 Subject: [PATCH 1/3] network interface sample --- .../samples/ListVirtualMachineImages.java | 12 +++ .../samples/ManageNetworkInterface.java | 98 +++++++++++++++++++ 2 files changed, 110 insertions(+) diff --git a/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java b/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java index 2462b79418cc2..03d983f49ce06 100644 --- a/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java +++ b/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java @@ -44,6 +44,18 @@ public static void main(String[] args) { .withDefaultSubscription(); + List images = azure.virtualMachineImages().listByRegion(Region.US_EAST); + + for (VirtualMachineImage image: images) { + System.out.println(image.publisherName() + "/" + + image.offer() + + "/" + + image.sku() + "/" + + image.version()); + } + + System.out.println("\n\n\n\n\n"); + //================================================================= // List all virtual machine image publishers and // list all virtual machine images diff --git a/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java b/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java index 2ef1238fdf3ca..67055c1ec86d1 100644 --- a/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java +++ b/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java @@ -7,6 +7,19 @@ package com.microsoft.azure.management.network.samples; +import com.microsoft.azure.Azure; +import com.microsoft.azure.management.compute.KnownWindowsVirtualMachineImage; +import com.microsoft.azure.management.compute.VirtualMachine; +import com.microsoft.azure.management.compute.implementation.api.VirtualMachineSizeTypes; +import com.microsoft.azure.management.network.NetworkInterface; +import com.microsoft.azure.management.resources.fluentcore.arm.Region; +import com.microsoft.azure.management.resources.fluentcore.utils.ResourceNamer; +import com.microsoft.azure.management.samples.Utils; +import okhttp3.logging.HttpLoggingInterceptor; + +import java.io.File; +import java.util.Date; + /** * Azure Network sample for managing network interfaces - * - Create a virtual machine with multiple network interfaces @@ -23,10 +36,95 @@ public final class ManageNetworkInterface { */ public static void main(String[] args) { + final String networkInterfaceName1 = ResourceNamer.randomResourceName("nic1", 24); + final String networkInterfaceName2 = ResourceNamer.randomResourceName("nic2", 24); + final String publicIpAddressLeafDNS1 = ResourceNamer.randomResourceName("pip1", 24); + final String publicIpAddressLeafDNS2 = ResourceNamer.randomResourceName("pip2", 24); + + final String vmName = ResourceNamer.randomResourceName("vm", 24); + final String rgName = ResourceNamer.randomResourceName("rgCOMV", 24); + final String userName = "tirekicker"; + final String password = "12NewPA$$w0rd!"; + try { + //============================================================= + // Authenticate + + final File credFile = new File("my.azureauth"); + + Azure azure = Azure + .configure() + .withLogLevel(HttpLoggingInterceptor.Level.BASIC) + .authenticate(credFile) + .withDefaultSubscription(); + + // Print selected subscription + System.out.println("Selected subscription: " + azure.subscriptionId()); + + + //============================================================ + // Create a virtual machine with multiple network interfaces + + System.out.println("Creating multiple network interfaces"); + NetworkInterface networkInterface1 = azure.networkInterfaces().define(networkInterfaceName1) + .withRegion(Region.US_EAST) + .withNewGroup(rgName) + .withNewPrimaryNetwork("10.0.0.0/28") + .withPrimaryPrivateIpAddressDynamic() + .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS1) + .withIpForwarding() + .create(); + + NetworkInterface networkInterface2 = azure.networkInterfaces().define(networkInterfaceName2) + .withRegion(Region.US_EAST) + .withExistingGroup(rgName) + .withNewPrimaryNetwork("10.0.0.0/28") + .withPrimaryPrivateIpAddressDynamic() + .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS2) + .withIpForwarding() + .create(); + + System.out.println("Created 2 network interfaces:"); + Utils.print(networkInterface1); + Utils.print(networkInterface2); + + + //============================================================= // Create a virtual machine with multiple network interfaces + System.out.println("Creating a Windows VM"); + + Date t1 = new Date(); + + VirtualMachine vm = azure.virtualMachines().define(vmName) + .withRegion(Region.US_EAST) + .withExistingGroup(rgName) + .withExistingPrimaryNetworkInterface(networkInterface1) + .withPopularWindowsImage(KnownWindowsVirtualMachineImage.WINDOWS_SERVER_2012_R2_DATACENTER) + .withAdminUserName(userName) + .withPassword(password) + .withSize(VirtualMachineSizeTypes.STANDARD_D3_V2) + .create(); + + Date t2 = new Date(); + System.out.println("Created VM: (took " + + ((t2.getTime() - t1.getTime()) / 1000) + " seconds) " + vm.id()); + // Print virtual machine details + Utils.print(vm); + + // add a secondary network interface + System.out.println("Adding a secondary network interface"); + vm.update() + .withExistingSecondaryNetworkInterface(networkInterface2) + .apply(); + + System.out.println("Added a secondary network interface"); + // Print virtual machine details + Utils.print(vm); + + + // =========================================================== // Configure multiple network interfaces // List network interfaces From 45dd057719e035b2e45d25bea8d7a5bda3e8e105 Mon Sep 17 00:00:00 2001 From: Asir Vedamuthu Selvasingh Date: Tue, 21 Jun 2016 16:28:42 -0700 Subject: [PATCH 2/3] network interface sample --- .../samples/ListVirtualMachineImages.java | 12 -- .../samples/ManageNetworkInterface.java | 196 +++++++++++------- 2 files changed, 125 insertions(+), 83 deletions(-) diff --git a/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java b/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java index 76c0f16e31a86..5c5996f57cad2 100644 --- a/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java +++ b/azure-samples/src/main/java/com/microsoft/azure/management/compute/samples/ListVirtualMachineImages.java @@ -44,18 +44,6 @@ public static void main(String[] args) { .withDefaultSubscription(); - List images = azure.virtualMachineImages().listByRegion(Region.US_EAST); - - for (VirtualMachineImage image: images) { - System.out.println(image.publisherName() + "/" - + image.offer() - + "/" - + image.sku() + "/" - + image.version()); - } - - System.out.println("\n\n\n\n\n"); - //================================================================= // List all virtual machine image publishers and // list all virtual machine images diff --git a/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java b/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java index 67055c1ec86d1..2a6f1719682cc 100644 --- a/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java +++ b/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java @@ -11,7 +11,9 @@ import com.microsoft.azure.management.compute.KnownWindowsVirtualMachineImage; import com.microsoft.azure.management.compute.VirtualMachine; import com.microsoft.azure.management.compute.implementation.api.VirtualMachineSizeTypes; +import com.microsoft.azure.management.network.Network; import com.microsoft.azure.management.network.NetworkInterface; +import com.microsoft.azure.management.network.NetworkInterfaces; import com.microsoft.azure.management.resources.fluentcore.arm.Region; import com.microsoft.azure.management.resources.fluentcore.utils.ResourceNamer; import com.microsoft.azure.management.samples.Utils; @@ -36,13 +38,14 @@ public final class ManageNetworkInterface { */ public static void main(String[] args) { + final String vnetName = ResourceNamer.randomResourceName("vnet", 24); final String networkInterfaceName1 = ResourceNamer.randomResourceName("nic1", 24); final String networkInterfaceName2 = ResourceNamer.randomResourceName("nic2", 24); final String publicIpAddressLeafDNS1 = ResourceNamer.randomResourceName("pip1", 24); final String publicIpAddressLeafDNS2 = ResourceNamer.randomResourceName("pip2", 24); final String vmName = ResourceNamer.randomResourceName("vm", 24); - final String rgName = ResourceNamer.randomResourceName("rgCOMV", 24); + final String rgName = ResourceNamer.randomResourceName("rgNEMI", 24); final String userName = "tirekicker"; final String password = "12NewPA$$w0rd!"; @@ -62,77 +65,128 @@ public static void main(String[] args) { // Print selected subscription System.out.println("Selected subscription: " + azure.subscriptionId()); - - //============================================================ - // Create a virtual machine with multiple network interfaces - - System.out.println("Creating multiple network interfaces"); - NetworkInterface networkInterface1 = azure.networkInterfaces().define(networkInterfaceName1) - .withRegion(Region.US_EAST) - .withNewGroup(rgName) - .withNewPrimaryNetwork("10.0.0.0/28") - .withPrimaryPrivateIpAddressDynamic() - .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS1) - .withIpForwarding() - .create(); - - NetworkInterface networkInterface2 = azure.networkInterfaces().define(networkInterfaceName2) - .withRegion(Region.US_EAST) - .withExistingGroup(rgName) - .withNewPrimaryNetwork("10.0.0.0/28") - .withPrimaryPrivateIpAddressDynamic() - .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS2) - .withIpForwarding() - .create(); - - System.out.println("Created 2 network interfaces:"); - Utils.print(networkInterface1); - Utils.print(networkInterface2); - - - //============================================================= - // Create a virtual machine with multiple network interfaces - - System.out.println("Creating a Windows VM"); - - Date t1 = new Date(); - - VirtualMachine vm = azure.virtualMachines().define(vmName) - .withRegion(Region.US_EAST) - .withExistingGroup(rgName) - .withExistingPrimaryNetworkInterface(networkInterface1) - .withPopularWindowsImage(KnownWindowsVirtualMachineImage.WINDOWS_SERVER_2012_R2_DATACENTER) - .withAdminUserName(userName) - .withPassword(password) - .withSize(VirtualMachineSizeTypes.STANDARD_D3_V2) - .create(); - - Date t2 = new Date(); - System.out.println("Created VM: (took " - + ((t2.getTime() - t1.getTime()) / 1000) + " seconds) " + vm.id()); - // Print virtual machine details - Utils.print(vm); - - // add a secondary network interface - System.out.println("Adding a secondary network interface"); - vm.update() - .withExistingSecondaryNetworkInterface(networkInterface2) - .apply(); - - System.out.println("Added a secondary network interface"); - // Print virtual machine details - Utils.print(vm); - - - // =========================================================== - // Configure multiple network interfaces - - // List network interfaces - - // Delete a network interface - + try { + + //============================================================ + // Create a virtual machine with multiple network interfaces + + // Define a virtual network for the VMs in this availability set + Network.DefinitionCreatable network = azure.networks() + .define(vnetName) + .withRegion(Region.US_EAST) + .withNewGroup(rgName) + .withAddressSpace("10.0.0.0/28"); + + System.out.println("Creating multiple network interfaces"); + NetworkInterface networkInterface1 = azure.networkInterfaces().define(networkInterfaceName1) + .withRegion(Region.US_EAST) + .withNewGroup(rgName) + .withNewPrimaryNetwork(network) + .withPrimaryPrivateIpAddressDynamic() + .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS1) + .withIpForwarding() + .create(); + + NetworkInterface networkInterface2 = azure.networkInterfaces().define(networkInterfaceName2) + .withRegion(Region.US_EAST) + .withExistingGroup(rgName) + .withNewPrimaryNetwork(network) + .withPrimaryPrivateIpAddressDynamic() + .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS2) + .withIpForwarding() + .create(); + + System.out.println("Created 2 network interfaces:"); + Utils.print(networkInterface1); + Utils.print(networkInterface2); + + + //============================================================= + // Create a virtual machine with multiple network interfaces + + System.out.println("Creating a Windows VM"); + + Date t1 = new Date(); + + VirtualMachine vm = azure.virtualMachines().define(vmName) + .withRegion(Region.US_EAST) + .withExistingGroup(rgName) + .withExistingPrimaryNetworkInterface(networkInterface1) + .withPopularWindowsImage(KnownWindowsVirtualMachineImage.WINDOWS_SERVER_2012_R2_DATACENTER) + .withAdminUserName(userName) + .withPassword(password) + .withSize(VirtualMachineSizeTypes.STANDARD_D3_V2) + .create(); + + Date t2 = new Date(); + System.out.println("Created VM: (took " + + ((t2.getTime() - t1.getTime()) / 1000) + " seconds) " + vm.id()); + // Print virtual machine details + Utils.print(vm); + + // add a secondary network interface + System.out.println("Adding a secondary network interface"); + vm.update() + .withExistingSecondaryNetworkInterface(networkInterface2) + .apply(); + + System.out.println("Added a secondary network interface"); + // Print virtual machine details + Utils.print(vm); + + + // =========================================================== + // Configure multiple network interfaces + System.out.println("Updating the first network interface"); + networkInterface1.update() + .withAzureDnsServer() + .apply(); + + System.out.println("Updated the first network interface"); + Utils.print(networkInterface1); + System.out.println(); + + + //============================================================ + // List network interfaces + + System.out.println("Walking through network inter4faces"); + NetworkInterfaces networkInterfaces = azure.networkInterfaces(); + for (NetworkInterface networkinterface : networkInterfaces.list()) { + Utils.print(networkinterface); + } + + + //============================================================ + // Delete a network interface + + System.out.println("Deleting a network interface: " + networkInterface2.id()); + azure.networkInterfaces().delete(networkInterface2.id()); + System.out.println("Deleted network interface"); + + System.out.println("Remaining network interfaces are ..."); + networkInterfaces = azure.networkInterfaces(); + for (NetworkInterface networkinterface : networkInterfaces.list()) { + Utils.print(networkinterface); + } + } catch (Exception f) { + + try { + System.out.println("Deleting Resource Group: " + rgName); + azure.resourceGroups().delete(rgName); + System.out.println("Deleted Resource Group: " + rgName); + } catch (NullPointerException npe) { + System.out.println("Did not create any resources in Azure. No clean up is necessary"); + } catch (Exception g) { + g.printStackTrace(); + } + + System.out.println(f.getMessage()); + f.printStackTrace(); + } } catch (Exception e) { - System.err.println(e.getMessage()); + System.out.println(e.getMessage()); + e.printStackTrace(); } } From 6cfccf0e522b936d0555f0d6d9bc22ec4a969a8c Mon Sep 17 00:00:00 2001 From: Asir Vedamuthu Selvasingh Date: Tue, 21 Jun 2016 17:14:32 -0700 Subject: [PATCH 3/3] minor fix --- .../management/network/samples/ManageNetworkInterface.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java b/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java index 2a6f1719682cc..bc3aba02edbf0 100644 --- a/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java +++ b/azure-samples/src/main/java/com/microsoft/azure/management/network/samples/ManageNetworkInterface.java @@ -80,7 +80,7 @@ public static void main(String[] args) { System.out.println("Creating multiple network interfaces"); NetworkInterface networkInterface1 = azure.networkInterfaces().define(networkInterfaceName1) .withRegion(Region.US_EAST) - .withNewGroup(rgName) + .withExistingGroup(rgName) .withNewPrimaryNetwork(network) .withPrimaryPrivateIpAddressDynamic() .withNewPrimaryPublicIpAddress(publicIpAddressLeafDNS1)