http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicates.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicates.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicates.java index 63d2767..c63db43 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicates.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicates.java @@ -16,91 +16,87 @@ */ package org.jclouds.googlecomputeengine.predicates; +import static com.google.common.collect.Sets.intersection; + +import java.util.List; + import org.jclouds.googlecomputeengine.domain.Firewall; import org.jclouds.googlecomputeengine.domain.Firewall.Rule; import org.jclouds.net.domain.IpPermission; -import org.jclouds.net.domain.IpProtocol; import com.google.common.base.Predicate; +import com.google.common.base.Splitter; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import com.google.common.collect.Range; -import com.google.common.collect.Sets; -public class NetworkFirewallPredicates { +public final class NetworkFirewallPredicates { - public static Predicate<Firewall> hasProtocol(final IpProtocol protocol) { + public static Predicate<Firewall> hasPortRange(final String protocol, final int fromPort, final int toPort) { return new Predicate<Firewall>() { - - @Override - public boolean apply(Firewall fw) { - for (Rule rule : fw.getAllowed()) { - if (rule.getIpProtocol().equals(protocol)) { + @Override public boolean apply(Firewall fw) { + for (Rule rule : fw.allowed()) { + if (!rule.ipProtocol().equals(protocol)) { + continue; + } + if (rule.ports() == null || rule.ports().isEmpty()) { return true; } + for (String range : rule.ports()) { + if (range.indexOf('-') != -1) { + if (inRange(range, fromPort, toPort)) { + return true; + } + } + } } - return false; } }; } - public static Predicate<Firewall> hasPortRange(final Range<Integer> portRange) { - return new Predicate<Firewall>() { - - @Override - public boolean apply(Firewall fw) { - return Iterables.any(fw.getAllowed(), new Predicate<Rule>() { - @Override - public boolean apply(Rule input) { - return input.getPorts().encloses(portRange); - } - }); - } - }; + private static boolean inRange(String range, int fromPort, int toPort) { + List<String> ports = Splitter.on('-').splitToList(range); + return fromPort >= Integer.valueOf(ports.get(0)) && toPort <= Integer.valueOf(ports.get(1)); } public static Predicate<Firewall> hasSourceTag(final String sourceTag) { return new Predicate<Firewall>() { - @Override - public boolean apply(Firewall input) { - return input.getSourceTags() != null && input.getSourceTags().contains(sourceTag); + @Override public boolean apply(Firewall input) { + return input.sourceTags().contains(sourceTag); } }; } public static Predicate<Firewall> hasSourceRange(final String sourceRange) { return new Predicate<Firewall>() { - @Override - public boolean apply(Firewall input) { - return input.getSourceRanges() != null && input.getSourceRanges().contains(sourceRange); + @Override public boolean apply(Firewall input) { + return input.sourceRanges().contains(sourceRange); } }; } public static Predicate<Firewall> equalsIpPermission(final IpPermission permission) { return new Predicate<Firewall>() { - @Override - public boolean apply(Firewall input) { - return Iterables.elementsEqual(permission.getGroupIds(), input.getSourceTags()) - && Iterables.elementsEqual(permission.getCidrBlocks(), input.getSourceRanges()) - && (input.getAllowed().size() == 1 - && ruleEqualsIpPermission(permission).apply(Iterables.getOnlyElement(input.getAllowed()))); + @Override public boolean apply(Firewall input) { + return Iterables.elementsEqual(permission.getGroupIds(), input.sourceTags()) + && Iterables.elementsEqual(permission.getCidrBlocks(), input.sourceRanges()) + && (input.allowed().size() == 1 + && ruleEqualsIpPermission(permission).apply(Iterables.getOnlyElement(input.allowed()))); } }; } public static Predicate<Firewall> providesIpPermission(final IpPermission permission) { return new Predicate<Firewall>() { - @Override - public boolean apply(Firewall input) { - boolean groupsMatchTags = (permission.getGroupIds().isEmpty() && input.getSourceTags().isEmpty()) - || !Sets.intersection(permission.getGroupIds(), input.getSourceTags()).isEmpty(); - boolean cidrsMatchRanges = (permission.getCidrBlocks().isEmpty() && input.getSourceRanges().isEmpty()) - || !Sets.intersection(permission.getCidrBlocks(), input.getSourceRanges()).isEmpty(); - boolean firewallHasPorts = hasProtocol(permission.getIpProtocol()).apply(input) - && ((permission.getFromPort() == 0 && permission.getToPort() == 0) - || hasPortRange(Range.closed(permission.getFromPort(), permission.getToPort())).apply(input)); - + @Override public boolean apply(Firewall input) { + boolean groupsMatchTags = + (permission.getGroupIds().isEmpty() && input.sourceTags().isEmpty()) || !intersection( + permission.getGroupIds(), ImmutableSet.copyOf(input.sourceTags())).isEmpty(); + boolean cidrsMatchRanges = + (permission.getCidrBlocks().isEmpty() && input.sourceRanges().isEmpty()) || !intersection( + permission.getCidrBlocks(), ImmutableSet.copyOf(input.sourceRanges())).isEmpty(); + boolean firewallHasPorts = hasPortRange(permission.getIpProtocol().value().toLowerCase(), + permission.getFromPort(), permission.getToPort()).apply(input); return groupsMatchTags && cidrsMatchRanges && firewallHasPorts; } }; @@ -108,13 +104,21 @@ public class NetworkFirewallPredicates { private static Predicate<Firewall.Rule> ruleEqualsIpPermission(final IpPermission permission) { return new Predicate<Rule>() { - @Override - public boolean apply(Firewall.Rule input) { - return permission.getIpProtocol().equals(input.getIpProtocol()) - && ((input.getPorts().isEmpty() && permission.getFromPort() == 0 && permission.getToPort() == 0) - || (input.getPorts().asRanges().size() == 1 - && permission.getFromPort() == Iterables.getOnlyElement(input.getPorts().asRanges()).lowerEndpoint() - && permission.getToPort() == Iterables.getOnlyElement(input.getPorts().asRanges()).upperEndpoint())); + @Override public boolean apply(Firewall.Rule input) { + if (!permission.getIpProtocol().value().toLowerCase().equals(input.ipProtocol())) { + return false; + } + if (input.ports() == null + || input.ports().isEmpty() && permission.getFromPort() == 0 && permission.getToPort() == 0) { + return true; + } else if (input.ports().size() == 1) { + String port = Iterables.getOnlyElement(input.ports()); + if (permission.getFromPort() == permission.getToPort()) { + return port.equals(String.valueOf(permission.getFromPort())); + } + return port.equals(permission.getFromPort() + "-" + permission.getToPort()); + } + return false; } }; }
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/RegionOperationDonePredicate.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/RegionOperationDonePredicate.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/RegionOperationDonePredicate.java index 54f0f3c..2ebfaa3 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/RegionOperationDonePredicate.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/RegionOperationDonePredicate.java @@ -32,31 +32,26 @@ import com.google.common.base.Predicate; import com.google.common.base.Supplier; import com.google.inject.Inject; -/** - * Tests that a Global Operation is done, returning the completed Operation when it is. - */ -public class RegionOperationDonePredicate implements Predicate<AtomicReference<Operation>> { +public final class RegionOperationDonePredicate implements Predicate<AtomicReference<Operation>> { private final GoogleComputeEngineApi api; private final Supplier<String> project; private final Supplier<Map<URI, Region>> regions; - @Inject - RegionOperationDonePredicate(GoogleComputeEngineApi api, @UserProject Supplier<String> project, + @Inject RegionOperationDonePredicate(GoogleComputeEngineApi api, @UserProject Supplier<String> project, @Memoized Supplier<Map<URI, Region>> regions) { this.api = api; this.project = project; this.regions = regions; } - @Override - public boolean apply(AtomicReference<Operation> input) { + @Override public boolean apply(AtomicReference<Operation> input) { checkNotNull(input, "input"); Operation current = api.getRegionOperationApi(project.get()) - .getInRegion(regions.get().get(input.get().getRegion().get()).getName(), - input.get().getName()); - switch (current.getStatus()) { + .getInRegion(regions.get().get(input.get().region()).name(), + input.get().name()); + switch (current.status()) { case DONE: input.set(current); return true; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/ZoneOperationDonePredicate.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/ZoneOperationDonePredicate.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/ZoneOperationDonePredicate.java index c681ae7..1f60dd9 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/ZoneOperationDonePredicate.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/ZoneOperationDonePredicate.java @@ -35,27 +35,25 @@ import com.google.inject.Inject; /** * Tests that a Zone Operation is done, returning the completed Operation when it is. */ -public class ZoneOperationDonePredicate implements Predicate<AtomicReference<Operation>> { +public final class ZoneOperationDonePredicate implements Predicate<AtomicReference<Operation>> { private final GoogleComputeEngineApi api; private final Supplier<String> project; private final Supplier<Map<URI, ? extends Location>> zones; - @Inject - ZoneOperationDonePredicate(GoogleComputeEngineApi api, @UserProject Supplier<String> project, - @Memoized Supplier<Map<URI, ? extends Location>> zones) { + @Inject ZoneOperationDonePredicate(GoogleComputeEngineApi api, @UserProject Supplier<String> project, + @Memoized Supplier<Map<URI, ? extends Location>> zones) { this.api = api; this.project = project; this.zones = zones; } - @Override - public boolean apply(AtomicReference<Operation> input) { - checkNotNull(input, "input"); - Operation current = api.getZoneOperationApi(project.get()) - .getInZone(zones.get().get(input.get().getZone().get()).getId(), - input.get().getName()); - switch (current.getStatus()) { + @Override public boolean apply(AtomicReference<Operation> input) { + checkNotNull(input.get(), "input"); + URI zone = checkNotNull(input.get().zone(), "zone of %s", input.get()); + String locationId = checkNotNull(zones.get().get(zone), "location of %s", zone).getId(); + Operation current = api.getZoneOperationApi(project.get()).getInZone(locationId, input.get().name()); + switch (current.status()) { case DONE: input.set(current); return true; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata b/google-compute-engine/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata deleted file mode 100644 index 6b79dce..0000000 --- a/google-compute-engine/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata +++ /dev/null @@ -1,18 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -org.jclouds.googlecomputeengine.GoogleComputeEngineApiMetadata http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadataTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadataTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadataTest.java index 5cb8a99..28b8703 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadataTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadataTest.java @@ -16,8 +16,11 @@ */ package org.jclouds.googlecomputeengine; +import static org.jclouds.reflect.Reflection2.typeToken; + import org.jclouds.View; import org.jclouds.apis.internal.BaseApiMetadataTest; +import org.jclouds.compute.ComputeServiceContext; import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; @@ -33,6 +36,7 @@ import com.google.common.reflect.TypeToken; @Test(groups = "unit", testName = "GoogleComputeApiMetadataTest") public class GoogleComputeEngineApiMetadataTest extends BaseApiMetadataTest { public GoogleComputeEngineApiMetadataTest() { - super(new GoogleComputeEngineApiMetadata(), ImmutableSet.<TypeToken<? extends View>>of()); + super(new GoogleComputeEngineApiMetadata(), + ImmutableSet.<TypeToken<? extends View>>of(typeToken(ComputeServiceContext.class))); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/ForwardingRuleCreationBinderTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/ForwardingRuleCreationBinderTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/ForwardingRuleCreationBinderTest.java index 65c32f4..66f8b3d 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/ForwardingRuleCreationBinderTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/ForwardingRuleCreationBinderTest.java @@ -21,7 +21,7 @@ import static org.testng.Assert.assertEquals; import java.net.URI; import java.util.Map; -import org.jclouds.googlecomputeengine.domain.ForwardingRule.IPProtocolOption; +import org.jclouds.googlecomputeengine.domain.ForwardingRule; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineExpectTest; import org.jclouds.googlecomputeengine.options.ForwardingRuleCreationOptions; import org.jclouds.http.HttpRequest; @@ -53,7 +53,7 @@ public class ForwardingRuleCreationBinderTest extends BaseGoogleComputeEngineExp ForwardingRuleCreationOptions forwardingRuleCreationOptions = new ForwardingRuleCreationOptions() .description(DESCRIPTION) .ipAddress(IP_ADDRESS) - .ipProtocol(IPProtocolOption.SCTP) + .ipProtocol(ForwardingRule.IPProtocol.SCTP) .portRange(PORT_RANGE) .target(TARGET); http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolAddInstanceBinderTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolAddInstanceBinderTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolAddInstanceBinderTest.java index 2ecfe5b..129d006 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolAddInstanceBinderTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolAddInstanceBinderTest.java @@ -19,7 +19,7 @@ package org.jclouds.googlecomputeengine.binders; import static org.testng.Assert.assertEquals; import java.net.URI; -import java.util.Set; +import java.util.List; import java.util.Map; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineExpectTest; @@ -28,18 +28,14 @@ import org.jclouds.json.Json; import org.jclouds.json.internal.GsonWrapper; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; - -/** - * Tests behavior of {@code BindToJsonPayload} - */ @Test(groups = "unit", testName = "TargetPoolAddInstanceBinderTest") public class TargetPoolAddInstanceBinderTest extends BaseGoogleComputeEngineExpectTest<Object>{ - private static final Set<URI> FAKE_INSTANCES = ImmutableSet.of( + private static final List<URI> FAKE_INSTANCES = ImmutableList.of( URI.create("https://www.googleapis.com/compute/v1/" + "projects/project/zones/us-central1-a/instances/instance-1"), URI.create("https://www.googleapis.com/compute/v1/" + @@ -58,8 +54,8 @@ public class TargetPoolAddInstanceBinderTest extends BaseGoogleComputeEngineExpe assertEquals(request.getPayload().getRawContent(), "{" + "\"instances\":[" - + "{\"instance\":\"https://www.googleapis.com/compute/v1/projects/project/zones/us-central1-a/instances/instance-2\"}," - + "{\"instance\":\"https://www.googleapis.com/compute/v1/projects/project/zones/us-central1-a/instances/instance-1\"}" + + "{\"instance\":\"https://www.googleapis.com/compute/v1/projects/project/zones/us-central1-a/instances/instance-1\"}," + + "{\"instance\":\"https://www.googleapis.com/compute/v1/projects/project/zones/us-central1-a/instances/instance-2\"}" + "]" + "}"); assertEquals(request.getPayload().getContentMetadata().getContentType(), "application/json"); @@ -71,5 +67,4 @@ public class TargetPoolAddInstanceBinderTest extends BaseGoogleComputeEngineExpe DiskCreationBinder binder = new DiskCreationBinder(json); binder.bindToRequest(HttpRequest.builder().method("GET").endpoint("http://momma").build(), null); } - } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolCreationBinderTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolCreationBinderTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolCreationBinderTest.java index 4367712..2c756c0 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolCreationBinderTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/binders/TargetPoolCreationBinderTest.java @@ -19,7 +19,7 @@ package org.jclouds.googlecomputeengine.binders; import static org.testng.Assert.assertEquals; import java.net.URI; -import java.util.Set; +import java.util.List; import java.util.Map; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineExpectTest; @@ -30,8 +30,8 @@ import org.jclouds.json.Json; import org.jclouds.json.internal.GsonWrapper; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; @@ -41,8 +41,8 @@ import com.google.gson.Gson; @Test(groups = "unit", testName = "TargetPoolCreationBinderTest") public class TargetPoolCreationBinderTest extends BaseGoogleComputeEngineExpectTest<Object>{ - private static final Set<URI> FAKE_HEALTH_CHECKS = ImmutableSet.of(URI.create("https://www.googleapis.com/compute/v1/projects/" + - "debian-cloud/global/images/backports-debian-7-wheezy-v20141017")); + private static final List<URI> FAKE_HEALTH_CHECKS = ImmutableList.of( + URI.create("https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-v20141017")); private static SessionAffinityValue SESSION_AFFINITY = SessionAffinityValue.CLIENT_IP_PROTO; private static float FAILOVER_RATIO = (float) 0.4; private static String DESCRIPTION = "This is a test!"; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java index f6329a7..eef70c9 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java @@ -22,10 +22,10 @@ import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPU import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_BOOT_DISK_SUFFIX; import static org.jclouds.googlecomputeengine.features.GlobalOperationApiExpectTest.GET_GLOBAL_OPERATION_REQUEST; import static org.jclouds.googlecomputeengine.features.GlobalOperationApiExpectTest.GET_GLOBAL_OPERATION_RESPONSE; -import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_DEBIAN_IMAGES_REQUEST; -import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_DEBIAN_IMAGES_RESPONSE; import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_CENTOS_IMAGES_REQUEST; import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_CENTOS_IMAGES_RESPONSE; +import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_DEBIAN_IMAGES_REQUEST; +import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_DEBIAN_IMAGES_RESPONSE; import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_PROJECT_IMAGES_REQUEST; import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_PROJECT_IMAGES_RESPONSE; import static org.jclouds.googlecomputeengine.features.InstanceApiExpectTest.LIST_CENTRAL1B_INSTANCES_REQUEST; @@ -75,11 +75,9 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; - -@Test(groups = "unit") +@Test(groups = "unit", testName = "GoogleComputeEngineServiceExpectTest") public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngineServiceExpectTest { - private HttpRequest INSERT_NETWORK_REQUEST = HttpRequest .builder() .method("POST") @@ -90,20 +88,6 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin MediaType.APPLICATION_JSON)) .build(); - private HttpRequest INSERT_FIREWALL_REQUEST = HttpRequest - .builder() - .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls") - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN) - .payload(payloadFromStringWithContentType("{\"name\":\"jclouds-test\",\"network\":\"https://www.googleapis" + - ".com/compute/v1/projects/myproject/global/networks/jclouds-test\"," + - "\"sourceRanges\":[\"10.0.0.0/8\",\"0.0.0.0/0\"],\"sourceTags\":[\"aTag\"],\"allowed\":[{\"IPProtocol\":\"tcp\"," + - "\"ports\":[\"22\"]}," + - "{\"IPProtocol\":\"udp\",\"ports\":[\"22\"]}]}", - MediaType.APPLICATION_JSON)) - .build(); - private HttpResponse GET_NETWORK_RESPONSE = HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\n" + " \"kind\": \"compute#network\",\n" + @@ -202,33 +186,20 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin .addHeader("Authorization", "Bearer " + TOKEN).build(); } - - - private HttpRequest createInstanceRequestForInstance(String instanceName, String groupName, - String networkName, String publicKey) { - return HttpRequest - .builder() - .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances") - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN) - .payload(payloadFromStringWithContentType("{\"name\":\"" + instanceName + "\"," + - "\"machineType\":\"https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro\"," + - "\"serviceAccounts\":[]," + - "\"networkInterfaces\":[{\"network\":\"https://www.googleapis" + - ".com/compute/v1/projects/myproject/global/networks/" + networkName + "\"," + - "\"accessConfigs\":[{\"type\":\"ONE_TO_ONE_NAT\"}]}]," + - "\"disks\":[{\"mode\":\"READ_WRITE\",\"source\":\"https://www.googleapis.com/" + - "compute/v1/projects/myproject/zones/us-central1-a/disks/" + instanceName + - "-" + GCE_BOOT_DISK_SUFFIX + "\",\"deleteOnTerminate\":true,\"boot\":true,\"type\":\"PERSISTENT\"}]," + - "\"metadata\":{\"kind\":\"compute#metadata\",\"items\":[{\"key\":\"sshKeys\"," + - "\"value\":\"jclouds:" + - publicKey + " jclouds@localhost\"},{\"key\":\"jclouds-group\"," + - "\"value\":\"" + groupName + "\"},{\"key\":\"jclouds-image\",\"value\":\"https://www.googleapis" + - ".com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140718\"}," + - "{\"key\":\"jclouds-delete-boot-disk\",\"value\":\"true\"}]}}", - MediaType.APPLICATION_JSON)).build(); + private HttpRequest createInstanceRequestForInstance(String instanceName, String groupName, String networkName, + String publicKey) { + return HttpRequest.builder().method("POST") + .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances") + .addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).payload( + payloadFromStringWithContentType("{\"name\":\"" + instanceName + + "\",\"machineType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro\",\"serviceAccounts\":[],\"disks\":[{\"type\":\"PERSISTENT\",\"mode\":\"READ_WRITE\",\"source\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/" + + instanceName + "-" + GCE_BOOT_DISK_SUFFIX + + "\",\"autoDelete\":true,\"boot\":true}],\"networkInterfaces\":[{\"network\":\"https://www.googleapis.com/compute/v1/projects/myproject/global/networks/" + + networkName + + "\",\"accessConfigs\":[{\"type\":\"ONE_TO_ONE_NAT\"}]}],\"metadata\":{\"kind\":\"compute#metadata\",\"items\":[{\"key\":\"sshKeys\",\"value\":\"jclouds:" + + publicKey + " jclouds@localhost\"},{\"key\":\"jclouds-group\",\"value\":\"" + groupName + + "\"},{\"key\":\"jclouds-image\",\"value\":\"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140718\"},{\"key\":\"jclouds-delete-boot-disk\",\"value\":\"true\"}]}}", + MediaType.APPLICATION_JSON)).build(); } private HttpRequest getInstanceRequestForInstance(String instanceName) { http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java index 8cb05f2..3d29f08 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java @@ -20,6 +20,7 @@ import static com.google.common.collect.Iterables.contains; import static org.jclouds.oauth.v2.OAuthTestUtils.setCredential; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; + import java.util.Properties; import java.util.Set; @@ -67,8 +68,8 @@ public class GoogleComputeEngineServiceLiveTest extends BaseComputeServiceLiveTe ImmutableSet.Builder<String> deprecatedMachineTypes = ImmutableSet.builder(); for (MachineType machine : api.getMachineTypeApi(userProject.get()) .listInZone(DEFAULT_ZONE_NAME).concat()) { - if (machine.getDeprecated().isPresent()) { - deprecatedMachineTypes.add(machine.getId()); + if (machine.deprecated() != null) { + deprecatedMachineTypes.add(machine.id()); } } ImmutableSet<String> deprecatedMachineTypeIds = deprecatedMachineTypes.build(); http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java new file mode 100644 index 0000000..101758f --- /dev/null +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java @@ -0,0 +1,148 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.googlecomputeengine.compute.functions; + +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.testng.Assert.assertEquals; + +import java.net.URI; + +import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; +import org.jclouds.googlecomputeengine.compute.domain.NetworkAndAddressRange; +import org.jclouds.googlecomputeengine.config.UserProject; +import org.jclouds.googlecomputeengine.domain.Network; +import org.jclouds.googlecomputeengine.domain.Operation; +import org.jclouds.googlecomputeengine.features.GlobalOperationApi; +import org.jclouds.googlecomputeengine.features.NetworkApi; +import org.jclouds.googlecomputeengine.parse.ParseGlobalOperationTest; +import org.jclouds.googlecomputeengine.predicates.GlobalOperationDonePredicate; +import org.testng.annotations.Test; + +import com.google.common.base.Supplier; +import com.google.inject.AbstractModule; +import com.google.inject.Guice; +import com.google.inject.Provides; + +@Test +public class CreateNetworkIfNeededTest { + + private static final String BASE_URL = "https://www.googleapis.com/compute/v1/projects"; + + public void testApply() { + GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); + NetworkApi nwApi = createMock(NetworkApi.class); + GlobalOperationApi globalApi = createMock(GlobalOperationApi.class); + + Network network = Network.create( // + "abcd", // id + URI.create(BASE_URL + "/myproject/global/networks/this-network"), // selfLink + "this-network", // name + null, // description + "0.0.0.0/0", // rangeIPv4 + null // gatewayIPv4 + ); + + Operation createOp = new ParseGlobalOperationTest().expected(); + + Supplier<String> userProject = new Supplier<String>() { + @Override + public String get() { + return "myproject"; + } + }; + + expect(api.getNetworkApi(userProject.get())).andReturn(nwApi).atLeastOnce(); + expect(api.getGlobalOperationApi(userProject.get())).andReturn(globalApi).atLeastOnce(); + + expect(nwApi.createInIPv4Range("this-network", "0.0.0.0/0")) .andReturn(createOp); + expect(globalApi.get(createOp.name())).andReturn(createOp); + expect(nwApi.get("this-network")).andReturn(null); + expect(nwApi.get("this-network")).andReturn(network); + + replay(api, nwApi, globalApi); + + NetworkAndAddressRange input = NetworkAndAddressRange.create("this-network", "0.0.0.0/0", null); + + GlobalOperationDonePredicate pred = globalOperationDonePredicate(api, userProject); + + CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); + + assertEquals(creator.apply(input), network); + + verify(api, nwApi, globalApi); + } + + public void testApplyWithGateway() { + GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); + NetworkApi nwApi = createMock(NetworkApi.class); + GlobalOperationApi globalApi = createMock(GlobalOperationApi.class); + + Network network = Network.create( // + "abcd", // id + URI.create(BASE_URL + "/myproject/global/networks/this-network"), // selfLink + "this-network", // name + null, // description + "0.0.0.0/0", // rangeIPv4 + "1.2.3.4" // gatewayIPv4 + ); + + Operation createOp = new ParseGlobalOperationTest().expected(); + + Supplier<String> userProject = new Supplier<String>() { + @Override + public String get() { + return "myproject"; + } + }; + + expect(api.getNetworkApi(userProject.get())).andReturn(nwApi).atLeastOnce(); + expect(api.getGlobalOperationApi(userProject.get())).andReturn(globalApi).atLeastOnce(); + + expect(nwApi.createInIPv4RangeWithGateway("this-network", "0.0.0.0/0", "1.2.3.4")).andReturn(createOp); + expect(globalApi.get(createOp.name())).andReturn(createOp); + expect(nwApi.get("this-network")).andReturn(null); + expect(nwApi.get("this-network")).andReturn(network); + + replay(api, nwApi, globalApi); + + NetworkAndAddressRange input = NetworkAndAddressRange.create("this-network", "0.0.0.0/0", "1.2.3.4"); + + GlobalOperationDonePredicate pred = globalOperationDonePredicate(api, userProject); + + CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); + + assertEquals(creator.apply(input), network); + + verify(api, nwApi, globalApi); + } + + private GlobalOperationDonePredicate globalOperationDonePredicate(final GoogleComputeEngineApi api, + final Supplier<String> userProject) { + return Guice.createInjector(new AbstractModule() { // Rather than opening ctor public + @Override protected void configure() { + bind(GoogleComputeEngineApi.class).toInstance(api); + } + + @Provides @UserProject Supplier<String> project() { + return userProject; + } + }).getInstance(GlobalOperationDonePredicate.class); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java new file mode 100644 index 0000000..3037a5e --- /dev/null +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java @@ -0,0 +1,149 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.googlecomputeengine.compute.functions; + +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.testng.Assert.assertEquals; + +import java.net.URI; + +import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; +import org.jclouds.googlecomputeengine.compute.domain.NetworkAndAddressRange; +import org.jclouds.googlecomputeengine.config.UserProject; +import org.jclouds.googlecomputeengine.domain.Network; +import org.jclouds.googlecomputeengine.domain.Operation; +import org.jclouds.googlecomputeengine.features.GlobalOperationApi; +import org.jclouds.googlecomputeengine.features.NetworkApi; +import org.jclouds.googlecomputeengine.parse.ParseGlobalOperationTest; +import org.jclouds.googlecomputeengine.predicates.GlobalOperationDonePredicate; +import org.testng.annotations.Test; + +import com.google.common.base.Supplier; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.LoadingCache; +import com.google.inject.AbstractModule; +import com.google.inject.Guice; +import com.google.inject.Provides; + +@Test +public class FindNetworkOrCreateTest { + private static final String BASE_URL = "https://www.googleapis.com/compute/v1/projects"; + private static final Network NETWORK = Network.create( // + "abcd", // id + URI.create(BASE_URL + "/myproject/global/networks/this-network"), // selfLink + "this-network", // name + null, // description + "0.0.0.0/0", // rangeIPv4 + null // gatewayIPv4 + ); + + public void testLoadExisting() { + GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); + NetworkApi nwApi = createMock(NetworkApi.class); + + Supplier<String> userProject = new Supplier<String>() { + @Override + public String get() { + return "myproject"; + } + }; + + expect(api.getNetworkApi(userProject.get())).andReturn(nwApi).atLeastOnce(); + + expect(nwApi.get("this-network")).andReturn(NETWORK); + + replay(api, nwApi); + + NetworkAndAddressRange input = NetworkAndAddressRange.create("this-network", "0.0.0.0/0", null); + + GlobalOperationDonePredicate pred = globalOperationDonePredicate(api, userProject); + + CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); + + FindNetworkOrCreate loader = new FindNetworkOrCreate(api, creator, userProject); + + LoadingCache<NetworkAndAddressRange, Network> cache = CacheBuilder.newBuilder().build(loader); + + assertEquals(cache.getUnchecked(input), NETWORK); + + // Second call is to ensure we only need to make the API calls once. + assertEquals(cache.getUnchecked(input), NETWORK); + + verify(api, nwApi); + } + + public void testLoadNew() { + GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); + NetworkApi nwApi = createMock(NetworkApi.class); + GlobalOperationApi globalApi = createMock(GlobalOperationApi.class); + + Operation createOp = new ParseGlobalOperationTest().expected(); + + Supplier<String> userProject = new Supplier<String>() { + @Override + public String get() { + return "myproject"; + } + }; + + expect(api.getNetworkApi(userProject.get())).andReturn(nwApi).atLeastOnce(); + expect(api.getGlobalOperationApi(userProject.get())).andReturn(globalApi).atLeastOnce(); + + expect(nwApi.createInIPv4Range("this-network", "0.0.0.0/0")).andReturn(createOp); + expect(globalApi.get(createOp.name())).andReturn(createOp); + // pre-creation + expect(nwApi.get("this-network")).andReturn(null).times(2); + // post-creation + expect(nwApi.get("this-network")).andReturn(NETWORK); + + replay(api, nwApi, globalApi); + + NetworkAndAddressRange input = NetworkAndAddressRange.create("this-network", "0.0.0.0/0", null); + + GlobalOperationDonePredicate pred = globalOperationDonePredicate(api, userProject); + + CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); + + FindNetworkOrCreate loader = new FindNetworkOrCreate(api, creator, userProject); + + LoadingCache<NetworkAndAddressRange, Network> cache = CacheBuilder.newBuilder().build(loader); + + assertEquals(cache.getUnchecked(input), NETWORK); + + // Second call is to ensure we only need to make the API calls once. + assertEquals(cache.getUnchecked(input), NETWORK); + + verify(api, nwApi, globalApi); + } + + private GlobalOperationDonePredicate globalOperationDonePredicate(final GoogleComputeEngineApi api, + final Supplier<String> userProject) { + return Guice.createInjector(new AbstractModule() { // Rather than opening ctor public + @Override protected void configure() { + bind(GoogleComputeEngineApi.class).toInstance(api); + } + + @Provides @UserProject Supplier<String> project() { + return userProject; + } + }).getInstance(GlobalOperationDonePredicate.class); + } +} + http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java index 62f9260..811abd3 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java @@ -20,7 +20,6 @@ import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import java.net.URI; -import java.util.Date; import org.jclouds.googlecomputeengine.domain.Firewall; import org.jclouds.net.domain.IpPermission; @@ -29,45 +28,45 @@ import org.testng.annotations.Test; import com.google.common.base.Predicate; import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +@Test public class FirewallToIpPermissionTest { - @Test public void testApply() { - Firewall fw = fwForTest(); FirewallToIpPermission converter = new FirewallToIpPermission(); Iterable<IpPermission> perms = converter.apply(fw); - assertEquals(Iterables.size(perms), 3, "There should be three IpPermissions but there is only " + Iterables.size(perms)); + assertEquals(Iterables.size(perms), 3, + "There should be three IpPermissions but there is only " + Iterables.size(perms)); - assertTrue(Iterables.any(perms, Predicates.and(hasProtocol(IpProtocol.TCP), - hasStartAndEndPort(1, 10))), "No permission found for TCP, ports 1-10"); - assertTrue(Iterables.any(perms, Predicates.and(hasProtocol(IpProtocol.TCP), - hasStartAndEndPort(33, 33))), "No permission found for TCP, port 33"); - assertTrue(Iterables.any(perms, hasProtocol(IpProtocol.ICMP)), - "No permission found for ICMP"); + assertTrue(Iterables.any(perms, Predicates.and(hasProtocol(IpProtocol.TCP), hasStartAndEndPort(1, 10))), + "No permission found for TCP, ports 1-10"); + assertTrue(Iterables.any(perms, Predicates.and(hasProtocol(IpProtocol.TCP), hasStartAndEndPort(33, 33))), + "No permission found for TCP, port 33"); + assertTrue(Iterables.any(perms, hasProtocol(IpProtocol.ICMP)), "No permission found for ICMP"); } public static Firewall fwForTest() { - Firewall.Builder builder = Firewall.builder(); - - builder.addSourceRange("0.0.0.0/0"); - builder.addAllowed(Firewall.Rule.builder().IpProtocol(IpProtocol.TCP) - .addPortRange(1, 10).build()); - builder.addAllowed(Firewall.Rule.builder().IpProtocol(IpProtocol.TCP) - .addPort(33).build()); - builder.addAllowed(Firewall.Rule.builder().IpProtocol(IpProtocol.ICMP).build()); - builder.id("abcd"); - builder.selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls/jclouds-test")); - builder.network(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test")); - builder.creationTimestamp(new Date()); - builder.name("jclouds-test"); - - return builder.build(); + String baseUrl = "https://www.googleapis.com/compute/v1/projects"; + return Firewall.create( // + "abcd", // id + URI.create(baseUrl + "/myproject/global/firewalls/jclouds-test"), // selfLink + "jclouds-test", // name + null, // description + URI.create(baseUrl + "/myproject/global/networks/jclouds-test"), // network + ImmutableList.of("0.0.0.0/0"), // sourceRanges + null, // sourceTags + null, // targetTags + ImmutableList.of( // allowed + Firewall.Rule.create("tcp", ImmutableList.of("1-10")), // + Firewall.Rule.create("tcp", ImmutableList.of("33")), // + Firewall.Rule.create("icmp", ImmutableList.<String>of()) // + )); } public static Predicate<IpPermission> hasProtocol(final IpProtocol protocol) { @@ -89,5 +88,4 @@ public class FirewallToIpPermissionTest { } }; } - } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/GoogleComputeEngineImageToImageTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/GoogleComputeEngineImageToImageTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/GoogleComputeEngineImageToImageTest.java index 239cea5..959ce15 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/GoogleComputeEngineImageToImageTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/GoogleComputeEngineImageToImageTest.java @@ -25,36 +25,38 @@ import org.jclouds.compute.domain.OsFamily; import org.jclouds.googlecomputeengine.domain.Image; import org.testng.annotations.Test; -@Test(groups = "unit") +@Test(groups = "unit", testName = "GoogleComputeEngineImageToImageTest") public class GoogleComputeEngineImageToImageTest { - - Image.Builder imageBuilder = Image.builder() - .id("1234") - .selfLink(URI.create("http://test.com")) - .sourceType("RAW") - .description("") - .rawDisk(Image.RawDisk.builder().source("").containerType("TAR").build()); - public void testArbitratyImageName() { GoogleComputeEngineImageToImage imageToImage = new GoogleComputeEngineImageToImage(); - Image image = imageBuilder.name("arbitratyname").build(); + Image image = image("arbitratyname"); org.jclouds.compute.domain.Image transformed = imageToImage.apply(image); - assertEquals(transformed.getName(), image.getName()); - assertEquals(transformed.getId(), image.getName()); - assertEquals(transformed.getProviderId(), image.getId()); + assertEquals(transformed.getName(), image.name()); + assertEquals(transformed.getId(), image.name()); + assertEquals(transformed.getProviderId(), image.id()); assertSame(transformed.getOperatingSystem().getFamily(), OsFamily.LINUX); } public void testWellFormedImageName() { GoogleComputeEngineImageToImage imageToImage = new GoogleComputeEngineImageToImage(); - Image image = imageBuilder.name("ubuntu-12-04-v123123").build(); + Image image = image("ubuntu-12-04-v123123"); org.jclouds.compute.domain.Image transformed = imageToImage.apply(image); - assertEquals(transformed.getName(), image.getName()); - assertEquals(transformed.getId(), image.getName()); - assertEquals(transformed.getProviderId(), image.getId()); + assertEquals(transformed.getName(), image.name()); + assertEquals(transformed.getId(), image.name()); + assertEquals(transformed.getProviderId(), image.id()); assertSame(transformed.getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertEquals(transformed.getOperatingSystem().getVersion(), "12.04"); } - + private static Image image(String name) { + return Image.create( // + "1234", // id + URI.create("http://test.com/1234"), // selfLink + name, // name + "", // description + "RAW", // sourceType + Image.RawDisk.create(URI.create("foo"), "TAR", null), // rawDisk + null // deprecated + ); + } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/InstanceInZoneToNodeMetadataTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/InstanceInZoneToNodeMetadataTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/InstanceInZoneToNodeMetadataTest.java index 040f118..a0229ed 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/InstanceInZoneToNodeMetadataTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/InstanceInZoneToNodeMetadataTest.java @@ -16,9 +16,8 @@ */ package org.jclouds.googlecomputeengine.compute.functions; -import static org.easymock.EasyMock.createMock; -import static org.testng.Assert.assertEquals; import static org.jclouds.compute.domain.Image.Status.AVAILABLE; +import static org.testng.Assert.assertEquals; import java.net.URI; import java.util.Map; @@ -35,14 +34,12 @@ import org.jclouds.compute.domain.Processor; import org.jclouds.compute.domain.Volume.Type; import org.jclouds.compute.domain.VolumeBuilder; import org.jclouds.compute.functions.GroupNamingConvention; -import org.jclouds.date.internal.SimpleDateFormatDateService; import org.jclouds.domain.Location; import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; -import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; +import org.jclouds.googlecomputeengine.compute.domain.InstanceInZone; import org.jclouds.googlecomputeengine.domain.Instance; -import org.jclouds.googlecomputeengine.domain.InstanceInZone; -import org.jclouds.googlecomputeengine.domain.Metadata; +import org.jclouds.googlecomputeengine.parse.ParseInstanceTest; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -127,43 +124,7 @@ public class InstanceInZoneToNodeMetadataTest { @BeforeMethod public final void setup() { - instance = Instance.builder() - .id("13051190678907570425") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-11-25T23:48:20.758")) - .selfLink(URI.create("https://www.googleapis" - + ".com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-0")) - .description("desc") - .name("test-0") - .machineType(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/" - + "machineTypes/n1-standard-1")) - .status(Instance.Status.RUNNING) - .zone(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a")) - .addNetworkInterface( - Instance.NetworkInterface.builder() - .name("nic0") - .networkIP("10.240.121.115") - .network(URI.create("https://www.googleapis" - + ".com/compute/v1/projects/myproject/global/networks/default")) - .build()) - .addDisk( - Instance.PersistentAttachedDisk.builder() - .index(0) - .mode(Instance.PersistentAttachedDisk.Mode.READ_WRITE) - .deviceName("test") - .source(URI.create("https://www.googleapis" - + ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/test")) - .boot(true) - .build()) - .tags(Instance.Tags.builder().fingerprint("abcd").addItem("aTag").addItem("Group-port-42").build()) - .metadata(Metadata.builder() - .items(ImmutableMap.of("aKey", "aValue", - "jclouds-image", - "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140718", - "jclouds-delete-boot-disk", "true")) - .fingerprint("efgh") - .build()) - .addServiceAccount(Instance.ServiceAccount.builder().email("default").addScopes("myscope").build()) - .build(); + instance = new ParseInstanceTest().expected(); images = ImmutableSet.of(new ImageBuilder() .id("1") @@ -232,13 +193,6 @@ public class InstanceInZoneToNodeMetadataTest { } }; - Supplier<String> userProjectSupplier = new Supplier<String>() { - @Override - public String get() { - return "userProject"; - } - }; - GroupNamingConvention.Factory namingConventionFactory = new GroupNamingConvention.Factory() { @Override @@ -259,9 +213,7 @@ public class InstanceInZoneToNodeMetadataTest { imageSupplier, hardwareSupplier, locationSupplier, - new FirewallTagNamingConvention.Factory(namingConventionFactory), - createMock(GoogleComputeEngineApi.class), - userProjectSupplier); + new FirewallTagNamingConvention.Factory(namingConventionFactory)); } @Test http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java index 3662fe9..a3f3319 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java @@ -25,7 +25,6 @@ import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import java.net.URI; -import java.util.Date; import org.jclouds.collect.IterableWithMarkers; import org.jclouds.collect.PagedIterables; @@ -62,20 +61,19 @@ public class NetworkToSecurityGroupTest { ListOptions options = new Builder().filter("network eq .*/jclouds-test"); expect(api.getFirewallApi(projectSupplier.get())) .andReturn(fwApi); - expect(fwApi.list(options)).andReturn(PagedIterables.of(IterableWithMarkers.from(ImmutableSet.of(FirewallToIpPermissionTest.fwForTest())))); + expect(fwApi.list(options)).andReturn( + PagedIterables.onlyPage(IterableWithMarkers.from(ImmutableSet.of(FirewallToIpPermissionTest.fwForTest())))); replay(api, fwApi); - Network.Builder builder = Network.builder(); - builder.id("abcd"); - builder.selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test")); - builder.creationTimestamp(new Date()); - builder.description("some description"); - builder.gatewayIPv4("1.2.3.4"); - builder.IPv4Range("0.0.0.0/0"); - builder.name("jclouds-test"); - - Network network = builder.build(); + Network network = Network.create( // + "abcd", // id + URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test"), + "jclouds-test", // name + "some description", // description + "0.0.0.0/0", // rangeIPv4 + "1.2.3.4" // gatewayIPv4 + ); NetworkToSecurityGroup netToSg = new NetworkToSecurityGroup(fwToPerm, api, projectSupplier); http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java deleted file mode 100644 index 655f763..0000000 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.compute.loaders; - -import static com.google.common.base.Optional.fromNullable; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; -import static org.testng.Assert.assertEquals; - -import java.net.URI; - -import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; -import org.jclouds.googlecomputeengine.domain.Network; -import org.jclouds.googlecomputeengine.domain.Operation; -import org.jclouds.googlecomputeengine.domain.internal.NetworkAndAddressRange; -import org.jclouds.googlecomputeengine.features.GlobalOperationApi; -import org.jclouds.googlecomputeengine.features.NetworkApi; -import org.jclouds.googlecomputeengine.functions.CreateNetworkIfNeeded; -import org.jclouds.googlecomputeengine.predicates.GlobalOperationDonePredicate; -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; - -import com.google.common.base.Supplier; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.LoadingCache; - -public class FindNetworkOrCreateTest { - - @Test - public void testLoadExisting() { - final GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); - final NetworkApi nwApi = createMock(NetworkApi.class); - - Network network = Network.builder().IPv4Range("0.0.0.0/0") - .id("abcd").name("this-network") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/this-network")) - .build(); - - final Supplier<String> userProject = new Supplier<String>() { - @Override - public String get() { - return "myproject"; - } - }; - - expect(api.getNetworkApi(userProject.get())).andReturn(nwApi).atLeastOnce(); - - expect(nwApi.get("this-network")).andReturn(network); - - replay(api, nwApi); - - NetworkAndAddressRange input = new NetworkAndAddressRange("this-network", "0.0.0.0/0", null); - - GlobalOperationDonePredicate pred = new GlobalOperationDonePredicate(api, userProject); - - CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); - - FindNetworkOrCreate loader = new FindNetworkOrCreate(api, creator, userProject); - - LoadingCache<NetworkAndAddressRange, Network> cache = CacheBuilder.newBuilder().build(loader); - - assertEquals(cache.getUnchecked(input), network); - - // Second call is to ensure we only need to make the API calls once. - assertEquals(cache.getUnchecked(input), network); - - verify(api, nwApi); - } - - @Test - public void testLoadNew() { - final GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); - final NetworkApi nwApi = createMock(NetworkApi.class); - final GlobalOperationApi globalApi = createMock(GlobalOperationApi.class); - - Network network = Network.builder().IPv4Range("0.0.0.0/0") - .id("abcd").name("this-network") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/this-network")) - .build(); - - Operation createOp = createMock(Operation.class); - - final Supplier<String> userProject = new Supplier<String>() { - @Override - public String get() { - return "myproject"; - } - }; - - expect(api.getNetworkApi(userProject.get())).andReturn(nwApi).atLeastOnce(); - expect(api.getGlobalOperationApi(userProject.get())).andReturn(globalApi).atLeastOnce(); - - expect(nwApi.createInIPv4Range("this-network", "0.0.0.0/0")) - .andReturn(createOp); - expect(globalApi.get("insert-op")).andReturn(createOp); - // pre-creation - expect(nwApi.get("this-network")).andReturn(null).times(2); - // post-creation - expect(nwApi.get("this-network")).andReturn(network); - - expect(createOp.getName()).andReturn("insert-op"); - expect(createOp.getStatus()).andReturn(Operation.Status.DONE); - expect(createOp.getHttpError()).andReturn(fromNullable((HttpResponse)null)); - replay(api, nwApi, createOp, globalApi); - - NetworkAndAddressRange input = new NetworkAndAddressRange("this-network", "0.0.0.0/0", null); - - GlobalOperationDonePredicate pred = new GlobalOperationDonePredicate(api, userProject); - - CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); - - FindNetworkOrCreate loader = new FindNetworkOrCreate(api, creator, userProject); - - LoadingCache<NetworkAndAddressRange, Network> cache = CacheBuilder.newBuilder().build(loader); - - assertEquals(cache.getUnchecked(input), network); - - // Second call is to ensure we only need to make the API calls once. - assertEquals(cache.getUnchecked(input), network); - - verify(api, nwApi, globalApi, createOp); - - } -} - http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java index 28c3657..e6e0c02 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java @@ -27,19 +27,19 @@ import javax.ws.rs.core.MediaType; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; import org.jclouds.googlecomputeengine.parse.ParseAddressListTest; import org.jclouds.googlecomputeengine.parse.ParseAddressTest; -import org.jclouds.googlecomputeengine.parse.ParseOperationTest; +import org.jclouds.googlecomputeengine.parse.ParseRegionOperationTest; import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; import org.testng.annotations.Test; -@Test(groups = "unit") +@Test(groups = "unit", testName = "AddressApiExpectTest") public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { public void testGetAddressResponseIs2xx() throws Exception { HttpRequest get = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses/test-ip1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -57,7 +57,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest get = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses/test-ip1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -73,7 +73,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest insert = HttpRequest .builder() .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN) .payload(payloadFromResourceWithContentType("/address_insert.json", MediaType.APPLICATION_JSON)) @@ -86,15 +86,14 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { TOKEN_RESPONSE, insert, insertAddressResponse).getAddressApi("myproject"); - assertEquals(api.createInRegion("us-central1", "test-ip1"), new ParseOperationTest().expected()); + assertEquals(api.createInRegion("us-central1", "test-ip1"), new ParseRegionOperationTest().expected()); } public void testDeleteAddressResponseIs2xx() { HttpRequest delete = HttpRequest .builder() .method("DELETE") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses/test-ip1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -105,15 +104,14 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { TOKEN_RESPONSE, delete, deleteResponse).getAddressApi("myproject"); assertEquals(api.deleteInRegion("us-central1", "test-ip1"), - new ParseOperationTest().expected()); + new ParseRegionOperationTest().expected()); } public void testDeleteAddressResponseIs4xx() { HttpRequest delete = HttpRequest .builder() .method("DELETE") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses/test-ip1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -129,8 +127,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest list = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/regions/us-central1/addresses") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -148,8 +145,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest list = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/regions/us-central1/addresses") + .endpoint(BASE_URL + "/myproject/regions/us-central1/addresses") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java index 94f2521..20b4f81 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java @@ -48,7 +48,7 @@ public class AddressApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { public void testGetAddress() { Address address = api().getInRegion(DEFAULT_REGION_NAME, ADDRESS_NAME); assertNotNull(address); - assertEquals(address.getName(), ADDRESS_NAME); + assertEquals(address.name(), ADDRESS_NAME); } @Test(groups = "live", dependsOnMethods = "testGetAddress") http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java index 560f9e6..226815e 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java @@ -30,22 +30,22 @@ import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpect import org.jclouds.googlecomputeengine.options.DiskCreationOptions; import org.jclouds.googlecomputeengine.parse.ParseDiskListTest; import org.jclouds.googlecomputeengine.parse.ParseDiskTest; -import org.jclouds.googlecomputeengine.parse.ParseOperationTest; +import org.jclouds.googlecomputeengine.parse.ParseZoneOperationTest; import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; import org.jclouds.rest.ResourceNotFoundException; import org.testng.annotations.Test; -@Test(groups = "unit") +@Test(groups = "unit", testName = "DiskApiExpectTest") public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { - public static final String IMAGE_URL = "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/images/foo"; - public static final String SSD_URL = "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-ssd"; + public static final String IMAGE_URL = BASE_URL + "/myproject/zones/us-central1-a/images/foo"; + public static final String SSD_URL = BASE_URL + "/myproject/zones/us-central1-a/diskTypes/pd-ssd"; public void testGetDiskResponseIs2xx() throws Exception { HttpRequest get = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -63,7 +63,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest get = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -79,7 +79,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest insert = HttpRequest .builder() .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN) .payload(payloadFromResourceWithContentType("/disk_insert.json", MediaType.APPLICATION_JSON)) @@ -92,14 +92,14 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { TOKEN_RESPONSE, insert, insertDiskResponse).getDiskApi("myproject"); - assertEquals(api.createInZone("testimage1", 1, "us-central1-a"), new ParseOperationTest().expected()); + assertEquals(api.createInZone("testimage1", 1, "us-central1-a"), new ParseZoneOperationTest().expected()); } public void testInsertDiskFromImageResponseIs2xx() { HttpRequest insert = HttpRequest .builder() .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN) .payload(payloadFromResourceWithContentType("/disk_insert_sourceImage.json", MediaType.APPLICATION_JSON)) @@ -113,14 +113,15 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { insertDiskResponse).getDiskApi("myproject"); DiskCreationOptions diskCreationOptions = new DiskCreationOptions().sourceImage(URI.create(IMAGE_URL)); - assertEquals(api.createInZone("testimage1", 1, "us-central1-a", diskCreationOptions), new ParseOperationTest().expected()); + assertEquals(api.createInZone("testimage1", 1, "us-central1-a", diskCreationOptions), + new ParseZoneOperationTest().expected()); } public void testInsertDiskSSDResponseIs2xx(){ HttpRequest insert = HttpRequest .builder() .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN) .payload(payloadFromResourceWithContentType("/disk_insert_ssd.json", MediaType.APPLICATION_JSON)) @@ -135,15 +136,14 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { DiskCreationOptions diskCreationOptions = new DiskCreationOptions().type(URI.create(SSD_URL)); assertEquals(api.createInZone("testimage1", 1, - "us-central1-a", diskCreationOptions), new ParseOperationTest().expected()); + "us-central1-a", diskCreationOptions), new ParseZoneOperationTest().expected()); } public void testCreateSnapshotResponseIs2xx() { HttpRequest createSnapshotRequest = HttpRequest .builder() .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks" - + "/testimage1/createSnapshot") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1/createSnapshot") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN) .payload(payloadFromResourceWithContentType("/disk_create_snapshot.json", MediaType.APPLICATION_JSON)) @@ -156,7 +156,8 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { TOKEN_RESPONSE, createSnapshotRequest, createSnapshotResponse).getDiskApi("myproject"); - assertEquals(api.createSnapshotInZone("us-central1-a", "testimage1", "test-snap"), new ParseOperationTest().expected()); + assertEquals(api.createSnapshotInZone("us-central1-a", "testimage1", "test-snap"), + new ParseZoneOperationTest().expected()); } @Test(expectedExceptions = ResourceNotFoundException.class) @@ -164,8 +165,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest createSnapshotRequest = HttpRequest .builder() .method("POST") - .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks" - + "/testimage1/createSnapshot") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1/createSnapshot") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN) .payload(payloadFromResourceWithContentType("/disk_create_snapshot.json", MediaType.APPLICATION_JSON)) @@ -184,8 +184,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest delete = HttpRequest .builder() .method("DELETE") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -196,15 +195,14 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { TOKEN_RESPONSE, delete, deleteResponse).getDiskApi("myproject"); assertEquals(api.deleteInZone("us-central1-a", "testimage1"), - new ParseOperationTest().expected()); + new ParseZoneOperationTest().expected()); } public void testDeleteDiskResponseIs4xx() { HttpRequest delete = HttpRequest .builder() .method("DELETE") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -220,8 +218,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest list = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/disks") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); @@ -239,8 +236,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { HttpRequest list = HttpRequest .builder() .method("GET") - .endpoint("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/disks") + .endpoint(BASE_URL + "/myproject/zones/us-central1-a/disks") .addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN).build(); http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java index 3db43fc..625b820 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java @@ -77,9 +77,9 @@ public class DiskApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { } private void assertDiskEquals(Disk result) { - assertEquals(result.getName(), DISK_NAME); - assertEquals(result.getSizeGb(), sizeGb); - assertEquals(result.getZone(), getDefaultZoneUrl(userProject.get())); + assertEquals(result.name(), DISK_NAME); + assertEquals(result.sizeGb(), sizeGb); + assertEquals(result.zone(), getDefaultZoneUrl(userProject.get())); } @Test(groups = "live") @@ -104,9 +104,9 @@ public class DiskApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { } private void assertSSDDiskEquals(Disk result) { - assertEquals(result.getName(), SSD_DISK_NAME); - assertEquals(result.getSizeGb(), sizeGb); - assertEquals(result.getZone(), getDefaultZoneUrl(userProject.get())); - assertEquals(result.getType().orNull(), getDiskTypeUrl(userProject.get(), DEFAULT_ZONE_NAME, "pd-ssd")); + assertEquals(result.name(), SSD_DISK_NAME); + assertEquals(result.sizeGb(), sizeGb); + assertEquals(result.zone(), getDefaultZoneUrl(userProject.get())); + assertEquals(result.type(), getDiskTypeUrl(userProject.get(), DEFAULT_ZONE_NAME, "pd-ssd")); } }
