fix azure-arm features live tests - add image publishers filter to AzureComputeServiceLiveTest - add parser module to provider - fix create network card interface - fix checkstyle
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/c458bafd Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/c458bafd Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/c458bafd Branch: refs/heads/master Commit: c458bafdf5b1ffa9f6365e9a52193b017a20f94a Parents: e8c4530 Author: Andrea Turli <[email protected]> Authored: Fri Sep 9 18:30:26 2016 +0200 Committer: Andrea Turli <[email protected]> Committed: Tue Sep 27 15:27:53 2016 +0200 ---------------------------------------------------------------------- .../arm/AzureManagementApiMetadata.java | 5 +- .../AzureComputeServiceContextModule.java | 95 +++--- .../arm/features/DeploymentApi.java | 19 +- .../azurecompute/arm/functions/URIParser.java | 9 +- .../compute/AzureComputeServiceLiveTest.java | 10 +- .../compute/AzureTemplateBuilderLiveTest.java | 12 +- .../arm/features/DeploymentApiLiveTest.java | 95 +++--- .../arm/features/LocationApiLiveTest.java | 9 +- .../NetworkInterfaceCardApiLiveTest.java | 110 +++---- .../NetworkSecurityGroupApiLiveTest.java | 111 +++---- .../NetworkSecurityRuleApiLiveTest.java | 156 ++++------ .../arm/features/OSImageApiLiveTest.java | 9 +- .../features/PublicIPAddressApiLiveTest.java | 46 ++- .../arm/features/ResourceGroupApiLiveTest.java | 71 ++--- .../features/ResourceProviderApiLiveTest.java | 8 +- .../arm/features/StorageAccountApiLiveTest.java | 46 ++- .../arm/features/SubnetApiLiveTest.java | 74 +++-- .../TemplateToDeploymentTemplateLiveTest.java | 42 ++- .../arm/features/VMSizeApiLiveTest.java | 2 +- .../arm/features/VirtualMachineApiLiveTest.java | 309 +++++++++---------- .../arm/features/VirtualNetworkApiLiveTest.java | 69 ++--- .../AbstractAzureComputeApiLiveTest.java | 80 ----- .../internal/BaseAzureComputeApiLiveTest.java | 283 +++++++---------- 23 files changed, 719 insertions(+), 951 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java index 48dbe69..a321060 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java @@ -70,11 +70,12 @@ public class AzureManagementApiMetadata extends BaseHttpApiMetadata<AzureCompute .defaultProperties(AzureManagementApiMetadata.defaultProperties()) .view(typeToken(ComputeServiceContext.class)) .defaultModules(ImmutableSet.<Class<? extends Module>>builder() - .add(AzureComputeServiceContextModule.class) .add(OAuthModule.class) .add(OkHttpCommandExecutorServiceModule.class) .add(AzureComputeParserModule.class) - .add(AzureComputeHttpApiModule.class).build()); + .add(AzureComputeHttpApiModule.class) + .add(AzureComputeServiceContextModule.class) + .build()); } @Override http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/config/AzureComputeServiceContextModule.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/config/AzureComputeServiceContextModule.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/config/AzureComputeServiceContextModule.java index 7df8111..6033f42 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/config/AzureComputeServiceContextModule.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/config/AzureComputeServiceContextModule.java @@ -16,72 +16,69 @@ */ package org.jclouds.azurecompute.arm.compute.config; +import java.net.URI; +import java.util.List; + import javax.annotation.Resource; import javax.inject.Named; import javax.inject.Singleton; -import com.google.inject.Provides; - +import org.jclouds.azurecompute.arm.AzureComputeApi; +import org.jclouds.azurecompute.arm.compute.AzureComputeService; import org.jclouds.azurecompute.arm.compute.AzureComputeServiceAdapter; import org.jclouds.azurecompute.arm.compute.extensions.AzureComputeImageExtension; -import org.jclouds.azurecompute.arm.compute.functions.VMImageToImage; import org.jclouds.azurecompute.arm.compute.functions.DeploymentToNodeMetadata; -import org.jclouds.azurecompute.arm.compute.functions.VMHardwareToHardware; import org.jclouds.azurecompute.arm.compute.functions.LocationToLocation; -import org.jclouds.azurecompute.arm.compute.strategy.AzurePopulateDefaultLoginCredentialsForImageStrategy; +import org.jclouds.azurecompute.arm.compute.functions.VMHardwareToHardware; +import org.jclouds.azurecompute.arm.compute.functions.VMImageToImage; import org.jclouds.azurecompute.arm.compute.options.AzureTemplateOptions; +import org.jclouds.azurecompute.arm.compute.strategy.AzurePopulateDefaultLoginCredentialsForImageStrategy; +import org.jclouds.azurecompute.arm.compute.strategy.CreateResourceGroupThenCreateNodes; +import org.jclouds.azurecompute.arm.domain.Location; import org.jclouds.azurecompute.arm.domain.ResourceDefinition; import org.jclouds.azurecompute.arm.domain.VMDeployment; import org.jclouds.azurecompute.arm.domain.VMHardware; import org.jclouds.azurecompute.arm.domain.VMImage; -import org.jclouds.azurecompute.arm.domain.Location; -import org.jclouds.azurecompute.arm.compute.strategy.CreateResourceGroupThenCreateNodes; -import org.jclouds.azurecompute.arm.AzureComputeApi; import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance; import org.jclouds.azurecompute.arm.functions.ParseJobStatus; -import org.jclouds.compute.options.TemplateOptions; +import org.jclouds.compute.ComputeService; import org.jclouds.compute.ComputeServiceAdapter; import org.jclouds.compute.config.ComputeServiceAdapterContextModule; import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.domain.NodeMetadata; +import org.jclouds.compute.extensions.ImageExtension; +import org.jclouds.compute.options.TemplateOptions; import org.jclouds.compute.reference.ComputeServiceConstants; -import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet; -import org.jclouds.compute.reference.ComputeServiceConstants.Timeouts; import org.jclouds.compute.reference.ComputeServiceConstants.PollPeriod; +import org.jclouds.compute.reference.ComputeServiceConstants.Timeouts; +import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet; +import org.jclouds.compute.strategy.PopulateDefaultLoginCredentialsForImageStrategy; +import org.jclouds.logging.Logger; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.OPERATION_TIMEOUT; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.inject.Inject; +import com.google.inject.Provides; +import com.google.inject.TypeLiteral; + +import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_DATADISKSIZE; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_IMAGE_LOGIN; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_SUBNET_ADDRESS_PREFIX; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_VNET_ADDRESS_SPACE_PREFIX; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS; import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD; import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.OPERATION_TIMEOUT; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.RESOURCE_GROUP_NAME; import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.TCP_RULE_FORMAT; import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.TCP_RULE_REGEXP; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.RESOURCE_GROUP_NAME; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_IMAGE_LOGIN; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_VNET_ADDRESS_SPACE_PREFIX; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_SUBNET_ADDRESS_PREFIX; import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.TIMEOUT_RESOURCE_DELETED; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_DATADISKSIZE; - +import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_IMAGE_AVAILABLE; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED; -import static org.jclouds.util.Predicates2.retry; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_IMAGE_AVAILABLE; - -import com.google.common.base.Function; -import com.google.inject.Inject; -import com.google.inject.TypeLiteral; -import com.google.common.base.Predicate; -import static com.google.common.base.Preconditions.checkNotNull; -import com.google.common.annotations.VisibleForTesting; -import java.net.URI; -import java.util.List; - - -import org.jclouds.compute.extensions.ImageExtension; -import org.jclouds.compute.strategy.PopulateDefaultLoginCredentialsForImageStrategy; -import org.jclouds.azurecompute.arm.compute.AzureComputeService; -import org.jclouds.compute.ComputeService; -import org.jclouds.logging.Logger; +import static org.jclouds.util.Predicates2.retry; public class AzureComputeServiceContextModule extends ComputeServiceAdapterContextModule<VMDeployment, VMHardware, VMImage, Location> { @@ -209,38 +206,31 @@ public class AzureComputeServiceContextModule @Provides @Named(TIMEOUT_NODE_TERMINATED) - protected Predicate<URI> provideNodeTerminatedPredicate(final AzureComputeApi api, Timeouts timeouts, - PollPeriod pollPeriod) { + protected Predicate<URI> provideNodeTerminatedPredicate(final AzureComputeApi api, Timeouts timeouts, PollPeriod pollPeriod) { return retry(new ActionDonePredicate(api), timeouts.nodeTerminated, pollPeriod.pollInitialPeriod, pollPeriod.pollMaxPeriod); } @Provides @Named(TIMEOUT_IMAGE_AVAILABLE) - protected Predicate<URI> provideImageAvailablePredicate(final AzureComputeApi api, Timeouts timeouts, - PollPeriod pollPeriod) { + protected Predicate<URI> provideImageAvailablePredicate(final AzureComputeApi api, Timeouts timeouts, PollPeriod pollPeriod) { return retry(new ImageDonePredicate(api), timeouts.imageAvailable, pollPeriod.pollInitialPeriod, pollPeriod.pollMaxPeriod); } @Provides @Named(TIMEOUT_RESOURCE_DELETED) - protected Predicate<URI> provideResourceDeletedPredicate(final AzureComputeApi api, Timeouts timeouts, - PollPeriod pollPeriod) { + protected Predicate<URI> provideResourceDeletedPredicate(final AzureComputeApi api, Timeouts timeouts, PollPeriod pollPeriod) { return retry(new ActionDonePredicate(api), timeouts.nodeTerminated, pollPeriod.pollInitialPeriod, pollPeriod.pollMaxPeriod); } @Provides @Named(TIMEOUT_NODE_SUSPENDED) - protected Predicate<String> provideNodeSuspendedPredicate(final AzureComputeApi api, - final AzureComputeServiceContextModule.AzureComputeConstants azureComputeConstants, - Timeouts timeouts, - PollPeriod pollPeriod) { - + protected Predicate<String> provideNodeSuspendedPredicate(final AzureComputeApi api, final AzureComputeServiceContextModule.AzureComputeConstants azureComputeConstants, + Timeouts timeouts, PollPeriod pollPeriod) { String azureGroup = azureComputeConstants.azureResourceGroup(); - return retry(new NodeSuspendedPredicate(api, azureGroup), timeouts.nodeSuspended, pollPeriod.pollInitialPeriod, - pollPeriod.pollMaxPeriod); + return retry(new NodeSuspendedPredicate(api, azureGroup), timeouts.nodeSuspended, pollPeriod.pollInitialPeriod, pollPeriod.pollMaxPeriod); } @VisibleForTesting @@ -272,6 +262,7 @@ public class AzureComputeServiceContextModule @Override public boolean apply(URI uri) { checkNotNull(uri, "uri cannot be null"); + if (api.getJobApi().jobStatus(uri) != ParseJobStatus.JobStatus.DONE) return false; List<ResourceDefinition> definitions = api.getJobApi().captureStatus(uri); return definitions != null; } @@ -292,7 +283,9 @@ public class AzureComputeServiceContextModule public boolean apply(String name) { checkNotNull(name, "name cannot be null"); String status = ""; - List<VirtualMachineInstance.VirtualMachineStatus> statuses = api.getVirtualMachineApi(this.azureGroup).getInstanceDetails(name).statuses(); + VirtualMachineInstance virtualMachineInstance = api.getVirtualMachineApi(this.azureGroup).getInstanceDetails(name); + if (virtualMachineInstance == null) return false; + List<VirtualMachineInstance.VirtualMachineStatus> statuses = virtualMachineInstance.statuses(); for (int c = 0; c < statuses.size(); c++) { if (statuses.get(c).code().substring(0, 10).equals("PowerState")) { status = statuses.get(c).displayStatus(); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java index 550f8ea..33c929a 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java @@ -16,35 +16,34 @@ */ package org.jclouds.azurecompute.arm.features; +import java.net.URI; +import java.util.List; + import javax.inject.Named; +import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; +import javax.ws.rs.GET; import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Consumes; import javax.ws.rs.PUT; -import javax.ws.rs.GET; -import javax.ws.rs.Produces; +import javax.ws.rs.Path; import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks; import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; import org.jclouds.Fallbacks.NullOnNotFoundOr404; - import org.jclouds.azurecompute.arm.domain.Deployment; import org.jclouds.azurecompute.arm.functions.URIParser; import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.Payload; import org.jclouds.rest.annotations.PayloadParam; +import org.jclouds.rest.annotations.QueryParams; +import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; import org.jclouds.rest.annotations.SelectJson; -import java.net.URI; -import java.util.List; - /** * - create deployment * - delete deployment http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/URIParser.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/URIParser.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/URIParser.java index 78fd10d..f67e7e2 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/URIParser.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/functions/URIParser.java @@ -15,12 +15,13 @@ * limitations under the License. */ package org.jclouds.azurecompute.arm.functions; -import com.google.common.base.Function; -import org.jclouds.http.HttpResponse; +import java.net.URI; import javax.inject.Singleton; -import java.net.URI; +import org.jclouds.http.HttpResponse; + +import com.google.common.base.Function; /** * Parses job status from http response */ @@ -31,7 +32,7 @@ public class URIParser implements Function<HttpResponse, URI> { String uri = from.getFirstHeaderOrNull("Location"); return URI.create(uri); - } else if (from.getStatusCode() == 200){ + } else if (from.getStatusCode() == 200 || from.getStatusCode() == 204){ return null; } throw new IllegalStateException("did not receive expected response code and header in: " + from); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/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 b579f6a..d6fdd3c 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 @@ -44,12 +44,14 @@ import org.testng.annotations.Test; 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.TIMEOUT_SCRIPT_COMPLETE; +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_PORT_OPEN; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; 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. @@ -90,6 +92,8 @@ public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest { properties.setProperty(TIMEOUT_NODE_TERMINATED, scriptTimeout + ""); properties.setProperty(TIMEOUT_NODE_SUSPENDED, scriptTimeout + ""); properties.put(RESOURCE_GROUP_NAME, "a4"); + properties.put(TEMPLATE, "locationId=westeurope"); + properties.put(IMAGE_PUBLISHERS, "Canonical"); AzureLiveTestUtils.defaultProperties(properties); checkNotNull(setIfTestSystemPropertyPresent(properties, "oauth.endpoint"), "test.oauth.endpoint"); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureTemplateBuilderLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureTemplateBuilderLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureTemplateBuilderLiveTest.java index 652c12a..8756240 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureTemplateBuilderLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureTemplateBuilderLiveTest.java @@ -16,7 +16,10 @@ */ package org.jclouds.azurecompute.arm.compute; -import com.google.inject.Module; +import java.util.Properties; +import java.util.Set; +import java.util.concurrent.TimeUnit; + import org.jclouds.azurecompute.arm.AzureComputeProviderMetadata; import org.jclouds.azurecompute.arm.internal.AzureLiveTestUtils; import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest; @@ -24,11 +27,8 @@ import org.jclouds.providers.ProviderMetadata; import org.jclouds.sshj.config.SshjSshClientModule; import org.testng.annotations.Test; -import java.util.Properties; -import java.util.Set; -import java.util.concurrent.TimeUnit; - 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.RESOURCE_GROUP_NAME; @@ -41,7 +41,7 @@ public class AzureTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest { @Override protected Set<String> getIso3166Codes() { - return ImmutableSet.of("US-IA", "US-VA", "US-IL", "US-TX", "US-CA", "IE", "NL", "HK", "SG", "JP-11", "JP-27", "BR", "AU-NSW", "AU-VIC"); + return ImmutableSet.of("US-IA", "US-VA", "US-IL", "US-TX", "US-CA", "IE", "NL", "HK", "SG", "JP-11", "JP-27", "BR", "AU-NSW", "AU-VIC", "IN-GA", "IN-TN", "IN-MH", "CN-SH", "CN-BJ", "CA-ON", "CA-QC"); } public AzureTemplateBuilderLiveTest() { http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentApiLiveTest.java index 7493a63..7476828 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DeploymentApiLiveTest.java @@ -16,14 +16,16 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.base.Predicate; -import com.google.common.net.UrlEscapers; +import java.net.URI; +import java.util.List; + import org.jclouds.azurecompute.arm.compute.options.AzureTemplateOptions; import org.jclouds.azurecompute.arm.domain.Deployment; import org.jclouds.azurecompute.arm.domain.Deployment.ProvisioningState; import org.jclouds.azurecompute.arm.domain.DeploymentBody; import org.jclouds.azurecompute.arm.domain.DeploymentProperties; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus; +import org.jclouds.azurecompute.arm.domain.Subnet; +import org.jclouds.azurecompute.arm.domain.VirtualNetwork; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; import org.jclouds.azurecompute.arm.util.DeploymentTemplateBuilder; import org.jclouds.compute.domain.Hardware; @@ -39,25 +41,25 @@ import org.jclouds.domain.Location; import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; import org.jclouds.util.Predicates2; +import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.net.URI; -import java.util.List; +import com.google.common.base.Predicate; +import com.google.common.net.UrlEscapers; -import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; -@Test(groups = "live", testName = "DeploymentApiLiveTest", singleThreaded = true) +@Test(testName = "DeploymentApiLiveTest", singleThreaded = true) public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { - private int maxTestDuration = 190; - private String resourceName; + private String resourceGroupName; private String deploymentName; - private String rawtemplate; - private String rawparameters; - private String rawbadParameters; + private String subnetId; + private String properties; private String badProperties; @@ -65,16 +67,37 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { @Override public void setup() { super.setup(); - resourceName = getResourceGroupName(); - Long now = System.currentTimeMillis(); - deploymentName = "jc" + now; + resourceGroupName = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + assertNotNull(createResourceGroup(resourceGroupName)); + deploymentName = "jc" + System.currentTimeMillis(); + String virtualNetworkName = String.format("vn-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + String storageAccountName = String.format("st%s%s", System.getProperty("user.name"), RAND); - rawtemplate = "{\"$schema\":\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\"contentVersion\":\"1.0.0.0\",\"parameters\":{\"newStorageAccountName\":{\"type\":\"string\",\"metadata\":{\"description\":\"Name of the Storage Account\"}},\"storageAccountType\":{\"type\":\"string\",\"defaultValue\":\"Standard_LRS\",\"allowedValues\":[\"Standard_LRS\",\"Standard_GRS\",\"Standard_ZRS\"],\"metadata\":{\"description\":\"Storage Account type\"}},\"location\":{\"type\":\"string\",\"allowedValues\":[\"East US\",\"West US\",\"West Europe\",\"East Asia\",\"Southeast Asia\"],\"metadata\":{\"description\":\"Location of storage account\"}}},\"resources\":[{\"type\":\"Microsoft.Storage/storageAccounts\",\"name\":\"[parameters('newStorageAccountName')]\",\"apiVersion\":\"2015-05-01-preview\",\"location\":\"[parameters('location')]\",\"properties\":{\"accountType\":\"[parameters('storageAccountType')]\"}}]}"; - rawparameters = "{\"newStorageAccountName\":{\"value\":\"" + resourceName + "\"},\"storageAccountType\":{\"value\":\"Standard_LRS\"},\"location\":{\"value\":\"West US\"}}"; - rawbadParameters = "{\"newStorageAccountName\":{\"value\":\"" + resourceName + "\"},\"storageAccountType\":{\"value\":\"Standard_LRS\"},\"location\":{\"value\":\"West\"}}"; + String rawtemplate = "{\"$schema\":\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\"contentVersion\":\"1.0.0.0\",\"parameters\":{\"newStorageAccountName\":{\"type\":\"string\",\"metadata\":{\"description\":\"Name of the Storage Account\"}},\"storageAccountType\":{\"type\":\"string\",\"defaultValue\":\"Standard_LRS\",\"allowedValues\":[\"Standard_LRS\",\"Standard_GRS\",\"Standard_ZRS\"],\"metadata\":{\"description\":\"Storage Account type\"}},\"location\":{\"type\":\"string\",\"allowedValues\":[\"East US\",\"West US\",\"West Europe\",\"East Asia\",\"Southeast Asia\"],\"metadata\":{\"description\":\"Location of storage account\"}}},\"resources\":[{\"type\":\"Microsoft.Storage/storageAccounts\",\"name\":\"[parameters('newStorageAccountName')]\",\"apiVersion\":\"2015-05-01-preview\",\"location\":\"[parameters('location')]\",\"properties\":{\"accountType\":\"[parameters('storageAccountType')]\"}}]}"; + String rawparameters = "{\"newStorageAccountName\":{\"value\":\"" + storageAccountName + "\"},\"storageAccountType\":{\"value\":\"Standard_LRS\"},\"location\":{\"value\":\"West US\"}}"; + String rawbadParameters = "{\"newStorageAccountName\":{\"value\":\"" + storageAccountName + "\"},\"storageAccountType\":{\"value\":\"Standard_LRS\"},\"location\":{\"value\":\"West\"}}"; properties = getPutBody(rawtemplate, "Incremental", rawparameters); badProperties = getPutBody(rawtemplate, "Incremental", rawbadParameters); + + //Subnets belong to a virtual network so that needs to be created first + VirtualNetwork vn = createDefaultVirtualNetwork(resourceGroupName, virtualNetworkName, "10.3.0.0/16", LOCATION); + assertNotNull(vn); + + //Subnet needs to be up & running before NIC can be created + String subnetName = String.format("s-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + Subnet subnet = createDefaultSubnet(resourceGroupName, subnetName, virtualNetworkName, "10.3.0.0/23"); + assertNotNull(subnet); + assertNotNull(subnet.id()); + subnetId = subnet.id(); + } + + @AfterClass + @Override + protected void tearDown() { + super.tearDown(); + URI uri = api.getResourceGroupApi().delete(resourceGroupName); + assertResourceDeleted(uri); } private String getPutBody(String template, String mode, String parameters) { @@ -91,7 +114,7 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { private Template getTemplate(TemplateOptions options) { 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(); + Location region = (new LocationBuilder()).scope(LocationScope.REGION).id(LOCATION).description("West Europe").parent(provider).build(); OperatingSystem os = OperatingSystem.builder() .family(OsFamily.UBUNTU) @@ -116,11 +139,11 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { private DeploymentTemplateBuilder getDeploymentTemplateBuilderWithOptions(TemplateOptions options) { Template template = getTemplate(options); - DeploymentTemplateBuilder templateBuilder = api.deploymentTemplateFactory().create(resourceName, deploymentName, template); + DeploymentTemplateBuilder templateBuilder = api.deploymentTemplateFactory().create(resourceGroupName, deploymentName, template); return templateBuilder; } - @Test(groups = "live") + @Test public void testValidate(){ Deployment deploymentInvalid = null; try { @@ -138,12 +161,13 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { } assertNotNull(deploymentValid); } - @Test(groups = "live") + @Test public void testCreate() { String rsakey = new String("ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAmfk/QSF0pvnrpdz+Ah2KulGruKU+8FFBdlw938MpOysRdmp7uwpH6Z7+5VNGNdxFIAyc/W3UaZXF9hTsU8+78TlwkZpsr2mzU+ycu37XLAQ8Uv7hjsAN0DkKKPrZ9lgUUfZVKV/8E/JIAs03gIbL6zO3y7eYJQ5fNeZb+nji7tQT+YLpGq/FDegvraPKVMQbCSCZhsHyWhdPLyFlu9/30npZ0ahYOPI/KyZxFDtM/pHp88+ZAk9Icq5owaLRWcJQqrBGWqjbZnHtjdDqvHZ+C0wPhdJZPyfkHOrSYTwSQBXfX4JLRRCz3J1jf62MbQWT1o6Y4JEs1ZP1Skxu6zR96Q== mocktest"); - TemplateOptions options = new AzureTemplateOptions(); + AzureTemplateOptions options = new AzureTemplateOptions(); options.authorizePublicKey(rsakey); + options.subnetId(subnetId); DeploymentTemplateBuilder templateBuilder = getDeploymentTemplateBuilderWithOptions(options); DeploymentBody deploymentTemplateBody = templateBuilder.getDeploymentTemplate(); @@ -152,7 +176,6 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { String deploymentTemplate = templateBuilder.getDeploymentTemplateJson(properties); deploymentTemplate = UrlEscapers.urlFormParameterEscaper().escape(deploymentTemplate); - Deployment deploymentValid = api().validate(deploymentName, deploymentTemplate); assertNotNull(deploymentValid); @@ -165,9 +188,10 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { public boolean apply(String name) { Deployment dp = api().get(deploymentName); ProvisioningState state = ProvisioningState.fromValue(dp.properties().provisioningState()); + if (state == ProvisioningState.FAILED) Assert.fail(); return state == ProvisioningState.SUCCEEDED; } - }, 60 * maxTestDuration * 1000).apply(deploymentName); + }, 60 * 20 * 1000).apply(deploymentName); assertTrue(jobDone, "create operation did not complete in the configured timeout"); Deployment dp = api().get(deploymentName); @@ -176,7 +200,7 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { } - @Test(groups = "live", dependsOnMethods = "testCreate") + @Test(dependsOnMethods = "testCreate") public void testGetDeployment() { Deployment deployment = api().get(deploymentName); assertNotNull(deployment); @@ -184,7 +208,7 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { assertTrue(state == ProvisioningState.SUCCEEDED); } - @Test(groups = "live", dependsOnMethods = "testCreate") + @Test(dependsOnMethods = "testCreate") public void testListDeployments() { List<Deployment> deployments = api().list(); assertTrue(deployments.size() > 0); @@ -197,31 +221,20 @@ public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest { } } assertTrue(deploymentFound); - } - @Test(groups = "live", dependsOnMethods = {"testGetDeployment", "testListDeployments"}, alwaysRun = true) + @Test(dependsOnMethods = {"testGetDeployment", "testListDeployments"}) public void testDelete() throws Exception { List<Deployment> deployments = api().list(); for (Deployment d : deployments) { if (d.name().contains("jc")) { URI uri = api().delete(d.name()); - assertNotNull(uri); - assertTrue(uri.toString().contains("api-version")); - assertTrue(uri.toString().contains("operationresults")); - - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override - public boolean apply(URI uri) { - return ParseJobStatus.JobStatus.NO_CONTENT == api.getJobApi().jobStatus(uri); - } - }, 60 * maxTestDuration * 1000).apply(uri); - assertTrue(jobDone, "delete operation did not complete in the configured timeout"); + assertResourceDeleted(uri); } } } private DeploymentApi api() { - return api.getDeploymentApi(resourceName); + return api.getDeploymentApi(resourceGroupName); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/LocationApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/LocationApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/LocationApiLiveTest.java index fbfa88e..4e37294 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/LocationApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/LocationApiLiveTest.java @@ -16,6 +16,8 @@ */ package org.jclouds.azurecompute.arm.features; +import java.util.List; + import org.jclouds.azurecompute.arm.domain.Location; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; import org.testng.annotations.Test; @@ -28,10 +30,9 @@ public class LocationApiLiveTest extends BaseAzureComputeApiLiveTest { @Test public void testList() { - assertTrue(!api().list().isEmpty()); - - for (Location location : api().list()) { - assertTrue(!location.id().isEmpty()); + List<Location> locations = api().list(); + assertTrue(!locations.isEmpty()); + for (Location location : locations) { checkLocation(location); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApiLiveTest.java index 34917ac..0614d99 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApiLiveTest.java @@ -16,72 +16,64 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.collect.ImmutableMap; -import com.google.common.base.Predicate; +import java.net.URI; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + import org.jclouds.azurecompute.arm.domain.IdReference; import org.jclouds.azurecompute.arm.domain.IpConfiguration; import org.jclouds.azurecompute.arm.domain.IpConfigurationProperties; import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard; import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties; import org.jclouds.azurecompute.arm.domain.Subnet; -import org.jclouds.azurecompute.arm.domain.VirtualNetwork; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; -import org.jclouds.util.Predicates2; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.net.URI; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - +import com.google.common.collect.ImmutableMap; -import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; -import static org.testng.Assert.assertEquals; @Test(groups = "live", singleThreaded = true) public class NetworkInterfaceCardApiLiveTest extends BaseAzureComputeApiLiveTest { - private String resourcegroup; - private String subnetID; + private String resourceGroupName; + private String subnetId; + private String nicName; @BeforeClass @Override public void setup() { super.setup(); - - resourcegroup = getResourceGroupName(); + resourceGroupName = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + assertNotNull(api.getResourceGroupApi().create(resourceGroupName, LOCATION, ImmutableMap.<String, String>of())); + String virtualNetworkName = String.format("vn-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + nicName = String.format("nic-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + String subnetName = String.format("s-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); //Subnets belong to a virtual network so that needs to be created first - VirtualNetwork vn = getOrCreateVirtualNetwork(VIRTUAL_NETWORK_NAME); - assertNotNull(vn); + assertNotNull(createDefaultVirtualNetwork(resourceGroupName, virtualNetworkName, "10.2.0.0/16", LOCATION)); //Subnet needs to be up & running before NIC can be created - Subnet subnet = getOrCreateSubnet(DEFAULT_SUBNET_NAME, VIRTUAL_NETWORK_NAME); + Subnet subnet = createDefaultSubnet(resourceGroupName, subnetName, virtualNetworkName, "10.2.0.0/23"); assertNotNull(subnet); assertNotNull(subnet.id()); - subnetID = subnet.id(); + subnetId = subnet.id(); } - - @Test(groups = "live") - public void deleteNetworkInterfaceCardResourceDoesNotExist() { - - final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); - URI uri = nicApi.delete(NETWORKINTERFACECARD_NAME); - assertNull(uri); + @AfterClass + @Override + protected void tearDown() { + super.tearDown(); + deleteResourceGroup(resourceGroupName); } - @Test(groups = "live", dependsOnMethods = "deleteNetworkInterfaceCardResourceDoesNotExist") + @Test public void createNetworkInterfaceCard() { - - final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); - - - //Create properties object //Create properties object final NetworkInterfaceCardProperties networkInterfaceCardProperties = NetworkInterfaceCardProperties.builder().ipConfigurations( @@ -89,66 +81,48 @@ public class NetworkInterfaceCardApiLiveTest extends BaseAzureComputeApiLiveTest .name("myipconfig") .properties(IpConfigurationProperties.builder() .privateIPAllocationMethod("Dynamic") - .subnet(IdReference.create(subnetID)).build() + .subnet(IdReference.create(subnetId)).build() ).build() )).build(); final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest"); - NetworkInterfaceCard nic = nicApi.createOrUpdate(NETWORKINTERFACECARD_NAME, LOCATION, networkInterfaceCardProperties, tags); + NetworkInterfaceCard nic = api().createOrUpdate(nicName, LOCATION, networkInterfaceCardProperties, tags); - assertEquals(nic.name(), NETWORKINTERFACECARD_NAME); + assertEquals(nic.name(), nicName); assertEquals(nic.location(), LOCATION); assertTrue(nic.properties().ipConfigurations().size() > 0); assertEquals(nic.properties().ipConfigurations().get(0).name(), "myipconfig"); assertEquals(nic.properties().ipConfigurations().get(0).properties().privateIPAllocationMethod(), "Dynamic"); - assertEquals(nic.properties().ipConfigurations().get(0).properties().subnet().id(), subnetID); + assertEquals(nic.properties().ipConfigurations().get(0).properties().subnet().id(), subnetId); assertEquals(nic.tags().get("jclouds"), "livetest"); - } - @Test(groups = "live", dependsOnMethods = "createNetworkInterfaceCard") + @Test(dependsOnMethods = "createNetworkInterfaceCard") public void getNetworkInterfaceCard() { + NetworkInterfaceCard nic = api().get(nicName); - final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); - - NetworkInterfaceCard nic = nicApi.get(NETWORKINTERFACECARD_NAME); - - assertEquals(nic.name(), NETWORKINTERFACECARD_NAME); + assertEquals(nic.name(), nicName); assertEquals(nic.location(), LOCATION); assertTrue(nic.properties().ipConfigurations().size() > 0); assertEquals(nic.properties().ipConfigurations().get(0).name(), "myipconfig"); assertEquals(nic.properties().ipConfigurations().get(0).properties().privateIPAllocationMethod(), "Dynamic"); - assertEquals(nic.properties().ipConfigurations().get(0).properties().subnet().id(), subnetID); + assertEquals(nic.properties().ipConfigurations().get(0).properties().subnet().id(), subnetId); } - @Test(groups = "live", dependsOnMethods = "createNetworkInterfaceCard") + @Test(dependsOnMethods = "createNetworkInterfaceCard") public void listNetworkInterfaceCards() { - - final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); - - List<NetworkInterfaceCard> nicList = nicApi.list(); - - assertTrue(nicList.contains(nicApi.get(NETWORKINTERFACECARD_NAME))); + List<NetworkInterfaceCard> nicList = api().list(); + assertTrue(nicList.contains(api().get(nicName))); } - - @Test(groups = "live", dependsOnMethods = {"listNetworkInterfaceCards", "getNetworkInterfaceCard"}, alwaysRun = true) + @Test(dependsOnMethods = {"listNetworkInterfaceCards", "getNetworkInterfaceCard"}) public void deleteNetworkInterfaceCard() { + URI uri = api().delete(nicName); + assertResourceDeleted(uri); + } - final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); - URI uri = nicApi.delete(NETWORKINTERFACECARD_NAME); - if (uri != null) { - assertTrue(uri.toString().contains("api-version")); - assertTrue(uri.toString().contains("operationresults")); - - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override - public boolean apply(URI uri) { - return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 2 * 1000 /* 2 minute timeout */).apply(uri); - assertTrue(jobDone, "delete operation did not complete in the configured timeout"); - } + private NetworkInterfaceCardApi api() { + return api.getNetworkInterfaceCardApi(resourceGroupName); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApiLiveTest.java index 095c0e2..b66b150 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApiLiveTest.java @@ -16,99 +16,72 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.base.Predicate; +import java.net.URI; +import java.util.List; + import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroup; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroupProperties; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRule; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties; - -import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties.Access; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties.Direction; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties.Protocol; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; - -import org.jclouds.util.Predicates2; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; - -import java.util.ArrayList; -import java.util.List; -import java.net.URI; - -import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -import static org.testng.AssertJUnit.assertNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; @Test(groups = "live", singleThreaded = true) public class NetworkSecurityGroupApiLiveTest extends BaseAzureComputeApiLiveTest { - private String resourcegroup; - private static String DEFAULT_NSG_NAME = "testNetworkSecurityGroup"; - - private NetworkSecurityGroup createGroup() { - NetworkSecurityRule rule = NetworkSecurityRule.create("denyallout", null, null, - NetworkSecurityRuleProperties.builder() - .description("deny all out") - .protocol(Protocol.Tcp) - .sourcePortRange("*") - .destinationPortRange("*") - .sourceAddressPrefix("*") - .destinationAddressPrefix("*") - .access(Access.Deny) - .priority(4095) - .direction(Direction.Outbound) - .build()); - ArrayList<NetworkSecurityRule> ruleList = new ArrayList<NetworkSecurityRule>(); - ruleList.add(rule); - NetworkSecurityGroup nsg = NetworkSecurityGroup.create("samplensg", "westus", null, - NetworkSecurityGroupProperties.builder() - .securityRules(ruleList) - .build(), - null); - return nsg; - } + private String resourceGroupName; + private static String nsgName = "testNetworkSecurityGroup"; @BeforeClass @Override public void setup() { super.setup(); - resourcegroup = getResourceGroupName(); + resourceGroupName = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + assertNotNull(createResourceGroup(resourceGroupName)); + nsgName = String.format("nsg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); } - @Test(groups = "live") + @AfterClass + @Override + protected void tearDown() { + super.tearDown(); + URI uri = deleteResourceGroup(resourceGroupName); + assertResourceDeleted(uri); + } + + @Test public void deleteNetworkSecurityGroupDoesNotExist() { - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - URI uri = nsgApi.delete(DEFAULT_NSG_NAME); + URI uri = api().delete(nsgName); assertNull(uri); } - @Test(groups = "live", dependsOnMethods = "deleteNetworkSecurityGroupDoesNotExist") + @Test(dependsOnMethods = "deleteNetworkSecurityGroupDoesNotExist") public void createNetworkSecurityGroup() { - final NetworkSecurityGroup nsg = createGroup(); + final NetworkSecurityGroup nsg = newNetworkSecurityGroup(nsgName, LOCATION); assertNotNull(nsg); - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - NetworkSecurityGroup result = nsgApi.createOrUpdate(DEFAULT_NSG_NAME, + NetworkSecurityGroup result = api().createOrUpdate(nsgName, nsg.location(), nsg.tags(), nsg.properties()); assertNotNull(result); } - @Test(groups = "live", dependsOnMethods = "createNetworkSecurityGroup") + @Test(dependsOnMethods = "createNetworkSecurityGroup") public void listNetworkSecurityGroups() { - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - List<NetworkSecurityGroup> result = nsgApi.list(); + List<NetworkSecurityGroup> result = api().list(); // verify we have something assertNotNull(result); assertEquals(result.size(), 1); // check that the nework security group matches the one we originally passed in - NetworkSecurityGroup original = createGroup(); + NetworkSecurityGroup original = newNetworkSecurityGroup(nsgName, LOCATION); NetworkSecurityGroup nsg = result.get(0); assertEquals(original.name(), nsg.name()); assertEquals(original.location(), nsg.location()); @@ -122,31 +95,23 @@ public class NetworkSecurityGroupApiLiveTest extends BaseAzureComputeApiLiveTest assertTrue(originalRule.properties().equals(nsgRule.properties())); } - @Test(groups = "live", dependsOnMethods = {"listNetworkSecurityGroups", "getNetworkSecurityGroup"}, alwaysRun = true) + @Test(dependsOnMethods = {"listNetworkSecurityGroups", "getNetworkSecurityGroup"}, alwaysRun = true) public void deleteNetworkSecurityGroup() { - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - URI uri = nsgApi.delete(DEFAULT_NSG_NAME); - if (uri != null) { - assertTrue(uri.toString().contains("api-version")); - assertTrue(uri.toString().contains("operationresults")); - - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override - public boolean apply(URI uri) { - return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 2 * 1000 /* 2 minute timeout */).apply(uri); - assertTrue(jobDone, "delete operation did not complete in the configured timeout"); - } + URI uri = api().delete(nsgName); + assertResourceDeleted(uri); } - @Test(groups = "live", dependsOnMethods = "createNetworkSecurityGroup") + @Test(dependsOnMethods = "createNetworkSecurityGroup") public void getNetworkSecurityGroup() { - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - NetworkSecurityGroup nsg = nsgApi.get(DEFAULT_NSG_NAME); + NetworkSecurityGroup nsg = api().get(nsgName); assertNotNull(nsg); assertNotNull(nsg.etag()); - assertEquals(nsg.name(), DEFAULT_NSG_NAME); + assertEquals(nsg.name(), nsgName); + } + + private NetworkSecurityGroupApi api() { + return api.getNetworkSecurityGroupApi(resourceGroupName); } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApiLiveTest.java index fbcd2b4..dba7063 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApiLiveTest.java @@ -16,160 +16,104 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; +import java.net.URI; +import java.util.List; + import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroup; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroupProperties; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRule; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties.Access; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties.Direction; import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties.Protocol; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; - -import org.jclouds.util.Predicates2; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; @Test(groups = "live", singleThreaded = true) public class NetworkSecurityRuleApiLiveTest extends BaseAzureComputeApiLiveTest { - private String resourcegroup; - private static String DEFAULT_NSG_NAME = "testNetworkSecurityGroup"; + private String resourceGroupName; private static String UNKNOWN_RULE_NAME = "ruledoesntexist"; - - private NetworkSecurityGroup createGroup() { - NetworkSecurityRule rule = NetworkSecurityRule.create("denyallout", null, null, - NetworkSecurityRuleProperties.builder() - .description("deny all out") - .protocol(Protocol.Tcp) - .sourcePortRange("*") - .destinationPortRange("*") - .sourceAddressPrefix("*") - .destinationAddressPrefix("*") - .access(Access.Deny) - .priority(4095) - .direction(Direction.Outbound) - .build()); - ArrayList<NetworkSecurityRule> ruleList = new ArrayList<NetworkSecurityRule>(); - ruleList.add(rule); - NetworkSecurityGroup nsg = NetworkSecurityGroup.create("samplensg", "westus", null, - NetworkSecurityGroupProperties.builder() - .securityRules(ruleList) - .build(), - null); - return nsg; - } - - private NetworkSecurityRule createRule() { - NetworkSecurityRule rule = NetworkSecurityRule.create("allowalludpin", null, null, - NetworkSecurityRuleProperties.builder() - .description("allow all udp in") - .protocol(Protocol.Udp) - .sourcePortRange("*") - .destinationPortRange("*") - .sourceAddressPrefix("*") - .destinationAddressPrefix("*") - .access(Access.Allow) - .priority(4094) - .direction(Direction.Inbound) - .build()); - return rule; - } + private String nsgName; @BeforeClass @Override public void setup() { super.setup(); - resourcegroup = getResourceGroupName(); + resourceGroupName = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + assertNotNull(createResourceGroup(resourceGroupName)); + nsgName = String.format("nsg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); // a network security group is needed - final NetworkSecurityGroup nsg = createGroup(); - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - NetworkSecurityGroup result = nsgApi.createOrUpdate(DEFAULT_NSG_NAME, + final NetworkSecurityGroup nsg = newNetworkSecurityGroup(nsgName, LOCATION); + assertNotNull(api.getNetworkSecurityGroupApi(resourceGroupName).createOrUpdate(nsgName, nsg.location(), nsg.tags(), - nsg.properties()); + nsg.properties())); } - @AfterClass(alwaysRun = true) + @AfterClass @Override - public void tearDown() { - // remove the security group we created - final NetworkSecurityGroupApi nsgApi = api.getNetworkSecurityGroupApi(resourcegroup); - URI uri = nsgApi.delete(DEFAULT_NSG_NAME); - if (uri != null) { - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override - public boolean apply(URI uri) { - return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 2 * 1000 /* 2 minute timeout */).apply(uri); - } - + protected void tearDown() { super.tearDown(); + URI uri = deleteResourceGroup(resourceGroupName); + assertResourceDeleted(uri); } - @Test(groups = "live") + @Test public void deleteNetworkSecurityRuleDoesNotExist() { - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); - URI uri = ruleApi.delete(UNKNOWN_RULE_NAME); + URI uri = api().delete(UNKNOWN_RULE_NAME); assertNull(uri); } - @Test(groups = "live", dependsOnMethods = "deleteNetworkSecurityRuleDoesNotExist") + @Test(dependsOnMethods = "deleteNetworkSecurityRuleDoesNotExist") public void createNetworkSecurityRule() { final NetworkSecurityRule rule = createRule(); assertNotNull(rule); - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); + final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourceGroupName, nsgName); NetworkSecurityRule result = ruleApi.createOrUpdate(rule.name(), rule.properties()); assertNotNull(result); assertEquals(result.name(), rule.name()); } - @Test(groups = "live", dependsOnMethods = "createNetworkSecurityRule") + @Test(dependsOnMethods = "createNetworkSecurityRule") public void getNetworkSecurityRule() { final NetworkSecurityRule rule = createRule(); assertNotNull(rule); - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); - NetworkSecurityRule result = ruleApi.get(rule.name()); + NetworkSecurityRule result = api().get(rule.name()); assertNotNull(result); assertNotNull(result.etag()); assertEquals(result.name(), rule.name()); } - @Test(groups = "live", dependsOnMethods = "createNetworkSecurityRule") + @Test(dependsOnMethods = "createNetworkSecurityRule") public void getNetworkSecurityDefaultRule() { String defaultRuleName = "AllowVnetInBound"; - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); - NetworkSecurityRule result = ruleApi.getDefaultRule(defaultRuleName); + NetworkSecurityRule result = api().getDefaultRule(defaultRuleName); assertNotNull(result); assertNotNull(result.etag()); assertEquals(result.name(), defaultRuleName); } - @Test(groups = "live", dependsOnMethods = "createNetworkSecurityRule") + @Test(dependsOnMethods = "createNetworkSecurityRule") public void listNetworkSecurityRules() { final NetworkSecurityRule rule = createRule(); assertNotNull(rule); - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); - List<NetworkSecurityRule> result = ruleApi.list(); + List<NetworkSecurityRule> result = api().list(); assertNotNull(result); assertEquals(result.size(), 2); @@ -183,34 +127,40 @@ public class NetworkSecurityRuleApiLiveTest extends BaseAzureComputeApiLiveTest assertTrue(rulePresent); } - @Test(groups = "live", dependsOnMethods = "createNetworkSecurityRule") + @Test(dependsOnMethods = "createNetworkSecurityRule") public void listDefaultSecurityRules() { - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); - List<NetworkSecurityRule> result = ruleApi.listDefaultRules(); - + List<NetworkSecurityRule> result = api().listDefaultRules(); assertNotNull(result); assertTrue(result.size() > 0); } - @Test(groups = "live", dependsOnMethods = {"listNetworkSecurityRules", "listDefaultSecurityRules", "getNetworkSecurityRule"}, alwaysRun = true) + @Test(dependsOnMethods = {"listNetworkSecurityRules", "listDefaultSecurityRules", "getNetworkSecurityRule"}) public void deleteNetworkSecurityRule() { final NetworkSecurityRule rule = createRule(); assertNotNull(rule); - final NetworkSecurityRuleApi ruleApi = api.getNetworkSecurityRuleApi(resourcegroup, DEFAULT_NSG_NAME); - URI uri = ruleApi.delete(rule.name()); - if (uri != null) { - assertTrue(uri.toString().contains("api-version")); - assertTrue(uri.toString().contains("operationresults")); - - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override - public boolean apply(URI uri) { - return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 2 * 1000 /* 2 minute timeout */).apply(uri); - assertTrue(jobDone, "delete operation did not complete in the configured timeout"); - } + URI uri = api().delete(rule.name()); + assertResourceDeleted(uri); + } + + private NetworkSecurityRule createRule() { + NetworkSecurityRule rule = NetworkSecurityRule.create("allowalludpin", null, null, + NetworkSecurityRuleProperties.builder() + .description("allow all udp in") + .protocol(Protocol.Udp) + .sourcePortRange("*") + .destinationPortRange("*") + .sourceAddressPrefix("*") + .destinationAddressPrefix("*") + .access(Access.Allow) + .priority(4094) + .direction(Direction.Inbound) + .build()); + return rule; + } + + private NetworkSecurityRuleApi api() { + return api.getNetworkSecurityRuleApi(resourceGroupName, nsgName); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/OSImageApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/OSImageApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/OSImageApiLiveTest.java index 6ceb0d4..0756643 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/OSImageApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/OSImageApiLiveTest.java @@ -16,18 +16,19 @@ */ package org.jclouds.azurecompute.arm.features; +import java.util.List; + import org.jclouds.azurecompute.arm.domain.Offer; import org.jclouds.azurecompute.arm.domain.Publisher; import org.jclouds.azurecompute.arm.domain.SKU; import org.jclouds.azurecompute.arm.domain.Version; -import org.jclouds.azurecompute.arm.internal.AbstractAzureComputeApiLiveTest; +import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; import org.testng.annotations.Test; -import static org.testng.Assert.assertTrue; -import java.util.List; +import static org.testng.Assert.assertTrue; @Test(groups = "live", testName = "OSImageApiLiveTest") -public class OSImageApiLiveTest extends AbstractAzureComputeApiLiveTest { +public class OSImageApiLiveTest extends BaseAzureComputeApiLiveTest { @Test public void testPublisher() { http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApiLiveTest.java index 5443235..98819c1 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApiLiveTest.java @@ -16,42 +16,54 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.collect.ImmutableMap; +import java.net.URI; +import java.util.List; +import java.util.Map; + import org.jclouds.azurecompute.arm.domain.PublicIPAddress; import org.jclouds.azurecompute.arm.domain.PublicIPAddressProperties; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; import org.jclouds.util.Predicates2; -import com.google.common.base.Predicate; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.util.List; -import java.util.Map; +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; -import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; - +import static org.testng.Assert.assertTrue; @Test(groups = "live", singleThreaded = true) public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { + private String resourceGroupName; private final String publicIpAddressName = "myipaddress"; - private final String subscriptionid = getSubscriptionId(); - private String resourcegroup; + private String subscriptionid; @BeforeClass @Override public void setup() { super.setup(); - resourcegroup = getResourceGroupName(); + resourceGroupName = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + assertNotNull(createResourceGroup(resourceGroupName)); + subscriptionid = getSubscriptionId(); + } + + @AfterClass + @Override + protected void tearDown() { + super.tearDown(); + URI uri = deleteResourceGroup(resourceGroupName); + assertResourceDeleted(uri); } @Test(groups = "live") public void deletePublicIPAddressResourceDoesNotExist() { - final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourcegroup); + final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourceGroupName); boolean status = ipApi.delete(publicIpAddressName); assertFalse(status); } @@ -59,7 +71,7 @@ public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(groups = "live", dependsOnMethods = "deletePublicIPAddressResourceDoesNotExist") public void createPublicIPAddress() { - final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourcegroup); + final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourceGroupName); final Map<String, String> tags = ImmutableMap.of("testkey", "testvalue"); @@ -74,7 +86,7 @@ public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { assertNotNull(ip); assertEquals(ip.name(), publicIpAddressName); assertEquals(ip.location(), LOCATION); - assertEquals(ip.id(), String.format("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/publicIPAddresses/%s", subscriptionid, resourcegroup, publicIpAddressName)); + assertEquals(ip.id(), String.format("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/publicIPAddresses/%s", subscriptionid, resourceGroupName, publicIpAddressName)); assertEquals(ip.tags().get("testkey"), "testvalue"); assertNotNull(ip.properties()); assertEquals(ip.properties().provisioningState(), "Updating"); @@ -86,7 +98,7 @@ public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(groups = "live", dependsOnMethods = "createPublicIPAddress") public void getPublicIPAddress() { - final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourcegroup); + final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourceGroupName); //Poll until resource is ready to be used boolean jobDone = Predicates2.retry(new Predicate<String>() { @@ -100,7 +112,7 @@ public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { assertNotNull(ip); assertEquals(ip.name(), publicIpAddressName); assertEquals(ip.location(), LOCATION); - assertEquals(ip.id(), String.format("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/publicIPAddresses/%s", subscriptionid, resourcegroup, publicIpAddressName)); + assertEquals(ip.id(), String.format("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/publicIPAddresses/%s", subscriptionid, resourceGroupName, publicIpAddressName)); assertEquals(ip.tags().get("testkey"), "testvalue"); assertNotNull(ip.properties()); assertEquals(ip.properties().provisioningState(), "Succeeded"); @@ -112,7 +124,7 @@ public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(groups = "live", dependsOnMethods = "createPublicIPAddress") public void listPublicIPAddresses() { - final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourcegroup); + final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourceGroupName); List<PublicIPAddress> ipList = ipApi.list(); @@ -121,7 +133,7 @@ public class PublicIPAddressApiLiveTest extends BaseAzureComputeApiLiveTest { @Test(groups = "live", dependsOnMethods = {"listPublicIPAddresses", "getPublicIPAddress"}, alwaysRun = true) public void deletePublicIPAddress() { - final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourcegroup); + final PublicIPAddressApi ipApi = api.getPublicIPAddressApi(resourceGroupName); boolean status = ipApi.delete(publicIpAddressName); assertTrue(status); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceGroupApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceGroupApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceGroupApiLiveTest.java index f9ad6cc..3a0c134 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceGroupApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceGroupApiLiveTest.java @@ -16,38 +16,27 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; - import java.net.URI; import java.util.List; import org.jclouds.azurecompute.arm.domain.ResourceGroup; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus.JobStatus; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; - import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; + +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; -import static org.testng.Assert.assertEquals; -import org.jclouds.util.Predicates2; - @Test(groups = "live", testName = "ResourceGroupApiLiveTest") public class ResourceGroupApiLiveTest extends BaseAzureComputeApiLiveTest { - private String resourcegroup; - @BeforeClass - @Override - public void setup(){ - super.setup(); - resourcegroup = getResourceGroupName(); - } + private static final String RESOURCE_GROUP_NAME = "jcloudstest"; private ResourceGroupApi api() { return api.getResourceGroupApi(); @@ -63,26 +52,26 @@ public class ResourceGroupApiLiveTest extends BaseAzureComputeApiLiveTest { @Override public boolean apply(final ResourceGroup group) { - return resourcegroup.equals(group.name()); + return RESOURCE_GROUP_NAME.equals(group.name()); } })); } @Test(dependsOnMethods = "testCreate") public void testRead() { - final ResourceGroup group = api().get(resourcegroup); - assertNotNull(group); - assertEquals(group.name(), resourcegroup); - assertEquals(group.location(), LOCATION); + final ResourceGroup resourceGroup = api().get(RESOURCE_GROUP_NAME); + assertNotNull(resourceGroup); + assertEquals(resourceGroup.name(), RESOURCE_GROUP_NAME); + assertEquals(resourceGroup.location(), LOCATION); } public void testCreate() { - final ResourceGroup resourceGroup = api().create("jcloudstest", LOCATION, null); - assertEquals(resourceGroup.name(), "jcloudstest"); + final ResourceGroup resourceGroup = api().create(RESOURCE_GROUP_NAME, LOCATION, null); + assertEquals(resourceGroup.name(), RESOURCE_GROUP_NAME); assertEquals(resourceGroup.location(), LOCATION); assertNull(resourceGroup.tags()); - assertTrue(resourceGroup.id().contains("jcloudstest")); + assertTrue(resourceGroup.id().contains(RESOURCE_GROUP_NAME)); assertEquals(resourceGroup.properties().provisioningState(), "Succeeded"); } @@ -90,7 +79,7 @@ public class ResourceGroupApiLiveTest extends BaseAzureComputeApiLiveTest { public void testUpdateWithEmptyTag() { ImmutableMap<String, String> tags = ImmutableMap.<String, String>builder().build(); - final ResourceGroup resourceGroup = api().update("jcloudstest", tags); + final ResourceGroup resourceGroup = api().update(RESOURCE_GROUP_NAME, tags); assertEquals(resourceGroup.tags().size(), 0); assertEquals(resourceGroup.properties().provisioningState(), "Succeeded"); @@ -100,7 +89,7 @@ public class ResourceGroupApiLiveTest extends BaseAzureComputeApiLiveTest { public void testUpdateWithTag() { ImmutableMap<String, String> tags = ImmutableMap.<String, String>builder().put("test1", "value1").build(); - final ResourceGroup resourceGroup = api().update("jcloudstest", tags); + final ResourceGroup resourceGroup = api().update(RESOURCE_GROUP_NAME, tags); assertEquals(resourceGroup.tags().size(), 1); assertEquals(resourceGroup.properties().provisioningState(), "Succeeded"); @@ -108,31 +97,7 @@ public class ResourceGroupApiLiveTest extends BaseAzureComputeApiLiveTest { @AfterClass(alwaysRun = true) public void testDelete() throws Exception { - URI uri = api().delete("jcloudstest"); - - if (uri != null){ - assertTrue(uri.toString().contains("api-version")); - assertTrue(uri.toString().contains("operationresults")); - - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override public boolean apply(URI uri) { - return JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 2 * 1000 /* 1 minute timeout */).apply(uri); - assertTrue(jobDone, "delete operation did not complete in the configured timeout"); - } - - uri = api().delete("jcloudstest"); - if (uri != null){ - assertTrue(uri.toString().contains("api-version")); - assertTrue(uri.toString().contains("operationresults")); - - boolean jobDone = Predicates2.retry(new Predicate<URI>() { - @Override public boolean apply(URI uri) { - return JobStatus.DONE == api.getJobApi().jobStatus(uri); - } - }, 60 * 1 * 1000 /* 1 minute timeout */).apply(uri); - assertTrue(jobDone, "delete operation did not complete in the configured timeout"); - } + URI uri = api().delete(RESOURCE_GROUP_NAME); + assertResourceDeleted(uri); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceProviderApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceProviderApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceProviderApiLiveTest.java index 5ebf996..59ca114 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceProviderApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/ResourceProviderApiLiveTest.java @@ -16,18 +16,18 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; +import java.util.List; + import org.jclouds.azurecompute.arm.domain.ResourceProviderMetaData; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; import org.testng.annotations.Test; -import java.util.List; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; - @Test(groups = "live", testName = "ResourceProviderApiLiveTest") public class ResourceProviderApiLiveTest extends BaseAzureComputeApiLiveTest { http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/c458bafd/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/StorageAccountApiLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/StorageAccountApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/StorageAccountApiLiveTest.java index 6eb13dd..c88ebdc 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/StorageAccountApiLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/StorageAccountApiLiveTest.java @@ -16,18 +16,21 @@ */ package org.jclouds.azurecompute.arm.features; -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableMap; +import java.net.URI; +import java.util.List; + import org.jclouds.azurecompute.arm.domain.StorageService; import org.jclouds.azurecompute.arm.domain.StorageServiceKeys; import org.jclouds.azurecompute.arm.domain.StorageServiceUpdateParams; import org.jclouds.azurecompute.arm.functions.ParseJobStatus; import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest; import org.jclouds.util.Predicates2; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.net.URI; -import java.util.List; +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; @@ -41,13 +44,22 @@ public class StorageAccountApiLiveTest extends BaseAzureComputeApiLiveTest { private static final String NAME = String.format("%3.24s", RAND + StorageAccountApiLiveTest.class.getSimpleName().toLowerCase()); - private void check(final StorageService storage) { - assertNotNull(storage.id()); - assertNotNull(storage.name()); - assertNotNull(storage.storageServiceProperties()); - assertNotNull(storage.storageServiceProperties().accountType()); - assertFalse(storage.storageServiceProperties().primaryEndpoints().isEmpty()); - assertNotNull(storage.storageServiceProperties().creationTime()); + private String resourceGroupName; + + @BeforeClass + @Override + public void setup() { + super.setup(); + resourceGroupName = String.format("rg-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name")); + assertNotNull(createResourceGroup(resourceGroupName)); + } + + @AfterClass + @Override + protected void tearDown() { + super.tearDown(); + URI uri = deleteResourceGroup(resourceGroupName); + assertResourceDeleted(uri); } @Test(dependsOnMethods = "testCreate") @@ -117,6 +129,7 @@ public class StorageAccountApiLiveTest extends BaseAzureComputeApiLiveTest { assertTrue(params.tags().containsKey("another_property_name")); assertNull(params.storageServiceProperties().accountType()); } + @Test(dependsOnMethods = {"testCreate", "testGet"}) public void testUpdateAccountType() { StorageServiceUpdateParams.StorageServiceUpdateProperties props = @@ -127,7 +140,16 @@ public class StorageAccountApiLiveTest extends BaseAzureComputeApiLiveTest { assertEquals(params.storageServiceProperties().accountType(), StorageService.AccountType.Standard_GRS); } + private void check(final StorageService storage) { + assertNotNull(storage.id()); + assertNotNull(storage.name()); + assertNotNull(storage.storageServiceProperties()); + assertNotNull(storage.storageServiceProperties().accountType()); + assertFalse(storage.storageServiceProperties().primaryEndpoints().isEmpty()); + assertNotNull(storage.storageServiceProperties().creationTime()); + } + private StorageAccountApi api() { - return api.getStorageAccountApi(getResourceGroupName()); + return api.getStorageAccountApi(resourceGroupName); } }
