Search in sources :

Example 16 with AppServicePlan

use of com.microsoft.azure.management.appservice.AppServicePlan in project azure-sdk-for-java by Azure.

the class ManageLinuxWebAppWithDomainSsl 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) {
    // New resources
    final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
    final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
    final String rgName = SdkContext.randomResourceName("rgNEMV_", 24);
    final String domainName = SdkContext.randomResourceName("jsdkdemo-", 20) + ".com";
    final String certPassword = "StrongPass!12";
    try {
        //============================================================
        // Create a web app with a new app service plan
        System.out.println("Creating web app " + app1Name + "...");
        WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withNewResourceGroup(rgName).withNewLinuxPlan(PricingTier.STANDARD_S1).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
        System.out.println("Created web app " + app1.name());
        Utils.print(app1);
        //============================================================
        // Create a second web app with the same app service plan
        System.out.println("Creating another web app " + app2Name + "...");
        AppServicePlan plan = azure.appServices().appServicePlans().getById(app1.appServicePlanId());
        WebApp app2 = azure.webApps().define(app2Name).withExistingLinuxPlan(plan).withExistingResourceGroup(rgName).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
        System.out.println("Created web app " + app2.name());
        Utils.print(app2);
        //============================================================
        // 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);
        //============================================================
        // Bind domain to web app 1
        System.out.println("Binding http://" + app1Name + "." + domainName + " to web app " + app1Name + "...");
        app1 = app1.update().defineHostnameBinding().withAzureManagedDomain(domain).withSubDomain(app1Name).withDnsRecordType(CustomHostNameDnsRecordType.CNAME).attach().apply();
        System.out.println("Finished binding http://" + app1Name + "." + domainName + " to web app " + app1Name);
        Utils.print(app1);
        //============================================================
        // Create a self-singed SSL certificate
        String pfxPath = ManageLinuxWebAppWithDomainSsl.class.getResource("/").getPath() + app2Name + "." + domainName + ".pfx";
        String cerPath = ManageLinuxWebAppWithDomainSsl.class.getResource("/").getPath() + app2Name + "." + domainName + ".cer";
        System.out.println("Creating a self-signed certificate " + pfxPath + "...");
        Utils.createCertificate(cerPath, pfxPath, domainName, certPassword, "*." + domainName);
        System.out.println("Created self-signed certificate " + pfxPath);
        //============================================================
        // Bind domain to web app 2 and turn on wild card SSL for both
        System.out.println("Binding https://" + app1Name + "." + domainName + " to web app " + app1Name + "...");
        app1 = app1.update().withManagedHostnameBindings(domain, app1Name).defineSslBinding().forHostname(app1Name + "." + domainName).withPfxCertificateToUpload(new File(pfxPath), certPassword).withSniBasedSsl().attach().apply();
        System.out.println("Finished binding http://" + app1Name + "." + domainName + " to web app " + app1Name);
        Utils.print(app1);
        System.out.println("Binding https://" + app2Name + "." + domainName + " to web app " + app2Name + "...");
        app2 = app2.update().withManagedHostnameBindings(domain, app2Name).defineSslBinding().forHostname(app2Name + "." + domainName).withExistingCertificate(app1.hostNameSslStates().get(app1Name + "." + domainName).thumbprint()).withSniBasedSsl().attach().apply();
        System.out.println("Finished binding http://" + app2Name + "." + domainName + " to web app " + app2Name);
        Utils.print(app2);
        return true;
    } catch (Exception e) {
        System.err.println(e.getMessage());
        e.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 : File(java.io.File) WebApp(com.microsoft.azure.management.appservice.WebApp) AppServicePlan(com.microsoft.azure.management.appservice.AppServicePlan) AppServiceDomain(com.microsoft.azure.management.appservice.AppServiceDomain)

Example 17 with AppServicePlan

use of com.microsoft.azure.management.appservice.AppServicePlan in project azure-sdk-for-java by Azure.

the class ManageLinuxWebAppWithTrafficManager 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) {
    if (ManageLinuxWebAppWithTrafficManager.azure == null) {
        ManageLinuxWebAppWithTrafficManager.azure = azure;
    }
    // New resources
    final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
    final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
    final String app3Name = SdkContext.randomResourceName("webapp3-", 20);
    final String app4Name = SdkContext.randomResourceName("webapp4-", 20);
    final String app5Name = SdkContext.randomResourceName("webapp5-", 20);
    final String plan1Name = SdkContext.randomResourceName("jplan1_", 15);
    final String plan2Name = SdkContext.randomResourceName("jplan2_", 15);
    final String plan3Name = SdkContext.randomResourceName("jplan3_", 15);
    final String domainName = SdkContext.randomResourceName("jsdkdemo-", 20) + ".com";
    final String tmName = SdkContext.randomResourceName("jsdktm-", 20);
    try {
        //============================================================
        // Purchase a domain (will be canceled for a full refund)
        System.out.println("Purchasing a domain " + domainName + "...");
        azure.resourceGroups().define(RG_NAME).withRegion(Region.US_WEST).create();
        domain = azure.appServices().domains().define(domainName).withExistingResourceGroup(RG_NAME).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
        pfxPath = ManageLinuxWebAppWithTrafficManager.class.getResource("/").getPath() + app2Name + "." + domainName + ".pfx";
        String cerPath = ManageLinuxWebAppWithTrafficManager.class.getResource("/").getPath() + app2Name + "." + domainName + ".cer";
        System.out.println("Creating a self-signed certificate " + pfxPath + "...");
        Utils.createCertificate(cerPath, pfxPath, domainName, CERT_PASSWORD, "*." + domainName);
        //============================================================
        // Create 3 app service plans in 3 regions
        System.out.println("Creating app service plan " + plan1Name + " in US West...");
        AppServicePlan plan1 = createAppServicePlan(plan1Name, Region.US_WEST);
        System.out.println("Created app service plan " + plan1.name());
        Utils.print(plan1);
        System.out.println("Creating app service plan " + plan2Name + " in Europe West...");
        AppServicePlan plan2 = createAppServicePlan(plan2Name, Region.EUROPE_WEST);
        System.out.println("Created app service plan " + plan2.name());
        Utils.print(plan1);
        System.out.println("Creating app service plan " + plan3Name + " in Asia East...");
        AppServicePlan plan3 = createAppServicePlan(plan3Name, Region.ASIA_SOUTHEAST);
        System.out.println("Created app service plan " + plan2.name());
        Utils.print(plan1);
        //============================================================
        // Create 5 web apps under these 3 app service plans
        System.out.println("Creating web app " + app1Name + "...");
        WebApp app1 = createWebApp(app1Name, plan1);
        System.out.println("Created web app " + app1.name());
        Utils.print(app1);
        System.out.println("Creating another web app " + app2Name + "...");
        WebApp app2 = createWebApp(app2Name, plan2);
        System.out.println("Created web app " + app2.name());
        Utils.print(app2);
        System.out.println("Creating another web app " + app3Name + "...");
        WebApp app3 = createWebApp(app3Name, plan3);
        System.out.println("Created web app " + app3.name());
        Utils.print(app3);
        System.out.println("Creating another web app " + app3Name + "...");
        WebApp app4 = createWebApp(app4Name, plan1);
        System.out.println("Created web app " + app4.name());
        Utils.print(app4);
        System.out.println("Creating another web app " + app3Name + "...");
        WebApp app5 = createWebApp(app5Name, plan1);
        System.out.println("Created web app " + app5.name());
        Utils.print(app5);
        //============================================================
        // Create a traffic manager
        System.out.println("Creating a traffic manager " + tmName + " for the web apps...");
        TrafficManagerProfile trafficManager = azure.trafficManagerProfiles().define(tmName).withExistingResourceGroup(RG_NAME).withLeafDomainLabel(tmName).withTrafficRoutingMethod(TrafficRoutingMethod.PRIORITY).defineAzureTargetEndpoint("endpoint1").toResourceId(app1.id()).withRoutingPriority(1).attach().defineAzureTargetEndpoint("endpoint2").toResourceId(app2.id()).withRoutingPriority(2).attach().defineAzureTargetEndpoint("endpoint3").toResourceId(app3.id()).withRoutingPriority(3).attach().create();
        System.out.println("Created traffic manager " + trafficManager.name());
        Utils.print(trafficManager);
        //============================================================
        // Scale up the app service plans
        System.out.println("Scaling up app service plan " + plan1Name + "...");
        plan1.update().withCapacity(plan1.capacity() * 2).apply();
        System.out.println("Scaled up app service plan " + plan1Name);
        Utils.print(plan1);
        System.out.println("Scaling up app service plan " + plan2Name + "...");
        plan2.update().withCapacity(plan2.capacity() * 2).apply();
        System.out.println("Scaled up app service plan " + plan2Name);
        Utils.print(plan2);
        System.out.println("Scaling up app service plan " + plan3Name + "...");
        plan3.update().withCapacity(plan3.capacity() * 2).apply();
        System.out.println("Scaled up app service plan " + plan3Name);
        Utils.print(plan3);
        return true;
    } catch (Exception e) {
        System.err.println(e.getMessage());
        e.printStackTrace();
    } finally {
        try {
            System.out.println("Deleting Resource Group: " + RG_NAME);
            azure.resourceGroups().beginDeleteByName(RG_NAME);
            System.out.println("Deleted Resource Group: " + RG_NAME);
        } 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) IOException(java.io.IOException) AppServicePlan(com.microsoft.azure.management.appservice.AppServicePlan) WebApp(com.microsoft.azure.management.appservice.WebApp)

Example 18 with AppServicePlan

use of com.microsoft.azure.management.appservice.AppServicePlan in project azure-sdk-for-java by Azure.

the class ManageWebAppBasic 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) {
    // New resources
    final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
    final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
    final String app3Name = SdkContext.randomResourceName("webapp3-", 20);
    final String rg1Name = SdkContext.randomResourceName("rg1NEMV_", 24);
    final String rg2Name = SdkContext.randomResourceName("rg2NEMV_", 24);
    try {
        //============================================================
        // Create a web app with a new app service plan
        System.out.println("Creating web app " + app1Name + " in resource group " + rg1Name + "...");
        WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withNewResourceGroup(rg1Name).withNewWindowsPlan(PricingTier.STANDARD_S1).create();
        System.out.println("Created web app " + app1.name());
        Utils.print(app1);
        //============================================================
        // Create a second web app with the same app service plan
        System.out.println("Creating another web app " + app2Name + " in resource group " + rg1Name + "...");
        AppServicePlan plan = azure.appServices().appServicePlans().getById(app1.appServicePlanId());
        WebApp app2 = azure.webApps().define(app2Name).withExistingWindowsPlan(plan).withExistingResourceGroup(rg1Name).create();
        System.out.println("Created web app " + app2.name());
        Utils.print(app2);
        //============================================================
        // Create a third web app with the same app service plan, but
        // in a different resource group
        System.out.println("Creating another web app " + app3Name + " in resource group " + rg2Name + "...");
        WebApp app3 = azure.webApps().define(app3Name).withExistingWindowsPlan(plan).withNewResourceGroup(rg2Name).create();
        System.out.println("Created web app " + app3.name());
        Utils.print(app3);
        //============================================================
        // stop and start app1, restart app 2
        System.out.println("Stopping web app " + app1.name());
        app1.stop();
        System.out.println("Stopped web app " + app1.name());
        Utils.print(app1);
        System.out.println("Starting web app " + app1.name());
        app1.start();
        System.out.println("Started web app " + app1.name());
        Utils.print(app1);
        System.out.println("Restarting web app " + app2.name());
        app2.restart();
        System.out.println("Restarted web app " + app2.name());
        Utils.print(app2);
        //============================================================
        // Configure app 3 to have Java 8 enabled
        System.out.println("Adding Java support to web app " + app3Name + "...");
        app3.update().withJavaVersion(JavaVersion.JAVA_8_NEWEST).withWebContainer(WebContainer.TOMCAT_8_0_NEWEST).apply();
        System.out.println("Java supported on web app " + app3Name + "...");
        //=============================================================
        // List web apps
        System.out.println("Printing list of web apps in resource group " + rg1Name + "...");
        for (WebApp webApp : azure.webApps().listByResourceGroup(rg1Name)) {
            Utils.print(webApp);
        }
        System.out.println("Printing list of web apps in resource group " + rg2Name + "...");
        for (WebApp webApp : azure.webApps().listByResourceGroup(rg2Name)) {
            Utils.print(webApp);
        }
        //=============================================================
        // Delete a web app
        System.out.println("Deleting web app " + app1Name + "...");
        azure.webApps().deleteByResourceGroup(rg1Name, app1Name);
        System.out.println("Deleted web app " + app1Name + "...");
        System.out.println("Printing list of web apps in resource group " + rg1Name + " again...");
        for (WebApp webApp : azure.webApps().listByResourceGroup(rg1Name)) {
            Utils.print(webApp);
        }
        return true;
    } catch (Exception e) {
        System.err.println(e.getMessage());
        e.printStackTrace();
    } finally {
        try {
            System.out.println("Deleting Resource Group: " + rg1Name);
            azure.resourceGroups().beginDeleteByName(rg1Name);
            System.out.println("Deleted Resource Group: " + rg1Name);
            System.out.println("Deleting Resource Group: " + rg2Name);
            azure.resourceGroups().beginDeleteByName(rg2Name);
            System.out.println("Deleted Resource Group: " + rg2Name);
        } 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 : WebApp(com.microsoft.azure.management.appservice.WebApp) AppServicePlan(com.microsoft.azure.management.appservice.AppServicePlan)

Example 19 with AppServicePlan

use of com.microsoft.azure.management.appservice.AppServicePlan in project azure-sdk-for-java by Azure.

the class ManageLinuxWebAppBasic 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) {
    // New resources
    final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
    final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
    final String app3Name = SdkContext.randomResourceName("webapp3-", 20);
    final String rg1Name = SdkContext.randomResourceName("rg1NEMV_", 24);
    final String rg2Name = SdkContext.randomResourceName("rg2NEMV_", 24);
    try {
        //============================================================
        // Create a web app with a new app service plan
        System.out.println("Creating web app " + app1Name + " in resource group " + rg1Name + "...");
        WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withNewResourceGroup(rg1Name).withNewLinuxPlan(PricingTier.STANDARD_S1).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
        System.out.println("Created web app " + app1.name());
        Utils.print(app1);
        //============================================================
        // Create a second web app with the same app service plan
        System.out.println("Creating another web app " + app2Name + " in resource group " + rg1Name + "...");
        AppServicePlan plan = azure.appServices().appServicePlans().getById(app1.appServicePlanId());
        WebApp app2 = azure.webApps().define(app2Name).withExistingLinuxPlan(plan).withExistingResourceGroup(rg1Name).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
        System.out.println("Created web app " + app2.name());
        Utils.print(app2);
        //============================================================
        // Create a third web app with the same app service plan, but
        // in a different resource group
        System.out.println("Creating another web app " + app3Name + " in resource group " + rg2Name + "...");
        WebApp app3 = azure.webApps().define(app3Name).withExistingLinuxPlan(plan).withNewResourceGroup(rg2Name).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
        System.out.println("Created web app " + app3.name());
        Utils.print(app3);
        //============================================================
        // stop and start app1, restart app 2
        System.out.println("Stopping web app " + app1.name());
        app1.stop();
        System.out.println("Stopped web app " + app1.name());
        Utils.print(app1);
        System.out.println("Starting web app " + app1.name());
        app1.start();
        System.out.println("Started web app " + app1.name());
        Utils.print(app1);
        System.out.println("Restarting web app " + app2.name());
        app2.restart();
        System.out.println("Restarted web app " + app2.name());
        Utils.print(app2);
        //============================================================
        // Configure app 3 to have Java 8 enabled
        System.out.println("Adding Java support to web app " + app3Name + "...");
        app3.update().withJavaVersion(JavaVersion.JAVA_8_NEWEST).withWebContainer(WebContainer.TOMCAT_8_0_NEWEST).apply();
        System.out.println("Java supported on web app " + app3Name + "...");
        //=============================================================
        // List web apps
        System.out.println("Printing list of web apps in resource group " + rg1Name + "...");
        for (WebApp webApp : azure.webApps().listByResourceGroup(rg1Name)) {
            Utils.print(webApp);
        }
        System.out.println("Printing list of web apps in resource group " + rg2Name + "...");
        for (WebApp webApp : azure.webApps().listByResourceGroup(rg2Name)) {
            Utils.print(webApp);
        }
        //=============================================================
        // Delete a web app
        System.out.println("Deleting web app " + app1Name + "...");
        azure.webApps().deleteByResourceGroup(rg1Name, app1Name);
        System.out.println("Deleted web app " + app1Name + "...");
        System.out.println("Printing list of web apps in resource group " + rg1Name + " again...");
        for (WebApp webApp : azure.webApps().listByResourceGroup(rg1Name)) {
            Utils.print(webApp);
        }
        return true;
    } catch (Exception e) {
        System.err.println(e.getMessage());
        e.printStackTrace();
    } finally {
        try {
            System.out.println("Deleting Resource Group: " + rg1Name);
            azure.resourceGroups().beginDeleteByName(rg1Name);
            System.out.println("Deleted Resource Group: " + rg1Name);
            System.out.println("Deleting Resource Group: " + rg2Name);
            azure.resourceGroups().beginDeleteByName(rg2Name);
            System.out.println("Deleted Resource Group: " + rg2Name);
        } 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 : WebApp(com.microsoft.azure.management.appservice.WebApp) AppServicePlan(com.microsoft.azure.management.appservice.AppServicePlan)

Example 20 with AppServicePlan

use of com.microsoft.azure.management.appservice.AppServicePlan in project azure-sdk-for-java by Azure.

the class ManageLinuxWebAppSourceControl 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) {
    // New resources
    final String suffix = ".azurewebsites.net";
    final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
    final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
    final String app3Name = SdkContext.randomResourceName("webapp3-", 20);
    final String app4Name = SdkContext.randomResourceName("webapp4-", 20);
    final String app1Url = app1Name + suffix;
    final String app2Url = app2Name + suffix;
    final String app3Url = app3Name + suffix;
    final String app4Url = app4Name + suffix;
    final String rgName = SdkContext.randomResourceName("rg1NEMV_", 24);
    try {
        //============================================================
        // Create a web app with a new app service plan
        System.out.println("Creating web app " + app1Name + " in resource group " + rgName + "...");
        WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withNewResourceGroup(rgName).withNewLinuxPlan(PricingTier.STANDARD_S1).withPublicDockerHubImage("tomcat:8-jre8").withStartUpCommand("/bin/bash -c \"sed -ie 's/appBase=\\\"webapps\\\"/appBase=\\\"\\\\/home\\\\/site\\\\/wwwroot\\\\/webapps\\\"/g' conf/server.xml && catalina.sh run\"").withAppSetting("PORT", "8080").create();
        System.out.println("Created web app " + app1.name());
        Utils.print(app1);
        //============================================================
        // Deploy to app 1 through FTP
        System.out.println("Deploying helloworld.war to " + app1Name + " through FTP...");
        Utils.uploadFileToFtp(app1.getPublishingProfile(), "helloworld.war", ManageLinuxWebAppSourceControl.class.getResourceAsStream("/helloworld.war"));
        System.out.println("Deployment helloworld.war to web app " + app1.name() + " completed");
        Utils.print(app1);
        // warm up
        System.out.println("Warming up " + app1Url + "/helloworld...");
        curl("http://" + app1Url + "/helloworld");
        Thread.sleep(5000);
        System.out.println("CURLing " + app1Url + "/helloworld...");
        System.out.println(curl("http://" + app1Url + "/helloworld"));
        //============================================================
        // Create a second web app with local git source control
        System.out.println("Creating another web app " + app2Name + " in resource group " + rgName + "...");
        AppServicePlan plan = azure.appServices().appServicePlans().getById(app1.appServicePlanId());
        WebApp app2 = azure.webApps().define(app2Name).withExistingLinuxPlan(plan).withExistingResourceGroup(rgName).withPublicDockerHubImage("tomcat:8-jre8").withStartUpCommand("/bin/bash -c \"sed -ie 's/appBase=\\\"webapps\\\"/appBase=\\\"\\\\/home\\\\/site\\\\/wwwroot\\\\/webapps\\\"/g' conf/server.xml && catalina.sh run\"").withAppSetting("PORT", "8080").withLocalGitSourceControl().create();
        System.out.println("Created web app " + app2.name());
        Utils.print(app2);
        //============================================================
        // Deploy to app 2 through local Git
        System.out.println("Deploying a local Tomcat source to " + app2Name + " through Git...");
        PublishingProfile profile = app2.getPublishingProfile();
        Git git = Git.init().setDirectory(new File(ManageLinuxWebAppSourceControl.class.getResource("/azure-samples-appservice-helloworld/").getPath())).call();
        git.add().addFilepattern(".").call();
        git.commit().setMessage("Initial commit").call();
        PushCommand command = git.push();
        command.setRemote(profile.gitUrl());
        command.setCredentialsProvider(new UsernamePasswordCredentialsProvider(profile.gitUsername(), profile.gitPassword()));
        command.setRefSpecs(new RefSpec("master:master"));
        command.setForce(true);
        command.call();
        System.out.println("Deployment to web app " + app2.name() + " completed");
        Utils.print(app2);
        // warm up
        System.out.println("Warming up " + app2Url + "/helloworld...");
        curl("http://" + app2Url + "/helloworld");
        Thread.sleep(5000);
        System.out.println("CURLing " + app2Url + "/helloworld...");
        System.out.println(curl("http://" + app2Url + "/helloworld"));
        //============================================================
        // Create a 3rd web app with a public GitHub repo in Azure-Samples
        System.out.println("Creating another web app " + app3Name + "...");
        WebApp app3 = azure.webApps().define(app3Name).withExistingLinuxPlan(plan).withNewResourceGroup(rgName).withPublicDockerHubImage("tomcat:8-jre8").withStartUpCommand("/bin/bash -c \"sed -ie 's/appBase=\\\"webapps\\\"/appBase=\\\"\\\\/home\\\\/site\\\\/wwwroot\\\\/webapps\\\"/g' conf/server.xml && catalina.sh run\"").withAppSetting("PORT", "8080").defineSourceControl().withPublicGitRepository("https://github.com/azure-appservice-samples/java-get-started").withBranch("master").attach().create();
        System.out.println("Created web app " + app3.name());
        Utils.print(app3);
        // warm up
        System.out.println("Warming up " + app3Url + "...");
        curl("http://" + app3Url);
        Thread.sleep(5000);
        System.out.println("CURLing " + app3Url + "...");
        System.out.println(curl("http://" + app3Url));
        //============================================================
        // Create a 4th web app with a personal GitHub repo and turn on continuous integration
        System.out.println("Creating another web app " + app4Name + "...");
        WebApp app4 = azure.webApps().define(app4Name).withExistingLinuxPlan(plan).withExistingResourceGroup(rgName).withPublicDockerHubImage("tomcat:8-jre8").withStartUpCommand("/bin/bash -c \"sed -ie 's/appBase=\\\"webapps\\\"/appBase=\\\"\\\\/home\\\\/site\\\\/wwwroot\\\\/webapps\\\"/g' conf/server.xml && catalina.sh run\"").withAppSetting("PORT", "8080").create();
        System.out.println("Created web app " + app4.name());
        Utils.print(app4);
        // warm up
        System.out.println("Warming up " + app4Url + "...");
        curl("http://" + app4Url);
        Thread.sleep(5000);
        System.out.println("CURLing " + app4Url + "...");
        System.out.println(curl("http://" + app4Url));
        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 : UsernamePasswordCredentialsProvider(org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider) Git(org.eclipse.jgit.api.Git) RefSpec(org.eclipse.jgit.transport.RefSpec) PublishingProfile(com.microsoft.azure.management.appservice.PublishingProfile) File(java.io.File) PushCommand(org.eclipse.jgit.api.PushCommand) IOException(java.io.IOException) WebApp(com.microsoft.azure.management.appservice.WebApp) AppServicePlan(com.microsoft.azure.management.appservice.AppServicePlan)

Aggregations

AppServicePlan (com.microsoft.azure.management.appservice.AppServicePlan)24 WebApp (com.microsoft.azure.management.appservice.WebApp)15 File (java.io.File)8 IOException (java.io.IOException)8 SubscriptionDetail (com.microsoft.azuretools.authmanage.models.SubscriptionDetail)7 ResourceGroup (com.microsoft.azure.management.resources.ResourceGroup)6 PublishingProfile (com.microsoft.azure.management.appservice.PublishingProfile)5 Git (org.eclipse.jgit.api.Git)5 PushCommand (org.eclipse.jgit.api.PushCommand)5 RefSpec (org.eclipse.jgit.transport.RefSpec)5 UsernamePasswordCredentialsProvider (org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider)5 WebAppDetails (com.microsoft.azuretools.utils.WebAppUtils.WebAppDetails)4 AppServiceDomain (com.microsoft.azure.management.appservice.AppServiceDomain)3 FunctionApp (com.microsoft.azure.management.appservice.FunctionApp)3 TrafficManagerProfile (com.microsoft.azure.management.trafficmanager.TrafficManagerProfile)3 HashMap (java.util.HashMap)3 WebAppUtils (com.microsoft.azuretools.utils.WebAppUtils)2 List (java.util.List)2 DefaultTableModel (javax.swing.table.DefaultTableModel)2 ValidationInfo (com.intellij.openapi.ui.ValidationInfo)1