Search in sources :

Example 6 with Region

use of com.microsoft.azure.management.resources.fluentcore.arm.Region in project azure-sdk-for-java by Azure.

the class CreateVirtualMachineUsingCustomImageFromVM method runSample.

/**
     * Main function which runs the actual sample.
     * @param azure instance of the azure client
     * @return true if sample runs successfully
     */
public static boolean runSample(Azure azure) {
    final String linuxVMName1 = Utils.createRandomName("VM1");
    final String linuxVMName2 = Utils.createRandomName("VM2");
    final String linuxVMName3 = Utils.createRandomName("VM3");
    final String customImageName = Utils.createRandomName("img");
    final String rgName = Utils.createRandomName("rgCOMV");
    final String publicIpDnsLabel = Utils.createRandomName("pip");
    final String userName = "tirekicker";
    final String password = "12NewPA$$w0rd!";
    final Region region = Region.US_WEST_CENTRAL;
    final String apacheInstallScript = "https://raw.githubusercontent.com/Azure/azure-sdk-for-java/master/azure-samples/src/main/resources/install_apache.sh";
    final String apacheInstallCommand = "bash install_apache.sh";
    List<String> apacheInstallScriptUris = new ArrayList<>();
    apacheInstallScriptUris.add(apacheInstallScript);
    try {
        //=============================================================
        // Create a Linux VM using a PIR image with un-managed OS and data disks and customize virtual
        // machine using custom script extension
        System.out.println("Creating a un-managed Linux VM");
        VirtualMachine linuxVM = azure.virtualMachines().define(linuxVMName1).withRegion(region).withNewResourceGroup(rgName).withNewPrimaryNetwork("10.0.0.0/28").withPrimaryPrivateIPAddressDynamic().withNewPrimaryPublicIPAddress(publicIpDnsLabel).withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS).withRootUsername(userName).withRootPassword(password).withUnmanagedDisks().defineUnmanagedDataDisk("disk-1").withNewVhd(100).withLun(1).attach().defineUnmanagedDataDisk("disk-2").withNewVhd(50).withLun(2).attach().defineNewExtension("CustomScriptForLinux").withPublisher("Microsoft.OSTCExtensions").withType("CustomScriptForLinux").withVersion("1.4").withMinorVersionAutoUpgrade().withPublicSetting("fileUris", apacheInstallScriptUris).withPublicSetting("commandToExecute", apacheInstallCommand).attach().withSize(VirtualMachineSizeTypes.STANDARD_D3_V2).create();
        System.out.println("Created a Linux VM with un-managed OS and data disks: " + linuxVM.id());
        Utils.print(linuxVM);
        // De-provision the virtual machine
        deprovisionAgentInLinuxVM(linuxVM.getPrimaryPublicIPAddress().fqdn(), 22, userName, password);
        //=============================================================
        // Deallocate the virtual machine
        System.out.println("Deallocate VM: " + linuxVM.id());
        linuxVM.deallocate();
        System.out.println("De-allocated VM: " + linuxVM.id() + "; state = " + linuxVM.powerState());
        //=============================================================
        // Generalize the virtual machine
        System.out.println("Generalize VM: " + linuxVM.id());
        linuxVM.generalize();
        System.out.println("Generalized VM: " + linuxVM.id());
        //=============================================================
        // Capture the virtual machine to get a 'Generalized image' with Apache
        System.out.println("Capturing VM as custom image: " + linuxVM.id());
        VirtualMachineCustomImage virtualMachineCustomImage = azure.virtualMachineCustomImages().define(customImageName).withRegion(region).withExistingResourceGroup(rgName).fromVirtualMachine(linuxVM).create();
        System.out.println("Captured VM: " + linuxVM.id());
        Utils.print(virtualMachineCustomImage);
        //=============================================================
        // Create a Linux VM using custom image
        System.out.println("Creating a Linux VM using custom image - " + virtualMachineCustomImage.id());
        VirtualMachine linuxVM2 = azure.virtualMachines().define(linuxVMName2).withRegion(region).withExistingResourceGroup(rgName).withNewPrimaryNetwork("10.0.0.0/28").withPrimaryPrivateIPAddressDynamic().withoutPrimaryPublicIPAddress().withLinuxCustomImage(virtualMachineCustomImage.id()).withRootUsername(userName).withRootPassword(password).withSize(VirtualMachineSizeTypes.STANDARD_D3_V2).create();
        Utils.print(linuxVM2);
        //=============================================================
        // Create another Linux VM using custom image and configure the data disks from image and
        // add another data disk
        System.out.println("Creating another Linux VM with additional data disks using custom image - " + virtualMachineCustomImage.id());
        VirtualMachine linuxVM3 = azure.virtualMachines().define(linuxVMName3).withRegion(region).withExistingResourceGroup(rgName).withNewPrimaryNetwork("10.0.0.0/28").withPrimaryPrivateIPAddressDynamic().withoutPrimaryPublicIPAddress().withLinuxCustomImage(virtualMachineCustomImage.id()).withRootUsername(userName).withRootPassword(password).withNewDataDiskFromImage(1, 200, // TODO: Naming needs to be finalized
        CachingTypes.READ_WRITE).withNewDataDiskFromImage(2, 100, CachingTypes.READ_ONLY).withNewDataDisk(50).withSize(VirtualMachineSizeTypes.STANDARD_D3_V2).create();
        Utils.print(linuxVM3);
        // Getting the SAS URIs requires virtual machines to be de-allocated
        // [Access not permitted because'disk' is currently attached to running VM]
        //
        System.out.println("De-allocating the virtual machine - " + linuxVM3.id());
        linuxVM3.deallocate();
        //=============================================================
        // Get the readonly SAS URI to the OS and data disks
        System.out.println("Getting OS and data disks SAS Uris");
        // OS Disk SAS Uri
        Disk osDisk = azure.disks().getById(linuxVM3.osDiskId());
        String osDiskSasUri = osDisk.grantAccess(24 * 60);
        System.out.println("OS disk SAS Uri: " + osDiskSasUri);
        // Data disks SAS Uri
        for (VirtualMachineDataDisk disk : linuxVM3.dataDisks().values()) {
            Disk dataDisk = azure.disks().getById(disk.id());
            String dataDiskSasUri = dataDisk.grantAccess(24 * 60);
            System.out.println(String.format("Data disk (lun: %d) SAS Uri: %s", disk.lun(), dataDiskSasUri));
        }
        //=============================================================
        // Deleting the custom image
        System.out.println("Deleting custom Image: " + virtualMachineCustomImage.id());
        azure.virtualMachineCustomImages().deleteById(virtualMachineCustomImage.id());
        System.out.println("Deleted custom image");
        return true;
    } catch (Exception f) {
        System.out.println(f.getMessage());
        f.printStackTrace();
    } finally {
        try {
            System.out.println("Deleting Resource Group: " + rgName);
            azure.resourceGroups().deleteByName(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();
        }
    }
    return false;
}
Also used : VirtualMachineDataDisk(com.microsoft.azure.management.compute.VirtualMachineDataDisk) VirtualMachineCustomImage(com.microsoft.azure.management.compute.VirtualMachineCustomImage) ArrayList(java.util.ArrayList) Region(com.microsoft.azure.management.resources.fluentcore.arm.Region) VirtualMachineDataDisk(com.microsoft.azure.management.compute.VirtualMachineDataDisk) Disk(com.microsoft.azure.management.compute.Disk) IOException(java.io.IOException) JSchException(com.jcraft.jsch.JSchException) VirtualMachine(com.microsoft.azure.management.compute.VirtualMachine)

Example 7 with Region

use of com.microsoft.azure.management.resources.fluentcore.arm.Region in project azure-sdk-for-java by Azure.

the class ListVirtualMachineImages method runSample.

/**
     * Main function which runs the actual sample.
     * @param azure instance of the azure client
     * @return true if sample runs successfully
     */
public static boolean runSample(Azure azure) {
    final Region region = Region.US_WEST_CENTRAL;
    //=================================================================
    // List all virtual machine image publishers and
    // list all virtual machine images
    // published by Canonical, Red Hat and SUSE
    // by browsing through locations, publishers, offers, SKUs and images
    List<VirtualMachinePublisher> publishers = azure.virtualMachineImages().publishers().listByRegion(region);
    VirtualMachinePublisher chosenPublisher;
    System.out.println("US East data center: printing list of \n" + "a) Publishers and\n" + "b) Images published by Canonical, Red Hat and Suse");
    System.out.println("=======================================================");
    System.out.println("\n");
    for (VirtualMachinePublisher publisher : publishers) {
        System.out.println("Publisher - " + publisher.name());
        if (publisher.name().equalsIgnoreCase("Canonical") | publisher.name().equalsIgnoreCase("Suse") | publisher.name().equalsIgnoreCase("RedHat")) {
            chosenPublisher = publisher;
            System.out.print("\n\n");
            System.out.println("=======================================================");
            System.out.println("Located " + chosenPublisher.name());
            System.out.println("=======================================================");
            System.out.println("Printing entries as publisher/offer/sku/image.version()");
            for (VirtualMachineOffer offer : chosenPublisher.offers().list()) {
                for (VirtualMachineSku sku : offer.skus().list()) {
                    for (VirtualMachineImage image : sku.images().list()) {
                        System.out.println("Image - " + chosenPublisher.name() + "/" + offer.name() + "/" + sku.name() + "/" + image.version());
                    }
                }
            }
            System.out.print("\n\n");
        }
    }
    return true;
}
Also used : VirtualMachineSku(com.microsoft.azure.management.compute.VirtualMachineSku) VirtualMachineImage(com.microsoft.azure.management.compute.VirtualMachineImage) Region(com.microsoft.azure.management.resources.fluentcore.arm.Region) VirtualMachinePublisher(com.microsoft.azure.management.compute.VirtualMachinePublisher) VirtualMachineOffer(com.microsoft.azure.management.compute.VirtualMachineOffer)

Example 8 with Region

use of com.microsoft.azure.management.resources.fluentcore.arm.Region in project azure-sdk-for-java by Azure.

the class ManageVirtualMachine method runSample.

/**
     * Main function which runs the actual sample.
     * @param azure instance of the azure client
     * @return true if sample runs successfully
     */
public static boolean runSample(Azure azure) {
    final Region region = Region.US_WEST_CENTRAL;
    final String windowsVMName = Utils.createRandomName("wVM");
    final String linuxVMName = Utils.createRandomName("lVM");
    final String rgName = Utils.createRandomName("rgCOMV");
    final String userName = "tirekicker";
    final String password = "12NewPA$$w0rd!";
    try {
        //=============================================================
        // Create a Windows virtual machine
        // Prepare a creatable data disk for VM
        //
        Creatable<Disk> dataDiskCreatable = azure.disks().define(Utils.createRandomName("dsk-")).withRegion(region).withExistingResourceGroup(rgName).withData().withSizeInGB(100);
        // Create a data disk to attach to VM
        //
        Disk dataDisk = azure.disks().define(Utils.createRandomName("dsk-")).withRegion(region).withNewResourceGroup(rgName).withData().withSizeInGB(50).create();
        System.out.println("Creating a Windows VM");
        Date t1 = new Date();
        VirtualMachine windowsVM = azure.virtualMachines().define(windowsVMName).withRegion(region).withNewResourceGroup(rgName).withNewPrimaryNetwork("10.0.0.0/28").withPrimaryPrivateIPAddressDynamic().withoutPrimaryPublicIPAddress().withPopularWindowsImage(KnownWindowsVirtualMachineImage.WINDOWS_SERVER_2012_R2_DATACENTER).withAdminUsername(userName).withAdminPassword(password).withNewDataDisk(10).withNewDataDisk(dataDiskCreatable).withExistingDataDisk(dataDisk).withSize(VirtualMachineSizeTypes.STANDARD_D3_V2).create();
        Date t2 = new Date();
        System.out.println("Created VM: (took " + ((t2.getTime() - t1.getTime()) / 1000) + " seconds) " + windowsVM.id());
        // Print virtual machine details
        Utils.print(windowsVM);
        //=============================================================
        // Update - Tag the virtual machine
        windowsVM.update().withTag("who-rocks", "java").withTag("where", "on azure").apply();
        System.out.println("Tagged VM: " + windowsVM.id());
        //=============================================================
        // Update - Add data disk
        windowsVM.update().withNewDataDisk(10).apply();
        System.out.println("Added a data disk to VM" + windowsVM.id());
        Utils.print(windowsVM);
        //=============================================================
        // Update - detach data disk
        windowsVM.update().withoutDataDisk(0).apply();
        System.out.println("Detached data disk at lun 0 from VM " + windowsVM.id());
        //=============================================================
        // Restart the virtual machine
        System.out.println("Restarting VM: " + windowsVM.id());
        windowsVM.restart();
        System.out.println("Restarted VM: " + windowsVM.id() + "; state = " + windowsVM.powerState());
        //=============================================================
        // Stop (powerOff) the virtual machine
        System.out.println("Powering OFF VM: " + windowsVM.id());
        windowsVM.powerOff();
        System.out.println("Powered OFF VM: " + windowsVM.id() + "; state = " + windowsVM.powerState());
        // Get the network where Windows VM is hosted
        Network network = windowsVM.getPrimaryNetworkInterface().primaryIPConfiguration().getNetwork();
        //=============================================================
        // Create a Linux VM in the same virtual network
        System.out.println("Creating a Linux VM in the network");
        VirtualMachine linuxVM = azure.virtualMachines().define(linuxVMName).withRegion(region).withExistingResourceGroup(rgName).withExistingPrimaryNetwork(network).withSubnet(// Referencing the default subnet name when no name specified at creation
        "subnet1").withPrimaryPrivateIPAddressDynamic().withoutPrimaryPublicIPAddress().withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS).withRootUsername(userName).withRootPassword(password).withSize(VirtualMachineSizeTypes.STANDARD_D3_V2).create();
        System.out.println("Created a Linux VM (in the same virtual network): " + linuxVM.id());
        Utils.print(linuxVM);
        //=============================================================
        // List virtual machines in the resource group
        String resourceGroupName = windowsVM.resourceGroupName();
        System.out.println("Printing list of VMs =======");
        for (VirtualMachine virtualMachine : azure.virtualMachines().listByResourceGroup(resourceGroupName)) {
            Utils.print(virtualMachine);
        }
        //=============================================================
        // Delete the virtual machine
        System.out.println("Deleting VM: " + windowsVM.id());
        azure.virtualMachines().deleteById(windowsVM.id());
        System.out.println("Deleted VM: " + windowsVM.id());
        return true;
    } catch (Exception f) {
        System.out.println(f.getMessage());
        f.printStackTrace();
    } finally {
        try {
            System.out.println("Deleting Resource Group: " + rgName);
            azure.resourceGroups().deleteByName(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();
        }
    }
    return false;
}
Also used : Network(com.microsoft.azure.management.network.Network) Region(com.microsoft.azure.management.resources.fluentcore.arm.Region) Disk(com.microsoft.azure.management.compute.Disk) Date(java.util.Date) VirtualMachine(com.microsoft.azure.management.compute.VirtualMachine)

Example 9 with Region

use of com.microsoft.azure.management.resources.fluentcore.arm.Region in project azure-sdk-for-java by Azure.

the class ManageTrafficManager method runSample.

/**
     * Main function which runs the actual sample.
     * @param azure instance of the azure client
     * @return true if sample runs successfully
     */
public static boolean runSample(Azure azure) {
    final String rgName = SdkContext.randomResourceName("rgNEMV_", 24);
    final String domainName = SdkContext.randomResourceName("jsdkdemo-", 20) + ".com";
    final String certPassword = "StrongPass!12";
    final String appServicePlanNamePrefix = SdkContext.randomResourceName("jplan1_", 15);
    final String webAppNamePrefix = SdkContext.randomResourceName("webapp1-", 20);
    final String tmName = SdkContext.randomResourceName("jsdktm-", 20);
    final List<Region> regions = new ArrayList<>();
    // The regions in which web app needs to be created
    //
    regions.add(Region.US_WEST2);
    regions.add(Region.US_EAST2);
    regions.add(Region.ASIA_EAST);
    regions.add(Region.INDIA_WEST);
    regions.add(Region.US_CENTRAL);
    try {
        azure.resourceGroups().define(rgName).withRegion(Region.US_WEST).create();
        //============================================================
        // Purchase a domain (will be canceled for a full refund)
        System.out.println("Purchasing a domain " + domainName + "...");
        AppServiceDomain domain = azure.appServices().domains().define(domainName).withExistingResourceGroup(rgName).defineRegistrantContact().withFirstName("Jon").withLastName("Doe").withEmail("jondoe@contoso.com").withAddressLine1("123 4th Ave").withCity("Redmond").withStateOrProvince("WA").withCountry(CountryIsoCode.UNITED_STATES).withPostalCode("98052").withPhoneCountryCode(CountryPhoneCode.UNITED_STATES).withPhoneNumber("4258828080").attach().withDomainPrivacyEnabled(true).withAutoRenewEnabled(false).create();
        System.out.println("Purchased domain " + domain.name());
        Utils.print(domain);
        //============================================================
        // Create a self-singed SSL certificate
        String pfxPath = ManageTrafficManager.class.getResource("/").getPath() + webAppNamePrefix + "." + domainName + ".pfx";
        String cerPath = ManageTrafficManager.class.getResource("/").getPath() + webAppNamePrefix + "." + domainName + ".cer";
        System.out.println("Creating a self-signed certificate " + pfxPath + "...");
        Utils.createCertificate(cerPath, pfxPath, domainName, certPassword, "*." + domainName);
        //============================================================
        // Creates app service in 5 different region
        List<AppServicePlan> appServicePlans = new ArrayList<>();
        int id = 0;
        for (Region region : regions) {
            String planName = appServicePlanNamePrefix + id;
            System.out.println("Creating an app service plan " + planName + " in region " + region + "...");
            AppServicePlan appServicePlan = azure.appServices().appServicePlans().define(planName).withRegion(region).withExistingResourceGroup(rgName).withPricingTier(PricingTier.BASIC_B1).withOperatingSystem(OperatingSystem.WINDOWS).create();
            System.out.println("Created app service plan " + planName);
            Utils.print(appServicePlan);
            appServicePlans.add(appServicePlan);
            id++;
        }
        //============================================================
        // Creates websites using previously created plan
        List<WebApp> webApps = new ArrayList<>();
        id = 0;
        for (AppServicePlan appServicePlan : appServicePlans) {
            String webAppName = webAppNamePrefix + id;
            System.out.println("Creating a web app " + webAppName + " using the plan " + appServicePlan.name() + "...");
            WebApp webApp = azure.webApps().define(webAppName).withExistingWindowsPlan(appServicePlan).withExistingResourceGroup(rgName).withManagedHostnameBindings(domain, webAppName).defineSslBinding().forHostname(webAppName + "." + domain.name()).withPfxCertificateToUpload(new File(pfxPath), certPassword).withSniBasedSsl().attach().defineSourceControl().withPublicGitRepository("https://github.com/jianghaolu/azure-site-test").withBranch("master").attach().create();
            System.out.println("Created web app " + webAppName);
            Utils.print(webApp);
            webApps.add(webApp);
            id++;
        }
        //============================================================
        // Creates a traffic manager profile
        System.out.println("Creating a traffic manager profile " + tmName + " for the web apps...");
        TrafficManagerProfile.DefinitionStages.WithEndpoint tmDefinition = azure.trafficManagerProfiles().define(tmName).withExistingResourceGroup(rgName).withLeafDomainLabel(tmName).withPriorityBasedRouting();
        Creatable<TrafficManagerProfile> tmCreatable = null;
        int priority = 1;
        for (WebApp webApp : webApps) {
            tmCreatable = tmDefinition.defineAzureTargetEndpoint("endpoint-" + priority).toResourceId(webApp.id()).withRoutingPriority(priority).attach();
            priority++;
        }
        TrafficManagerProfile trafficManagerProfile = tmCreatable.create();
        System.out.println("Created traffic manager " + trafficManagerProfile.name());
        Utils.print(trafficManagerProfile);
        //============================================================
        // Disables one endpoint and removes another endpoint
        System.out.println("Disabling and removing endpoint...");
        trafficManagerProfile = trafficManagerProfile.update().updateAzureTargetEndpoint("endpoint-1").withTrafficDisabled().parent().withoutEndpoint("endpoint-2").apply();
        System.out.println("Endpoints updated");
        //============================================================
        // Enables an endpoint
        System.out.println("Enabling endpoint...");
        trafficManagerProfile = trafficManagerProfile.update().updateAzureTargetEndpoint("endpoint-1").withTrafficEnabled().parent().apply();
        System.out.println("Endpoint updated");
        Utils.print(trafficManagerProfile);
        //============================================================
        // Change/configure traffic manager routing method
        System.out.println("Changing traffic manager profile routing method...");
        trafficManagerProfile = trafficManagerProfile.update().withPerformanceBasedRouting().apply();
        System.out.println("Changed traffic manager profile routing method");
        //============================================================
        // Disables the traffic manager profile
        System.out.println("Disabling traffic manager profile...");
        trafficManagerProfile.update().withProfileStatusDisabled().apply();
        System.out.println("Traffic manager profile disabled");
        //============================================================
        // Enables the traffic manager profile
        System.out.println("Enabling traffic manager profile...");
        trafficManagerProfile.update().withProfileStatusDisabled().apply();
        System.out.println("Traffic manager profile enabled");
        //============================================================
        // Deletes the traffic manager profile
        System.out.println("Deleting the traffic manger profile...");
        azure.trafficManagerProfiles().deleteById(trafficManagerProfile.id());
        System.out.println("Traffic manager profile deleted");
        return true;
    } catch (Exception e) {
        System.err.println(e.getMessage());
        e.printStackTrace();
    } finally {
        try {
            System.out.println("Deleting Resource Group: " + rgName);
            azure.resourceGroups().beginDeleteByName(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();
        }
    }
    return false;
}
Also used : TrafficManagerProfile(com.microsoft.azure.management.trafficmanager.TrafficManagerProfile) ArrayList(java.util.ArrayList) AppServicePlan(com.microsoft.azure.management.appservice.AppServicePlan) Region(com.microsoft.azure.management.resources.fluentcore.arm.Region) File(java.io.File) AppServiceDomain(com.microsoft.azure.management.appservice.AppServiceDomain) WebApp(com.microsoft.azure.management.appservice.WebApp)

Example 10 with Region

use of com.microsoft.azure.management.resources.fluentcore.arm.Region in project azure-sdk-for-java by Azure.

the class TestDns method createResource.

@Override
public DnsZone createResource(DnsZones dnsZones) throws Exception {
    final Region region = Region.US_EAST;
    final String groupName = "rg" + this.testId;
    final String topLevelDomain = "www.contoso" + this.testId + ".com";
    DnsZone dnsZone = dnsZones.define(topLevelDomain).withNewResourceGroup(groupName, region).defineARecordSet("www").withIPv4Address("23.96.104.40").withIPv4Address("24.97.105.41").withTimeToLive(// Overwrite default 3600 seconds
    7200).attach().defineAaaaRecordSet("www").withIPv6Address("2001:0db8:85a3:0000:0000:8a2e:0370:7334").withIPv6Address("2002:0db9:85a4:0000:0000:8a2e:0371:7335").attach().defineMXRecordSet("email").withMailExchange("mail.contoso-mail-exchange1.com", 1).withMailExchange("mail.contoso-mail-exchange2.com", 2).withMetadata("mxa", "mxaa").withMetadata("mxb", "mxbb").attach().defineNSRecordSet("partners").withNameServer("ns1-05.azure-dns.com").withNameServer("ns2-05.azure-dns.net").withNameServer("ns3-05.azure-dns.org").withNameServer("ns4-05.azure-dns.info").attach().defineTxtRecordSet("@").withText("windows-apps-verification=2ZzjfideIJFLFje83").attach().defineTxtRecordSet("www").withText("some info about www.contoso.com").attach().defineSrvRecordSet("_sip._tcp").withRecord("bigbox.contoso-service.com", 5060, 10, 60).withRecord("smallbox1.contoso-service.com", 5060, 10, 20).withRecord("smallbox2.contoso-service.com", 5060, 10, 20).withRecord("backupbox.contoso-service.com", 5060, 10, 0).attach().definePtrRecordSet("40").withTargetDomainName("www.contoso.com").withTargetDomainName("mail.contoso.com").attach().definePtrRecordSet("41").withTargetDomainName("www.contoso.com").withTargetDomainName("mail.contoso.com").attach().withCNameRecordSet("documents", "doc.contoso.com").withCNameRecordSet("userguide", "doc.contoso.com").withTag("a", "aa").withTag("b", "bb").create();
    // Check Dns zone properties
    Assert.assertTrue(dnsZone.name().startsWith(topLevelDomain));
    // Default '@' name servers
    Assert.assertTrue(dnsZone.nameServers().size() > 0);
    Assert.assertTrue(dnsZone.tags().size() == 2);
    // Check SOA record - external child resource (created by default)
    SoaRecordSet soaRecordSet = dnsZone.getSoaRecordSet();
    Assert.assertTrue(soaRecordSet.name().startsWith("@"));
    SoaRecord soaRecord = soaRecordSet.record();
    Assert.assertNotNull(soaRecord);
    // Check explicitly created external child resources [A, AAAA, MX, NS, TXT, SRV, PTR, CNAME]
    //
    // Check A records
    PagedList<ARecordSet> aRecordSets = dnsZone.aRecordSets().list();
    Assert.assertTrue(aRecordSets.size() == 1);
    Assert.assertTrue(aRecordSets.get(0).timeToLive() == 7200);
    // Check AAAA records
    PagedList<AaaaRecordSet> aaaaRecordSets = dnsZone.aaaaRecordSets().list();
    Assert.assertTrue(aaaaRecordSets.size() == 1);
    Assert.assertTrue(aaaaRecordSets.get(0).name().startsWith("www"));
    Assert.assertTrue(aaaaRecordSets.get(0).ipv6Addresses().size() == 2);
    // Check MX records
    PagedList<MXRecordSet> mxRecordSets = dnsZone.mxRecordSets().list();
    Assert.assertTrue(mxRecordSets.size() == 1);
    MXRecordSet mxRecordSet = mxRecordSets.get(0);
    Assert.assertNotNull(mxRecordSet);
    Assert.assertTrue(mxRecordSet.name().startsWith("email"));
    Assert.assertTrue(mxRecordSet.metadata().size() == 2);
    Assert.assertTrue(mxRecordSet.records().size() == 2);
    for (MxRecord mxRecord : mxRecordSet.records()) {
        Assert.assertTrue(mxRecord.exchange().startsWith("mail.contoso-mail-exchange1.com") || mxRecord.exchange().startsWith("mail.contoso-mail-exchange2.com"));
        Assert.assertTrue(mxRecord.preference() == 1 || mxRecord.preference() == 2);
    }
    // Check NS records
    PagedList<NSRecordSet> nsRecordSets = dnsZone.nsRecordSets().list();
    // One created above with name 'partners' + the default '@'
    Assert.assertTrue(nsRecordSets.size() == 2);
    // Check TXT records
    PagedList<TxtRecordSet> txtRecordSets = dnsZone.txtRecordSets().list();
    Assert.assertTrue(txtRecordSets.size() == 2);
    // Check SRV records
    PagedList<SrvRecordSet> srvRecordSets = dnsZone.srvRecordSets().list();
    Assert.assertTrue(srvRecordSets.size() == 1);
    // Check PTR records
    PagedList<PtrRecordSet> ptrRecordSets = dnsZone.ptrRecordSets().list();
    Assert.assertTrue(ptrRecordSets.size() == 2);
    // Check CNAME records
    PagedList<CNameRecordSet> cnameRecordSets = dnsZone.cNameRecordSets().list();
    Assert.assertTrue(cnameRecordSets.size() == 2);
    return dnsZone;
}
Also used : ARecordSet(com.microsoft.azure.management.dns.ARecordSet) PtrRecordSet(com.microsoft.azure.management.dns.PtrRecordSet) NSRecordSet(com.microsoft.azure.management.dns.NSRecordSet) CNameRecordSet(com.microsoft.azure.management.dns.CNameRecordSet) AaaaRecordSet(com.microsoft.azure.management.dns.AaaaRecordSet) SoaRecordSet(com.microsoft.azure.management.dns.SoaRecordSet) SoaRecord(com.microsoft.azure.management.dns.SoaRecord) MxRecord(com.microsoft.azure.management.dns.MxRecord) DnsZone(com.microsoft.azure.management.dns.DnsZone) TxtRecordSet(com.microsoft.azure.management.dns.TxtRecordSet) SrvRecordSet(com.microsoft.azure.management.dns.SrvRecordSet) MXRecordSet(com.microsoft.azure.management.dns.MXRecordSet) Region(com.microsoft.azure.management.resources.fluentcore.arm.Region)

Aggregations

Region (com.microsoft.azure.management.resources.fluentcore.arm.Region)52 VirtualMachine (com.microsoft.azure.management.compute.VirtualMachine)20 ArrayList (java.util.ArrayList)19 Network (com.microsoft.azure.management.network.Network)16 ResourceGroup (com.microsoft.azure.management.resources.ResourceGroup)14 Test (org.junit.Test)12 Disk (com.microsoft.azure.management.compute.Disk)8 PublicIPAddress (com.microsoft.azure.management.network.PublicIPAddress)8 Date (java.util.Date)8 Creatable (com.microsoft.azure.management.resources.fluentcore.model.Creatable)7 VirtualMachineDataDisk (com.microsoft.azure.management.compute.VirtualMachineDataDisk)6 NetworkInterface (com.microsoft.azure.management.network.NetworkInterface)6 StorageAccount (com.microsoft.azure.management.storage.StorageAccount)6 VirtualMachineScaleSet (com.microsoft.azure.management.compute.VirtualMachineScaleSet)4 LoadBalancer (com.microsoft.azure.management.network.LoadBalancer)4 Indexable (com.microsoft.azure.management.resources.fluentcore.model.Indexable)4 StopWatch (org.apache.commons.lang3.time.StopWatch)4 JSchException (com.jcraft.jsch.JSchException)3 VirtualMachineCustomImage (com.microsoft.azure.management.compute.VirtualMachineCustomImage)3 TrafficManagerProfile (com.microsoft.azure.management.trafficmanager.TrafficManagerProfile)3