Repository: jclouds-labs
Updated Branches:
  refs/heads/2.0.x c6e590c30 -> 69ef87654


Azurecompute (Classic) - additional templateOptions for 
WindowsProvisioningConfiguration

Listener protocol flag allowing https usage.


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/69ef8765
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/69ef8765
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/69ef8765

Branch: refs/heads/2.0.x
Commit: 69ef87654a0b3e52ecdd65530e21f982bbb510f4
Parents: c6e590c
Author: Valentin Aitken <[email protected]>
Authored: Sat Mar 18 09:33:39 2017 +0200
Committer: Andrea Turli <[email protected]>
Committed: Mon Mar 20 16:21:03 2017 +0100

----------------------------------------------------------------------
 .../azurecompute/binders/DeploymentParamsToXML.java    |  3 ++-
 .../compute/AzureComputeServiceAdapter.java            |  9 ++++++---
 .../compute/options/AzureComputeTemplateOptions.java   | 13 ++++++++++++-
 .../jclouds/azurecompute/domain/DeploymentParams.java  |  8 ++++++++
 .../src/test/resources/deploymentparams-windows.xml    |  2 +-
 5 files changed, 29 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/69ef8765/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
----------------------------------------------------------------------
diff --git 
a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
 
b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
index fbbdcd0..d890ebe 100644
--- 
a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
+++ 
b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
@@ -49,6 +49,7 @@ public final class DeploymentParamsToXML implements Binder {
 
          if (params.os() == OSImage.Type.WINDOWS) {
             XMLBuilder configBuilder = 
configSetsBuilder.e("ConfigurationSet"); // Windows
+            final String listenerProtocol = params.winrmUseHttps() != null && 
params.winrmUseHttps() ? "Https" : "Http";
             
configBuilder.e("ConfigurationSetType").t("WindowsProvisioningConfiguration").up()
                     .e("ComputerName").t(params.name()).up()
                     .e("AdminPassword").t(params.password()).up()
@@ -66,7 +67,7 @@ public final class DeploymentParamsToXML implements Binder {
                     .e("WinRM")
                     .e("Listeners")
                     .e("Listener")
-                    .e("Protocol").t("http").up().up().up().up()
+                    .e("Protocol").t(listenerProtocol).up().up().up().up()
                     .e("AdminUsername").t(params.username()).up()
                     .e("AdminPassword").t(params.username()).up()
                     .up(); // Windows ConfigurationSet

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/69ef8765/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git 
a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
 
b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
index ea579de..7241cc7 100644
--- 
a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
+++ 
b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
@@ -124,7 +124,7 @@ public class AzureComputeServiceAdapter implements 
ComputeServiceAdapter<Deploym
          
externalEndpoints.add(ExternalEndpoint.inboundTcpToLocalPort(inboundPort, 
inboundPort));
       }
 
-      final DeploymentParams params = DeploymentParams.builder()
+      final DeploymentParams.Builder paramsBuilder = DeploymentParams.builder()
               .name(name)
               .os(os)
               .username(loginUser)
@@ -135,8 +135,11 @@ public class AzureComputeServiceAdapter implements 
ComputeServiceAdapter<Deploym
               .externalEndpoints(externalEndpoints)
               .virtualNetworkName(templateOptions.getVirtualNetworkName())
               .subnetNames(templateOptions.getSubnetNames())
-              .provisionGuestAgent(templateOptions.getProvisionGuestAgent())
-              .build();
+              .provisionGuestAgent(templateOptions.getProvisionGuestAgent());
+      if (os.equals(OSImage.Type.WINDOWS)) {
+         paramsBuilder.winrmUseHttps(templateOptions.getWinrmUseHttps());
+      }
+      final DeploymentParams params = paramsBuilder.build();
 
       message = String.format("Creating a deployment with params '%s' ...", 
params);
       logger.debug(message);

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/69ef8765/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
----------------------------------------------------------------------
diff --git 
a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
 
b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
index 3b80afd..6fb95e5 100644
--- 
a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
+++ 
b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
@@ -54,6 +54,7 @@ public class AzureComputeTemplateOptions extends 
TemplateOptions implements Clon
    protected String networkSecurityGroupName;
    protected String reservedIPName;
    protected Boolean provisionGuestAgent;
+   protected Boolean winrmUseHttps;
 
    @Override
    public AzureComputeTemplateOptions clone() {
@@ -75,6 +76,7 @@ public class AzureComputeTemplateOptions extends 
TemplateOptions implements Clon
          eTo.storageAccountType(storageAccountType);
          eTo.reservedIPName(reservedIPName);
          eTo.provisionGuestAgent(provisionGuestAgent);
+         eTo.winrmUseHttps(winrmUseHttps);
       }
    }
 
@@ -94,7 +96,7 @@ public class AzureComputeTemplateOptions extends 
TemplateOptions implements Clon
       if (subnetNames != null ? !subnetNames.equals(that.subnetNames) : 
that.subnetNames != null) return false;
       if (virtualNetworkName != null ? 
!virtualNetworkName.equals(that.virtualNetworkName) : that.virtualNetworkName 
!= null) return false;
       if (provisionGuestAgent != null ? 
!provisionGuestAgent.equals(that.provisionGuestAgent) : 
that.provisionGuestAgent != null) return false;
-
+      if (winrmUseHttps != null ? !winrmUseHttps.equals(that.winrmUseHttps) : 
that.winrmUseHttps != null) return false;
       return true;
    }
 
@@ -164,6 +166,11 @@ public class AzureComputeTemplateOptions extends 
TemplateOptions implements Clon
       return this;
    }
 
+   public AzureComputeTemplateOptions winrmUseHttps(@Nullable Boolean 
winrmUseHttps) {
+      this.winrmUseHttps = winrmUseHttps;
+      return this;
+   }
+
    public String getVirtualNetworkName() {
       return virtualNetworkName;
    }
@@ -192,6 +199,10 @@ public class AzureComputeTemplateOptions extends 
TemplateOptions implements Clon
       return provisionGuestAgent;
    }
 
+   public Boolean getWinrmUseHttps() {
+      return winrmUseHttps;
+   }
+
    public static class Builder {
 
       /**

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/69ef8765/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
----------------------------------------------------------------------
diff --git 
a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
 
b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
index 5208d2d..5d0e5e6 100644
--- 
a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
+++ 
b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
@@ -136,6 +136,13 @@ public abstract class DeploymentParams {
    @Nullable
    public abstract Boolean provisionGuestAgent();
 
+   /**
+    * Optional. Indicates whether Windows VM should be provisioned with Https 
WinRm listener.
+    * By default it will use http listener.
+    */
+   @Nullable
+   public abstract Boolean winrmUseHttps();
+
    public static Builder builder() {
       return new AutoValue_DeploymentParams.Builder()
               .externalEndpoints(ImmutableSet.<ExternalEndpoint> of())
@@ -150,6 +157,7 @@ public abstract class DeploymentParams {
       public abstract Builder size(RoleSize.Type roleSize);
       public abstract Builder username(String username);
       public abstract Builder password(String password);
+      public abstract Builder winrmUseHttps(Boolean useHttps);
       public abstract Builder sourceImageName(String sourceImageName);
       public abstract Builder mediaLink(URI mediaLink);
       public abstract Builder os(OSImage.Type os);

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/69ef8765/azurecompute/src/test/resources/deploymentparams-windows.xml
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/resources/deploymentparams-windows.xml 
b/azurecompute/src/test/resources/deploymentparams-windows.xml
index 6a54e1f..a60c2e5 100644
--- a/azurecompute/src/test/resources/deploymentparams-windows.xml
+++ b/azurecompute/src/test/resources/deploymentparams-windows.xml
@@ -1 +1 @@
-<Deployment 
xmlns="http://schemas.microsoft.com/windowsazure";><Name>mydeployment</Name><DeploymentSlot>Production</DeploymentSlot><Label>mydeployment</Label><RoleList><Role><RoleName>mydeployment</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType><ComputerName>mydeployment</ComputerName><AdminPassword>testpwd</AdminPassword><ResetPasswordOnFirstLogon>false</ResetPasswordOnFirstLogon><EnableAutomaticUpdate>false</EnableAutomaticUpdate><DomainJoin><Credentials><Domain>mydeployment</Domain><Username>username</Username><Password>testpwd</Password></Credentials><JoinDomain>mydeployment</JoinDomain></DomainJoin><StoredCertificateSettings/><WinRM><Listeners><Listener><Protocol>http</Protocol></Listener></Listeners></WinRM><AdminUsername>username</AdminUsername><AdminPassword>username</AdminPassword></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</Con
 
figurationSetType><InputEndpoints><InputEndpoint><LocalPort>8080</LocalPort><Name>tcp_80-8080</Name><Port>80</Port><Protocol>tcp</Protocol></InputEndpoint><InputEndpoint><LocalPort>53</LocalPort><Name>udp_53-53</Name><Port>53</Port><Protocol>udp</Protocol></InputEndpoint></InputEndpoints><SubnetNames/></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink><SourceImageName>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</SourceImageName><OS>Windows</OS></OSVirtualHardDisk><RoleSize>Medium</RoleSize></Role></RoleList><VirtualNetworkName>my-virtualNetworkName</VirtualNetworkName></Deployment>
+<Deployment 
xmlns="http://schemas.microsoft.com/windowsazure";><Name>mydeployment</Name><DeploymentSlot>Production</DeploymentSlot><Label>mydeployment</Label><RoleList><Role><RoleName>mydeployment</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType><ComputerName>mydeployment</ComputerName><AdminPassword>testpwd</AdminPassword><ResetPasswordOnFirstLogon>false</ResetPasswordOnFirstLogon><EnableAutomaticUpdate>false</EnableAutomaticUpdate><DomainJoin><Credentials><Domain>mydeployment</Domain><Username>username</Username><Password>testpwd</Password></Credentials><JoinDomain>mydeployment</JoinDomain></DomainJoin><StoredCertificateSettings/><WinRM><Listeners><Listener><Protocol>Http</Protocol></Listener></Listeners></WinRM><AdminUsername>username</AdminUsername><AdminPassword>username</AdminPassword></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</Con
 
figurationSetType><InputEndpoints><InputEndpoint><LocalPort>8080</LocalPort><Name>tcp_80-8080</Name><Port>80</Port><Protocol>tcp</Protocol></InputEndpoint><InputEndpoint><LocalPort>53</LocalPort><Name>udp_53-53</Name><Port>53</Port><Protocol>udp</Protocol></InputEndpoint></InputEndpoints><SubnetNames/></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink><SourceImageName>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</SourceImageName><OS>Windows</OS></OSVirtualHardDisk><RoleSize>Medium</RoleSize></Role></RoleList><VirtualNetworkName>my-virtualNetworkName</VirtualNetworkName></Deployment>

Reply via email to