Repository: jclouds-labs Updated Branches: refs/heads/fix/AzureTemplateBuilderLiveTest 5b832bfc6 -> 4045789ef
wip Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/716ab744 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/716ab744 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/716ab744 Branch: refs/heads/fix/AzureTemplateBuilderLiveTest Commit: 716ab744f112e8f652f2c300e1ce5eea3df83a22 Parents: 5b832bf Author: Ignasi Barrera <[email protected]> Authored: Wed Oct 5 17:10:59 2016 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Wed Oct 5 17:10:59 2016 +0200 ---------------------------------------------------------------------- .../arm/AzureComputeProviderMetadata.java | 4 +- .../arm/compute/functions/VMImageToImage.java | 3 + .../arm/filters/ApiVersionFilter.java | 12 +-- .../arm/functions/CleanupResources.java | 3 +- .../azurecompute/arm/util/GetEnumValue.java | 1 - .../compute/AzureComputeServiceLiveTest.java | 87 +++++++++----------- 6 files changed, 49 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/716ab744/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 5224410..ef15313 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 @@ -94,9 +94,9 @@ public class AzureComputeProviderMetadata extends BaseProviderMetadata { properties.put(DEFAULT_DATADISKSIZE, "100"); properties.put(IMAGE_PUBLISHERS, "Canonical,RedHat"); // Default credentials for all images - properties.put(TEMPLATE, "osFamily=UBUNTU,os64Bit=true,osVersionMatches=16.04.0-LTS"); properties.put(IMAGE_LOGIN_USER, "jclouds:Password12345!"); - properties.put(IMAGE_AUTHENTICATE_SUDO, "true"); + properties.put(IMAGE_AUTHENTICATE_SUDO, "true"); + properties.put(TEMPLATE, "imageNameMatches=UbuntuServer,osVersionMatches=1[45]\\.[01][04]\\.[0-9]-LTS"); properties.put(TIMEOUT_NODE_TERMINATED, 60 * 10 * 1000); // Api versions used in each API properties.put(API_VERSION_PREFIX + DeploymentApi.class.getSimpleName(), "2016-02-01"); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/716ab744/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VMImageToImage.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VMImageToImage.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VMImageToImage.java index 51ea075..1d2a49d 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VMImageToImage.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VMImageToImage.java @@ -47,6 +47,7 @@ public class VMImageToImage implements Function<VMImage, Image> { private static final String SUSE = "SUSE"; private static final String SQL_SERVER = "SQL Server"; private static final String ORACLE_lINUX = "Oracle Linux"; + private static final String RHEL = "RHEL"; private final Supplier<Set<? extends org.jclouds.domain.Location>> locations; @@ -150,6 +151,8 @@ public class VMImageToImage implements Function<VMImage, Image> { family = OsFamily.WINDOWS; } else if (label.contains(ORACLE_lINUX)) { family = OsFamily.OEL; + } else if (label.contains(RHEL)) { + family = OsFamily.RHEL; } String sku = image.sku(); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/716ab744/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilter.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilter.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilter.java index f03950b..904c2e8 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilter.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilter.java @@ -58,18 +58,19 @@ public class ApiVersionFilter implements HttpRequestFilter { checkArgument(request instanceof GeneratedHttpRequest, "This filter can only be applied to GeneratedHttpRequest objects"); GeneratedHttpRequest generatedRequest = (GeneratedHttpRequest) request; - + // Look if there is a custom api version for the current method String commandName = config.getCommandName(generatedRequest.getInvocation()); String customApiVersion = versions.get(commandName); - + if (customApiVersion == null) { - // No custom config for the specific method. Let's look for custom config for the class + // No custom config for the specific method. Let's look for custom + // config for the class Invokable<?, ?> invoked = generatedRequest.getInvocation().getInvokable(); String className = invoked.getOwnerType().getRawType().getSimpleName(); customApiVersion = versions.get(className); } - + if (customApiVersion != null) { return request.toBuilder().replaceQueryParam("api-version", customApiVersion).build(); } @@ -77,8 +78,7 @@ public class ApiVersionFilter implements HttpRequestFilter { return request; } - private static final Map<String, String> versions( - Function<Predicate<String>, Map<String, String>> filterStringsBoundByName) { + private static Map<String, String> versions(Function<Predicate<String>, Map<String, String>> filterStringsBoundByName) { Map<String, String> stringBoundWithApiVersionPrefix = filterStringsBoundByName .apply(startsWith(API_VERSION_PREFIX)); return transformKeys(stringBoundWithApiVersionPrefix, new Function<String, String>() { http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/716ab744/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/CleanupResources.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/CleanupResources.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/CleanupResources.java index e035ba6..f44c761 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/CleanupResources.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/CleanupResources.java @@ -16,8 +16,6 @@ */ package org.jclouds.azurecompute.arm.functions; -import autovalue.shaded.com.google.common.common.collect.Lists; - import java.net.URI; import java.util.List; import java.util.Map; @@ -41,6 +39,7 @@ import com.google.common.base.Predicate; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import static com.google.common.base.Preconditions.checkNotNull; http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/716ab744/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/GetEnumValue.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/GetEnumValue.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/GetEnumValue.java index 4a61613..f42bad3 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/GetEnumValue.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/GetEnumValue.java @@ -20,7 +20,6 @@ import java.util.EnumSet; public class GetEnumValue { - @SuppressWarnings("unchecked") public static <T extends Enum<T>> Enum<T> fromValueOrDefault(String text, Enum<T> defaultValue) { if (text != null) { EnumSet<T> elements = EnumSet.allOf(defaultValue.getDeclaringClass()); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/716ab744/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java index 81edddb..9caea43 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java @@ -16,49 +16,37 @@ */ package org.jclouds.azurecompute.arm.compute; -import java.util.Map; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.RESOURCE_GROUP_NAME; +import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; +import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED; +import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; +import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_PORT_OPEN; +import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_SCRIPT_COMPLETE; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; + import java.util.Properties; -import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import org.jclouds.azurecompute.arm.AzureComputeProviderMetadata; import org.jclouds.azurecompute.arm.internal.AzureLiveTestUtils; -import org.jclouds.compute.RunScriptOnNodesException; -import org.jclouds.compute.domain.ExecResponse; import org.jclouds.compute.domain.NodeMetadata; -import org.jclouds.compute.domain.OperatingSystem; -import org.jclouds.compute.domain.Template; import org.jclouds.compute.internal.BaseComputeServiceLiveTest; -import org.jclouds.compute.predicates.NodePredicates; -import org.jclouds.domain.LoginCredentials; import org.jclouds.logging.config.LoggingModule; import org.jclouds.logging.slf4j.config.SLF4JLoggingModule; import org.jclouds.providers.ProviderMetadata; -import org.jclouds.scriptbuilder.domain.Statement; -import org.jclouds.scriptbuilder.domain.Statements; -import org.jclouds.scriptbuilder.statements.java.InstallJDK; -import org.jclouds.scriptbuilder.statements.login.AdminAccess; import org.jclouds.sshj.config.SshjSshClientModule; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; import com.google.inject.Module; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.RESOURCE_GROUP_NAME; -import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_PORT_OPEN; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_SCRIPT_COMPLETE; - /** * Live tests for the {@link org.jclouds.compute.ComputeService} integration. */ @Test(groups = "live", singleThreaded = true, testName = "AzureComputeServiceLiveTest") public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest { - protected int nonBlockDurationSeconds = 30; public AzureComputeServiceLiveTest() { provider = "azurecompute-arm"; @@ -78,22 +66,20 @@ public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest { @Override protected ProviderMetadata createProviderMetadata() { - AzureComputeProviderMetadata pm = AzureComputeProviderMetadata.builder().build(); - return pm; + return AzureComputeProviderMetadata.builder().build(); } @Override protected Properties setupProperties() { Properties properties = super.setupProperties(); - long scriptTimeout = TimeUnit.MILLISECONDS.convert(60, TimeUnit.MINUTES); - properties.setProperty(TIMEOUT_SCRIPT_COMPLETE, scriptTimeout + ""); - properties.setProperty(TIMEOUT_NODE_RUNNING, scriptTimeout + ""); - properties.setProperty(TIMEOUT_PORT_OPEN, scriptTimeout + ""); - properties.setProperty(TIMEOUT_NODE_TERMINATED, scriptTimeout + ""); - properties.setProperty(TIMEOUT_NODE_SUSPENDED, scriptTimeout + ""); - properties.put(RESOURCE_GROUP_NAME, "j5s"); - properties.put(TEMPLATE, "osFamily=UBUNTU,os64Bit=true,osVersionMatches=16.04.0-LTS,locationId=northeurope"); - properties.put(IMAGE_PUBLISHERS, "Canonical"); + String defaultTimeout = String.valueOf(TimeUnit.MILLISECONDS.convert(60, TimeUnit.MINUTES)); + properties.setProperty(TIMEOUT_SCRIPT_COMPLETE, defaultTimeout); + properties.setProperty(TIMEOUT_NODE_RUNNING, defaultTimeout); + properties.setProperty(TIMEOUT_PORT_OPEN, defaultTimeout); + properties.setProperty(TIMEOUT_NODE_TERMINATED, defaultTimeout); + properties.setProperty(TIMEOUT_NODE_SUSPENDED, defaultTimeout); + properties.put(RESOURCE_GROUP_NAME, "a2"); + properties.put(PROPERTY_REGIONS, "northeurope"); AzureLiveTestUtils.defaultProperties(properties); checkNotNull(setIfTestSystemPropertyPresent(properties, "oauth.endpoint"), "test.oauth.endpoint"); @@ -102,24 +88,25 @@ public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest { } @Override - protected Template refreshTemplate() { - return this.template = addRunScriptToTemplate(this.buildTemplate(this.client.templateBuilder())); - } - - @Override - protected Template addRunScriptToTemplate(Template template) { - template.getOptions().runScript(Statements.newStatementList(new Statement[]{AdminAccess.standard(), Statements.exec("sleep 50"), InstallJDK.fromOpenJDK()})); - return template; - } - - @Override - @Test( enabled = false) - protected void weCanCancelTasks(NodeMetadata node) throws InterruptedException, ExecutionException { - return; + protected void checkUserMetadataContains(NodeMetadata node, ImmutableMap<String, String> userMetadata) { + // User metadata not yet supported } @Override - protected Map<? extends NodeMetadata, ExecResponse> runScriptWithCreds(String group, OperatingSystem os, LoginCredentials creds) throws RunScriptOnNodesException { - return this.client.runScriptOnNodesMatching(NodePredicates.runningInGroup(group), Statements.newStatementList(Statements.exec("sleep 50"), InstallJDK.fromOpenJDK()), org.jclouds.compute.options.TemplateOptions.Builder.overrideLoginCredentials(creds).nameTask("runScriptWithCreds")); + protected void checkTagsInNodeEquals(NodeMetadata node, ImmutableSet<String> tags) { + // Tags not yet supported } + + + +// @Override +// protected Template addRunScriptToTemplate(Template template) { +// template.getOptions().runScript(Statements.newStatementList(new Statement[]{AdminAccess.standard(), Statements.exec("sleep 50"), InstallJDK.fromOpenJDK()})); +// return template; +// } + +// @Override +// protected Map<? extends NodeMetadata, ExecResponse> runScriptWithCreds(String group, OperatingSystem os, LoginCredentials creds) throws RunScriptOnNodesException { +// return this.client.runScriptOnNodesMatching(NodePredicates.runningInGroup(group), Statements.newStatementList(Statements.exec("sleep 50"), InstallJDK.fromOpenJDK()), org.jclouds.compute.options.TemplateOptions.Builder.overrideLoginCredentials(creds).nameTask("runScriptWithCreds")); +// } }
