Fixed unit tests and AzureTemplateBuilderLiveTest

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

Branch: refs/heads/fix/AzureTemplateBuilderLiveTest
Commit: e5035aaad806fe0594ea7a49d01d784b7610255c
Parents: 68a163f
Author: Ignasi Barrera <[email protected]>
Authored: Thu Sep 29 14:03:29 2016 +0200
Committer: Ignasi Barrera <[email protected]>
Committed: Thu Sep 29 14:03:29 2016 +0200

----------------------------------------------------------------------
 .../arm/AzureComputeProviderMetadata.java        |  4 ++--
 .../functions/DeploymentToNodeMetadata.java      |  8 --------
 .../arm/util/DeploymentTemplateBuilder.java      | 19 ++++++++++++-------
 .../features/DeploymentTemplateBuilderTest.java  | 15 ++++++++++++---
 .../internal/BaseAzureComputeApiMockTest.java    |  7 +++++--
 5 files changed, 31 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/e5035aaa/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java
index b4ba4e7..cf98a8d 100644
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java
+++ 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java
@@ -75,8 +75,8 @@ public class AzureComputeProviderMetadata extends 
BaseProviderMetadata {
       properties.put(DEFAULT_DATADISKSIZE, "100");
       properties.put(IMAGE_PUBLISHERS, "Canonical,RedHat");
       // Default credentials for all images
-      properties.put("jclouds.azurecompute-arm.image.login-user", 
"jclouds:Password1!");
-      properties.put("jclouds.azurecompute-arm.image.authenticate-sudo", 
"true");      
+      properties.put("jclouds.image.login-user", "jclouds:Password1!");
+      properties.put("jclouds.image.authenticate-sudo", "true");      
       properties.put(TIMEOUT_NODE_TERMINATED, 60 * 10 * 1000);
       return properties;
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/e5035aaa/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/DeploymentToNodeMetadata.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/DeploymentToNodeMetadata.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/DeploymentToNodeMetadata.java
index ba6ce6d..7b59d5b 100644
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/DeploymentToNodeMetadata.java
+++ 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/DeploymentToNodeMetadata.java
@@ -23,7 +23,6 @@ import java.util.Set;
 import javax.inject.Inject;
 
 import org.jclouds.azurecompute.arm.AzureComputeApi;
-import org.jclouds.azurecompute.arm.domain.ComputeNode;
 import org.jclouds.azurecompute.arm.domain.Deployment;
 import org.jclouds.azurecompute.arm.domain.ImageReference;
 import org.jclouds.azurecompute.arm.domain.IpConfiguration;
@@ -50,13 +49,6 @@ import com.google.common.collect.Sets;
 
 public class DeploymentToNodeMetadata implements Function<VMDeployment, 
NodeMetadata> {
 
-   private static final Map<ComputeNode.Status, NodeMetadata.Status> 
INSTANCESTATUS_TO_NODESTATUS =
-           ImmutableMap.<ComputeNode.Status, NodeMetadata.Status>builder().
-                   put(ComputeNode.Status.GOOD, NodeMetadata.Status.RUNNING).
-                   put(ComputeNode.Status.BAD, NodeMetadata.Status.ERROR).
-                   put(ComputeNode.Status.UNRECOGNIZED, 
NodeMetadata.Status.UNRECOGNIZED).
-                   build();
-
    // When using the Deployment API to deploy an ARM template, the deployment 
goes through
    // stages.  Accepted -> Running -> Succeeded.  Only when the deployment has 
SUCCEEDED is
    // the resource deployed using the template actually ready.

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/e5035aaa/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java
index 02d343f..0f94379 100644
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java
+++ 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java
@@ -16,6 +16,10 @@
  */
 package org.jclouds.azurecompute.arm.util;
 
+import static com.google.common.io.BaseEncoding.base64;
+import static 
org.jclouds.azurecompute.arm.compute.extensions.AzureComputeImageExtension.CUSTOM_IMAGE_PREFIX;
+import static 
org.jclouds.azurecompute.arm.config.AzureComputeProperties.STORAGE_API_VERSION;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -66,9 +70,6 @@ import com.google.common.collect.Lists;
 import com.google.inject.Inject;
 import com.google.inject.assistedinject.Assisted;
 
-import static 
org.jclouds.azurecompute.arm.compute.extensions.AzureComputeImageExtension.CUSTOM_IMAGE_PREFIX;
-import static 
org.jclouds.azurecompute.arm.config.AzureComputeProperties.STORAGE_API_VERSION;
-
 public class DeploymentTemplateBuilder {
    public interface Factory {
       DeploymentTemplateBuilder create(@Assisted("group") String group, 
@Assisted("name") String name, Template template);
@@ -213,7 +214,6 @@ public class DeploymentTemplateBuilder {
 
       String ipConfigurationName = name + "ipconfig";
       String subnetId = options.getSubnetId();
-      String vnetName = options.getVirtualNetworkName();
 
       variables.put("ipConfigurationName", ipConfigurationName);
       variables.put("subnetReference", subnetId);
@@ -357,18 +357,23 @@ public class DeploymentTemplateBuilder {
 
       boolean usePublicKey = options.getPublicKey() != null;
 
-      if (usePublicKey) {
+      if (usePublicKey || keyVaultInUse()) {
          OSProfile.LinuxConfiguration configuration = 
OSProfile.LinuxConfiguration.create("true",
                  OSProfile.LinuxConfiguration.SSH.create(Arrays.asList(
                          OSProfile.LinuxConfiguration.SSH.SSHPublicKey.create(
-                                 
"[concat('/home/',variables('loginUser'),'/.ssh/authorized_keys')]",
-                                 options.getPublicKey())
+                               
"[concat('/home/',variables('loginUser'),'/.ssh/authorized_keys')]",
+                               keyVaultInUse() ? 
"[parameters('publicKeyFromAzureKeyVault')]" : options.getPublicKey())
                  ))
          );
          profileBuilder.linuxConfiguration(configuration);
       } else if (loginCredentials.getOptionalPassword().isPresent()) {
          
profileBuilder.adminPassword(loginCredentials.getOptionalPassword().get());
       }
+      
+      if (!Strings.isNullOrEmpty(options.getCustomData())){
+         String encodedCustomData = 
base64().encode(options.getCustomData().getBytes());
+         profileBuilder.customData(encodedCustomData);
+      }
 
       OSProfile osProfile = profileBuilder.build();
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/e5035aaa/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentTemplateBuilderTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentTemplateBuilderTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentTemplateBuilderTest.java
index 1657899..d14e3c6 100644
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentTemplateBuilderTest.java
+++ 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentTemplateBuilderTest.java
@@ -43,10 +43,13 @@ import org.jclouds.compute.options.TemplateOptions;
 import org.jclouds.domain.Location;
 import org.jclouds.domain.LocationBuilder;
 import org.jclouds.domain.LocationScope;
+import org.jclouds.domain.LoginCredentials;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.Iterables;
+import com.google.inject.Key;
+import com.google.inject.name.Names;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
@@ -229,14 +232,20 @@ public class DeploymentTemplateBuilderTest extends 
BaseAzureComputeApiMockTest {
    }
 
    private Template getMockTemplate(TemplateOptions options) {
-      ((AzureTemplateOptions)options).virtualNetworkName(vnetName);
-      ((AzureTemplateOptions)options).subnetId(subnetId);
+      options.as(AzureTemplateOptions.class).virtualNetworkName(vnetName);
+      options.as(AzureTemplateOptions.class).subnetId(subnetId);
+      
+      LoginCredentials defaultImageCredentials = context.utils().injector()
+            .getInstance(Key.get(LoginCredentials.class, 
Names.named("image")));
 
       Location provider = (new 
LocationBuilder()).scope(LocationScope.PROVIDER).id("azurecompute-arm").description("azurecompute-arm").build();
       Location region = (new 
LocationBuilder()).scope(LocationScope.REGION).id("northeurope").description("North
 Europe").parent(provider).build();
       OperatingSystem os = 
OperatingSystem.builder().name("osName").version("osVersion").description("osDescription").arch("X86_32").build();
       //Note that version is set to "latest"
-      Image image = (new 
ImageBuilder()).id("imageId").providerId("imageId").name("imageName").description("imageDescription").version("sku").operatingSystem(os).status(Image.Status.AVAILABLE).location(region).build();
+      
+      Image image = (new 
ImageBuilder()).id("imageId").providerId("imageId").name("imageName")
+            
.description("imageDescription").version("sku").operatingSystem(os).status(Image.Status.AVAILABLE)
+            
.location(region).defaultCredentials(defaultImageCredentials).build();
       Hardware hardware = (new HardwareBuilder()).id("Standard_A0").build();
       return new TemplateImpl(image, hardware, region, options);
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/e5035aaa/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiMockTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiMockTest.java
index 82af978..5c60f54 100644
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiMockTest.java
+++ 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/BaseAzureComputeApiMockTest.java
@@ -28,6 +28,7 @@ import org.jclouds.ContextBuilder;
 import org.jclouds.azurecompute.arm.AzureComputeApi;
 import org.jclouds.azurecompute.arm.AzureComputeProviderMetadata;
 import org.jclouds.concurrent.config.ExecutorServiceModule;
+import org.jclouds.rest.ApiContext;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 
@@ -50,6 +51,7 @@ public class BaseAzureComputeApiMockTest {
 
    protected MockWebServer server;
    protected AzureComputeApi api;
+   protected ApiContext<AzureComputeApi> context;
 
    // So that we can ignore formatting.
    private final JsonParser parser = new JsonParser();
@@ -62,12 +64,13 @@ public class BaseAzureComputeApiMockTest {
       properties.put(CREDENTIAL_TYPE, BEARER_TOKEN_CREDENTIALS.toString());
       properties.put("oauth.endpoint", 
"https://login.microsoftonline.com/tenant-id/oauth2/token";);
       AzureComputeProviderMetadata pm = 
AzureComputeProviderMetadata.builder().build();
-      api = ContextBuilder.newBuilder(pm)
+      context = ContextBuilder.newBuilder(pm)
               .credentials("", MOCK_BEARER_TOKEN)
               .endpoint(server.getUrl("/").toString() + 
"subscriptions/SUBSCRIPTIONID")
               .modules(modules)
               .overrides(properties)
-              .buildApi(AzureComputeApi.class);
+              .build();
+      api = context.getApi();
    }
 
    @AfterMethod(alwaysRun = true)

Reply via email to