Repository: jclouds-labs Updated Branches: refs/heads/master d0b07a668 -> 50744595d
JCLOUDS-1149 oneandone-firewallpolicies-api Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/50744595 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/50744595 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/50744595 Branch: refs/heads/master Commit: 50744595dd89b0cad1d3c5416b60a0520e2dc5e0 Parents: d0b07a6 Author: Ali Bazlamit <[email protected]> Authored: Fri Aug 5 17:41:32 2016 +0300 Committer: Ignasi Barrera <[email protected]> Committed: Mon Aug 8 09:04:34 2016 +0200 ---------------------------------------------------------------------- .../jclouds/oneandone/rest/OneAndOneApi.java | 4 + .../oneandone/rest/domain/FirewallPolicy.java | 190 +++++++++++ .../jclouds/oneandone/rest/domain/Types.java | 14 + .../rest/features/FirewallPolicyApi.java | 123 +++++++ .../features/FirewallPolicyApiLiveTest.java | 191 +++++++++++ .../features/FirewallPolicyApiMockTest.java | 335 +++++++++++++++++++ .../rest/internal/BaseOneAndOneApiMockTest.java | 1 - .../rest/internal/BaseOneAndOneLiveTest.java | 6 + .../test/resources/firewallpolicies/get.json | 26 ++ .../resources/firewallpolicies/get.rule.json | 7 + .../firewallpolicies/get.serverip.json | 5 + .../test/resources/firewallpolicies/list.json | 54 +++ .../firewallpolicies/list.options.json | 54 +++ .../resources/firewallpolicies/list.rules.json | 16 + .../firewallpolicies/list.serverips.json | 7 + .../src/test/resources/sharedStorage/get.json | 24 ++ .../resources/sharedStorage/list.access.json | 24 ++ .../src/test/resources/sharedStorage/list.json | 62 ++++ .../resources/sharedStorage/list.options.json | 62 ++++ .../resources/sharedStorage/server.get.json | 5 + .../resources/sharedStorage/servers.list.json | 12 + 21 files changed, 1221 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/OneAndOneApi.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/OneAndOneApi.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/OneAndOneApi.java index be5f0d9..b4f464a 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/OneAndOneApi.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/OneAndOneApi.java @@ -17,6 +17,7 @@ package org.apache.jclouds.oneandone.rest; import java.io.Closeable; +import org.apache.jclouds.oneandone.rest.features.FirewallPolicyApi; import org.apache.jclouds.oneandone.rest.features.ImageApi; import org.apache.jclouds.oneandone.rest.features.ServerApi; import org.apache.jclouds.oneandone.rest.features.SharedStorageApi; @@ -32,4 +33,7 @@ public interface OneAndOneApi extends Closeable { @Delegate SharedStorageApi sharedStorageApi(); + + @Delegate + FirewallPolicyApi firewallPolicyApi(); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FirewallPolicy.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FirewallPolicy.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FirewallPolicy.java new file mode 100644 index 0000000..a54b653 --- /dev/null +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FirewallPolicy.java @@ -0,0 +1,190 @@ +/* + * 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.apache.jclouds.oneandone.rest.domain; + +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.apache.jclouds.oneandone.rest.domain.Types.RuleProtocol; +import org.jclouds.javax.annotation.Nullable; +import org.jclouds.json.SerializedNames; + +@AutoValue +public abstract class FirewallPolicy { + + public abstract String id(); + + public abstract String name(); + + @Nullable + public abstract String description(); + + @Nullable + public abstract String state(); + + @Nullable + public abstract String creationDate(); + + @Nullable + public abstract String defaultState(); + + public abstract List<Rule> rules(); + + public abstract List<ServerIp> serverIps(); + + @Nullable + public abstract String cloudpanelId(); + + @SerializedNames({"id", "name", "description", "state", "creation_date", "default", "rules", "server_ips", "cloudpanel_id"}) + public static FirewallPolicy create(String id, String name, String description, String state, String creationDate, String defaultState, List<Rule> rules, List<ServerIp> serverIps, String cloudpanelId) { + return new AutoValue_FirewallPolicy(id, name, description, state, creationDate, defaultState, rules == null ? ImmutableList.<Rule>of() : ImmutableList.copyOf(rules), serverIps == null ? ImmutableList.<ServerIp>of() : ImmutableList.copyOf(serverIps), cloudpanelId); + } + + @AutoValue + public abstract static class CreateFirewallPolicy { + + public abstract String name(); + + @Nullable + public abstract String description(); + + public abstract List<Rule.CreatePayload> rules(); + + @SerializedNames({"name", "description", "rules"}) + public static CreateFirewallPolicy create(final String name, final String description, List<Rule.CreatePayload> rules) { + return new AutoValue_FirewallPolicy_CreateFirewallPolicy(name, description, rules == null ? ImmutableList.<Rule.CreatePayload>of() : ImmutableList.copyOf(rules)); + } + } + + @AutoValue + public abstract static class UpdateFirewallPolicy { + + @Nullable + public abstract String name(); + + @Nullable + public abstract String description(); + + @SerializedNames({"name", "description"}) + public static UpdateFirewallPolicy create(final String name, final String description) { + return new AutoValue_FirewallPolicy_UpdateFirewallPolicy(name, description); + } + } + + @AutoValue + public abstract static class ServerIp { + + public abstract String id(); + + public abstract String ip(); + + public abstract String serverName(); + + @SerializedNames({"id", "ip", "server_name"}) + public static ServerIp create(String id, String ip, String serverName) { + return new AutoValue_FirewallPolicy_ServerIp(id, ip, serverName); + } + + @AutoValue + public abstract static class CreateServerIp { + + public abstract List<String> serverIps(); + + @SerializedNames({"server_ips"}) + public static CreateServerIp create(final List<String> serverIps) { + return new AutoValue_FirewallPolicy_ServerIp_CreateServerIp(serverIps == null ? ImmutableList.<String>of() : ImmutableList.copyOf(serverIps)); + } + } + } + + @AutoValue + public abstract static class Rule { + + public abstract String id(); + + @Nullable + public abstract RuleProtocol protocol(); + + @Nullable + public abstract Integer portFrom(); + + @Nullable + public abstract Integer portTo(); + + @Nullable + public abstract String source(); + + @SerializedNames({"id", "protocol", "port_from", "port_to", "source"}) + public static Rule create(String id, RuleProtocol protocol, Integer portFrom, Integer portTo, String source) { + return new AutoValue_FirewallPolicy_Rule(id, protocol, portFrom, portTo, source); + } + + @AutoValue + public abstract static class CreatePayload { + + public abstract RuleProtocol protocol(); + + @Nullable + public abstract Integer portFrom(); + + @Nullable + public abstract Integer portTo(); + + @Nullable + public abstract String source(); + + @SerializedNames({"protocol", "port_from", "port_to", "source"}) + public static CreatePayload create(RuleProtocol protocol, Integer portFrom, Integer portTo, String source) { + return builder() + .portFrom(portFrom) + .portTo(portTo) + .protocol(protocol) + .source(source) + .build(); + } + + public static Builder builder() { + return new AutoValue_FirewallPolicy_Rule_CreatePayload.Builder(); + } + + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder protocol(RuleProtocol protocol); + + public abstract Builder portFrom(Integer portFrom); + + public abstract Builder portTo(Integer portTo); + + public abstract Builder source(String source); + + public abstract CreatePayload build(); + } + } + + @AutoValue + public abstract static class AddRule { + + public abstract List<CreatePayload> rules(); + + @SerializedNames({"rules"}) + public static AddRule create(List<CreatePayload> rules) { + return new AutoValue_FirewallPolicy_Rule_AddRule(rules == null ? ImmutableList.<CreatePayload>of() : ImmutableList.copyOf(rules)); + } + } + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Types.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Types.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Types.java index a69a599..12bcb25 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Types.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Types.java @@ -147,4 +147,18 @@ public class Types { return Enums.getIfPresent(StorageServerRights.class, v).or(UNRECOGNIZED); } } + + public enum RuleProtocol { + TCP, + UDP, + ICMP, + AH, + ESP, + GRE, + UNRECOGNIZED; + + public static RuleProtocol fromValue(String v) { + return Enums.getIfPresent(RuleProtocol.class, v).or(UNRECOGNIZED); + } + } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApi.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApi.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApi.java new file mode 100644 index 0000000..a8244ef --- /dev/null +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApi.java @@ -0,0 +1,123 @@ +/* + * 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.apache.jclouds.oneandone.rest.features; + +import java.io.Closeable; +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.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import org.apache.jclouds.oneandone.rest.domain.FirewallPolicy; +import org.apache.jclouds.oneandone.rest.domain.options.GenericQueryOptions; +import org.apache.jclouds.oneandone.rest.filters.AuthenticateRequest; +import org.jclouds.Fallbacks; +import org.jclouds.rest.annotations.BinderParam; +import org.jclouds.rest.annotations.Fallback; +import org.jclouds.rest.annotations.MapBinder; +import org.jclouds.rest.annotations.RequestFilters; +import org.jclouds.rest.binders.BindToJsonPayload; + +@Path("/firewall_policies") +@Produces("application/json") +@Consumes("application/json") +@RequestFilters(AuthenticateRequest.class) +public interface FirewallPolicyApi extends Closeable { + + @Named("firewallpolicies:list") + @GET + @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) + List<FirewallPolicy> list(); + + @Named("firewallpolicies:list") + @GET + @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) + List<FirewallPolicy> list(GenericQueryOptions options); + + @Named("firewallpolicies:get") + @GET + @Path("/{firewallPolicyId}") + @Fallback(Fallbacks.NullOnNotFoundOr404.class) + FirewallPolicy get(@PathParam("firewallPolicyId") String firewallPolicyId); + + @Named("firewallpolicies:create") + @POST + FirewallPolicy create(@BinderParam(BindToJsonPayload.class) FirewallPolicy.CreateFirewallPolicy firewallPolicy); + + @Named("firewallpolicies:update") + @PUT + @Path("/{firewallPolicyId}") + FirewallPolicy update(@PathParam("firewallPolicyId") String firewallPolicyId, @BinderParam(BindToJsonPayload.class) FirewallPolicy.UpdateFirewallPolicy firewallPolicy); + + @Named("firewallpolicies:delete") + @DELETE + @Path("/{firewallPolicyId}") + @MapBinder(BindToJsonPayload.class) + @Fallback(Fallbacks.NullOnNotFoundOr404.class) + FirewallPolicy delete(@PathParam("firewallPolicyId") String firewallPolicyId); + + @Named("firewallpolicies:serverips:list") + @GET + @Path("/{firewallPolicyId}/server_ips") + @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) + List<FirewallPolicy.ServerIp> listServerIps(@PathParam("firewallPolicyId") String firewallPolicyId); + + @Named("firewallpolicies:serverips:create") + @POST + @Path("/{firewallPolicyId}/server_ips") + FirewallPolicy assignServerIp(@PathParam("firewallPolicyId") String firewallPolicyId, @BinderParam(BindToJsonPayload.class) FirewallPolicy.ServerIp.CreateServerIp serverIp); + + @Named("firewallpolicies:serverips:get") + @GET + @Path("/{firewallPolicyId}/server_ips/{serverIpId}") + @Fallback(Fallbacks.NullOnNotFoundOr404.class) + FirewallPolicy.ServerIp getServerIp(@PathParam("firewallPolicyId") String firewallPolicyId, @PathParam("serverIpId") String serverIpId); + + @Named("firewallpolicies:serverips:delete") + @DELETE + @Path("/{firewallPolicyId}/server_ips/{serverIpId}") + @MapBinder(BindToJsonPayload.class) + FirewallPolicy unassignServerIp(@PathParam("firewallPolicyId") String firewallPolicyId, @PathParam("serverIpId") String serverIpId); + + @Named("firewallpolicies:rules:list") + @GET + @Path("/{firewallPolicyId}/rules") + @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) + List<FirewallPolicy.Rule> listRules(@PathParam("firewallPolicyId") String firewallPolicyId); + + @Named("firewallpolicies:rules:create") + @POST + @Path("/{firewallPolicyId}/rules") + FirewallPolicy addRules(@PathParam("firewallPolicyId") String firewallPolicyId, @BinderParam(BindToJsonPayload.class) FirewallPolicy.Rule.AddRule rule); + + @Named("firewallpolicies:rules:get") + @GET + @Path("/{firewallPolicyId}/rules/{ruleId}") + @Fallback(Fallbacks.NullOnNotFoundOr404.class) + FirewallPolicy.Rule getRule(@PathParam("firewallPolicyId") String firewallPolicyId, @PathParam("ruleId") String ruleId); + + @Named("firewallpolicies:rules:delete") + @DELETE + @Path("/{firewallPolicyId}/rules/{ruleId}") + @MapBinder(BindToJsonPayload.class) + FirewallPolicy removeRule(@PathParam("firewallPolicyId") String firewallPolicyId, @PathParam("ruleId") String ruleId); +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiLiveTest.java ---------------------------------------------------------------------- diff --git a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiLiveTest.java b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiLiveTest.java new file mode 100644 index 0000000..2b139d0 --- /dev/null +++ b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiLiveTest.java @@ -0,0 +1,191 @@ +/* + * 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.apache.jclouds.oneandone.rest.features; + +import java.util.ArrayList; +import java.util.List; +import org.apache.jclouds.oneandone.rest.domain.FirewallPolicy; +import org.apache.jclouds.oneandone.rest.domain.Server; +import org.apache.jclouds.oneandone.rest.domain.Types; +import org.apache.jclouds.oneandone.rest.domain.options.GenericQueryOptions; +import org.apache.jclouds.oneandone.rest.internal.BaseOneAndOneLiveTest; +import org.testng.Assert; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Test(groups = "live", testName = "FirewallPolicyApiLiveTest") +public class FirewallPolicyApiLiveTest extends BaseOneAndOneLiveTest { + + private FirewallPolicy currentFirewallPolicy; + private Server currentServer; + private List<FirewallPolicy> firewallPolicies; + + private FirewallPolicyApi firewallPolicyApi() { + return api.firewallPolicyApi(); + } + + @BeforeClass + public void setupTest() { + currentServer = createServer("firewallpolicies jclouds server"); + assertNodeAvailable(currentServer); + + List<FirewallPolicy.Rule.CreatePayload> rules = new ArrayList<FirewallPolicy.Rule.CreatePayload>(); + FirewallPolicy.Rule.CreatePayload rule = FirewallPolicy.Rule.CreatePayload.builder() + .portFrom(80) + .portTo(80) + .protocol(Types.RuleProtocol.TCP) + .source("0.0.0.0") + .build(); + rules.add(rule); + currentFirewallPolicy = firewallPolicyApi().create(FirewallPolicy.CreateFirewallPolicy.create("jclouds firewall policy", "desc", rules)); + } + + @Test + public void testList() { + firewallPolicies = firewallPolicyApi().list(); + + assertNotNull(firewallPolicies); + assertFalse(firewallPolicies.isEmpty()); + Assert.assertTrue(firewallPolicies.size() > 0); + } + + @Test + public void testListWithOption() { + GenericQueryOptions options = new GenericQueryOptions(); + options.options(0, 0, null, "jclouds", null); + List<FirewallPolicy> imageWithQuery = firewallPolicyApi().list(options); + + assertNotNull(imageWithQuery); + assertFalse(imageWithQuery.isEmpty()); + Assert.assertTrue(imageWithQuery.size() > 0); + } + + @Test + public void testGet() { + FirewallPolicy result = firewallPolicyApi().get(currentFirewallPolicy.id()); + + assertNotNull(result); + assertEquals(result.id(), currentFirewallPolicy.id()); + } + + @Test + public void testUpdate() { + String updatedName = "UpdatedjcloudsPolicy"; + + FirewallPolicy updateResult = firewallPolicyApi().update(currentFirewallPolicy.id(), FirewallPolicy.UpdateFirewallPolicy.create(updatedName, null)); + + assertNotNull(updateResult); + assertEquals(updateResult.name(), updatedName); + } + + @Test(dependsOnMethods = "testUpdate") + public void testAssignServerIp() { + assertNodeAvailable(currentServer); + currentServer = updateServerStatus(currentServer); + List<String> ips = new ArrayList<String>(); + ips.add(currentServer.ips().get(0).id()); + FirewallPolicy.ServerIp.CreateServerIp toAdd = FirewallPolicy.ServerIp.CreateServerIp.create(ips); + + FirewallPolicy updateResult = firewallPolicyApi().assignServerIp(currentFirewallPolicy.id(), toAdd); + assertEquals(updateResult.serverIps().get(0).id(), currentServer.ips().get(0).id()); + + assertNotNull(updateResult); + + } + + @Test(dependsOnMethods = "testAssignServerIp") + public void testListServerIps() { + List<FirewallPolicy.ServerIp> servers = firewallPolicyApi().listServerIps(currentFirewallPolicy.id()); + + assertNotNull(servers); + assertFalse(servers.isEmpty()); + Assert.assertTrue(servers.size() > 0); + } + + @Test(dependsOnMethods = "testListServerIps") + public void testServerIpGet() { + FirewallPolicy.ServerIp result = firewallPolicyApi().getServerIp(currentFirewallPolicy.id(), currentServer.ips().get(0).id()); + + assertNotNull(result); + } + + @Test(dependsOnMethods = "testServerIpGet") + public void testUnassignServer() { + FirewallPolicy result = firewallPolicyApi().unassignServerIp(currentFirewallPolicy.id(), currentServer.ips().get(0).id()); + + assertNotNull(result); + assertEquals(result.serverIps().size(), 0); + } + + @Test(dependsOnMethods = "testUnassignServer") + public void testAddRules() { + assertNodeAvailable(currentServer); + currentServer = updateServerStatus(currentServer); + List<FirewallPolicy.Rule.CreatePayload> rules = new ArrayList<FirewallPolicy.Rule.CreatePayload>(); + FirewallPolicy.Rule.CreatePayload rule = FirewallPolicy.Rule.CreatePayload.builder() + .portFrom(4567) + .portTo(4567) + .protocol(Types.RuleProtocol.TCP) + .source("0.0.0.0") + .build(); + rules.add(rule); + FirewallPolicy response = firewallPolicyApi().addRules(currentFirewallPolicy.id(), FirewallPolicy.Rule.AddRule.create(rules)); + FirewallPolicy.Rule ruleFromApi = firewallPolicyApi().getRule(currentFirewallPolicy.id(), currentFirewallPolicy.rules().get(0).id()); + + assertNotNull(response); + assertNotNull(ruleFromApi); + + } + + @Test(dependsOnMethods = "testAddRules") + public void testListRules() { + List<FirewallPolicy.Rule> servers = firewallPolicyApi().listRules(currentFirewallPolicy.id()); + + assertNotNull(servers); + assertFalse(servers.isEmpty()); + Assert.assertTrue(servers.size() > 0); + } + + @Test(dependsOnMethods = "testAddRules") + public void testGetRule() { + FirewallPolicy.Rule result = firewallPolicyApi().getRule(currentFirewallPolicy.id(), currentFirewallPolicy.rules().get(0).id()); + + assertNotNull(result); + } + + @Test(dependsOnMethods = "testGetRule") + public void testRemoveRule() { + FirewallPolicy result = firewallPolicyApi().removeRule(currentFirewallPolicy.id(), currentFirewallPolicy.rules().get(0).id()); + FirewallPolicy.Rule ruleFromApi = firewallPolicyApi().getRule(currentFirewallPolicy.id(), currentFirewallPolicy.rules().get(0).id()); + + assertNotNull(result); + assertEquals(ruleFromApi, null); + assertEquals(result.id(), currentFirewallPolicy.id()); + } + + @AfterClass(alwaysRun = true) + public void teardownTest() throws InterruptedException { + assertNodeAvailable(currentServer); + firewallPolicyApi().delete(currentFirewallPolicy.id()); + assertNodeAvailable(currentServer); + deleteServer(currentServer.id()); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiMockTest.java ---------------------------------------------------------------------- diff --git a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiMockTest.java b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiMockTest.java new file mode 100644 index 0000000..29aa1b8 --- /dev/null +++ b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/FirewallPolicyApiMockTest.java @@ -0,0 +1,335 @@ +/* + * 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.apache.jclouds.oneandone.rest.features; + +import com.squareup.okhttp.mockwebserver.MockResponse; +import java.util.ArrayList; +import java.util.List; +import org.apache.jclouds.oneandone.rest.domain.FirewallPolicy; +import org.apache.jclouds.oneandone.rest.domain.Types; +import org.apache.jclouds.oneandone.rest.domain.options.GenericQueryOptions; +import org.apache.jclouds.oneandone.rest.internal.BaseOneAndOneApiMockTest; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import org.testng.annotations.Test; + +@Test(groups = "unit", testName = "FirewallPolicyApiMockTest", singleThreaded = true) +public class FirewallPolicyApiMockTest extends BaseOneAndOneApiMockTest { + + private FirewallPolicyApi firewallpolicyApi() { + return api.firewallPolicyApi(); + } + + @Test + public void testList() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/list.json")) + ); + + List<FirewallPolicy> policies = firewallpolicyApi().list(); + + assertNotNull(policies); + assertEquals(policies.size(), 2); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies"); + } + + @Test + public void testList404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404)); + + List<FirewallPolicy> firewallpolicies = firewallpolicyApi().list(); + + assertEquals(firewallpolicies.size(), 0); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies"); + } + + @Test + public void testListWithOption() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/list.options.json")) + ); + GenericQueryOptions options = new GenericQueryOptions(); + options.options(0, 0, null, "New", null); + List<FirewallPolicy> firewallpolicies = firewallpolicyApi().list(options); + + assertNotNull(firewallpolicies); + assertEquals(firewallpolicies.size(), 2); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies?q=New"); + } + + @Test + public void testListWithOption404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + GenericQueryOptions options = new GenericQueryOptions(); + options.options(0, 0, null, "test", null); + List<FirewallPolicy> firewallpolicies = firewallpolicyApi().list(options); + + assertEquals(firewallpolicies.size(), 0); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies?q=test"); + } + + public void testGet() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + FirewallPolicy result = firewallpolicyApi().get("firewallpolicyId"); + + assertNotNull(result); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId"); + } + + @Test + public void testGet404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + FirewallPolicy result = firewallpolicyApi().get("firewallpolicyId"); + + assertEquals(result, null); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId"); + } + + @Test + public void testCreate() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + List<FirewallPolicy.Rule.CreatePayload> rules = new ArrayList<FirewallPolicy.Rule.CreatePayload>(); + FirewallPolicy.Rule.CreatePayload rule = FirewallPolicy.Rule.CreatePayload.builder() + .portFrom(80) + .portTo(80) + .protocol(Types.RuleProtocol.TCP) + .source("source") + .build(); + rules.add(rule); + FirewallPolicy response = firewallpolicyApi().create(FirewallPolicy.CreateFirewallPolicy.create("name", "desc", rules)); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "POST", "/firewall_policies", "{\"name\":\"name\",\"description\":\"desc\",\"rules\":[{\"protocol\":\"TCP\",\"port_from\":80,\"port_to\":80,\"source\":\"source\"}]}"); + } + + @Test + public void testUpdate() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + FirewallPolicy response = firewallpolicyApi().update("firewallpolicyId", FirewallPolicy.UpdateFirewallPolicy.create("name", "desc")); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "PUT", "/firewall_policies/firewallpolicyId", "{\"name\":\"name\",\"description\":\"desc\"}"); + } + + @Test + public void testDelete() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + FirewallPolicy response = firewallpolicyApi().delete("firewallpolicyId"); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "DELETE", "/firewall_policies/firewallpolicyId"); + } + + @Test + public void testDelete404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404)); + FirewallPolicy response = firewallpolicyApi().delete("firewallpolicyId"); + + assertEquals(response, null); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "DELETE", "/firewall_policies/firewallpolicyId"); + } + + @Test + public void testListServerIps() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/list.serverips.json")) + ); + + List<FirewallPolicy.ServerIp> serverIps = firewallpolicyApi().listServerIps("firewallpolicyId"); + + assertNotNull(serverIps); + assertEquals(serverIps.size(), 1); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/server_ips"); + } + + @Test + public void testListServerIps404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + + List<FirewallPolicy.ServerIp> serverIps = firewallpolicyApi().listServerIps("firewallpolicyId"); + + assertEquals(serverIps.size(), 0); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/server_ips"); + } + + @Test + public void testGetServerIp() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.serverip.json")) + ); + FirewallPolicy.ServerIp result = firewallpolicyApi().getServerIp("firewallpolicyId", "serverIpId"); + + assertNotNull(result); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/server_ips/serverIpId"); + } + + @Test + public void testGetServerIp404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + FirewallPolicy.ServerIp result = firewallpolicyApi().getServerIp("firewallpolicyId", "serverIpId"); + + assertEquals(result, null); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/server_ips/serverIpId"); + } + + @Test + public void testAssignServerIp() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + + List<String> ips = new ArrayList<String>(); + ips.add("ip1"); + FirewallPolicy response = firewallpolicyApi().assignServerIp("firewallpolicyId", FirewallPolicy.ServerIp.CreateServerIp.create(ips)); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "POST", "/firewall_policies/firewallpolicyId/server_ips", "{\"server_ips\":[\"ip1\"]}"); + } + + @Test + public void testUnassignServerIp() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + FirewallPolicy response = firewallpolicyApi().unassignServerIp("firewallpolicyId", "serverIpId"); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "DELETE", "/firewall_policies/firewallpolicyId/server_ips/serverIpId"); + } + + @Test + public void testListRules() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/list.rules.json")) + ); + + List<FirewallPolicy.Rule> rules = firewallpolicyApi().listRules("firewallpolicyId"); + + assertNotNull(rules); + assertEquals(rules.size(), 2); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/rules"); + } + + @Test + public void testListRules404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + + List<FirewallPolicy.Rule> rules = firewallpolicyApi().listRules("firewallpolicyId"); + + assertEquals(rules.size(), 0); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/rules"); + } + + @Test + public void testGetRule() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.rule.json")) + ); + FirewallPolicy.Rule result = firewallpolicyApi().getRule("firewallpolicyId", "ruleId"); + + assertNotNull(result); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/rules/ruleId"); + } + + @Test + public void testGetRule404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + FirewallPolicy.Rule result = firewallpolicyApi().getRule("firewallpolicyId", "ruleId"); + + assertEquals(result, null); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/firewall_policies/firewallpolicyId/rules/ruleId"); + } + + @Test + public void testAddRule() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + + List<FirewallPolicy.Rule.CreatePayload> rules = new ArrayList<FirewallPolicy.Rule.CreatePayload>(); + FirewallPolicy.Rule.CreatePayload rule = FirewallPolicy.Rule.CreatePayload.builder() + .portFrom(80) + .portTo(80) + .protocol(Types.RuleProtocol.TCP) + .source("source") + .build(); + rules.add(rule); + FirewallPolicy response = firewallpolicyApi().addRules("firewallpolicyId", FirewallPolicy.Rule.AddRule.create(rules)); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "POST", "/firewall_policies/firewallpolicyId/rules", "{\"rules\":[{\"protocol\":\"TCP\",\"port_from\":80,\"port_to\":80,\"source\":\"source\"}]}"); + } + + @Test + public void testRemoveRule() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/firewallpolicies/get.json")) + ); + FirewallPolicy response = firewallpolicyApi().removeRule("firewallpolicyId", "ruleId"); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "DELETE", "/firewall_policies/firewallpolicyId/rules/ruleId"); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneApiMockTest.java ---------------------------------------------------------------------- diff --git a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneApiMockTest.java b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneApiMockTest.java index f9bb74c..1f90aa5 100644 --- a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneApiMockTest.java +++ b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneApiMockTest.java @@ -42,7 +42,6 @@ public class BaseOneAndOneApiMockTest { private static final OneAndOneProviderMetadata METADATA = new OneAndOneProviderMetadata(); protected static final String AUTH_HEADER = "token"; - private static final String DEFAULT_ENDPOINT = METADATA.getEndpoint(); private final Set<Module> modules = ImmutableSet.<Module>of(new ExecutorServiceModule(sameThreadExecutor())); protected MockWebServer server; http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneLiveTest.java ---------------------------------------------------------------------- diff --git a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneLiveTest.java b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneLiveTest.java index 7045e45..b03b44c 100644 --- a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneLiveTest.java +++ b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/internal/BaseOneAndOneLiveTest.java @@ -102,6 +102,12 @@ public class BaseOneAndOneLiveTest extends BaseApiLiveTest<OneAndOneApi> { .powerOn(Boolean.TRUE).build()); } + protected Server updateServerStatus(Server server) { + assertNodeAvailable(server); + return api.serverApi().get(server.id()); + + } + protected void assertNodeAvailable(Server server) { assertTrue(waitUntilServerReady.apply(server), String.format("Server %s is not Ready", server)); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/get.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/get.json b/oneandone/src/test/resources/firewallpolicies/get.json new file mode 100644 index 0000000..ab9cb98 --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/get.json @@ -0,0 +1,26 @@ +{ + "id": "83522FC7DA9172F229E5352C587075BA", + "name": "My firewall policy test", + "description": "My firewall policy description", + "state": "CONFIGURING", + "creation_date": "2015-04-29T10:43:11+00:00", + "default": 0, + "rules": [ + { + "id": "DA5CC179ED00079AE7DE595F0073D86E", + "protocol": "TCP", + "port_from": 80, + "port_to": 80, + "source": "0.0.0.0" + }, + { + "id": "0766EC674A0CD9D4EC0FA0B07978A649", + "protocol": "TCP", + "port_from": 443, + "port_to": 443, + "source": "0.0.0.0" + } + ], + "server_ips": [], + "cloudpanel_id": "FW99AA4_7" +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/get.rule.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/get.rule.json b/oneandone/src/test/resources/firewallpolicies/get.rule.json new file mode 100644 index 0000000..d941bd1 --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/get.rule.json @@ -0,0 +1,7 @@ +{ + "id": "353E9F751630074CF7219747436A8D71", + "protocol": "TCP", + "port_from": 4567, + "port_to": 4567, + "source": "0.0.0.0" +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/get.serverip.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/get.serverip.json b/oneandone/src/test/resources/firewallpolicies/get.serverip.json new file mode 100644 index 0000000..02b3e65 --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/get.serverip.json @@ -0,0 +1,5 @@ +{ + "id": "01D4A802798AB77AA72DA2D05E1379E1", + "ip": "10.5.135.140", + "server_name": "My Server 2" +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/list.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/list.json b/oneandone/src/test/resources/firewallpolicies/list.json new file mode 100644 index 0000000..e7d3f43 --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/list.json @@ -0,0 +1,54 @@ +[ + { + "id": "83522FC7DA9172F229E5352C587075BA", + "name": "My firewall policy test", + "description": "My firewall policy description", + "state": "CONFIGURING", + "creation_date": "2015-04-29T10:43:11+00:00", + "default": 0, + "rules": [ + { + "id": "DA5CC179ED00079AE7DE595F0073D86E", + "protocol": "TCP", + "port_from": 80, + "port_to": 80, + "source": "0.0.0.0" + }, + { + "id": "0766EC674A0CD9D4EC0FA0B07978A649", + "protocol": "TCP", + "port_from": 443, + "port_to": 443, + "source": "0.0.0.0" + } + ], + "server_ips": [], + "cloudpanel_id": "FW99AA4_7" + }, + { + "id": "83522FC7DA9172F229E5352C587075B9", + "name": "My firewall policy test 2", + "description": "My firewall policy description", + "state": "CONFIGURING", + "creation_date": "2015-04-29T10:43:11+00:00", + "default": 0, + "rules": [ + { + "id": "DA5CC179ED00079AE7DE595F0073D86F", + "protocol": "TCP", + "port_from": 80, + "port_to": 80, + "source": "0.0.0.0" + }, + { + "id": "0766EC674A0CD9D4EC0FA0B07978A64A", + "protocol": "TCP", + "port_from": 443, + "port_to": 443, + "source": "0.0.0.0" + } + ], + "server_ips": [], + "cloudpanel_id": "FW99AA4_7" + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/list.options.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/list.options.json b/oneandone/src/test/resources/firewallpolicies/list.options.json new file mode 100644 index 0000000..e7d3f43 --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/list.options.json @@ -0,0 +1,54 @@ +[ + { + "id": "83522FC7DA9172F229E5352C587075BA", + "name": "My firewall policy test", + "description": "My firewall policy description", + "state": "CONFIGURING", + "creation_date": "2015-04-29T10:43:11+00:00", + "default": 0, + "rules": [ + { + "id": "DA5CC179ED00079AE7DE595F0073D86E", + "protocol": "TCP", + "port_from": 80, + "port_to": 80, + "source": "0.0.0.0" + }, + { + "id": "0766EC674A0CD9D4EC0FA0B07978A649", + "protocol": "TCP", + "port_from": 443, + "port_to": 443, + "source": "0.0.0.0" + } + ], + "server_ips": [], + "cloudpanel_id": "FW99AA4_7" + }, + { + "id": "83522FC7DA9172F229E5352C587075B9", + "name": "My firewall policy test 2", + "description": "My firewall policy description", + "state": "CONFIGURING", + "creation_date": "2015-04-29T10:43:11+00:00", + "default": 0, + "rules": [ + { + "id": "DA5CC179ED00079AE7DE595F0073D86F", + "protocol": "TCP", + "port_from": 80, + "port_to": 80, + "source": "0.0.0.0" + }, + { + "id": "0766EC674A0CD9D4EC0FA0B07978A64A", + "protocol": "TCP", + "port_from": 443, + "port_to": 443, + "source": "0.0.0.0" + } + ], + "server_ips": [], + "cloudpanel_id": "FW99AA4_7" + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/list.rules.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/list.rules.json b/oneandone/src/test/resources/firewallpolicies/list.rules.json new file mode 100644 index 0000000..114a2f4 --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/list.rules.json @@ -0,0 +1,16 @@ +[ + { + "id": "DA5CC179ED00079AE7DE595F0073D86E", + "protocol": "TCP", + "port_from": 80, + "port_to": 80, + "source": "0.0.0.0" + }, + { + "id": "0766EC674A0CD9D4EC0FA0B07978A649", + "protocol": "TCP", + "port_from": 443, + "port_to": 443, + "source": "0.0.0.0" + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/firewallpolicies/list.serverips.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/firewallpolicies/list.serverips.json b/oneandone/src/test/resources/firewallpolicies/list.serverips.json new file mode 100644 index 0000000..14f14ea --- /dev/null +++ b/oneandone/src/test/resources/firewallpolicies/list.serverips.json @@ -0,0 +1,7 @@ +[ + { + "id": "01D4A802798AB77AA72DA2D05E1379E1", + "ip": "10.5.135.140", + "server_name": "My Server 2" + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/sharedStorage/get.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/sharedStorage/get.json b/oneandone/src/test/resources/sharedStorage/get.json new file mode 100644 index 0000000..7f3d370 --- /dev/null +++ b/oneandone/src/test/resources/sharedStorage/get.json @@ -0,0 +1,24 @@ +{ + "id": "6AD2F180B7B666539EF75A02FE227084", + "size": 200, + "state": "ACTIVE", + "description": "My shared storage test description", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "cloudpanel_id": "vid35780", + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage test", + "creation_date": "2015-05-06T08:33:25+00:00", + "servers": [ + { + "id": "638ED28205B1AFD7ADEF569C725DD85F", + "name": "My server 1", + "rights": "RW" + } + ] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/sharedStorage/list.access.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/sharedStorage/list.access.json b/oneandone/src/test/resources/sharedStorage/list.access.json new file mode 100644 index 0000000..6b72404 --- /dev/null +++ b/oneandone/src/test/resources/sharedStorage/list.access.json @@ -0,0 +1,24 @@ +[ + { + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "state": "CONFIGURING", + "kerberos_content_file": "BQIAAABSAAIACERFVjEuTEFOAANuZnMAEnVpZDYyNDQ1OS5kZXYxLmxhbgAAAAEAAAAAQAASACAobHpZknT8WqX14kQhOrFI9hwO37NUg/p3Ne/8w2MPJA==", + "needs_password_reset": 0, + "user_domain": "nas2\\uid183564" + }, + { + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB789536", + "location": "Spain", + "country_code": "ES" + }, + "state": "CONFIGURING", + "kerberos_content_file": "BQIAAABSAAIACERFVjEuTEFOAANuZnMAEnVpZDYyNDQ1OS5kZXYxLmxhbgAAAAEAAAAAQQASACAobHpZknT8WqX14kQhOrFI9hwO37NUg/p3Ne/8w2MPJA==", + "needs_password_reset": 0, + "user_domain": "nas2\\uid183564" + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/sharedStorage/list.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/sharedStorage/list.json b/oneandone/src/test/resources/sharedStorage/list.json new file mode 100644 index 0000000..d9c8c93 --- /dev/null +++ b/oneandone/src/test/resources/sharedStorage/list.json @@ -0,0 +1,62 @@ +[ + { + "id": "6AD2F180B7B666539EF75A02FE227084", + "size": 200, + "state": "ACTIVE", + "description": "My shared storage test description", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "cloudpanel_id": "vid35780", + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage test", + "creation_date": "2015-05-06T08:33:25+00:00", + "servers": [ + { + "id": "638ED28205B1AFD7ADEF569C725DD85F", + "name": "My server 1", + "rights": "RW" + } + ] + }, + { + "id": "4406CE4723BB441C7956E25C51CE8C1B", + "size": 50, + "state": "ACTIVE", + "description": "My shared storage description", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "cloudpanel_id": "vid30534", + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage", + "creation_date": "2015-03-17T11:57:48+00:00", + "servers": [] + }, + { + "id": "1A5418172DD3BD39F8010A6633F1018A", + "size": 250, + "state": "ACTIVE", + "description": null, + "cloudpanel_id": "vid19857", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage 2", + "creation_date": "2015-05-05T09:36:31+00:00", + "servers": [] + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/sharedStorage/list.options.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/sharedStorage/list.options.json b/oneandone/src/test/resources/sharedStorage/list.options.json new file mode 100644 index 0000000..d9c8c93 --- /dev/null +++ b/oneandone/src/test/resources/sharedStorage/list.options.json @@ -0,0 +1,62 @@ +[ + { + "id": "6AD2F180B7B666539EF75A02FE227084", + "size": 200, + "state": "ACTIVE", + "description": "My shared storage test description", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "cloudpanel_id": "vid35780", + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage test", + "creation_date": "2015-05-06T08:33:25+00:00", + "servers": [ + { + "id": "638ED28205B1AFD7ADEF569C725DD85F", + "name": "My server 1", + "rights": "RW" + } + ] + }, + { + "id": "4406CE4723BB441C7956E25C51CE8C1B", + "size": 50, + "state": "ACTIVE", + "description": "My shared storage description", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "cloudpanel_id": "vid30534", + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage", + "creation_date": "2015-03-17T11:57:48+00:00", + "servers": [] + }, + { + "id": "1A5418172DD3BD39F8010A6633F1018A", + "size": 250, + "state": "ACTIVE", + "description": null, + "cloudpanel_id": "vid19857", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "size_used": "0.00", + "cifs_path": "\\vid50995.nas1.lan\\vid50995", + "nfs_path": "vid50995.nas1.lan/:vid50995", + "name": "My shared storage 2", + "creation_date": "2015-05-05T09:36:31+00:00", + "servers": [] + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/sharedStorage/server.get.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/sharedStorage/server.get.json b/oneandone/src/test/resources/sharedStorage/server.get.json new file mode 100644 index 0000000..d68f370 --- /dev/null +++ b/oneandone/src/test/resources/sharedStorage/server.get.json @@ -0,0 +1,5 @@ +{ + "id": "638ED28205B1AFD7ADEF569C725DD85F", + "name": "Mi servidor 1", + "rights": "RW" +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50744595/oneandone/src/test/resources/sharedStorage/servers.list.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/sharedStorage/servers.list.json b/oneandone/src/test/resources/sharedStorage/servers.list.json new file mode 100644 index 0000000..e46295d --- /dev/null +++ b/oneandone/src/test/resources/sharedStorage/servers.list.json @@ -0,0 +1,12 @@ +[ + { + "id": "C72CF0A681B0CCE7EC624DD194D585C6", + "name": "My Server", + "rights": "RW" + }, + { + "id": "4ECD9D188EB457317B2CF8F07885E7B4", + "name": "My Server 2", + "rights": "R" + } +] \ No newline at end of file
