Repository: jclouds-labs Updated Branches: refs/heads/master 787af1dc8 -> f997b0615
JCLOUDS-1138 oneandone-image-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/f997b061 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/f997b061 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/f997b061 Branch: refs/heads/master Commit: f997b06159e4d80690a391b1db10fbd75429b8b3 Parents: 787af1d Author: Ali Bazlamit <[email protected]> Authored: Wed Jul 13 23:17:19 2016 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Fri Jul 22 09:42:35 2016 +0200 ---------------------------------------------------------------------- .../jclouds/oneandone/rest/OneAndOneApi.java | 5 + .../oneandone/rest/domain/DataCenter.java | 15 +- .../jclouds/oneandone/rest/domain/Dvd.java | 13 +- .../rest/domain/FixedInstanceHardware.java | 1 + .../jclouds/oneandone/rest/domain/Hardware.java | 1 + .../oneandone/rest/domain/HardwareFlavour.java | 1 + .../jclouds/oneandone/rest/domain/Image.java | 71 +++++++ .../oneandone/rest/features/ImageApi.java | 77 ++++++++ .../rest/features/ImageApiLiveTest.java | 114 +++++++++++ .../rest/features/ImageApiMockTest.java | 189 +++++++++++++++++++ .../rest/internal/BaseOneAndOneApiMockTest.java | 1 + oneandone/src/test/resources/image/get.json | 31 +++ oneandone/src/test/resources/image/list.json | 63 +++++++ .../src/test/resources/image/list.options.json | 33 ++++ 14 files changed, 600 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/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 577afcb..dd9b3b2 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.ImageApi; import org.apache.jclouds.oneandone.rest.features.ServerApi; import org.jclouds.rest.annotations.Delegate; @@ -24,4 +25,8 @@ public interface OneAndOneApi extends Closeable { @Delegate ServerApi serverApi(); + + @Delegate + ImageApi imageApi(); + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/DataCenter.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/DataCenter.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/DataCenter.java index c2d129f..95e2bf3 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/DataCenter.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/DataCenter.java @@ -21,15 +21,14 @@ import org.jclouds.json.SerializedNames; @AutoValue public abstract class DataCenter { + public abstract String id(); - public abstract String id(); + public abstract String countryCode(); - public abstract String countryCode(); + public abstract String location(); - public abstract String location(); - - @SerializedNames({"id", "country_code", "location"}) - public static DataCenter create(String id, String countryCode, String location) { - return new AutoValue_DataCenter(id, countryCode, location); - } + @SerializedNames({"id", "country_code", "location"}) + public static DataCenter create(String id, String countryCode, String location) { + return new AutoValue_DataCenter(id, countryCode, location); + } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Dvd.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Dvd.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Dvd.java index 865eb48..dd778be 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Dvd.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Dvd.java @@ -21,13 +21,12 @@ import org.jclouds.json.SerializedNames; @AutoValue public abstract class Dvd { + public abstract String id(); - public abstract String id(); + public abstract String name(); - public abstract String name(); - - @SerializedNames({"id", "name"}) - public static Dvd create(String id, String name) { - return new AutoValue_Dvd(id, name); - } + @SerializedNames({"id", "name"}) + public static Dvd create(String id, String name) { + return new AutoValue_Dvd(id, name); + } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FixedInstanceHardware.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FixedInstanceHardware.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FixedInstanceHardware.java index 6d2e198..ab40a84 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FixedInstanceHardware.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/FixedInstanceHardware.java @@ -28,4 +28,5 @@ public abstract class FixedInstanceHardware { public static FixedInstanceHardware create(String fixedInstanceSizeId) { return new AutoValue_FixedInstanceHardware(fixedInstanceSizeId); } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Hardware.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Hardware.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Hardware.java index 4eda12f..30480f5 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Hardware.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Hardware.java @@ -68,4 +68,5 @@ public abstract class Hardware { return new AutoValue_Hardware_UpdateHardware(vcore, coresPerProcessor, ram); } } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/HardwareFlavour.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/HardwareFlavour.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/HardwareFlavour.java index b5098c9..b8b8744 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/HardwareFlavour.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/HardwareFlavour.java @@ -69,4 +69,5 @@ public abstract class HardwareFlavour { } } } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Image.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Image.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Image.java index 80bbead..19acb9f 100644 --- a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Image.java +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/domain/Image.java @@ -83,4 +83,75 @@ public abstract class Image { architecture, osImageType, type, minHddSize, licenses == null ? ImmutableList.<Licenses>of() : licenses, state, description, hdds == null ? ImmutableList.<Hdd>of() : hdds, serverId, frequency, numImages, creationDate); } + + @AutoValue + public abstract static class CreateImage { + + public abstract String serverId(); + + public abstract String name(); + + public abstract ImageFrequency frequency(); + + @Nullable + public abstract String description(); + + public abstract int numImages(); + + @Nullable + public abstract String datacenterId(); + + @SerializedNames({"server_id", "name", "frequency", "description", "num_images", "datacenter_id"}) + public static CreateImage create(final String serverId, final String name, final ImageFrequency frequency, final String description, final int numImages, + final String dataCenterId) { + return builder() + .name(name) + .serverId(serverId) + .description(description) + .datacenterId(dataCenterId) + .frequency(frequency) + .numImages(numImages) + .build(); + } + + public static Builder builder() { + return new AutoValue_Image_CreateImage.Builder(); + } + + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder name(String name); + + public abstract Builder serverId(String serverId); + + public abstract Builder frequency(ImageFrequency description); + + public abstract Builder description(String description); + + public abstract Builder numImages(int numImages); + + public abstract Builder datacenterId(String datacenterId); + + public abstract CreateImage build(); + } + } + + @AutoValue + public abstract static class UpdateImage { + + @Nullable + public abstract String name(); + + @Nullable + public abstract String description(); + + @Nullable + public abstract ImageFrequency frequency(); + + @SerializedNames({"name", "description", "frequency"}) + public static UpdateImage create(final String name, final String description, final ImageFrequency frequency) { + return new AutoValue_Image_UpdateImage(name, description, frequency); + } + } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/ImageApi.java ---------------------------------------------------------------------- diff --git a/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/ImageApi.java b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/ImageApi.java new file mode 100644 index 0000000..b2f1cb8 --- /dev/null +++ b/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/features/ImageApi.java @@ -0,0 +1,77 @@ +/* + * 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.Image; +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("images") +@Produces("application/json") +@Consumes("application/json") +@RequestFilters(AuthenticateRequest.class) +public interface ImageApi extends Closeable { + + @Named("images:list") + @GET + @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) + List<Image> list(); + + @Named("images:list") + @GET + @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) + List<Image> list(GenericQueryOptions options); + + @Named("image:get") + @GET + @Path("/{imageId}") + @Fallback(Fallbacks.NullOnNotFoundOr404.class) + Image get(@PathParam("imageId") String imageId); + + @Named("image:create") + @POST + Image createImage(@BinderParam(BindToJsonPayload.class) Image.CreateImage image); + + @Named("image:update") + @PUT + @Path("/{imageId}") + Image update(@PathParam("imageId") String imageId, @BinderParam(BindToJsonPayload.class) Image.UpdateImage image); + + @Named("image:delete") + @DELETE + @Path("/{imageId}") + @MapBinder(BindToJsonPayload.class) + @Fallback(Fallbacks.NullOnNotFoundOr404.class) + Image delete(@PathParam("imageId") String imageId); +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiLiveTest.java ---------------------------------------------------------------------- diff --git a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiLiveTest.java b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiLiveTest.java new file mode 100644 index 0000000..ff38828 --- /dev/null +++ b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiLiveTest.java @@ -0,0 +1,114 @@ +/* + * 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.List; +import org.apache.jclouds.oneandone.rest.domain.Image; +import org.apache.jclouds.oneandone.rest.domain.Image.CreateImage; +import org.apache.jclouds.oneandone.rest.domain.Image.UpdateImage; +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 = "ImageApiLiveTest") +public class ImageApiLiveTest extends BaseOneAndOneLiveTest { + + private Image currentImage; + private Server currentServer; + private List<Image> images; + + private ImageApi imageApi() { + return api.imageApi(); + } + + @BeforeClass + public void setupTest() { + currentServer = createServer("image jclouds server"); + assertNodeAvailable(currentServer); + currentImage = imageApi().createImage(CreateImage.builder() + .name("jcloudsimage") + .numImages(1) + .frequency(Types.ImageFrequency.WEEKLY) + .serverId(currentServer.id()) + .build()); + Image checkImage = imageApi().get(currentImage.id()); + + assertNotNull(currentImage); + assertNotNull(checkImage); + + } + + @Test + public void testList() { + images = imageApi().list(); + + assertNotNull(images); + assertFalse(images.isEmpty()); + Assert.assertTrue(images.size() > 0); + } + + @Test + public void testListWithOption() { + GenericQueryOptions options = new GenericQueryOptions(); + options.options(0, 0, null, "jcloudsimage", null); + List<Image> imageWithQuery = imageApi().list(options); + + assertNotNull(imageWithQuery); + assertFalse(imageWithQuery.isEmpty()); + Assert.assertTrue(imageWithQuery.size() > 0); + } + + @Test + public void testGetImage() { + Image result = imageApi().get(currentImage.id()); + + assertNotNull(result); + assertEquals(result.id(), currentImage.id()); + } + + @Test(dependsOnMethods = "testGetImage") + public void testUpdateImage() throws InterruptedException { + String updatedName = "Updatedjava"; + + Image updateResult = imageApi().update(currentImage.id(), UpdateImage.create(updatedName, "description", Types.ImageFrequency.ONCE)); + + assertNotNull(updateResult); + + assertEquals(updateResult.name(), updatedName); + + } + + @AfterClass(alwaysRun = true) + public void teardownTest() throws InterruptedException { + if (currentImage != null) { + imageApi().delete(currentImage.id()); + } + if (currentServer != null) { + assertNodeAvailable(currentServer); + deleteServer(currentServer.id()); + } + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiMockTest.java ---------------------------------------------------------------------- diff --git a/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiMockTest.java b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiMockTest.java new file mode 100644 index 0000000..ae3c4f6 --- /dev/null +++ b/oneandone/src/test/java/org/apache/jclouds/oneandone/rest/features/ImageApiMockTest.java @@ -0,0 +1,189 @@ +/* + * 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.List; +import org.apache.jclouds.oneandone.rest.domain.Image; +import org.apache.jclouds.oneandone.rest.domain.Image.CreateImage; +import org.apache.jclouds.oneandone.rest.domain.Image.UpdateImage; +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 = "ImageApiMockTest", singleThreaded = true) +public class ImageApiMockTest extends BaseOneAndOneApiMockTest { + + private ImageApi imageApi() { + return api.imageApi(); + } + + @Test + public void testList() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/image/list.json")) + ); + + List<Image> images = imageApi().list(); + + assertNotNull(images); + assertEquals(images.size(), 2); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/images"); + } + + @Test + public void testList404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404)); + + List<Image> images = imageApi().list(); + + assertNotNull(images); + assertEquals(images.size(), 0); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/images"); + } + + @Test + public void testListWithOption() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/image/list.options.json")) + ); + GenericQueryOptions options = new GenericQueryOptions(); + options.options(0, 0, null, "New", null); + List<Image> images = imageApi().list(options); + + assertNotNull(images); + assertEquals(images.size(), 1); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/images?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<Image> images = imageApi().list(options); + + assertNotNull(images); + assertEquals(images.size(), 0); + + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/images?q=test"); + } + + public void testGetImage() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/image/get.json")) + ); + Image result = imageApi().get("imageId"); + + assertNotNull(result); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/images/imageId"); + } + + @Test + public void testGetImage404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404) + ); + Image result = imageApi().get("imageId"); + + assertEquals(result, null); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "GET", "/images/imageId"); + } + + @Test + public void testCreateImage() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/image/get.json")) + ); + Image response = imageApi().createImage(CreateImage.builder() + .name("name") + .description("desc") + .numImages(1) + .serverId("server-Id") + .frequency(Types.ImageFrequency.ONCE) + .datacenterId("datacenter-id") + .build()); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "POST", "/images", "{ \n" + + " \"server_id\": \"server-Id\",\n" + + " \"name\": \"name\",\n" + + " \"description\": \"desc\",\n" + + " \"frequency\": \"ONCE\",\n" + + " \"num_images\": 1,\n" + + " \"datacenter_id\": \"datacenter-id\"\n" + + "}" + ); + } + + @Test + public void testUpdateImage() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/image/get.json")) + ); + Image response = imageApi().update("imageId", UpdateImage.create("name", "desc", Types.ImageFrequency.ONCE)); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "PUT", "/images/imageId", "{\n" + + " \"name\": \"name\", \n" + + " \"description\": \"desc\",\n" + + " \"frequency\": \"ONCE\"\n" + + "}" + ); + } + + @Test + public void testDeleteImage() throws InterruptedException { + server.enqueue( + new MockResponse().setBody(stringFromResource("/image/get.json")) + ); + Image response = imageApi().delete("imageId"); + + assertNotNull(response); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "DELETE", "/images/imageId"); + } + + @Test + public void testDeleteImage404() throws InterruptedException { + server.enqueue( + new MockResponse().setResponseCode(404)); + Image hdd = imageApi().delete("imageId"); + + assertEquals(hdd, null); + assertEquals(server.getRequestCount(), 1); + assertSent(server, "DELETE", "/images/imageId"); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/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 2b04a80..72e70f2 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,6 +42,7 @@ 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())); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/test/resources/image/get.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/image/get.json b/oneandone/src/test/resources/image/get.json new file mode 100644 index 0000000..f2fca10 --- /dev/null +++ b/oneandone/src/test/resources/image/get.json @@ -0,0 +1,31 @@ +{ + "id": "842F09CAF954298C6A4BCD25E1CA3689", + "name": "My Image 2", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "os_family": "Linux", + "os": "Centos", + "os_version": "Centos6", + "architecture": 64, + "os_image_type": "Personal", + "type": "MY_IMAGE", + "min_hdd_size": 40, + "licenses": [], + "cloudpanel_id": "ap8962D_248", + "state": "ACTIVE", + "description": null, + "hdds": [ + { + "id": "35AAD7EB668D7ECF58AF9413DB127BD3", + "size": 40, + "is_main": true + } + ], + "server_id": "CB8A023E99CE2026981A110018A00764", + "frequency": "ONCE", + "num_images": 1, + "creation_date": "2015-04-14T07:18:20+00:00" +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/test/resources/image/list.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/image/list.json b/oneandone/src/test/resources/image/list.json new file mode 100644 index 0000000..9634a52 --- /dev/null +++ b/oneandone/src/test/resources/image/list.json @@ -0,0 +1,63 @@ +[ + { + "id": "A0FAA4587A7CB6BBAA1EA877C844977E", + "name": "New image name", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "os_family": "Linux", + "os": "Centos", + "os_version": "Centos7", + "architecture": 64, + "os_image_type": "Personal", + "type": "MY_IMAGE", + "min_hdd_size": 40, + "licenses": [], + "cloudpanel_id": "ap99AA4_1", + "state": "DEPLOYING", + "description": "New image description", + "hdds": [ + { + "id": "200FC47388A30470A376913E73B9C32C", + "size": 40, + "is_main": true + } + ], + "server_id": "E83777750130E1111AA89623B9557CAF", + "frequency": "DAILY", + "num_images": 5, + "creation_date": "2015-04-29T07:46:40+00:00" + }, + { + "id": "A0FAA4587A7CB6BBAA1EA877C844977F", + "name": "New image name 2", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "name": "United States" + }, + "os_family": "Linux", + "os": "Centos", + "os_version": "Centos7", + "architecture": 64, + "os_image_type": "Personal", + "type": "MY_IMAGE", + "min_hdd_size": 40, + "licenses": [], + "cloudpanel_id": "ap99AA4_1", + "state": "DEPLOYING", + "description": "New image description", + "hdds": [ + { + "id": "200FC47388A30470A376913E73B9C32D", + "size": 40, + "is_main": true + } + ], + "server_id": "E83777750130E1111AA89623B9557CAF", + "frequency": "DAILY", + "num_images": 5, + "creation_date": "2015-04-29T07:46:40+00:00" + } +] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/f997b061/oneandone/src/test/resources/image/list.options.json ---------------------------------------------------------------------- diff --git a/oneandone/src/test/resources/image/list.options.json b/oneandone/src/test/resources/image/list.options.json new file mode 100644 index 0000000..c0f946b --- /dev/null +++ b/oneandone/src/test/resources/image/list.options.json @@ -0,0 +1,33 @@ +[ + { + "id": "A0FAA4587A7CB6BBAA1EA877C844977E", + "name": "New image name", + "datacenter": { + "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36", + "location": "USA", + "country_code": "US" + }, + "os_family": "Linux", + "os": "Centos", + "os_version": "Centos7", + "architecture": 64, + "os_image_type": "Personal", + "type": "MY_IMAGE", + "min_hdd_size": 40, + "licenses": [], + "cloudpanel_id": "ap99AA4_1", + "state": "DEPLOYING", + "description": "New image description", + "hdds": [ + { + "id": "200FC47388A30470A376913E73B9C32C", + "size": 40, + "is_main": true + } + ], + "server_id": "E83777750130E1111AA89623B9557CAF", + "frequency": "DAILY", + "num_images": 5, + "creation_date": "2015-04-29T07:46:40+00:00" + } +] \ No newline at end of file
