Repository: jclouds-labs-openstack Updated Branches: refs/heads/graduate-swift [created] 2dc604420
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java deleted file mode 100644 index 972a1e7..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java +++ /dev/null @@ -1,506 +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.openstack.swift.v1.features; - -import static com.google.common.base.Charsets.US_ASCII; -import static com.google.common.net.HttpHeaders.EXPIRES; -import static com.google.common.net.HttpHeaders.RANGE; -import static com.google.common.net.HttpHeaders.LAST_MODIFIED; -import static org.jclouds.Constants.PROPERTY_MAX_RETRIES; -import static org.jclouds.Constants.PROPERTY_RETRY_DELAY_START; -import static org.jclouds.Constants.PROPERTY_SO_TIMEOUT; -import static org.jclouds.http.options.GetOptions.Builder.tail; -import static org.jclouds.io.Payloads.newByteSourcePayload; -import static org.jclouds.openstack.swift.v1.features.ContainerApiMockTest.containerResponse; -import static org.jclouds.openstack.swift.v1.options.ListContainerOptions.Builder.marker; -import static org.jclouds.openstack.swift.v1.options.PutOptions.Builder.metadata; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_ACL_ANYBODY_READ; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_READ; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_METADATA_PREFIX; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_REMOVE_METADATA_PREFIX; -import static org.jclouds.util.Strings2.toStringAndClose; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; - -import java.io.IOException; -import java.net.URI; -import java.util.Date; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.http.HttpResponseException; -import org.jclouds.io.Payload; -import org.jclouds.io.payloads.ByteSourcePayload; -import org.jclouds.openstack.swift.v1.CopyObjectException; -import org.jclouds.openstack.swift.v1.SwiftApi; -import org.jclouds.openstack.swift.v1.domain.ObjectList; -import org.jclouds.openstack.swift.v1.domain.SwiftObject; -import org.jclouds.openstack.swift.v1.options.ListContainerOptions; -import org.jclouds.openstack.swift.v1.reference.SwiftHeaders; -import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.ByteSource; -import com.squareup.okhttp.mockwebserver.MockResponse; -import com.squareup.okhttp.mockwebserver.MockWebServer; -import com.squareup.okhttp.mockwebserver.RecordedRequest; - -/** - * Provides mock tests for the {@link ObjectApi}. - */ -@Test(groups = "unit", testName = "ObjectApiMockTest") -public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> { - SimpleDateFormatDateService dates = new SimpleDateFormatDateService(); - - static final Payload PAYLOAD = newByteSourcePayload(ByteSource.wrap("swifty".getBytes())); - - protected ImmutableList<SwiftObject> parsedObjectsForUrl(String baseUri) { - baseUri += "v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer"; - return ImmutableList.of( - SwiftObject.builder() - .name("test_obj_1") - .uri(URI.create(baseUri + "/test_obj_1")) - .etag("4281c348eaf83e70ddce0e07221c3d28") - .payload(payload(14, "application/octet-stream", new Date(1406243553))) - .lastModified(dates.iso8601DateParse("2009-02-03T05:26:32.612278")).build(), - SwiftObject.builder() - .name("test_obj_2") - .uri(URI.create(baseUri + "/test_obj_2")) - .etag("b039efe731ad111bc1b0ef221c3849d0") - .payload(payload(64l, "application/octet-stream", null)) - .lastModified(dates.iso8601DateParse("2009-02-03T05:26:32.612278")).build(), - SwiftObject.builder() - .name("test obj 3") - .uri(URI.create(baseUri + "/test%20obj%203")) - .etag("0b2e80bd0744d9ebb20484149a57c82e") - .payload(payload(14, "application/octet-stream", new Date())) - .lastModified(dates.iso8601DateParse("2014-05-20T05:26:32.612278")).build()); - } - - public void testList() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(containerResponse() - .addHeader(CONTAINER_READ, CONTAINER_ACL_ANYBODY_READ) - .setBody(stringFromResource("/object_list.json")))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - ObjectList objects = api.getObjectApiForRegionAndContainer("DFW", "myContainer").list(); - assertEquals(objects, parsedObjectsForUrl(server.getUrl("/").toString())); - assertEquals(objects.getContainer().getName(), "myContainer"); - assertTrue(objects.getContainer().getAnybodyRead().get()); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - assertRequest(server.takeRequest(), "GET", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/?format=json"); - } finally { - server.shutdown(); - } - } - - public void testListWithOptions() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(containerResponse() - .addHeader(CONTAINER_READ, CONTAINER_ACL_ANYBODY_READ) - .setBody(stringFromResource("/object_list.json")))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - ObjectList objects = api.getObjectApiForRegionAndContainer("DFW", "myContainer").list(new ListContainerOptions()); - assertEquals(objects, parsedObjectsForUrl(server.getUrl("/").toString())); - assertEquals(objects.getContainer().getName(), "myContainer"); - assertTrue(objects.getContainer().getAnybodyRead().get()); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - assertRequest(server.takeRequest(), "GET", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/?format=json"); - } finally { - server.shutdown(); - } - } - - public void testListOptions() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(containerResponse().setBody(stringFromResource("/object_list.json")))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - ObjectList objects = api.getObjectApiForRegionAndContainer("DFW", "myContainer").list(marker("test")); - assertEquals(objects, parsedObjectsForUrl(server.getUrl("/").toString())); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - assertRequest(server.takeRequest(), "GET", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/?format=json&marker=test"); - } finally { - server.shutdown(); - } - } - - public void testCreate() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse() - .setResponseCode(201) - .addHeader("ETag", "d9f5eb4bba4e2f2f046e54611bc8196b")) - .addHeader("Expires", "1406243553")); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertEquals( - api.getObjectApiForRegionAndContainer("DFW", "myContainer").put("myObject", PAYLOAD, - metadata(metadata)), "d9f5eb4bba4e2f2f046e54611bc8196b"); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - RecordedRequest replace = server.takeRequest(); - assertRequest(replace, "PUT", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject"); - - assertEquals(new String(replace.getBody()), "swifty"); - for (Entry<String, String> entry : metadata.entrySet()) { - assertEquals(replace.getHeader(OBJECT_METADATA_PREFIX + entry.getKey().toLowerCase()), entry.getValue()); - } - } finally { - server.shutdown(); - } - } - - public void testCreateWithSpacesAndSpecialCharacters() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(201).addHeader("ETag", "d9f5eb4bba4e2f2f046e54611bc8196b"))); - - final String containerName = "container # ! special"; - final String objectName = "object # ! special"; - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertEquals( - api.getObjectApiForRegionAndContainer("DFW", containerName).put(objectName, PAYLOAD, - metadata(metadata)), "d9f5eb4bba4e2f2f046e54611bc8196b"); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - RecordedRequest replace = server.takeRequest(); - assertRequest(replace, "PUT", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/container%20%23%20%21%20special/object%20%23%20%21%20special"); - - assertEquals(new String(replace.getBody()), "swifty"); - } finally { - server.shutdown(); - } - } - - public void testCreateWith408Retry() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(408))); // 1 - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(408))); // 2 - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(408))); // 3 - - // Finally success - server.enqueue(addCommonHeaders(new MockResponse() - .setResponseCode(201) - .addHeader("ETag", "d9f5eb4bba4e2f2f046e54611bc8196b"))); - - try { - Properties overrides = new Properties(); - overrides.setProperty(PROPERTY_MAX_RETRIES, 5 + ""); - - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift", overrides); - assertEquals( - api.getObjectApiForRegionAndContainer("DFW", "myContainer").put("myObject", PAYLOAD, - metadata(metadata)), "d9f5eb4bba4e2f2f046e54611bc8196b"); - - assertEquals(server.getRequestCount(), 5); - assertAuthentication(server); - RecordedRequest replace = server.takeRequest(); - // This should take a while. - assertRequest(replace, "PUT", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject"); - - assertEquals(new String(replace.getBody()), "swifty"); - for (Entry<String, String> entry : metadata.entrySet()) { - assertEquals(replace.getHeader(OBJECT_METADATA_PREFIX + entry.getKey().toLowerCase()), entry.getValue()); - } - } finally { - server.shutdown(); - } - } - - /** upper-cases first char, and lower-cases rest!! **/ - public void testGetWithoutKnowingServerMessesWithMetadataKeyCaseFormat() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(objectResponse() - // note silly casing - .addHeader(OBJECT_METADATA_PREFIX + "Apiname", "swift") - .addHeader(OBJECT_METADATA_PREFIX + "Apiversion", "v1.1"))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - SwiftObject object = api.getObjectApiForRegionAndContainer("DFW", "myContainer").getWithoutBody("myObject"); - assertEquals(object.getName(), "myObject"); - assertEquals(object.getETag(), "8a964ee2a5e88be344f36c22562a6486"); - assertEquals(object.getLastModified(), dates.rfc822DateParse("Fri, 12 Jun 2010 13:40:18 GMT")); - for (Entry<String, String> entry : object.getMetadata().entrySet()) { - assertEquals(object.getMetadata().get(entry.getKey().toLowerCase()), entry.getValue()); - } - assertEquals(object.getPayload().getContentMetadata().getContentType(), "text/plain; charset=UTF-8"); - assertEquals(toStringAndClose(object.getPayload().openStream()), ""); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - assertRequest(server.takeRequest(), "HEAD", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject"); - } finally { - server.shutdown(); - } - } - - public void testGet() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(objectResponse() - // note silly casing - .addHeader(OBJECT_METADATA_PREFIX + "Apiname", "swift") - .addHeader(OBJECT_METADATA_PREFIX + "Apiversion", "v1.1"))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - SwiftObject object = api.getObjectApiForRegionAndContainer("DFW", "myContainer").get("myObject", tail(1)); - assertEquals(object.getName(), "myObject"); - assertEquals(object.getETag(), "8a964ee2a5e88be344f36c22562a6486"); - assertEquals(object.getLastModified(), dates.rfc822DateParse("Fri, 12 Jun 2010 13:40:18 GMT")); - for (Entry<String, String> entry : object.getMetadata().entrySet()) { - assertEquals(object.getMetadata().get(entry.getKey().toLowerCase()), entry.getValue()); - } - - Payload payload = object.getPayload(); - assertEquals(payload.getContentMetadata().getContentLength(), new Long(4)); - assertEquals(payload.getContentMetadata().getContentType(), "text/plain; charset=UTF-8"); - assertEquals(payload.getContentMetadata().getExpires(), dates.rfc822DateParse("Wed, 23 Jul 2014 14:00:00 GMT")); - - assertEquals(toStringAndClose(payload.openStream()), "ABCD"); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest get = server.takeRequest(); - assertEquals(get.getRequestLine(), - "GET /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - } finally { - server.shutdown(); - } - } - - @Test(expectedExceptions = HttpResponseException.class, timeOut = 20000) - public void testCreateWithTimeout() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - // Typically we would enqueue a response for the put. However, in this case, test the timeout by not providing one. - - try { - Properties overrides = new Properties(); - - overrides.setProperty(PROPERTY_SO_TIMEOUT, 5000 + ""); // This time-outs the connection - overrides.setProperty(PROPERTY_MAX_RETRIES, 0 + ""); // 0 retries == 1 try. Semantics. - overrides.setProperty(PROPERTY_RETRY_DELAY_START, 0 + ""); // exponential backoff already working for this call. This is the delay BETWEEN attempts. - - final SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift", overrides); - - api.getObjectApiForRegionAndContainer("DFW", "myContainer").put("myObject", new ByteSourcePayload(ByteSource.wrap("swifty".getBytes())), metadata(metadata)); - - fail("testReplaceTimeout test should have failed with an HttpResponseException."); - } finally { - server.shutdown(); - } - } - - public void testUpdateMetadata() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(objectResponse() - .addHeader(OBJECT_METADATA_PREFIX + "ApiName", "swift") - .addHeader(OBJECT_METADATA_PREFIX + "ApiVersion", "v1.1"))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertTrue(api.getObjectApiForRegionAndContainer("DFW", "myContainer").updateMetadata("myObject", metadata)); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest replaceRequest = server.takeRequest(); - assertEquals(replaceRequest.getRequestLine(), - "POST /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - for (Entry<String, String> entry : metadata.entrySet()) { - assertEquals(replaceRequest.getHeader(OBJECT_METADATA_PREFIX + entry.getKey().toLowerCase()), entry.getValue()); - } - } finally { - server.shutdown(); - } - } - - public void testUpdateMetadataContentType() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(objectResponse() - .addHeader(OBJECT_METADATA_PREFIX + "ApiName", "swift") - .addHeader(OBJECT_METADATA_PREFIX + "ApiVersion", "v1.1"))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertTrue(api.getObjectApiForRegionAndContainer("DFW", "myContainer").updateMetadata("myObject", metadata)); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest replaceRequest = server.takeRequest(); - assertEquals(replaceRequest.getHeaders("Content-Type").get(0), "", "updateMetadata should send an empty content-type header, but sent " - + replaceRequest.getHeaders("Content-Type").get(0).toString()); - - assertEquals(replaceRequest.getRequestLine(), - "POST /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - for (Entry<String, String> entry : metadata.entrySet()) { - assertEquals(replaceRequest.getHeader(OBJECT_METADATA_PREFIX + entry.getKey().toLowerCase()), entry.getValue()); - } - } finally { - server.shutdown(); - } - } - - public void testDeleteMetadata() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(objectResponse())); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertTrue(api.getObjectApiForRegionAndContainer("DFW", "myContainer").deleteMetadata("myObject", metadata)); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest deleteRequest = server.takeRequest(); - assertEquals(deleteRequest.getRequestLine(), - "POST /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - for (String key : metadata.keySet()) { - assertEquals(deleteRequest.getHeader(OBJECT_REMOVE_METADATA_PREFIX + key.toLowerCase()), "ignored"); - } - } finally { - server.shutdown(); - } - } - - public void testDelete() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(204))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - api.getObjectApiForRegionAndContainer("DFW", "myContainer").delete("myObject"); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest deleteRequest = server.takeRequest(); - assertEquals(deleteRequest.getRequestLine(), - "DELETE /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - } finally { - server.shutdown(); - } - } - - public void testAlreadyDeleted() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - api.getObjectApiForRegionAndContainer("DFW", "myContainer").delete("myObject"); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest deleteRequest = server.takeRequest(); - assertEquals(deleteRequest.getRequestLine(), - "DELETE /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - } finally { - server.shutdown(); - } - } - - public void testCopyObject() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(201) - .addHeader(SwiftHeaders.OBJECT_COPY_FROM, "/bar/foo.txt"))); - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertTrue(api.getObjectApiForRegionAndContainer("DFW", "foo") - .copy("bar.txt", "bar", "foo.txt")); - - assertEquals(server.getRequestCount(), 2); - assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - - RecordedRequest copyRequest = server.takeRequest(); - assertEquals(copyRequest.getRequestLine(), - "PUT /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/foo/bar.txt HTTP/1.1"); - } finally { - server.shutdown(); - } - } - - @Test(expectedExceptions = CopyObjectException.class) - public void testCopyObjectFail() throws InterruptedException, IOException { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404) - .addHeader(SwiftHeaders.OBJECT_COPY_FROM, "/bogus/foo.txt"))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - // the following line will throw the CopyObjectException - api.getObjectApiForRegionAndContainer("DFW", "foo").copy("bar.txt", "bogus", "foo.txt"); - } finally { - server.shutdown(); - } - } - - private static final Map<String, String> metadata = ImmutableMap.of("ApiName", "swift", "ApiVersion", "v1.1"); - - static MockResponse objectResponse() { - return new MockResponse() - .addHeader("Last-Modified", "Fri, 12 Jun 2010 13:40:18 GMT") - .addHeader("ETag", "8a964ee2a5e88be344f36c22562a6486") - // TODO: MWS doesn't allow you to return content length w/o content - // on HEAD! - .setBody("ABCD".getBytes(US_ASCII)) - .addHeader("Content-Length", "4") - .addHeader("Content-Type", "text/plain; charset=UTF-8") - .addHeader(EXPIRES, "Wed, 23 Jul 2014 14:00:00 GMT"); - } - - static Payload payload(long bytes, String contentType, Date expires) { - Payload payload = newByteSourcePayload(ByteSource.empty()); - payload.getContentMetadata().setContentLength(bytes); - payload.getContentMetadata().setContentType(contentType); - payload.getContentMetadata().setExpires(expires); - return payload; - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiLiveTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiLiveTest.java deleted file mode 100644 index 28a5c8d..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiLiveTest.java +++ /dev/null @@ -1,129 +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.openstack.swift.v1.features; - -import static java.lang.String.format; -import static org.jclouds.io.Payloads.newByteSourcePayload; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; - -import java.util.Arrays; -import java.util.List; -import java.util.UUID; - -import org.jclouds.openstack.swift.v1.SwiftApi; -import org.jclouds.openstack.swift.v1.domain.Segment; -import org.jclouds.openstack.swift.v1.domain.SwiftObject; -import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.ByteSource; - -@Test(groups = "live", testName = "StaticLargeObjectApiLiveTest") -public class StaticLargeObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> { - - private String name = getClass().getSimpleName(); - private String containerName = getClass().getSimpleName() + "Container"; - private byte[] megOf1s; - private byte[] megOf2s; - - public void testNotPresentWhenDeleting() throws Exception { - for (String regionId : regions) { - api.getStaticLargeObjectApiForRegionAndContainer(regionId, containerName).delete(UUID.randomUUID().toString()); - } - } - - public void testReplaceManifest() throws Exception { - for (String regionId : regions) { - ObjectApi objectApi = api.getObjectApiForRegionAndContainer(regionId, containerName); - - String etag1s = objectApi.put(name + "/1", newByteSourcePayload(ByteSource.wrap(megOf1s))); - assertMegabyteAndETagMatches(regionId, name + "/1", etag1s); - - String etag2s = objectApi.put(name + "/2", newByteSourcePayload(ByteSource.wrap(megOf2s))); - assertMegabyteAndETagMatches(regionId, name + "/2", etag2s); - - List<Segment> segments = ImmutableList.<Segment> builder() - .add(Segment.builder() - .path(format("%s/%s/1", containerName, name)).etag(etag1s).sizeBytes(1024 * 1024) - .build()) - .add(Segment.builder() - .path(format("%s/%s/2", containerName, name)).etag(etag2s).sizeBytes(1024 * 1024) - .build()) - .build(); - - String etagOfEtags = api.getStaticLargeObjectApiForRegionAndContainer(regionId, containerName).replaceManifest( - name, segments, ImmutableMap.of("myfoo", "Bar")); - - assertNotNull(etagOfEtags); - - SwiftObject bigObject = api.getObjectApiForRegionAndContainer(regionId, containerName).get(name); - assertEquals(bigObject.getETag(), etagOfEtags); - assertEquals(bigObject.getPayload().getContentMetadata().getContentLength(), new Long(2 * 1024 * 1024)); - assertEquals(bigObject.getMetadata(), ImmutableMap.of("myfoo", "Bar")); - - // segments are visible - assertEquals(api.getContainerApiForRegion(regionId).get(containerName).getObjectCount(), 3); - } - } - - @Test(dependsOnMethods = "testReplaceManifest") - public void testDelete() throws Exception { - for (String regionId : regions) { - api.getStaticLargeObjectApiForRegionAndContainer(regionId, containerName).delete(name); - assertEquals(api.getContainerApiForRegion(regionId).get(containerName).getObjectCount(), 0); - } - } - - protected void assertMegabyteAndETagMatches(String regionId, String name, String etag1s) { - SwiftObject object1s = api.getObjectApiForRegionAndContainer(regionId, containerName).get(name); - assertEquals(object1s.getETag(), etag1s); - assertEquals(object1s.getPayload().getContentMetadata().getContentLength(), new Long(1024 * 1024)); - } - - @Override - @BeforeClass(groups = "live") - public void setup() { - super.setup(); - for (String regionId : regions) { - boolean created = api.getContainerApiForRegion(regionId).create(containerName); - if (!created) { - deleteAllObjectsInContainer(regionId, containerName); - } - } - - megOf1s = new byte[1024 * 1024]; - megOf2s = new byte[1024 * 1024]; - - Arrays.fill(megOf1s, (byte) 1); - Arrays.fill(megOf2s, (byte) 2); - } - - @Override - @AfterClass(groups = "live") - public void tearDown() { - for (String regionId : regions) { - deleteAllObjectsInContainer(regionId, containerName); - api.getContainerApiForRegion(regionId).deleteIfEmpty(containerName); - } - super.tearDown(); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiMockTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiMockTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiMockTest.java deleted file mode 100644 index 0d150d5..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiMockTest.java +++ /dev/null @@ -1,107 +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.openstack.swift.v1.features; - -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_METADATA_PREFIX; -import static org.testng.Assert.assertEquals; - -import org.jclouds.openstack.swift.v1.SwiftApi; -import org.jclouds.openstack.swift.v1.domain.Segment; -import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.net.HttpHeaders; -import com.squareup.okhttp.mockwebserver.MockResponse; -import com.squareup.okhttp.mockwebserver.MockWebServer; -import com.squareup.okhttp.mockwebserver.RecordedRequest; - -@Test(groups = "unit", testName = "StaticLargeObjectApiMockTest") -public class StaticLargeObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> { - - public void testReplaceManifest() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().addHeader(HttpHeaders.ETAG, "\"abcd\""))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - assertEquals( - api.getStaticLargeObjectApiForRegionAndContainer("DFW", "myContainer").replaceManifest( - "myObject", - ImmutableList - .<Segment> builder() - .add(Segment.builder().path("/mycontainer/objseg1").etag("0228c7926b8b642dfb29554cd1f00963") - .sizeBytes(1468006).build()) - .add(Segment.builder().path("/mycontainer/pseudodir/seg-obj2") - .etag("5bfc9ea51a00b790717eeb934fb77b9b").sizeBytes(1572864).build()) - .add(Segment.builder().path("/other-container/seg-final") - .etag("b9c3da507d2557c1ddc51f27c54bae51").sizeBytes(256).build()).build(), - ImmutableMap.of("MyFoo", "Bar")), "abcd"); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - - RecordedRequest replaceRequest = server.takeRequest(); - assertRequest(replaceRequest, "PUT", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject?multipart-manifest=put"); - assertEquals(replaceRequest.getHeader(OBJECT_METADATA_PREFIX + "myfoo"), "Bar"); - assertEquals( - new String(replaceRequest.getBody()), - "[{\"path\":\"/mycontainer/objseg1\",\"etag\":\"0228c7926b8b642dfb29554cd1f00963\",\"size_bytes\":1468006}," + - "{\"path\":\"/mycontainer/pseudodir/seg-obj2\",\"etag\":\"5bfc9ea51a00b790717eeb934fb77b9b\",\"size_bytes\":1572864}," + - "{\"path\":\"/other-container/seg-final\",\"etag\":\"b9c3da507d2557c1ddc51f27c54bae51\",\"size_bytes\":256}]"); - } finally { - server.shutdown(); - } - } - - public void testDelete() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(204))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - api.getStaticLargeObjectApiForRegionAndContainer("DFW", "myContainer").delete("myObject"); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - assertRequest(server.takeRequest(), "DELETE", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject?multipart-manifest=delete"); - - } finally { - server.shutdown(); - } - } - - public void testAlreadyDeleted() throws Exception { - MockWebServer server = mockOpenStackServer(); - server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); - server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404))); - - try { - SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); - api.getStaticLargeObjectApiForRegionAndContainer("DFW", "myContainer").delete("myObject"); - - assertEquals(server.getRequestCount(), 2); - assertAuthentication(server); - assertRequest(server.takeRequest(), "DELETE", "/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject?multipart-manifest=delete"); - } finally { - server.shutdown(); - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/UrlEncodeAndJoinOnNewlineTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/UrlEncodeAndJoinOnNewlineTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/UrlEncodeAndJoinOnNewlineTest.java deleted file mode 100644 index c811571..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/UrlEncodeAndJoinOnNewlineTest.java +++ /dev/null @@ -1,44 +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.openstack.swift.v1.features; - -import static org.testng.Assert.assertEquals; - -import org.jclouds.http.HttpRequest; -import org.jclouds.openstack.swift.v1.features.BulkApi.UrlEncodeAndJoinOnNewline; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; - -@Test(groups = "unit", testName = "UrlEncodeAndJoinOnNewlineTest") -public class UrlEncodeAndJoinOnNewlineTest { - UrlEncodeAndJoinOnNewline binder = new UrlEncodeAndJoinOnNewline(); - - public void urlEncodesPaths() { - HttpRequest request = HttpRequest.builder() - .method("DELETE") - .endpoint("https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_XXXXXX/") - .addQueryParam("bulk-delete").build(); - - request = binder.bindToRequest(request, ImmutableList.<String> builder() - .add("/v1/12345678912345/mycontainer/home/xx<yy") - .add("/v1/12345678912345/mycontainer/../image.gif").build()); - - assertEquals(request.getPayload().getRawContent(), "/v1/12345678912345/mycontainer/home/xx%3Cyy\n" - + "/v1/12345678912345/mycontainer/../image.gif"); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/internal/BaseSwiftApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/internal/BaseSwiftApiLiveTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/internal/BaseSwiftApiLiveTest.java deleted file mode 100644 index 24c0fcd..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/internal/BaseSwiftApiLiveTest.java +++ /dev/null @@ -1,88 +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.openstack.swift.v1.internal; - -import static com.google.common.base.Preconditions.checkState; - -import java.util.List; -import java.util.Properties; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -import org.jclouds.apis.BaseApiLiveTest; -import org.jclouds.location.reference.LocationConstants; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties; -import org.jclouds.openstack.swift.v1.SwiftApi; -import org.jclouds.openstack.swift.v1.domain.BulkDeleteResponse; -import org.jclouds.openstack.swift.v1.domain.ObjectList; -import org.jclouds.openstack.swift.v1.domain.SwiftObject; -import org.jclouds.openstack.swift.v1.options.ListContainerOptions; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import com.google.common.base.Function; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import com.google.common.util.concurrent.Uninterruptibles; - -@Test(groups = "live", testName = "BaseSwiftApiLiveTest") -public abstract class BaseSwiftApiLiveTest<A extends SwiftApi> extends BaseApiLiveTest<A> { - - protected Set<String> regions; - - protected BaseSwiftApiLiveTest() { - provider = "openstack-swift"; - } - - @Override - @BeforeClass(groups = "live") - public void setup() { - super.setup(); - String providedRegion = System.getProperty("test." + LocationConstants.PROPERTY_REGION); - if (providedRegion != null) { - regions = ImmutableSet.of(providedRegion); - } else { - regions = api.getConfiguredRegions(); - } - } - - @Override - protected Properties setupProperties() { - Properties props = super.setupProperties(); - setIfTestSystemPropertyPresent(props, KeystoneProperties.CREDENTIAL_TYPE); - setIfTestSystemPropertyPresent(props, LocationConstants.PROPERTY_REGION); - return props; - } - - protected void deleteAllObjectsInContainer(String regionId, final String containerName) { - Uninterruptibles.sleepUninterruptibly(10, TimeUnit.SECONDS); - - ObjectList objects = api.getObjectApiForRegionAndContainer(regionId, containerName).list(new ListContainerOptions()); - if (objects == null) { - return; - } - List<String> pathsToDelete = Lists.transform(objects, new Function<SwiftObject, String>() { - public String apply(SwiftObject input) { - return containerName + "/" + input.getName(); - } - }); - if (!pathsToDelete.isEmpty()) { - BulkDeleteResponse response = api.getBulkApiForRegion(regionId).bulkDelete(pathsToDelete); - checkState(response.getErrors().isEmpty(), "Errors deleting paths %s: %s", pathsToDelete, response); - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/CreateContainerOptionsTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/CreateContainerOptionsTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/CreateContainerOptionsTest.java deleted file mode 100644 index 1da648b..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/CreateContainerOptionsTest.java +++ /dev/null @@ -1,69 +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.openstack.swift.v1.options; - -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_ACL_ANYBODY_READ; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_METADATA_PREFIX; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_READ; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.VERSIONS_LOCATION; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_QUOTA_BYTES; -import static org.testng.Assert.assertEquals; - -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; - -/** - * Tests behavior of {@link CreateContainerOptions}. - */ -@Test(groups = "unit") -public class CreateContainerOptionsTest { - - public void testMetadata() { - CreateContainerOptions options = - new CreateContainerOptions().metadata(ImmutableMap.of("ApiName", "swift", "metaKey2", "Value2", "METAKEY3", "VALUE 3 ")); - - Multimap<String, String> headers = options.buildRequestHeaders(); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "apiname"), ImmutableList.of("swift")); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "metakey2"), ImmutableList.of("Value2")); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "metakey3"), ImmutableList.of("VALUE 3 ")); - } - - public void testHeaders() { - CreateContainerOptions options = - new CreateContainerOptions().headers(ImmutableMultimap.of(CONTAINER_QUOTA_BYTES, "5120", CONTAINER_METADATA_PREFIX + "apiname", "swift")); - - Multimap<String, String> headers = options.buildRequestHeaders(); - assertEquals(headers.get(CONTAINER_QUOTA_BYTES), ImmutableList.of("5120")); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "apiname"), ImmutableList.of("swift")); - } - - public void testAnybodyRead() { - CreateContainerOptions options = - new CreateContainerOptions().headers(ImmutableMultimap.of(CONTAINER_READ, CONTAINER_ACL_ANYBODY_READ)); - assertEquals(options.buildRequestHeaders().get(CONTAINER_READ), ImmutableList.of(CONTAINER_ACL_ANYBODY_READ)); - } - - public void testVersionsLocation() { - CreateContainerOptions options = - new CreateContainerOptions().headers(ImmutableMultimap.of(VERSIONS_LOCATION, "containerWithVersions")); - assertEquals(options.buildRequestHeaders().get(VERSIONS_LOCATION), ImmutableList.of("containerWithVersions")); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/PutOptionsTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/PutOptionsTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/PutOptionsTest.java deleted file mode 100644 index fddf4cd..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/PutOptionsTest.java +++ /dev/null @@ -1,48 +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.openstack.swift.v1.options; - -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_METADATA_PREFIX; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_DELETE_AT; -import static org.testng.Assert.assertEquals; - -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMultimap; - -/** - * Tests behavior of {@link PutOptions}. - */ -@Test(groups = "unit") -public class PutOptionsTest { - - public void testPutMetadata() { - PutOptions options = - new PutOptions().metadata(ImmutableMap.of("ApiName", "swift")); - assertEquals(options.buildRequestHeaders().get(OBJECT_METADATA_PREFIX + "apiname"), ImmutableList.of("swift")); - - } - - public void testPutHeaders() { - PutOptions options = - new PutOptions().headers(ImmutableMultimap.of(OBJECT_DELETE_AT, "123456789")); - assertEquals(options.buildRequestHeaders().get(OBJECT_DELETE_AT), ImmutableList.of("123456789")); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/UpdateContainerOptionsTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/UpdateContainerOptionsTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/UpdateContainerOptionsTest.java deleted file mode 100644 index 00f95f7..0000000 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/options/UpdateContainerOptionsTest.java +++ /dev/null @@ -1,122 +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.openstack.swift.v1.options; - -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_ACL_ANYBODY_READ; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_METADATA_PREFIX; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_QUOTA_BYTES; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_READ; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.VERSIONS_LOCATION; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_DIRECTORY_TYPE; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_ERROR; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_INDEX; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_LISTINGS; -import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_LISTINGS_CSS; -import static org.testng.Assert.assertEquals; - -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; -import com.google.common.net.MediaType; - -/** - * Tests behavior of {@link UpdateContainerOptions}. - */ -@Test(groups = "unit") -public class UpdateContainerOptionsTest { - - public void testAnybodyRead() { - UpdateContainerOptions options = new UpdateContainerOptions().anybodyRead(); - assertEquals(options.buildRequestHeaders().get(CONTAINER_READ), ImmutableList.of(CONTAINER_ACL_ANYBODY_READ)); - } - - public void testAnybodyReadViaHeaders() { - UpdateContainerOptions options = - new UpdateContainerOptions().headers(ImmutableMultimap.of(CONTAINER_READ, CONTAINER_ACL_ANYBODY_READ)); - assertEquals(options.buildRequestHeaders().get(CONTAINER_READ), ImmutableList.of(CONTAINER_ACL_ANYBODY_READ)); - } - - public void testVersionsLocation() { - UpdateContainerOptions options = new UpdateContainerOptions().versionsLocation("containerWithVersions"); - assertEquals(options.buildRequestHeaders().get(VERSIONS_LOCATION), ImmutableList.of("containerWithVersions")); - } - - public void testVersionsLocationViaHeaders() { - UpdateContainerOptions options = - new UpdateContainerOptions().headers(ImmutableMultimap.of(VERSIONS_LOCATION, "containerWithVersions")); - assertEquals(options.buildRequestHeaders().get(VERSIONS_LOCATION), ImmutableList.of("containerWithVersions")); - } - - public void testMetadata() { - UpdateContainerOptions options = - new UpdateContainerOptions().metadata(ImmutableMap.of("ApiName", "swift", "metaKey2", "Value2", "METAKEY3", "VALUE 3 ")); - - Multimap<String, String> headers = options.buildRequestHeaders(); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "apiname"), ImmutableList.of("swift")); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "metakey2"), ImmutableList.of("Value2")); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "metakey3"), ImmutableList.of("VALUE 3 ")); - } - - public void testHeaders() { - UpdateContainerOptions options = - new UpdateContainerOptions().headers(ImmutableMultimap.of(CONTAINER_QUOTA_BYTES, "5120", CONTAINER_METADATA_PREFIX + "apiname", "swift")); - - Multimap<String, String> headers = options.buildRequestHeaders(); - assertEquals(headers.get(CONTAINER_QUOTA_BYTES), ImmutableList.of("5120")); - assertEquals(headers.get(CONTAINER_METADATA_PREFIX + "apiname"), ImmutableList.of("swift")); - } - - public void testStaticWebsiteDirectoryType() { - MediaType appDir = MediaType.create("application", "directory"); - Multimap<String, String> headers = ImmutableMultimap.of(STATIC_WEB_DIRECTORY_TYPE, appDir.toString()); - UpdateContainerOptions options = new UpdateContainerOptions().headers(headers); - assertEquals(options.buildRequestHeaders().get(STATIC_WEB_DIRECTORY_TYPE), ImmutableList.of(appDir.toString())); - } - - public void testStaticWebsiteIndexPage() { - Multimap<String, String> headers = ImmutableMultimap.of(STATIC_WEB_INDEX, "index.html"); - UpdateContainerOptions options = new UpdateContainerOptions().headers(headers); - assertEquals(options.buildRequestHeaders().get(STATIC_WEB_INDEX), ImmutableList.of("index.html")); - } - - public void testStaticWebsiteErrorPage() { - Multimap<String, String> headers = ImmutableMultimap.of(STATIC_WEB_ERROR, "error.html"); - UpdateContainerOptions options = new UpdateContainerOptions().headers(headers); - assertEquals(options.buildRequestHeaders().get(STATIC_WEB_ERROR), ImmutableList.of("error.html")); - } - - public void testEnableStaticWebsiteListings() { - Multimap<String, String> headers = ImmutableMultimap.of(STATIC_WEB_LISTINGS, "true"); - UpdateContainerOptions options = new UpdateContainerOptions().headers(headers); - assertEquals(options.buildRequestHeaders().get(STATIC_WEB_LISTINGS), ImmutableList.of("true")); - } - - public void testDiableStaticWebsiteListings() { - Multimap<String, String> headers = ImmutableMultimap.of(STATIC_WEB_LISTINGS, "false"); - UpdateContainerOptions options = new UpdateContainerOptions().headers(headers); - assertEquals(options.buildRequestHeaders().get(STATIC_WEB_LISTINGS), ImmutableList.of("false")); - } - - public void testStaticWebsiteListingsCSS() { - Multimap<String, String> headers = ImmutableMultimap.of(STATIC_WEB_LISTINGS_CSS, "listings.css"); - UpdateContainerOptions options = new UpdateContainerOptions().headers(headers); - assertEquals(options.buildRequestHeaders().get(STATIC_WEB_LISTINGS_CSS), ImmutableList.of("listings.css")); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/resources/access.json ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/resources/access.json b/openstack-swift/src/test/resources/access.json deleted file mode 100644 index 8e0a69c..0000000 --- a/openstack-swift/src/test/resources/access.json +++ /dev/null @@ -1,249 +0,0 @@ -{ - "access":{ - "token":{ - "id":"bb03a23aa8271291a7aaa9aaa2aaaaaa", - "expires":"2013-08-02T16:55:24.229-05:00", - "tenant":{ - "id":"888888", - "name":"888888" - }, - "RAX-AUTH:authenticatedBy":[ - "PASSWORD" - ] - }, - "serviceCatalog":[ - { - "name":"cloudFilesCDN", - "endpoints":[ - { - "region":"ORD", - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "publicURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9" - }, - { - "region":"DFW", - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "publicURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9" - }, - { - "region":"SYD", - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "publicURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9" - } - ], - "type":"rax:object-cdn" - }, - { - "name":"cloudFiles", - "endpoints":[ - { - "region":"ORD", - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "publicURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "internalURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9" - }, - { - "region":"DFW", - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "publicURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "internalURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9" - }, - { - "region":"SYD", - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "publicURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "internalURL":"URL/v1\/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9" - } - ], - "type":"object-store" - }, - { - "name":"cloudLoadBalancers", - "endpoints":[ - { - "region":"SYD", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - }, - { - "region":"DFW", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - }, - { - "region":"ORD", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - } - ], - "type":"rax:load-balancer" - }, - { - "name":"cloudDatabases", - "endpoints":[ - { - "region":"SYD", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - }, - { - "region":"DFW", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - }, - { - "region":"ORD", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - } - ], - "type":"rax:database" - }, - { - "name":"cloudBlockStorage", - "endpoints":[ - { - "region":"SYD", - "tenantId":"888888", - "publicURL":"URL/v1\/888888" - }, - { - "region":"DFW", - "tenantId":"888888", - "publicURL":"URL/v1\/888888" - }, - { - "region":"ORD", - "tenantId":"888888", - "publicURL":"URL/v1\/888888" - } - ], - "type":"volume" - }, - { - "name":"cloudServersOpenStack", - "endpoints":[ - { - "region":"SYD", - "tenantId":"888888", - "publicURL":"URL/v2\/888888", - "versionInfo":"https:\/\/syd.servers.api.rackspacecloud.com\/v2", - "versionList":"https:\/\/syd.servers.api.rackspacecloud.com\/", - "versionId":"2" - }, - { - "region":"DFW", - "tenantId":"888888", - "publicURL":"URL/v2\/888888", - "versionInfo":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2", - "versionList":"https:\/\/dfw.servers.api.rackspacecloud.com\/", - "versionId":"2" - }, - { - "region":"ORD", - "tenantId":"888888", - "publicURL":"URL/v2\/888888", - "versionInfo":"https:\/\/ord.servers.api.rackspacecloud.com\/v2", - "versionList":"https:\/\/ord.servers.api.rackspacecloud.com\/", - "versionId":"2" - } - ], - "type":"compute" - }, - { - "name":"autoscale", - "endpoints":[ - { - "region":"ORD", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888", - "versionInfo":null, - "versionList":null, - "versionId":"1.0" - }, - { - "region":"DFW", - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888", - "versionInfo":null, - "versionList":null, - "versionId":"1.0" - } - ], - "type":"rax:autoscale" - }, - { - "name":"cloudMonitoring", - "endpoints":[ - { - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - } - ], - "type":"rax:monitor" - }, - { - "name":"cloudBackup", - "endpoints":[ - { - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - } - ], - "type":"rax:backup" - }, - { - "name":"cloudServers", - "endpoints":[ - { - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888", - "versionInfo":"https:\/\/servers.api.rackspacecloud.com\/v1.0", - "versionList":"https:\/\/servers.api.rackspacecloud.com\/", - "versionId":"1.0" - } - ], - "type":"compute" - }, - { - "name":"cloudDNS", - "endpoints":[ - { - "tenantId":"888888", - "publicURL":"URL/v1.0\/888888" - } - ], - "type":"rax:dns" - } - ], - "user":{ - "id":"335853", - "roles":[ - { - "id":"10000150", - "description":"Checkmate Access role", - "name":"checkmate" - }, - { - "tenantId":"MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9", - "id":"5", - "description":"A Role that allows a user access to keystone Service methods", - "name":"object-store:default" - }, - { - "tenantId":"888888", - "id":"6", - "description":"A Role that allows a user access to keystone Service methods", - "name":"compute:default" - }, - { - "id":"3", - "description":"User Admin Role.", - "name":"identity:user-admin" - } - ], - "name":"test", - "RAX-AUTH:defaultRegion":"ORD" - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/resources/container_list.json ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/resources/container_list.json b/openstack-swift/src/test/resources/container_list.json deleted file mode 100644 index 554f5de..0000000 --- a/openstack-swift/src/test/resources/container_list.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "name": "test_container_1", - "count": 2, - "bytes": 78 - }, - { - "name": "test_container_2", - "count": 1, - "bytes": 17 - } -] http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/resources/logback.xml ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/resources/logback.xml b/openstack-swift/src/test/resources/logback.xml deleted file mode 100644 index ce891f1..0000000 --- a/openstack-swift/src/test/resources/logback.xml +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.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. - ---> -<configuration scan="false"> - <appender name="FILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds.log</file> - - <encoder> - <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern> - </encoder> - </appender> - - <appender name="WIREFILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds-wire.log</file> - - <encoder> - <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern> - </encoder> - </appender> - - <appender name="BLOBSTOREFILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds-blobstore.log</file> - - <encoder> - <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern> - </encoder> - </appender> - - <root> - <level value="warn" /> - </root> - - <logger name="org.jclouds"> - <level value="DEBUG" /> - <appender-ref ref="FILE" /> - </logger> - -<!-- - <logger name="jclouds.wire"> - <level value="DEBUG" /> - <appender-ref ref="WIREFILE" /> - </logger> ---> - - <logger name="jclouds.headers"> - <level value="DEBUG" /> - <appender-ref ref="WIREFILE" /> - </logger> - - <logger name="jclouds.blobstore"> - <level value="DEBUG" /> - <appender-ref ref="BLOBSTOREFILE" /> - </logger> - -</configuration> http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/openstack-swift/src/test/resources/object_list.json ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/resources/object_list.json b/openstack-swift/src/test/resources/object_list.json deleted file mode 100644 index afe8c77..0000000 --- a/openstack-swift/src/test/resources/object_list.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "name": "test_obj_1", - "hash": "4281c348eaf83e70ddce0e07221c3d28", - "bytes": 14, - "content_type": "application/octet-stream", - "last_modified": "2009-02-03T05:26:32.612278" - }, - { - "name": "test_obj_2", - "hash": "b039efe731ad111bc1b0ef221c3849d0", - "bytes": 64, - "content_type": "application/octet-stream", - "last_modified": "2009-02-03T05:26:32.612278" - }, - { - "name": "test obj 3", - "hash": "0b2e80bd0744d9ebb20484149a57c82e", - "bytes": 123, - "content_type": "application/octet-stream", - "last_modified": "2014-05-20T05:26:32.612278" - } -] http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b86ff9e..226c583 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,6 @@ <module>openstack-glance</module> <module>openstack-heat</module> <module>openstack-neutron</module> - <module>openstack-swift</module> <module>openstack-marconi</module> <module>rackspace-autoscale</module> <module>rackspace-autoscale-uk</module> http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/rackspace-cloudfiles-uk/pom.xml ---------------------------------------------------------------------- diff --git a/rackspace-cloudfiles-uk/pom.xml b/rackspace-cloudfiles-uk/pom.xml index abdb89a..07ee0cb 100644 --- a/rackspace-cloudfiles-uk/pom.xml +++ b/rackspace-cloudfiles-uk/pom.xml @@ -78,14 +78,14 @@ <dependencies> <dependency> - <groupId>org.apache.jclouds.labs</groupId> + <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${project.parent.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> - <groupId>org.apache.jclouds.labs</groupId> + <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${project.parent.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/rackspace-cloudfiles-us/pom.xml ---------------------------------------------------------------------- diff --git a/rackspace-cloudfiles-us/pom.xml b/rackspace-cloudfiles-us/pom.xml index f2282fd..dc48777 100644 --- a/rackspace-cloudfiles-us/pom.xml +++ b/rackspace-cloudfiles-us/pom.xml @@ -78,14 +78,14 @@ <dependencies> <dependency> - <groupId>org.apache.jclouds.labs</groupId> + <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${project.parent.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> - <groupId>org.apache.jclouds.labs</groupId> + <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${project.parent.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/2dc60442/rackspace-cloudfiles/pom.xml ---------------------------------------------------------------------- diff --git a/rackspace-cloudfiles/pom.xml b/rackspace-cloudfiles/pom.xml index ff2a3f3..ef59804 100644 --- a/rackspace-cloudfiles/pom.xml +++ b/rackspace-cloudfiles/pom.xml @@ -73,12 +73,12 @@ <dependencies> <dependency> - <groupId>org.apache.jclouds.labs</groupId> + <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${project.parent.version}</version> </dependency> <dependency> - <groupId>org.apache.jclouds.labs</groupId> + <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${project.parent.version}</version> <type>test-jar</type>
