From 9cc80ca7aaa76b1ae7757b4cd0792b88d21a1d89 Mon Sep 17 00:00:00 2001 From: Rainbowbreeze Date: Tue, 14 Sep 2010 11:17:21 +0200 Subject: [PATCH] added filesystem provider --- allblobstore/pom.xml | 5 + core/src/main/resources/rest.properties | 6 +- filesystem/pom.xml | 75 ++ .../filesystem/FilesystemAsyncBlobStore.java | 666 ++++++++++++++ .../filesystem/FilesystemBlobStore.java | 32 + .../FilesystemBlobStoreContextBuilder.java | 60 ++ .../FilesystemBlobStorePropertiesBuilder.java | 56 ++ .../FilesystemBlobStoreContextModule.java | 90 ++ .../config/FilesystemBlobStoreModule.java | 48 + .../FilesystemBlobKeyValidator.java | 33 + .../FilesystemContainerNameValidator.java | 33 + .../FilesystemBlobKeyValidatorImpl.java | 55 ++ .../FilesystemContainerNameValidatorImpl.java | 50 ++ .../reference/FilesystemConstants.java | 32 + .../strategy/FilesystemStorageStrategy.java | 167 ++++ .../FilesystemStorageStrategyImpl.java | 521 +++++++++++ .../internal/FileSystemBlobUtilsImpl.java | 79 ++ .../FilesystemAsyncBlobStoreTest.java | 846 ++++++++++++++++++ .../FilesystemBlobIntegrationTest.java | 33 + .../FilesystemBlobMapIntegrationTest.java | 32 + .../FilesystemContainerIntegrationTest.java | 72 ++ ...lesystemInputStreamMapIntegrationTest.java | 31 + .../FilesystemServiceIntegrationTest.java | 31 + .../FilesystemTestInitializer.java | 56 ++ .../FilesystemBlobKeyValidatorTest.java | 67 ++ .../FilesystemContainerNameValidatorTest.java | 72 ++ .../FilesystemStorageStrategyImplTest.java | 532 +++++++++++ .../jclouds/filesystem/utils/TestUtils.java | 245 +++++ filesystem/src/test/resources/image1.jpg | Bin 0 -> 347378 bytes filesystem/src/test/resources/image2.jpg | Bin 0 -> 863834 bytes filesystem/src/test/resources/image3.jpg | Bin 0 -> 656686 bytes filesystem/src/test/resources/image4.jpg | Bin 0 -> 2965388 bytes .../src/test/resources/logging.properties | 27 + 33 files changed, 4051 insertions(+), 1 deletion(-) create mode 100644 filesystem/pom.xml create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/FilesystemAsyncBlobStore.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStore.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStoreContextBuilder.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStorePropertiesBuilder.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreContextModule.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreModule.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemBlobKeyValidator.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemContainerNameValidator.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorImpl.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorImpl.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/reference/FilesystemConstants.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/strategy/FilesystemStorageStrategy.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java create mode 100644 filesystem/src/main/java/org/jclouds/filesystem/util/internal/FileSystemBlobUtilsImpl.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/FilesystemAsyncBlobStoreTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobMapIntegrationTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemContainerIntegrationTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemInputStreamMapIntegrationTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemServiceIntegrationTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemTestInitializer.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java create mode 100644 filesystem/src/test/java/org/jclouds/filesystem/utils/TestUtils.java create mode 100644 filesystem/src/test/resources/image1.jpg create mode 100644 filesystem/src/test/resources/image2.jpg create mode 100644 filesystem/src/test/resources/image3.jpg create mode 100644 filesystem/src/test/resources/image4.jpg create mode 100644 filesystem/src/test/resources/logging.properties diff --git a/allblobstore/pom.xml b/allblobstore/pom.xml index dea09ee518..f2c691d3bf 100644 --- a/allblobstore/pom.xml +++ b/allblobstore/pom.xml @@ -49,5 +49,10 @@ jclouds-rackspace ${project.version} + + ${project.groupId} + jclouds-filesystem + ${project.version} + diff --git a/core/src/main/resources/rest.properties b/core/src/main/resources/rest.properties index c65c3b11bd..57a31cffad 100644 --- a/core/src/main/resources/rest.properties +++ b/core/src/main/resources/rest.properties @@ -115,4 +115,8 @@ googlestorage.contextbuilder=org.jclouds.aws.s3.S3ContextBuilder googlestorage.propertiesbuilder=org.jclouds.aws.s3.GoogleStoragePropertiesBuilder transient.contextbuilder=org.jclouds.blobstore.TransientBlobStoreContextBuilder -transient.propertiesbuilder=org.jclouds.blobstore.TransientBlobStorePropertiesBuilder \ No newline at end of file +transient.propertiesbuilder=org.jclouds.blobstore.TransientBlobStorePropertiesBuilder + +filesystem.contextbuilder=org.jclouds.filesystem.FilesystemBlobStoreContextBuilder +filesystem.propertiesbuilder=org.jclouds.filesystem.FilesystemBlobStorePropertiesBuilder + diff --git a/filesystem/pom.xml b/filesystem/pom.xml new file mode 100644 index 0000000000..bd6ffccc58 --- /dev/null +++ b/filesystem/pom.xml @@ -0,0 +1,75 @@ + + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../project/pom.xml + + jclouds-filesystem + jcloud filesystem core + jclouds components to access filesystem + + + + ${project.groupId} + jclouds-blobstore + ${project.version} + jar + + + ${project.groupId} + jclouds-core + ${project.version} + test-jar + test + + + commons-io + commons-io + 1.4 + + + ${project.groupId} + jclouds-blobstore + ${project.version} + test-jar + test + + + ${project.groupId} + jclouds-log4j + ${project.version} + test + + + + + org.jclouds.filesystem.integration.FilesystemTestInitializer + + + + diff --git a/filesystem/src/main/java/org/jclouds/filesystem/FilesystemAsyncBlobStore.java b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemAsyncBlobStore.java new file mode 100644 index 0000000000..9778ad44cd --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemAsyncBlobStore.java @@ -0,0 +1,666 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem; + +import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkState; +import static com.google.common.base.Throwables.getCausalChain; +import static com.google.common.base.Throwables.propagate; +import static com.google.common.collect.Iterables.filter; +import static com.google.common.collect.Iterables.find; +import static com.google.common.collect.Iterables.size; +import static com.google.common.collect.Iterables.transform; +import static com.google.common.collect.Lists.newArrayList; +import static com.google.common.collect.Lists.partition; +import static com.google.common.collect.Maps.newHashMap; +import static com.google.common.collect.Sets.filter; +import static com.google.common.collect.Sets.newTreeSet; +import static com.google.common.io.ByteStreams.toByteArray; +import static com.google.common.util.concurrent.Futures.immediateFailedFuture; +import static com.google.common.util.concurrent.Futures.immediateFuture; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectInputStream; +import java.io.ObjectOutput; +import java.io.ObjectOutputStream; +import java.io.File; +import java.net.URI; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.Map.Entry; +import java.util.concurrent.ExecutorService; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.jclouds.Constants; +import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.domain.BlobMetadata; +import org.jclouds.blobstore.domain.MutableBlobMetadata; +import org.jclouds.blobstore.domain.MutableStorageMetadata; +import org.jclouds.blobstore.domain.PageSet; +import org.jclouds.blobstore.domain.StorageMetadata; +import org.jclouds.blobstore.domain.StorageType; +import org.jclouds.blobstore.domain.Blob.Factory; +import org.jclouds.blobstore.domain.internal.MutableStorageMetadataImpl; +import org.jclouds.blobstore.domain.internal.PageSetImpl; +import org.jclouds.blobstore.functions.HttpGetOptionsListToGetOptions; +import org.jclouds.blobstore.internal.BaseAsyncBlobStore; +import org.jclouds.blobstore.options.GetOptions; +import org.jclouds.blobstore.options.ListContainerOptions; +import org.jclouds.blobstore.strategy.IfDirectoryReturnNameStrategy; +import org.jclouds.blobstore.util.BlobUtils; +import org.jclouds.crypto.Crypto; +import org.jclouds.crypto.CryptoStreams; +import org.jclouds.date.DateService; +import org.jclouds.domain.Location; +import org.jclouds.filesystem.strategy.FilesystemStorageStrategy; +import org.jclouds.http.HttpCommand; +import org.jclouds.http.HttpRequest; +import org.jclouds.http.HttpResponse; +import org.jclouds.http.HttpResponseException; +import org.jclouds.http.options.HttpRequestOptions; +import org.jclouds.io.Payloads; + +import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.common.base.Supplier; +import com.google.common.base.Throwables; +import com.google.common.collect.Iterables; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.inject.internal.Nullable; +import javax.annotation.Resource; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.jclouds.blobstore.BlobStoreContext; +import org.jclouds.blobstore.ContainerNotFoundException; +import org.jclouds.blobstore.KeyNotFoundException; +import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl; +import org.jclouds.filesystem.predicates.validators.FilesystemContainerNameValidator; +import org.jclouds.io.Payload; +import org.jclouds.io.payloads.FilePayload; +import org.jclouds.logging.Logger; +import org.jclouds.rest.annotations.ParamValidators; + +/** + * + * Preconditions: + * Blob name cannot start with / char (or \ under windows) + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FilesystemAsyncBlobStore extends BaseAsyncBlobStore { + + @Resource + protected Logger logger = Logger.NULL; + + protected final DateService dateService; + protected final Crypto crypto; + protected final HttpGetOptionsListToGetOptions httpGetOptionsConverter; + protected final IfDirectoryReturnNameStrategy ifDirectoryReturnName; + protected final Factory blobFactory; + protected final FilesystemStorageStrategy storageStrategy; + + + @Inject + protected FilesystemAsyncBlobStore(BlobStoreContext context, DateService dateService, Crypto crypto, + HttpGetOptionsListToGetOptions httpGetOptionsConverter, + IfDirectoryReturnNameStrategy ifDirectoryReturnName, Blob.Factory blobFactory, BlobUtils blobUtils, + @Named(Constants.PROPERTY_USER_THREADS) ExecutorService service, + Supplier defaultLocation, + Supplier> locations, + FilesystemStorageStrategy storageStrategy) { + super(context, blobUtils, service, defaultLocation, locations); + //super(context, blobUtils, service, null, null); + this.blobFactory = blobFactory; + this.dateService = dateService; + this.crypto = crypto; + this.httpGetOptionsConverter = httpGetOptionsConverter; + this.ifDirectoryReturnName = ifDirectoryReturnName; + this.storageStrategy = checkNotNull(storageStrategy, "Storage strategy"); + } + + /** + * default maxResults is 1000 + */ + @Override + public ListenableFuture> list(final String container, ListContainerOptions options) { + + // Check if the container exists + if (!containerExistsSyncImpl(container)) { + return immediateFailedFuture(cnfe(container)); + } + + // Loading blobs from container + Iterable blobBelongingToContainer = null; + try { + blobBelongingToContainer = storageStrategy.getBlobKeysInsideContainer(container); + } catch(IOException e) { + logger.error(e, + "An error occurred loading blobs contained into container %s", + container); + Throwables.propagate(e); + } + + + SortedSet contents = newTreeSet(transform(blobBelongingToContainer, + new Function() { + public StorageMetadata apply(String key) { + Blob oldBlob = loadFileBlob(container, key); + + checkState(oldBlob != null, "blob " + key + " is not present although it was in the list of " + + container); + checkState(oldBlob.getMetadata() != null, "blob " + container + "/" + key + " has no metadata"); + MutableBlobMetadata md = copy(oldBlob.getMetadata()); + String directoryName = ifDirectoryReturnName.execute(md); + if (directoryName != null) { + md.setName(directoryName); + md.setType(StorageType.RELATIVE_PATH); + } + return md; + } + })); + + String marker = null; + if(options!=null) { + if (options.getMarker() != null) { + final String finalMarker = options.getMarker(); + StorageMetadata lastMarkerMetadata = find(contents, new Predicate() { + public boolean apply(StorageMetadata metadata) { + return metadata.getName().equals(finalMarker); + } + }); + contents = contents.tailSet(lastMarkerMetadata); + contents.remove(lastMarkerMetadata); + } + + final String prefix = options.getDir(); + if (prefix != null) { + contents = newTreeSet(filter(contents, new Predicate() { + public boolean apply(StorageMetadata o) { + return (o != null && o.getName().startsWith(prefix) && !o.getName().equals(prefix)); + } + })); + } + + Integer maxResults = options.getMaxResults() != null ? options.getMaxResults() : 1000; + if (contents.size() > 0) { + SortedSet contentsSlice = firstSliceOfSize(contents, maxResults); + if (!contentsSlice.contains(contents.last())) { + // Partial listing + marker = contentsSlice.last().getName(); + } else { + marker = null; + } + contents = contentsSlice; + } + + final String delimiter = options.isRecursive() ? null : File.separator; + if (delimiter != null) { + SortedSet commonPrefixes = null; + Iterable iterable = transform(contents, new CommonPrefixes(prefix != null ? prefix : null, delimiter)); + commonPrefixes = iterable != null ? newTreeSet(iterable) : new TreeSet(); + commonPrefixes.remove(CommonPrefixes.NO_PREFIX); + + contents = newTreeSet(filter(contents, new DelimiterFilter(prefix != null ? prefix : null, delimiter))); + + Iterables. addAll(contents, transform(commonPrefixes, + new Function() { + public StorageMetadata apply(String o) { + MutableStorageMetadata md = new MutableStorageMetadataImpl(); + md.setType(StorageType.RELATIVE_PATH); + md.setName(o); + return md; + } + })); + } + + // trim metadata, if the response isn't supposed to be detailed. + if (!options.isDetailed()) { + for (StorageMetadata md : contents) { + md.getUserMetadata().clear(); + } + } + } + + return Futures.> immediateFuture(new PageSetImpl(contents, + marker)); + + } + + + private ContainerNotFoundException cnfe(final String name) { + return new ContainerNotFoundException(name, String.format("container %s not in filesystem", name)); + } + + public static MutableBlobMetadata copy(MutableBlobMetadata in) { + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + ObjectOutput os; + try { + os = new ObjectOutputStream(bout); + os.writeObject(in); + ObjectInput is = new ObjectInputStream(new ByteArrayInputStream(bout.toByteArray())); + MutableBlobMetadata metadata = (MutableBlobMetadata) is.readObject(); + convertUserMetadataKeysToLowercase(metadata); + return metadata; + } catch (Exception e) { + propagate(e); + assert false : "exception should have propagated: " + e; + return null; + } + } + + private static void convertUserMetadataKeysToLowercase(MutableBlobMetadata metadata) { + Map lowerCaseUserMetadata = newHashMap(); + for (Entry entry : metadata.getUserMetadata().entrySet()) { + lowerCaseUserMetadata.put(entry.getKey().toLowerCase(), entry.getValue()); + } + metadata.setUserMetadata(lowerCaseUserMetadata); + } + + public static MutableBlobMetadata copy(MutableBlobMetadata in, String newKey) { + MutableBlobMetadata newMd = copy(in); + newMd.setName(newKey); + return newMd; + } + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture removeBlob(final String container, final String key) { + storageStrategy.removeBlob(container, key); + return immediateFuture(null); + } + + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture containerExists(final String containerName) { + boolean exists = containerExistsSyncImpl(containerName); + return immediateFuture(exists); + } + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture> list() { + Iterable containers = storageStrategy.getAllContainerNames(); + + return Futures.> immediateFuture(new PageSetImpl(transform( + containers, new Function() { + public StorageMetadata apply(String name) { + MutableStorageMetadata cmd = create(); + cmd.setName(name); + cmd.setType(StorageType.CONTAINER); + return cmd; + } + }), null)); + } + + protected MutableStorageMetadata create() { + return new MutableStorageMetadataImpl(); + } + + /** + * {@inheritDoc} + */ + @Path("{container}") + @Override + public ListenableFuture createContainerInLocation( + final Location location, + @PathParam("container") @ParamValidators( { FilesystemContainerNameValidator.class }) String name) { + boolean result = storageStrategy.createContainer(name); + return immediateFuture(result); + } + + public String getFirstQueryOrNull(String string, @Nullable HttpRequestOptions options) { + if (options == null) + return null; + Collection values = options.buildQueryParameters().get(string); + return (values != null && values.size() >= 1) ? values.iterator().next() : null; + } + + /** + * Load the blob with the given key belonging to the container with the given + * name. There must exist a resource on the file system whose complete name + * is given concatenating the container name and the key + * + * @param container it's the name of the container the blob belongs to + * @param key it's the key of the blob + * + * @return the blob belonging to the given container with the given key + */ + private Blob loadFileBlob(final String container, final String key) { + logger.debug("Opening blob in container: %s - %s", container, key); + File blobPayload = storageStrategy.getFileForBlobKey(container, key); + + Payload payload = new FilePayload(blobPayload); + // Loading object metadata + MutableBlobMetadata metadata = new MutableBlobMetadataImpl(); + metadata.setName(key); + metadata.setLastModified(new Date(blobPayload.lastModified())); + metadata.setSize(blobPayload.length()); + // TODO What about the MD5? are we supposed to calculate it each time we load + //the file? + try { + payload = Payloads.calculateMD5(payload); + } catch (IOException e) { + logger.error("An error occurred calculating MD5 for blob %s from container ", key, container); + Throwables.propagateIfPossible(e); + } + metadata.setContentType(""); + String eTag = CryptoStreams.hex(payload.getContentMD5()); + metadata.setETag(eTag); + // Creating new blob object + Blob blob = blobFactory.create(metadata); + blob.setPayload(blobPayload); + return blob; + } + + + + protected static class DelimiterFilter implements Predicate { + private final String prefix; + private final String delimiter; + + public DelimiterFilter(String prefix, String delimiter) { + this.prefix = prefix; + this.delimiter = delimiter; + } + + public boolean apply(StorageMetadata metadata) { + if (prefix == null) + return metadata.getName().indexOf(delimiter) == -1; + // ensure we don't accidentally append twice + String toMatch = prefix.endsWith("/") ? prefix : prefix + delimiter; + if (metadata.getName().startsWith(toMatch)) { + String unprefixedName = metadata.getName().replaceFirst(toMatch, ""); + if (unprefixedName.equals("")) { + // we are the prefix in this case, return false + return false; + } + return unprefixedName.indexOf(delimiter) == -1; + } + return false; + } + } + + protected static class CommonPrefixes implements Function { + private final String prefix; + private final String delimiter; + public static final String NO_PREFIX = "NO_PREFIX"; + + public CommonPrefixes(String prefix, String delimiter) { + this.prefix = prefix; + this.delimiter = delimiter; + } + + public String apply(StorageMetadata metadata) { + String working = metadata.getName(); + if (prefix != null) { + // ensure we don't accidentally append twice + String toMatch = prefix.endsWith("/") ? prefix : prefix + delimiter; + if (working.startsWith(toMatch)) { + working = working.replaceFirst(toMatch, ""); + } + } + if (working.contains(delimiter)) { + return working.substring(0, working.indexOf(delimiter)); + } + return NO_PREFIX; + } + } + + public static > SortedSet firstSliceOfSize(Iterable elements, int size) { + List> slices = partition(newArrayList(elements), size); + return newTreeSet(slices.get(0)); + } + + public static HttpResponseException returnResponseException(int code) { + HttpResponse response = null; + response = new HttpResponse(code, null, null); + return new HttpResponseException(new HttpCommand() { + + public int getRedirectCount() { + return 0; + } + + public int incrementRedirectCount() { + return 0; + } + + public boolean isReplayable() { + return false; + } + + public Exception getException() { + return null; + } + + public int getFailureCount() { + return 0; + } + + public HttpRequest getRequest() { + return new HttpRequest("GET", URI.create("http://stub")); + } + + public int incrementFailureCount() { + return 0; + } + + public void setException(Exception exception) { + + } + + }, response); + } + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture putBlob(String containerName, Blob object) { + String blobKey = object.getMetadata().getName(); + + logger.debug("Put object with key [%s] to container [%s]", blobKey, containerName); + String eTag = getEtag(object); + try { + //TODO + //must override existing file? + + storageStrategy.writePayloadOnFile(containerName, blobKey, object.getPayload()); + } catch (IOException e) { + logger.error(e, "An error occurred storing the new object with name [%s] to container [%s].", + blobKey, + containerName); + Throwables.propagate(e); + } + return immediateFuture(eTag); + } + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture blobExists(final String containerName, final String key) { + return immediateFuture(storageStrategy.blobExists(containerName, key)); + } + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture getBlob(final String containerName, final String key, GetOptions options) { + logger.debug("Retrieving blob with key %s from container %s", key,containerName); + // If the container doesn't exist, an exception is thrown + if(!containerExistsSyncImpl(containerName)) { + logger.debug("Container %s does not exist", containerName); + return immediateFailedFuture(cnfe(containerName)); + } + // If the blob doesn't exist, a null object is returned + if (!storageStrategy.blobExists(containerName, key)) { + logger.debug("Item %s does not exist in container %s", key, containerName); + return immediateFuture(null); + } + + Blob blob = loadFileBlob(containerName, key); + + if(options!=null) { + if (options.getIfMatch() != null) { + if (!blob.getMetadata().getETag().equals(options.getIfMatch())) + return immediateFailedFuture(returnResponseException(412)); + } + if (options.getIfNoneMatch() != null) { + if (blob.getMetadata().getETag().equals(options.getIfNoneMatch())) + return immediateFailedFuture(returnResponseException(304)); + } + if (options.getIfModifiedSince() != null) { + Date modifiedSince = options.getIfModifiedSince(); + if (blob.getMetadata().getLastModified().before(modifiedSince)) { + HttpResponse response = new HttpResponse(304, null, null); + return immediateFailedFuture(new HttpResponseException(String.format("%1$s is before %2$s", blob + .getMetadata().getLastModified(), modifiedSince), null, response)); + } + + } + if (options.getIfUnmodifiedSince() != null) { + Date unmodifiedSince = options.getIfUnmodifiedSince(); + if (blob.getMetadata().getLastModified().after(unmodifiedSince)) { + HttpResponse response = new HttpResponse(412, null, null); + return immediateFailedFuture(new HttpResponseException(String.format("%1$s is after %2$s", blob + .getMetadata().getLastModified(), unmodifiedSince), null, response)); + } + } + + if (options.getRanges() != null && options.getRanges().size() > 0) { + byte[] data; + try { + data = toByteArray(blob.getPayload().getInput()); + } catch (IOException e) { + return immediateFailedFuture(new RuntimeException(e)); + } + ByteArrayOutputStream out = new ByteArrayOutputStream(); + for (String s : options.getRanges()) { + if (s.startsWith("-")) { + int length = Integer.parseInt(s.substring(1)); + out.write(data, data.length - length, length); + } else if (s.endsWith("-")) { + int offset = Integer.parseInt(s.substring(0, s.length() - 1)); + out.write(data, offset, data.length - offset); + } else if (s.contains("-")) { + String[] firstLast = s.split("\\-"); + int offset = Integer.parseInt(firstLast[0]); + int last = Integer.parseInt(firstLast[1]); + int length = (last < data.length) ? last + 1 : data.length - offset; + out.write(data, offset, length); + } else { + return immediateFailedFuture(new IllegalArgumentException("first and last were null!")); + } + + } + blob.setPayload(out.toByteArray()); + blob.getMetadata().setSize(new Long(data.length)); + } + } + checkNotNull(blob.getPayload(), "payload " + blob); + return immediateFuture(blob); + } + + /** + * {@inheritDoc} + */ + @Override + public ListenableFuture blobMetadata(final String container, final String key) { + try { + Blob blob = getBlob(container, key).get(); + return immediateFuture(blob != null ? (BlobMetadata) copy(blob.getMetadata()) : null); + } catch (Exception e) { + if (size(filter(getCausalChain(e), KeyNotFoundException.class)) >= 1) + return immediateFuture(null); + return immediateFailedFuture(e); + } + } + + @Override + protected boolean deleteAndVerifyContainerGone(String container) { + storageStrategy.deleteContainer(container); + return containerExistsSyncImpl(container); + } + + + /** + * Override parent method because it uses strange futures and listenables + * that creates problem in the test if more than one test that deletes the + * container is executed + * @param container + * @return + */ + @Override + public ListenableFuture deleteContainer(String container) { + deleteAndVerifyContainerGone(container); + return immediateFuture(null); + } + + + /** + * Each container is a directory, so in order to check if a container exists + * the corresponding directory must exists. Synchronous implementation + * @param containerName + * @return + */ + private boolean containerExistsSyncImpl(String containerName) { + return storageStrategy.containerExists(containerName); + } + + + + /** + * + * Calculates the object MD5 and returns it as eTag + * @param object + * @return + */ + private String getEtag(Blob object) { + try { + Payloads.calculateMD5(object, crypto.md5()); + } catch (IOException ex) { + logger.error(ex, "An error occurred calculating MD5 for object with name %s.", + object.getMetadata().getName()); + Throwables.propagate(ex); + } + + String eTag = CryptoStreams.hex(object.getPayload().getContentMD5()); + return eTag; + } +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStore.java b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStore.java new file mode 100644 index 0000000000..983518f88d --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStore.java @@ -0,0 +1,32 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem; + +import java.util.concurrent.TimeUnit; + +import org.jclouds.blobstore.BlobStore; +import org.jclouds.concurrent.Timeout; + +/** + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS) public interface FilesystemBlobStore extends BlobStore { +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStoreContextBuilder.java b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStoreContextBuilder.java new file mode 100644 index 0000000000..91bac511b9 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStoreContextBuilder.java @@ -0,0 +1,60 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem; + +import com.google.inject.Module; +import java.util.List; +import java.util.Properties; +import org.jclouds.blobstore.AsyncBlobStore; +import org.jclouds.blobstore.BlobStore; +import org.jclouds.blobstore.BlobStoreContextBuilder; +import org.jclouds.filesystem.config.FilesystemBlobStoreContextModule; +import org.jclouds.filesystem.config.FilesystemBlobStoreModule; + +/** + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FilesystemBlobStoreContextBuilder extends + BlobStoreContextBuilder { + + /** + * This is only to have the same syntax. + * + */ + public FilesystemBlobStoreContextBuilder() { + this(new Properties()); + } + + public FilesystemBlobStoreContextBuilder(Properties props) { + super(BlobStore.class, AsyncBlobStore.class, props); + } + + @Override + public void addContextModule(List modules) { + modules.add(new FilesystemBlobStoreContextModule()); + } + + @Override + protected void addClientModule(List modules) { + modules.add(new FilesystemBlobStoreModule()); + } + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStorePropertiesBuilder.java b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStorePropertiesBuilder.java new file mode 100644 index 0000000000..4798ed1f33 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/FilesystemBlobStorePropertiesBuilder.java @@ -0,0 +1,56 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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. + * ==================================================================== + */ + +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package org.jclouds.filesystem; + +import static org.jclouds.Constants.PROPERTY_API_VERSION; +import static org.jclouds.Constants.PROPERTY_ENDPOINT; +import static org.jclouds.Constants.PROPERTY_IO_WORKER_THREADS; +import static org.jclouds.Constants.PROPERTY_IDENTITY; +import static org.jclouds.Constants.PROPERTY_USER_THREADS; + +import java.util.Properties; +import org.jclouds.PropertiesBuilder; + +/** + * + * @author rainbowbreeze + */ +public class FilesystemBlobStorePropertiesBuilder extends PropertiesBuilder { + @Override + protected Properties defaultProperties() { + Properties properties = super.defaultProperties(); + properties.setProperty(PROPERTY_ENDPOINT, "http://localhost/transient"); + properties.setProperty(PROPERTY_API_VERSION, "1"); + properties.setProperty(PROPERTY_IDENTITY, System.getProperty("user.name")); + properties.setProperty(PROPERTY_USER_THREADS, "0"); + properties.setProperty(PROPERTY_IO_WORKER_THREADS, "0"); + return properties; + } + + public FilesystemBlobStorePropertiesBuilder(Properties properties) { + super(properties); + } + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreContextModule.java b/filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreContextModule.java new file mode 100644 index 0000000000..0f6ce99731 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreContextModule.java @@ -0,0 +1,90 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.config; + +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableSet; +import com.google.inject.AbstractModule; +import com.google.inject.Provides; +import com.google.inject.Scopes; +import com.google.inject.Singleton; +import com.google.inject.TypeLiteral; +import java.util.Set; +import org.jclouds.blobstore.AsyncBlobStore; +import org.jclouds.blobstore.BlobStore; +import org.jclouds.blobstore.BlobStoreContext; +import org.jclouds.blobstore.attr.ConsistencyModel; +import org.jclouds.blobstore.config.BlobStoreMapModule; +import org.jclouds.blobstore.config.BlobStoreObjectModule; +import org.jclouds.blobstore.internal.BlobStoreContextImpl; +import org.jclouds.blobstore.util.BlobUtils; +import org.jclouds.domain.Location; +import org.jclouds.domain.LocationScope; +import org.jclouds.domain.internal.LocationImpl; +import org.jclouds.filesystem.FilesystemBlobStore; +import org.jclouds.filesystem.predicates.validators.FilesystemBlobKeyValidator; +import org.jclouds.filesystem.predicates.validators.FilesystemContainerNameValidator; +import org.jclouds.filesystem.predicates.validators.internal.FilesystemBlobKeyValidatorImpl; +import org.jclouds.filesystem.predicates.validators.internal.FilesystemContainerNameValidatorImpl; +import org.jclouds.filesystem.strategy.FilesystemStorageStrategy; +import org.jclouds.filesystem.strategy.internal.FilesystemStorageStrategyImpl; +import org.jclouds.filesystem.util.internal.FileSystemBlobUtilsImpl; + +/** + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FilesystemBlobStoreContextModule extends AbstractModule { + + @Override + protected void configure() { + bind(new TypeLiteral() { + }).to(new TypeLiteral>() { + }).in(Scopes.SINGLETON); + install(new BlobStoreObjectModule()); + install(new BlobStoreMapModule()); + bind(ConsistencyModel.class).toInstance(ConsistencyModel.STRICT); + bind(FilesystemStorageStrategy.class).to(FilesystemStorageStrategyImpl.class); + bind(BlobUtils.class).to(FileSystemBlobUtilsImpl.class); + bind(FilesystemBlobKeyValidator.class).to(FilesystemBlobKeyValidatorImpl.class); + bind(FilesystemContainerNameValidator.class).to(FilesystemContainerNameValidatorImpl.class); + } + + @Provides + @Singleton + BlobStore provide(FilesystemBlobStore in) { + return in; + } + + @Provides + @Singleton + Supplier> provideLocations(Supplier defaultLocation) { + return Suppliers.> ofInstance(ImmutableSet.of(defaultLocation.get())); + } + + @Provides + @Singleton + Supplier provideDefaultLocation() { + return Suppliers + . ofInstance(new LocationImpl(LocationScope.PROVIDER, "filesystem", "filesystem", null)); + } + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreModule.java b/filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreModule.java new file mode 100644 index 0000000000..6a078d801a --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/config/FilesystemBlobStoreModule.java @@ -0,0 +1,48 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.config; + +import org.jclouds.blobstore.AsyncBlobStore; +import org.jclouds.filesystem.FilesystemAsyncBlobStore; +import org.jclouds.filesystem.FilesystemBlobStore; +import org.jclouds.rest.config.RestClientModule; + +/** + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FilesystemBlobStoreModule extends RestClientModule { + + public FilesystemBlobStoreModule() { + super(FilesystemBlobStore.class, AsyncBlobStore.class); + } + + @Override + protected void configure() { + super.configure(); + } + + + + @Override + protected void bindAsyncClient() { + bind(AsyncBlobStore.class).to(FilesystemAsyncBlobStore.class).asEagerSingleton(); + } +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemBlobKeyValidator.java b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemBlobKeyValidator.java new file mode 100644 index 0000000000..a67b7047e8 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemBlobKeyValidator.java @@ -0,0 +1,33 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.predicates.validators; + +import org.jclouds.predicates.Validator; + +/** + * Validates name for filesystem container blob keys + * + * @see org.jclouds.rest.InputParamValidator + * @see org.jclouds.predicates.Validator + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public abstract class FilesystemBlobKeyValidator extends Validator { +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemContainerNameValidator.java b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemContainerNameValidator.java new file mode 100644 index 0000000000..5233749942 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/FilesystemContainerNameValidator.java @@ -0,0 +1,33 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.predicates.validators; + +import org.jclouds.predicates.Validator; + +/** + * Validates container name for filesystem provider + * + * @see org.jclouds.rest.InputParamValidator + * @see org.jclouds.predicates.Validator + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public abstract class FilesystemContainerNameValidator extends Validator { +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorImpl.java b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorImpl.java new file mode 100644 index 0000000000..618a8fd666 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorImpl.java @@ -0,0 +1,55 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.predicates.validators.internal; + +import com.google.inject.Singleton; +import java.io.File; +import org.jclouds.filesystem.predicates.validators.FilesystemBlobKeyValidator; +import org.jclouds.predicates.Validator; + +/** + * Validates name for filesystem container blob keys implementation + * + * @see org.jclouds.rest.InputParamValidator + * @see org.jclouds.predicates.Validator + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Singleton +public class FilesystemBlobKeyValidatorImpl extends FilesystemBlobKeyValidator { + + @Override + public void validate(String name) throws IllegalArgumentException { + //blob key cannot be null or empty + if (name == null || name.length() < 1) + throw new IllegalArgumentException("Blob key can't be null or empty"); + + //blobkey cannot start with / (or \ in Windows) character + if (name.startsWith(File.separator)) + throw new IllegalArgumentException(String.format( + "Blob key '%s' cannot start with character %s", name, File.separator)); + + //blobkey cannot end with / (or \ in Windows) character + if (name.endsWith(File.separator)) + throw new IllegalArgumentException(String.format( + "Blob key '%s' cannot end with character %s", name, File.separator)); + } + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorImpl.java b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorImpl.java new file mode 100644 index 0000000000..d680883a60 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorImpl.java @@ -0,0 +1,50 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.predicates.validators.internal; + +import com.google.inject.Singleton; +import java.io.File; +import org.jclouds.filesystem.predicates.validators.FilesystemContainerNameValidator; +import org.jclouds.predicates.Validator; + +/** + * Validates container name for filesystem provider implementation + * + * @see org.jclouds.rest.InputParamValidator + * @see org.jclouds.predicates.Validator + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Singleton +public class FilesystemContainerNameValidatorImpl extends FilesystemContainerNameValidator { + + @Override + public void validate(String name) throws IllegalArgumentException { + //container name cannot be null or empty + if (name == null || name.length() < 1) + throw new IllegalArgumentException("Container name can't be null or empty"); + + //container name cannot contains / (or \ in Windows) character + if (name.contains(File.separator)) + throw new IllegalArgumentException(String.format( + "Container name '%s' cannot contain character %s", name, File.separator)); + } + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/reference/FilesystemConstants.java b/filesystem/src/main/java/org/jclouds/filesystem/reference/FilesystemConstants.java new file mode 100644 index 0000000000..c8afc9ae05 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/reference/FilesystemConstants.java @@ -0,0 +1,32 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.reference; + +/** + * Common constants used in filesystem provider + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FilesystemConstants { + + /** Specify the base directory where provider starts its file operations - must exists */ + public static final String PROPERTY_BASEDIR = "FileSystemAsyncBlobStore-basedir"; + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/strategy/FilesystemStorageStrategy.java b/filesystem/src/main/java/org/jclouds/filesystem/strategy/FilesystemStorageStrategy.java new file mode 100644 index 0000000000..b82993c1eb --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/strategy/FilesystemStorageStrategy.java @@ -0,0 +1,167 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.strategy; + +import java.io.File; +import java.io.IOException; +import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.options.ListContainerOptions; +import org.jclouds.filesystem.predicates.validators.FilesystemContainerNameValidator; +import org.jclouds.io.Payload; +import org.jclouds.rest.annotations.ParamValidators; + +/** + * Strategy for filesystem operations related to container and blob + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public interface FilesystemStorageStrategy { + + /** + * Creates a new container + * + * @param container + * @return + */ + boolean createContainer(String container); + + /** + * Deletes a container and all its content + * @param container + */ + void deleteContainer(String container); + + /** + * Checks if a container exists + * @param container + * @return + */ + boolean containerExists(String container); + + /** + * Empty the container of its content (files and subdirectories), but doesn't + * delete the container itself + * @param container + */ + void clearContainer(final String container); + + /** + * Like {@link #clearContainer(String)} except you can use options to do things like recursive + * deletes, or clear at a different path than root. + * + * @param container + * what to clear + * @param options + * recursion and path to clear + */ + void clearContainer(String container, ListContainerOptions options); + + /** + * Return an iterator that reports all the containers under base path + * @return + */ + Iterable getAllContainerNames(); + + /** + * Determines if a directory exists + * + * @param container + * container where the directory resides + * @param directory + * full path to the directory + */ + boolean directoryExists(String container, String directory); + + /** + * Creates a folder or a directory marker depending on the service + * + * @param container + * container to create the directory in + * @param directory + * full path to the directory + */ + void createDirectory(String container, String directory); + + /** + * Deletes a folder or a directory marker depending on the service + * + * @param container + * container to delete the directory from + * @param directory + * full path to the directory to delete + */ + void deleteDirectory(String container, String directory); + + + /** + * Creates a new blob + * @param name + * @return + */ + Blob newBlob(String name); + + /** + * + * @param container + * @param key + * @return + */ + boolean blobExists(String container, String key); + + /** + * Returns all the blobs key inside a container + * @param container + * @return + * @throws IOException + */ + Iterable getBlobKeysInsideContainer(String container) throws IOException; + + /** + * Counts number of blobs inside a container + * @param container + * @param options + * @return + */ + long countBlobs(String container, ListContainerOptions options); + + /** + * Returns a {@link File} object that links to the blob + * @param container + * @param key + * @return + */ + File getFileForBlobKey(String container, String key); + + /** + * + * @param container + * @param key + */ + void removeBlob(final String container, final String key); + + /** + * Write a {@link Blob} {@link Payload} into a file + * @param fileName + * @param payload + * @throws IOException + */ + void writePayloadOnFile(String container, String blobKey, Payload payload) throws IOException; + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java b/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java new file mode 100644 index 0000000000..038b4b0218 --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java @@ -0,0 +1,521 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.strategy.internal; + +import org.jclouds.rest.annotations.ParamValidators; +import org.jclouds.filesystem.predicates.validators.FilesystemBlobKeyValidator; +import org.jclouds.filesystem.predicates.validators.FilesystemContainerNameValidator; +import java.io.OutputStream; +import java.util.Set; +import java.util.HashSet; +import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.options.ListContainerOptions; +import org.jclouds.io.Payload; +import java.io.InputStream; +import java.io.FileOutputStream; +import java.io.FileFilter; +import org.apache.commons.io.filefilter.DirectoryFileFilter; +import java.util.Iterator; +import com.google.common.base.Throwables; +import java.io.IOException; +import org.apache.commons.io.FileUtils; +import java.io.File; +import javax.annotation.Resource; +import com.google.inject.Inject; +import com.google.inject.name.Named; + +import org.jclouds.filesystem.reference.FilesystemConstants; +import org.jclouds.filesystem.strategy.FilesystemStorageStrategy; +import org.jclouds.logging.Logger; + +import static com.google.common.base.Preconditions.checkNotNull; + +/** + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FilesystemStorageStrategyImpl implements FilesystemStorageStrategy { + + private static final String BACK_SLASH = "\\"; + /** The buffer size used to copy an InputStream to an OutputStream */ + private static final int COPY_BUFFER_SIZE = 1024; + + @Resource + protected Logger logger = Logger.NULL; + + protected final Blob.Factory blobFactory; + protected final String baseDirectory; + protected final FilesystemContainerNameValidator filesystemContainerNameValidator; + protected final FilesystemBlobKeyValidator filesystemBlobKeyValidator; + + + @Inject + protected FilesystemStorageStrategyImpl( + Blob.Factory blobFactory, + @Named(FilesystemConstants.PROPERTY_BASEDIR) String baseDir, + FilesystemContainerNameValidator filesystemContainerNameValidator, + FilesystemBlobKeyValidator filesystemBlobKeyValidator) { + this.blobFactory = checkNotNull(blobFactory, "filesystem storage strategy blobfactory"); + this.baseDirectory = checkNotNull(baseDir, "filesystem storage strategy base directory"); + this.filesystemContainerNameValidator = checkNotNull(filesystemContainerNameValidator, "filesystem container name validator"); + this.filesystemBlobKeyValidator = checkNotNull(filesystemBlobKeyValidator, "filesystem blob key validator"); + } + + @Override + public boolean containerExists(String container) { + filesystemContainerNameValidator.validate(container); + return directoryExists(container, null); + } + + @Override + public boolean blobExists(String container, String key) { + filesystemContainerNameValidator.validate(container); + filesystemBlobKeyValidator.validate(key); + return buildPathAndChecksIfFileExists(container, key); + } + + @Override + public boolean createContainer(String container) { + logger.debug("Creating container %s", container); + filesystemContainerNameValidator.validate(container); + return createDirectoryWithResult(container, null); + } + + + @Override + public void deleteContainer(String container) { + filesystemContainerNameValidator.validate(container); + deleteDirectory(container, null); + } + + + /** + * Empty the directory of its content (files and subdirectories) + * @param container + */ + @Override + public void clearContainer(final String container) { + filesystemContainerNameValidator.validate(container); + clearContainer(container, ListContainerOptions.Builder.recursive()); + } + + @Override + public void clearContainer(String container, ListContainerOptions options) { + filesystemContainerNameValidator.validate(container); + //TODO + //now all is deleted, check it based on options + try { + File containerFile = openFolder(container); + File[] children = containerFile.listFiles(); + if (null != children) { + for(File child:children) { + FileUtils.forceDelete(child); + } + } + } catch(IOException e) { + logger.error(e,"An error occurred while clearing container %s", container); + Throwables.propagate(e); + } + } + + + @Override + public Blob newBlob(@ParamValidators( { FilesystemBlobKeyValidator.class }) String name) { + filesystemBlobKeyValidator.validate(name); + Blob blob = blobFactory.create(null); + blob.getMetadata().setName(name); + return blob; + } + + @Override + public void removeBlob(final String container, final String blobKey) { + filesystemContainerNameValidator.validate(container); + filesystemBlobKeyValidator.validate(blobKey); + String fileName = buildPathStartingFromBaseDir(container, blobKey); + logger.debug("Deleting blob %s", fileName); + File fileToBeDeleted = new File(fileName); + fileToBeDeleted.delete(); + + //now examins if the key of the blob is a complex key (with a directory structure) + //and eventually remove empty directory + removeDirectoriesTreeOfBlobKey(container, blobKey); + } + + + /** + * Return an iterator that reports all the containers under base path + * @return + */ + @Override + public Iterable getAllContainerNames() { + Iterable containers = new Iterable() { + @Override + public Iterator iterator() { + return new FileIterator( + buildPathStartingFromBaseDir(), DirectoryFileFilter.INSTANCE); + } + }; + + return containers; + } + + /** + * Returns a {@link File} object that links to the blob + * @param container + * @param blobKey + * @return + */ + @Override + public File getFileForBlobKey(String container, String blobKey) { + filesystemContainerNameValidator.validate(container); + filesystemBlobKeyValidator.validate(blobKey); + String fileName = buildPathStartingFromBaseDir(container, blobKey); + File blobFile = new File(fileName); + return blobFile; + } + + + /** + * Write a {@link Blob} {@link Payload} into a file + * @param container + * @param blobKey + * @param payload + * @throws IOException + */ + @Override + public void writePayloadOnFile(String container, String blobKey, Payload payload) throws IOException { + filesystemContainerNameValidator.validate(container); + filesystemBlobKeyValidator.validate(blobKey); + File outputFile = null; + OutputStream output = null; + InputStream input = null; + try { + outputFile = getFileForBlobKey(container, blobKey); + File parentDirectory = outputFile.getParentFile(); + if (!parentDirectory.exists()) { + if (!parentDirectory.mkdirs()) { + throw new IOException("An error occurred creating directory [" + parentDirectory.getName() + "]."); + } + } + output = new FileOutputStream(outputFile); + input = payload.getInput(); + copy(input, output); + + } catch (IOException ex) { + if (outputFile != null) { + outputFile.delete(); + } + throw ex; + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException ex) { + // Does nothing + } + } + if (output != null) { + try { + output.close(); + } catch (IOException ex) { + // Does nothing + } + } + } + } + + + /** + * Returns all the blobs key inside a container + * @param container + * @return + * @throws IOException + */ + @Override + public Iterable getBlobKeysInsideContainer(String container) throws IOException { + filesystemContainerNameValidator.validate(container); + //check if container exists + //TODO maybe an error is more appropriate + if (!containerExists(container)) { + return new HashSet(); + } + + File containerFile = openFolder(container); + final int containerPathLenght = containerFile.getAbsolutePath().length() + 1; + Set blobNames = new HashSet() { + + private static final long serialVersionUID = 3152191346558570795L; + + @Override + public boolean add(String e) { + return super.add(e.substring(containerPathLenght)); + } + }; + populateBlobKeysInContainer(containerFile, blobNames); + return blobNames; + } + + @Override + public boolean directoryExists(String container, String directory) { + return buildPathAndChecksIfDirectoryExists(container, directory); + } + + @Override + public void createDirectory(String container, String directory) { + createDirectoryWithResult(container, directory); + } + + @Override + public void deleteDirectory(String container, String directory) { + //create complete dir path + String fullDirPath = buildPathStartingFromBaseDir(container, directory); + try { + FileUtils.forceDelete(new File(fullDirPath)); + } catch (IOException ex) { + logger.error("An error occurred removing directory %s.", fullDirPath); + Throwables.propagate(ex); + } + } + + + @Override + public long countBlobs(String container, ListContainerOptions options) { + //TODO + throw new UnsupportedOperationException("Not supported yet."); + } + + + + + //---------------------------------------------------------- Private methods + + private boolean buildPathAndChecksIfFileExists(String...tokens) { + String path = buildPathStartingFromBaseDir(tokens); + File file = new File(path); + boolean exists = file.exists() || file.isFile(); + return exists; + } + + /** + * Check if the file system resource whose name is obtained applying buildPath + * on the input path tokens is a directory, otherwise a RuntimeException is thrown + * + * @param tokens the tokens that make up the name of the resource on the + * file system + */ + private boolean buildPathAndChecksIfDirectoryExists(String...tokens) { + String path = buildPathStartingFromBaseDir(tokens); + File file = new File(path); + boolean exists = file.exists() || file.isDirectory(); + return exists; + } + + + /** + * Facility method used to concatenate path tokens normalizing separators + * @param pathTokens all the string in the proper order that must be concatenated + * in order to obtain the filename + * @return the resulting string + */ + protected String buildPathStartingFromBaseDir(String...pathTokens) { + String normalizedToken = removeFileSeparatorFromBorders(normalize(baseDirectory)); + StringBuilder completePath = new StringBuilder(normalizedToken); + if(pathTokens!=null && pathTokens.length>0) { + for(int i=0; i{ + int currentFileIndex = 0; + File[] children = new File[0]; + File currentFile = null; + + public FileIterator(String fileName, FileFilter filter) { + File file = new File(fileName); + if(file.exists() && file.isDirectory()) { + children = file.listFiles(filter); + } + } + + @Override + public boolean hasNext() { + return currentFileIndex blobNames) { + File[] children = directory.listFiles(); + for(File child:children) { + if(child.isFile()) { + blobNames.add(child.getAbsolutePath()); + } else if(child.isDirectory()) { + populateBlobKeysInContainer(child, blobNames); + } + } + } + + + /** + * Creates a directory and returns the result + * @param container + * @param directory + * @return true if the directory was created, otherwise false + */ + protected boolean createDirectoryWithResult(String container, String directory) { + String directoryFullName = buildPathStartingFromBaseDir(container, directory); + logger.debug("Creating directory %s", directoryFullName); + + //cannot use directoryFullName, because the following method rebuild + //another time the path starting from base directory + if (buildPathAndChecksIfDirectoryExists(container, directory)) { + logger.debug("Directory %s already exists", directoryFullName); + return false; + } + + File directoryToCreate = new File(directoryFullName); + boolean result = directoryToCreate.mkdirs(); + return result; + } + + /** + * Copy from an InputStream to an OutputStream. + * + * @param input The InputStream + * @param output The OutputStream + * @return the number of bytes copied + * @throws IOException if an error occurs + */ + private long copy(InputStream input, OutputStream output) + throws IOException { + byte[] buffer = new byte[COPY_BUFFER_SIZE]; + long count = 0; + while (true) { + int read = input.read(buffer); + if (read < 0) { + break; + } + count += read; + + output.write(buffer, 0, read); + } + output.flush(); + return count; + } + + +} diff --git a/filesystem/src/main/java/org/jclouds/filesystem/util/internal/FileSystemBlobUtilsImpl.java b/filesystem/src/main/java/org/jclouds/filesystem/util/internal/FileSystemBlobUtilsImpl.java new file mode 100644 index 0000000000..ffffafdc8a --- /dev/null +++ b/filesystem/src/main/java/org/jclouds/filesystem/util/internal/FileSystemBlobUtilsImpl.java @@ -0,0 +1,79 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.util.internal; + +import com.google.inject.Inject; +import org.jclouds.blobstore.AsyncBlobStore; +import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.options.ListContainerOptions; +import org.jclouds.blobstore.util.BlobUtils; +import org.jclouds.filesystem.strategy.FilesystemStorageStrategy; + +import static com.google.common.base.Preconditions.checkNotNull; + +/** + * Implements the {@link BlobUtils} interfaced and act as a bridge to + * {@link FilesystemStorageStrategy} when used inside {@link AsyncBlobStore} + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class FileSystemBlobUtilsImpl implements BlobUtils { + + protected final FilesystemStorageStrategy storageStrategy; + + @Inject + public FileSystemBlobUtilsImpl( + FilesystemStorageStrategy storageStrategy) { + this.storageStrategy = checkNotNull(storageStrategy, "Filesystem Storage Strategy"); + } + + + + @Override + public Blob newBlob(String name) { + return storageStrategy.newBlob(name); + } + + @Override + public boolean directoryExists(String containerName, String directory) { + return storageStrategy.directoryExists(containerName, directory); + } + + @Override + public void createDirectory(String containerName, String directory) { + storageStrategy.createDirectory(containerName, directory); + } + + @Override + public long countBlobs(String container, ListContainerOptions options) { + return storageStrategy.countBlobs(container, options); + } + + @Override + public void clearContainer(String container, ListContainerOptions options) { + storageStrategy.clearContainer(container, options); + } + + @Override + public void deleteDirectory(String container, String directory) { + storageStrategy.deleteDirectory(container, directory); + } + +} diff --git a/filesystem/src/test/java/org/jclouds/filesystem/FilesystemAsyncBlobStoreTest.java b/filesystem/src/test/java/org/jclouds/filesystem/FilesystemAsyncBlobStoreTest.java new file mode 100644 index 0000000000..3d47215efd --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/FilesystemAsyncBlobStoreTest.java @@ -0,0 +1,846 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem; + +import org.jclouds.filesystem.reference.FilesystemConstants; +import org.jclouds.filesystem.utils.TestUtils; +import com.google.inject.CreationException; +import org.jclouds.blobstore.options.GetOptions; +import java.util.Iterator; +import java.util.Set; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Properties; +import org.apache.commons.io.FileUtils; +import org.jclouds.blobstore.BlobStore; +import org.jclouds.blobstore.BlobStoreContext; +import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.ContainerNotFoundException; +import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.domain.BlobMetadata; +import org.jclouds.blobstore.domain.MutableBlobMetadata; +import org.jclouds.blobstore.domain.PageSet; +import org.jclouds.blobstore.domain.StorageMetadata; +import org.jclouds.blobstore.domain.StorageType; +import org.jclouds.blobstore.domain.internal.BlobImpl; +import org.jclouds.blobstore.options.ListContainerOptions; +import org.testng.annotations.*; + +import static org.testng.Assert.*; + + +/** + * Test class for {@link FilesystemAsyncBlobStore} class + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Test(groups = "unit", testName = "filesystem.FilesystemAsyncBlobStoreTest", sequential = true) +public class FilesystemAsyncBlobStoreTest { + + private static final String CONTAINER_NAME = "fun-blobstore-test"; + private static final String TARGET_CONTAINER_NAME = TestUtils.TARGET_BASE_DIR + CONTAINER_NAME; + private static final String LOGGING_CONFIG_KEY + = "java.util.logging.config.file"; + private static final String LOGGING_CONFIG_VALUE + = "src/main/resources/logging.properties"; + + private static final String PROVIDER = "filesystem"; + + + static { + System.setProperty(LOGGING_CONFIG_KEY, + LOGGING_CONFIG_VALUE); + + } + + private BlobStoreContext context = null; + private BlobStore blobStore = null; + private Set resourcesToBeDeleted = new HashSet(); + + @BeforeMethod + protected void setUp() throws Exception { + //create context for filesystem container + Properties prop = new Properties(); + prop.setProperty(FilesystemConstants.PROPERTY_BASEDIR, TestUtils.TARGET_BASE_DIR); + context = (BlobStoreContext) new BlobStoreContextFactory().createContext( + PROVIDER, prop); + //create a container in the default location + blobStore = context.getBlobStore(); + + resourcesToBeDeleted.add(new File(TestUtils.TARGET_BASE_DIR)); + } + + + @AfterMethod + protected void tearDown() { + context.close(); + context = null; + // freeing filesystem resources used for tests + Iterator resourceToDelete = resourcesToBeDeleted.iterator(); + while(resourceToDelete.hasNext()) { + File fileToDelete = resourceToDelete.next(); + try { + FileUtils.forceDelete(fileToDelete); + } catch (IOException ex) { + System.err.println("Error deleting folder ["+fileToDelete.getName()+"]."); + } + resourceToDelete.remove(); + } + } + + + /** + * Checks if context parameters are managed in the correct way + * + */ + public void testParameters() { + //no base directory declared in properties + try { + Properties props = new Properties(); + new BlobStoreContextFactory().createContext( + PROVIDER, props); + fail("No error if base directory is not specified"); + } catch (CreationException e) { + } + + //no base directory declared in properties + try { + Properties props = new Properties(); + props.setProperty(FilesystemConstants.PROPERTY_BASEDIR, null); + new BlobStoreContextFactory().createContext( + PROVIDER, props); + fail("No error if base directory is null in the option"); + } catch (NullPointerException e) { + } + } + + /** + * Test of list method of the root context + */ + public void testList_Root() throws IOException { + PageSet containersRetrieved; + Set containersCreated = new HashSet(); + + // Testing list with no containers + containersRetrieved = blobStore.list(); + assertTrue(containersRetrieved.isEmpty(), "List operation returns a not empty set of container"); + + // Testing list with some containers + String[] containerNames = new String[]{"34343", "aaaa", "bbbbb"}; + containersCreated = new HashSet(); + for(String containerName:containerNames) { + blobStore.createContainerInLocation(null, containerName); + containersCreated.add(containerName); + } + + containersRetrieved = blobStore.list(); + assertEquals(containersCreated.size(), containersRetrieved.size(), "Different numbers of container"); + + for(StorageMetadata data:containersRetrieved) { + String containerName = data.getName(); + if(!containersCreated.remove(containerName)) { + fail("Container list contains unexpected value ["+containerName+"]"); + } + } + assertTrue(containersCreated.isEmpty(), "List operation doesn't return all values."); + + for(String containerName:containerNames) { + //delete all creaded containers + blobStore.deleteContainer(containerName); + } + containersRetrieved = blobStore.list(); + assertTrue(containersRetrieved.isEmpty(), "List operation returns a not empty set of container"); + } + + + /** + * Test of list method, of class FilesystemAsyncBlobStore. + */ + public void testList_NoOptionSingleContainer() throws IOException { + + // Testing list for a not existing container + try { + blobStore.list(CONTAINER_NAME); + fail("Found a not existing container"); + } catch(ContainerNotFoundException e) { + + } + + blobStore.createContainerInLocation(null, CONTAINER_NAME); + // Testing list for an empty container + checkForContainerContent(CONTAINER_NAME, null); + + //creates blobs in first container + Set blobsExpected = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { + "bbb" + File.separator + "ccc" + File.separator + "ddd" + File.separator + "1234.jpg", + "4rrr.jpg", + "rrr" + File.separator + "sss" + File.separator + "788.jpg", + "xdc" + File.separator + "wert.kpg" } + ); + + checkForContainerContent(CONTAINER_NAME, blobsExpected); + } + + + public void testList_NotExistingContainer() { + // Testing list for a not existing container + try { + blobStore.list(CONTAINER_NAME); + fail("Found a not existing container"); + } catch(ContainerNotFoundException e) { + //ok if arriver here + } + } + + /** + * Test of list method, of class FilesystemAsyncBlobStore. + */ + public void testList_NoOptionDoubleContainer() throws IOException { + final String CONTAINER_NAME2 = "container2"; + + //create first container + blobStore.createContainerInLocation(null, CONTAINER_NAME); + //checks for empty container + checkForContainerContent(CONTAINER_NAME, null); + + //create second container + blobStore.createContainerInLocation(null, CONTAINER_NAME2); + //checks for empty + checkForContainerContent(CONTAINER_NAME2, null); + + //creates blobs in first container + + Set blobNamesCreatedInContainer1 = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { + "bbb" + File.separator + "ccc" + File.separator + "ddd" + File.separator + "1234.jpg", + TestUtils.createRandomBlobKey(), + "rrr" + File.separator + "sss" + File.separator + "788.jpg", + "xdc" + File.separator + "wert.kpg"} + ); + + //creates blobs in second container + blobStore.createContainerInLocation(null, CONTAINER_NAME2); + Set blobNamesCreatedInContainer2 = TestUtils.createBlobsInContainer( + CONTAINER_NAME2, + new String[] { + "asd" + File.separator + "bbb" + File.separator + "ccc" + File.separator + "ddd" + File.separator + "1234.jpg", + TestUtils.createRandomBlobKey(), + "rrr" + File.separator + "sss" + File.separator + "788.jpg", + "xdc" + File.separator + "wert.kpg" } + ); + + //test blobs in first container + checkForContainerContent(CONTAINER_NAME, blobNamesCreatedInContainer1); + //test blobs in second container + checkForContainerContent(CONTAINER_NAME2, blobNamesCreatedInContainer2); + } + + + /** + * TODO + * Should throws an exception? + */ + public void testClearContainer_NotExistingContainer(){ + blobStore.clearContainer(CONTAINER_NAME); + } + + + /** + * Integration test, because clearContainer is not redefined in + * {@link FilesystemAsyncBlobStore} class + */ + public void testClearContainer_NoOptions() throws IOException { + final String CONTAINER_NAME2 = "containerToClear"; + + //create containers + blobStore.createContainerInLocation(null, CONTAINER_NAME); + blobStore.createContainerInLocation(null, CONTAINER_NAME2); + + //creates blobs in first container + Set blobNamesCreatedInContainer1 = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { + "bbb" + File.separator + "ccc" + File.separator + "ddd" + File.separator + "1234.jpg", + TestUtils.createRandomBlobKey(), + "rrr" + File.separator + "sss" + File.separator + "788.jpg", + "xdc" + File.separator + "wert.kpg"} + ); + + //creates blobs in second container + blobStore.createContainerInLocation(null, CONTAINER_NAME2); + Set blobNamesCreatedInContainer2 = TestUtils.createBlobsInContainer( + CONTAINER_NAME2, + new String[] { + "asd" + File.separator + "bbb" + File.separator + "ccc" + File.separator + "ddd" + File.separator + "1234.jpg", + TestUtils.createRandomBlobKey(), + "rrr" + File.separator + "sss" + File.separator + "788.jpg", + "xdc" + File.separator + "wert.kpg" } + ); + + //test blobs in containers + checkForContainerContent(CONTAINER_NAME, blobNamesCreatedInContainer1); + checkForContainerContent(CONTAINER_NAME2, blobNamesCreatedInContainer2); + + //delete blobs in first container + blobStore.clearContainer(CONTAINER_NAME); + checkForContainerContent(CONTAINER_NAME, null); + checkForContainerContent(CONTAINER_NAME2, blobNamesCreatedInContainer2); + //delete blobs in second container + blobStore.clearContainer(CONTAINER_NAME2); + checkForContainerContent(CONTAINER_NAME2, null); + } + + + /** + * Integration test, because countBlobs is not redefined in + * {@link FilesystemAsyncBlobStore} class + */ + public void testCountBlobs_NotExistingContainer() { + try { + blobStore.countBlobs(PROVIDER); + fail("Magically the method was implemented... Wow!"); + } catch (UnsupportedOperationException e) { + } + } + + /** + * Integration test, because countBlobs is not redefined in + * {@link FilesystemAsyncBlobStore} class + */ + public void testCountBlobs_NoOptionsEmptyContainer() { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + try { + blobStore.countBlobs(PROVIDER); + fail("Magically the method was implemented... Wow!"); + } catch (UnsupportedOperationException e) { + } + } + + /** + * Integration test, because countBlobs is not redefined in + * {@link FilesystemAsyncBlobStore} class + */ + public void testCountBlobs_NoOptions() { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + try { + blobStore.countBlobs(PROVIDER); + fail("Magically the method was implemented... Wow!"); + } catch (UnsupportedOperationException e) { + } + } + + + public void testRemoveBlob_SimpleBlobKey() throws IOException { + final String BLOB_KEY = TestUtils.createRandomBlobKey(null, ".txt"); + boolean result; + + blobStore.createContainerInLocation(null, CONTAINER_NAME); + + //checks that blob doesn't exists + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY); + assertFalse(result, "Blob exists"); + + //create the blob + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { BLOB_KEY } + ); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY); + assertTrue(result, "Blob exists"); + + //remove it + blobStore.removeBlob(CONTAINER_NAME, BLOB_KEY); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY); + assertFalse(result, "Blob still exists"); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY, false); + } + + + public void testRemoveBlob_TwoSimpleBlobKeys() throws IOException { + final String BLOB_KEY1 = TestUtils.createRandomBlobKey(null, null); + final String BLOB_KEY2 = TestUtils.createRandomBlobKey(null, null); + boolean result; + + //create the container and checks that blob doesn't exists + blobStore.createContainerInLocation(null, CONTAINER_NAME); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY1); + assertFalse(result, "Blob1 exists"); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertFalse(result, "Blob2 exists"); + + //create the blob + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { BLOB_KEY1, BLOB_KEY2 } + ); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY1); + assertTrue(result, "Blob " + BLOB_KEY1 + " doesn't exist"); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertTrue(result, "Blob " + BLOB_KEY2 + " doesn't exist"); + + //remove first blob + blobStore.removeBlob(CONTAINER_NAME, BLOB_KEY1); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY1); + assertFalse(result, "Blob1 still exists"); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertTrue(result, "Blob2 doesn't exist"); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY1, false); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY2, true); + //remove second blob + blobStore.removeBlob(CONTAINER_NAME, BLOB_KEY2); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertFalse(result, "Blob2 still exists"); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY2, false); + } + + + /** + * Test of removeBlob method, with only one blob with a complex path as key + */ + public void testRemoveBlob_ComplexBlobKey() throws IOException { + final String BLOB_KEY = TestUtils.createRandomBlobKey("aa/bb/cc/dd/", null); + boolean result; + + //checks that blob doesn't exists + blobStore.createContainerInLocation(null, CONTAINER_NAME); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY); + assertFalse(result, "Blob exists"); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY, false); + + //create the blob + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { BLOB_KEY } + ); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY); + assertTrue(result, "Blob doesn't exist"); + + //remove it + blobStore.removeBlob(CONTAINER_NAME, BLOB_KEY); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY); + assertFalse(result, "Blob still exists"); + //file removed + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY, false); + //also the entire directory structure was removed + TestUtils.directoryExists(TARGET_CONTAINER_NAME + "/aa", false); + } + + + /** + * Test of removeBlob method, with two blobs with a complex path as key and + * when first blob is removed, not all of its key's path is removed, because + * it is shared with the second blob's key + */ + public void testRemoveBlob_TwoComplexBlobKeys() throws IOException { + final String BLOB_KEY1 = TestUtils.createRandomBlobKey("aa/bb/cc/dd/", null); + final String BLOB_KEY2 = TestUtils.createRandomBlobKey("aa/bb/ee/ff/", null); + boolean result; + + blobStore.createContainerInLocation(null, CONTAINER_NAME); + + //checks that blob doesn't exist + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY1); + assertFalse(result, "Blob1 exists"); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertFalse(result, "Blob2 exists"); + + //create the blobs + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] { BLOB_KEY1, BLOB_KEY2 } + ); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY1); + assertTrue(result, "Blob " + BLOB_KEY1 + " doesn't exist"); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertTrue(result, "Blob " + BLOB_KEY2 + " doesn't exist"); + + //remove first blob + blobStore.removeBlob(CONTAINER_NAME, BLOB_KEY1); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY1); + assertFalse(result, "Blob still exists"); + //first file deleted, not the second + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY1, false); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY2, true); + //only partial directory structure was removed, because it shares a path + //with the second blob created + TestUtils.directoryExists(TARGET_CONTAINER_NAME + "/aa/bb/cc/dd", false); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + "/aa/bb", true); + //remove second blob + blobStore.removeBlob(CONTAINER_NAME, BLOB_KEY2); + result = blobStore.blobExists(CONTAINER_NAME, BLOB_KEY2); + assertFalse(result, "Blob still exists"); + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY2, false); + //now all the directory structure is empty + TestUtils.directoryExists(TARGET_CONTAINER_NAME + "/aa", false); + } + + + /** + * Test of containerExists method, of class FilesystemAsyncBlobStore. + */ + public void testContainerExists() throws IOException { + boolean result; + + result = blobStore.containerExists(CONTAINER_NAME); + assertFalse(result, "Container exists"); + + //create container + TestUtils.createContainerAsDirectory(CONTAINER_NAME); + + result = blobStore.containerExists(CONTAINER_NAME); + assertTrue(result, "Container doesn't exist"); + } + + + /** + * Test of createContainerInLocation method, of class FilesystemAsyncBlobStore. + */ + public void testCreateContainerInLocation() throws IOException { + final String CONTAINER_NAME2 = "funambol-test-2"; + final String TARGET_CONTAINER_NAME2 = TestUtils.TARGET_BASE_DIR + CONTAINER_NAME2; + + boolean result; + + result = blobStore.containerExists(CONTAINER_NAME); + assertFalse(result, "Container exists"); + result = blobStore.createContainerInLocation(null, CONTAINER_NAME); + assertTrue(result, "Container not created"); + result = blobStore.containerExists(CONTAINER_NAME); + assertTrue(result, "Container doesn't exist"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + + result = blobStore.containerExists(CONTAINER_NAME2); + assertFalse(result, "Container exists"); + result = blobStore.createContainerInLocation(null, CONTAINER_NAME2); + assertTrue(result, "Container not created"); + result = blobStore.containerExists(CONTAINER_NAME2); + assertTrue(result, "Container doesn't exist"); + TestUtils.directoryExists(TestUtils.TARGET_BASE_DIR + CONTAINER_NAME2, true); + + //clean the environment + FileUtils.forceDelete(new File(TARGET_CONTAINER_NAME2)); + } + + + /** + * Test of putBlob method, of class FilesystemAsyncBlobStore. + * with a simple filename - no path in the filename, eg + * filename.jpg + */ + public void testPutBlobSimpleName() { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("putBlob-", ".jpg")); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("putBlob-", ".jpg")); + } + + /** + * Test of putBlob method with a complex key, with path in the filename, eg + * picture/filename.jpg + */ + public void testPutBlobComplexName1() { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("picture/putBlob-", ".jpg")); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("video/putBlob-", ".jpg")); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("putBlob-", ".jpg")); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("video/putBlob-", ".jpg")); + } + + /** + * Test of putBlob method with a complex key, with path in the filename, eg + * picture/filename.jpg + */ + public void testPutBlobComplexName2() { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("aa/bb/cc/dd/ee/putBlob-", ".jpg")); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("aa/bb/cc/dd/ee/putBlob-", ".jpg")); + putBlobAndCheckIt(TestUtils.createRandomBlobKey("putBlob-", ".jpg")); + } + + + /** + * Test of blobExists method, of class FilesystemAsyncBlobStore. + */ + public void testBlobExists() throws IOException { + boolean result; + String blobKey; + + //when location doesn't exists + blobKey = TestUtils.createRandomBlobKey(); + result = blobStore.blobExists(CONTAINER_NAME, blobKey); + assertFalse(result, "Blob exists"); + + //when location exists + blobStore.createContainerInLocation(null, CONTAINER_NAME); + result = blobStore.blobExists(CONTAINER_NAME, blobKey); + assertFalse(result, "Blob exists"); + + //create blob + TestUtils.createBlobAsFile(CONTAINER_NAME, blobKey, TestUtils.getImageForBlobPayload()); + result = blobStore.blobExists(CONTAINER_NAME, blobKey); + assertTrue(result, "Blob doesn't exist"); + + //complex path test + blobKey = TestUtils.createRandomBlobKey("ss/asdas/", ""); + result = blobStore.blobExists(CONTAINER_NAME, blobKey); + assertFalse(result, "Blob exists"); + TestUtils.createBlobAsFile(CONTAINER_NAME, blobKey, TestUtils.getImageForBlobPayload()); + result = blobStore.blobExists(CONTAINER_NAME, blobKey); + assertTrue(result, "Blob doesn't exist"); + } + + + public void testGetBlob_NotExistingContainer() { + try { + blobStore.getBlob(CONTAINER_NAME, TestUtils.createRandomBlobKey(), null); + fail("Retrieve must fail, container does not exist."); + } catch(ContainerNotFoundException e) { + //correct if arrive here + } + } + + /** + * Test of getBlob method, of class FilesystemAsyncBlobStore. + */ + public void testGetBlob() throws IOException { + String blobKey = TestUtils.createRandomBlobKey(); + GetOptions options = null; + Blob resultBlob; + + blobStore.createContainerInLocation(null, CONTAINER_NAME); + + resultBlob = blobStore.getBlob(CONTAINER_NAME, blobKey, options); + assertNull(resultBlob, "Blob exists"); + + //create blob + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{blobKey}); + + resultBlob = blobStore.getBlob(CONTAINER_NAME, blobKey, options); + + assertNotNull(resultBlob, "Blob exists"); + //checks file content + InputStream expectedFile = new FileInputStream(TARGET_CONTAINER_NAME + File.separator + blobKey); + InputStream currentFile = resultBlob.getPayload().getInput(); + assertTrue(TestUtils.isSame(expectedFile, currentFile), "Blob payload differs from file content"); + //metadata are verified in the test for blobMetadata, so no need to + //perform a complete test here + assertNotNull(resultBlob.getMetadata(), "Metadata null"); + MutableBlobMetadata metadata = resultBlob.getMetadata(); + assertEquals(blobKey, metadata.getName(), "Wrong blob metadata"); + } + + + public void testBlobMetadata_withDefaultMetadata() throws IOException { + String BLOB_KEY = TestUtils.createRandomBlobKey(null, null); + //create the blob + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ BLOB_KEY } + ); + + BlobMetadata metadata = blobStore.blobMetadata(CONTAINER_NAME, BLOB_KEY); + assertNotNull(metadata, "Metadata null"); + + assertEquals(metadata.getName(), BLOB_KEY, "Wrong blob name"); + assertEquals(metadata.getType(), StorageType.BLOB, "Wrong blob type"); + assertEquals(metadata.getContentType(), "", "Wrong blob content-type"); + assertEquals(metadata.getContentMD5(), null, "Wrong blob MD5"); + assertEquals(metadata.getLocation(), null, "Wrong blob location"); + assertEquals(metadata.getProviderId(), null, "Wrong blob provider id"); + assertEquals(metadata.getUri(), null, "Wrong blob URI"); + assertNotNull(metadata.getUserMetadata(), "No blob UserMetadata"); + assertEquals(metadata.getUserMetadata().size(), 0, "Wrong blob UserMetadata"); + //metadata.getLastModified() + File file = new File(TARGET_CONTAINER_NAME + File.separator + BLOB_KEY); + assertEquals(metadata.getSize(), new Long(file.length()), "Wrong blob size"); + //don't know how to calculate ETAG + //assertEquals(metadata.getETag(), "105cf4e6c052d65352dabd20028ff102", "Wrong blob ETag"); + } + + + public void testDeleteContainer_NotExistingContainer(){ + try { + blobStore.deleteContainer(CONTAINER_NAME); + fail("No error when container doesn't exist"); + } catch (Exception e) { + } + } + + public void testDeleteContainer_EmptyContanier(){ + boolean result; + blobStore.createContainerInLocation(null, CONTAINER_NAME); + + result = blobStore.containerExists(CONTAINER_NAME); + assertTrue(result, "Container doesn't exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + + //delete container + blobStore.deleteContainer(CONTAINER_NAME); + result = blobStore.containerExists(CONTAINER_NAME); + assertFalse(result, "Container still exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + } + + + public void testDeleteContainer() throws IOException{ + boolean result; + String CONTAINER_NAME2 = "container-to-delete"; + String TARGET_CONTAINER_NAME2 = TestUtils.TARGET_BASE_DIR + CONTAINER_NAME2; + blobStore.createContainerInLocation(null, CONTAINER_NAME); + blobStore.createContainerInLocation(null, CONTAINER_NAME2); + + result = blobStore.containerExists(CONTAINER_NAME); + assertTrue(result, "Container [" + CONTAINER_NAME + "] doesn't exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + result = blobStore.containerExists(CONTAINER_NAME2); + assertTrue(result, "Container [" + CONTAINER_NAME2 + "] doesn't exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME2, true); + + //create blobs inside container + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("testutils-", null), + TestUtils.createRandomBlobKey("testutils-", null), + TestUtils.createRandomBlobKey("ab123s" + File.separator + "testutils-", null), + }); + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("testutils-", null), + TestUtils.createRandomBlobKey("testutils-", null), + TestUtils.createRandomBlobKey("asda123s" + File.separator + "testutils-", null), + TestUtils.createRandomBlobKey("123-_3s" + File.separator + "testutils-", null), + }); + + //delete first container + blobStore.deleteContainer(CONTAINER_NAME); + result = blobStore.containerExists(CONTAINER_NAME); + assertFalse(result, "Container [" + CONTAINER_NAME + "] still exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + result = blobStore.containerExists(CONTAINER_NAME2); + assertTrue(result, "Container [" + CONTAINER_NAME2 + "] still exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME2, true); + //delete second container + blobStore.deleteContainer(CONTAINER_NAME2); + result = blobStore.containerExists(CONTAINER_NAME2); + assertFalse(result, "Container [" + CONTAINER_NAME2 + "] still exists"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME2, false); + } + + + public void testInvalidContainerName() { + try { + blobStore.createContainerInLocation(null, "file/system"); + fail("Wrong container name not recognized"); + } catch (IllegalArgumentException e) {} + try { + blobStore.containerExists("file/system"); + fail("Wrong container name not recognized"); + } catch (IllegalArgumentException e) {} + } + +// public void testInvalidBlobKey() { +// try { +// blobStore.newBlob(File.separator + "testwrongblobkey"); +// fail("Wrong blob key not recognized"); +// } catch (IllegalArgumentException e) {} +// +// try { +// blobStore.newBlob("testwrongblobkey" + File.separator); +// fail("Wrong blob key not recognized"); +// } catch (IllegalArgumentException e) {} +// } + + + + //---------------------------------------------------------- Private Methods + + /** + * Creates a {@link Blob} object filled with data from a file + * @param keyName + * @param fileContent + * @return + */ + private Blob createBlob(String keyName, File filePayload) { + Blob blob = blobStore.newBlob(keyName); + blob.setPayload(filePayload); + return blob; + } + + + + /** + * Tests if container contains only the expected blobs + * @param containerName + * @param expectedBlobKeys + */ + private void checkForContainerContent(final String containerName, Set expectedBlobKeys) { + ListContainerOptions options = ListContainerOptions.Builder.recursive(); + + PageSet blobsRetrieved = blobStore.list(containerName, options); + + //nothing expected + if (null == expectedBlobKeys) { + assertTrue(blobsRetrieved.isEmpty(), "Wrong blob number retrieved in the containter [" + containerName + "]"); + return; + } + + //copies values + Set expectedBlobKeysCopy = new HashSet(); + for (String value:expectedBlobKeys){ + expectedBlobKeysCopy.add(value); + } + assertEquals(blobsRetrieved.size(), expectedBlobKeysCopy.size(), "Wrong blob number retrieved in the containter [" + containerName + "]"); + for (StorageMetadata data : blobsRetrieved) { + String blobName = data.getName(); + if (!expectedBlobKeysCopy.remove(blobName)) { + fail("List for container [" + containerName + "] contains unexpected value [" + blobName + "]"); + } + } + assertTrue(expectedBlobKeysCopy.isEmpty(), "List operation for container [" + containerName + "] doesn't return all values."); + } + + /** + * Create a blob with putBlob method + */ + private void putBlobAndCheckIt(String blobKey) { + Blob blob; + + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + blobKey, false); + + //create the blob + blob = createBlob(blobKey, TestUtils.getImageForBlobPayload()); + String eTag = blobStore.putBlob(CONTAINER_NAME, blob); + assertNotNull(eTag, "putBlob result null"); + assertNotSame(eTag, "", "putBlob result empty"); + + //checks if the blob exists + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + blobKey, true); + } + +} diff --git a/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java new file mode 100644 index 0000000000..2a4299a155 --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java @@ -0,0 +1,33 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.integration; + +import org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest; +import org.testng.annotations.Test; + +/** + * + * @author James Murty + * @author Adrian Cole + */ +@Test(groups = { "integration" }, testName = "blobstore.FilesystemBlobIntegrationTest") +public class FilesystemBlobIntegrationTest extends BaseBlobIntegrationTest { + +} \ No newline at end of file diff --git a/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobMapIntegrationTest.java b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobMapIntegrationTest.java new file mode 100644 index 0000000000..1803862652 --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobMapIntegrationTest.java @@ -0,0 +1,32 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.integration; + +import org.jclouds.blobstore.integration.internal.BaseBlobMapIntegrationTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ + +@Test(groups = { "integration", "live" }, testName = "blobstore.FilesystemBlobMapIntegrationTest") +public class FilesystemBlobMapIntegrationTest extends BaseBlobMapIntegrationTest { + +} \ No newline at end of file diff --git a/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemContainerIntegrationTest.java b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemContainerIntegrationTest.java new file mode 100644 index 0000000000..e0ccc19865 --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemContainerIntegrationTest.java @@ -0,0 +1,72 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.integration; + +import static org.jclouds.blobstore.options.ListContainerOptions.Builder.maxResults; +import static org.testng.Assert.assertEquals; + +import javax.ws.rs.core.MediaType; + +import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.domain.BlobMetadata; +import org.jclouds.blobstore.domain.PageSet; +import org.jclouds.blobstore.domain.StorageMetadata; +import org.jclouds.blobstore.integration.internal.BaseContainerIntegrationTest; +import org.testng.annotations.Test; + +import com.google.common.collect.Iterables; + +/** + * @author James Murty + * @author Adrian Cole + */ +@Test(groups = { "integration", "live" }, testName = "blobstore.FilesystemContainerIntegrationTest") +public class FilesystemContainerIntegrationTest extends BaseContainerIntegrationTest { + + @Test(groups = { "integration", "live" }) + public void testNotWithDetails() throws InterruptedException { + + String key = "hello"; + + Blob object = context.getBlobStore().newBlob(key); + object.setPayload(TEST_STRING); + object.getMetadata().setContentType(MediaType.TEXT_PLAIN); + object.getMetadata().setSize(new Long(TEST_STRING.length())); + // NOTE all metadata in jclouds comes out as lowercase, in an effort to normalize the + // providers. + object.getMetadata().getUserMetadata().put("Adrian", "powderpuff"); + String containerName = getContainerName(); + try { + addBlobToContainer(containerName, object); + validateContent(containerName, key); + + PageSet container = context.getBlobStore().list(containerName, + maxResults(1)); + + BlobMetadata metadata = (BlobMetadata) Iterables.getOnlyElement(container); + // transient container should be lenient and not return metadata on undetailed listing. + + assertEquals(metadata.getUserMetadata().size(), 0); + + } finally { + returnContainer(containerName); + } + } +} \ No newline at end of file diff --git a/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemInputStreamMapIntegrationTest.java b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemInputStreamMapIntegrationTest.java new file mode 100644 index 0000000000..cfe0e251ea --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemInputStreamMapIntegrationTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.integration; + +import org.jclouds.blobstore.integration.internal.BaseInputStreamMapIntegrationTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = { "integration", "live" }, testName = "blobstore.FilesystemInputStreamMapIntegrationTest") +public class FilesystemInputStreamMapIntegrationTest extends BaseInputStreamMapIntegrationTest { + +} \ No newline at end of file diff --git a/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemServiceIntegrationTest.java b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemServiceIntegrationTest.java new file mode 100644 index 0000000000..3d16d5fa7e --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemServiceIntegrationTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.integration; + +import org.jclouds.blobstore.integration.internal.BaseServiceIntegrationTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = { "integration", "live" }, testName = "blobstore.FilesystemServiceIntegrationTest") +public class FilesystemServiceIntegrationTest extends BaseServiceIntegrationTest { + +} \ No newline at end of file diff --git a/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemTestInitializer.java b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemTestInitializer.java new file mode 100644 index 0000000000..a0561deacb --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemTestInitializer.java @@ -0,0 +1,56 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.integration; + +import java.io.IOException; +import java.util.Properties; + +import org.jclouds.blobstore.BlobStoreContext; +import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.integration.TransientBlobStoreTestInitializer; +import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest; +import org.jclouds.logging.log4j.config.Log4JLoggingModule; + +import com.google.common.collect.ImmutableSet; +import com.google.inject.Module; + +import org.jclouds.filesystem.reference.FilesystemConstants; +import org.jclouds.filesystem.utils.TestUtils; + +/** + * + * @author Adrian Cole + */ +public class FilesystemTestInitializer extends TransientBlobStoreTestInitializer { + + @Override + protected BlobStoreContext createLiveContext(Module configurationModule, String url, String app, + String identity, String key) throws IOException { + BaseBlobStoreIntegrationTest.SANITY_CHECK_RETURNED_BUCKET_NAME = true; + + Properties prop = new Properties(); + prop.setProperty(FilesystemConstants.PROPERTY_BASEDIR, TestUtils.TARGET_BASE_DIR); + return new BlobStoreContextFactory().createContext( + "filesystem", + ImmutableSet.of(configurationModule, new Log4JLoggingModule()), + prop); + } + +} \ No newline at end of file diff --git a/filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorTest.java b/filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorTest.java new file mode 100644 index 0000000000..9e204b3866 --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemBlobKeyValidatorTest.java @@ -0,0 +1,67 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.predicates.validators.internal; + +import java.io.File; +import org.jclouds.filesystem.predicates.validators.FilesystemBlobKeyValidator; +import org.testng.annotations.Test; + +import static org.testng.Assert.*; + + +/** + * Test class for {@link FilesystemBlobKeyValidator } class + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Test(groups = "unit", testName = "filesystem.FilesystemBlobKeyValidatorTest") +public class FilesystemBlobKeyValidatorTest { + + @Test + public void testNamesValidity() { + FilesystemBlobKeyValidator validator = new FilesystemBlobKeyValidatorImpl(); + + validator.validate("all.img"); + validator.validate("all" + File.separator + "is" + File.separator + "" + "ok"); + } + + @Test + public void testInvalidNames() { + FilesystemBlobKeyValidator validator = new FilesystemBlobKeyValidatorImpl(); + + try { + validator.validate(""); + fail("Blob key value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + + try { + validator.validate(File.separator + "is" + File.separator + "" + "ok"); + fail("Blob key value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + + try { + validator.validate("all" + File.separator + "is" + File.separator); + fail("Blob key value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + } + + + //---------------------------------------------------------- Private methods + +} diff --git a/filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorTest.java b/filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorTest.java new file mode 100644 index 0000000000..3b35f9b75f --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/predicates/validators/internal/FilesystemContainerNameValidatorTest.java @@ -0,0 +1,72 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.predicates.validators.internal; + +import org.jclouds.filesystem.predicates.validators.internal.FilesystemBlobKeyValidatorImpl; +import java.io.File; +import org.jclouds.filesystem.predicates.validators.FilesystemBlobKeyValidator; +import org.testng.annotations.Test; + +import static org.testng.Assert.*; + + +/** + * Test class for {@link FilesystemContainerNameValidator } class + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Test(groups = "unit", testName = "filesystem.FilesystemContainerNameValidatorTest") +public class FilesystemContainerNameValidatorTest { + + @Test + public void testNamesValidity() { + FilesystemBlobKeyValidator validator = new FilesystemBlobKeyValidatorImpl(); + + validator.validate("all.img"); + } + + @Test + public void testInvalidNames() { + FilesystemBlobKeyValidator validator = new FilesystemBlobKeyValidatorImpl(); + + try { + validator.validate(""); + fail("Container name value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + + try { + validator.validate(null); + fail("Container name value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + + try { + validator.validate(File.separator + "is" + File.separator + "" + "ok"); + fail("Container name value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + + try { + validator.validate("all" + File.separator + "is" + File.separator); + fail("Container name value incorrect, but was not recognized"); + } catch(IllegalArgumentException e) {} + } + + + //---------------------------------------------------------- Private methods + +} diff --git a/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java b/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java new file mode 100644 index 0000000000..c0bf352a0f --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java @@ -0,0 +1,532 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.strategy.internal; + +import java.util.List; +import java.util.Set; +import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl; +import org.jclouds.blobstore.domain.internal.BlobImpl; +import org.jclouds.blobstore.domain.MutableBlobMetadata; +import org.jclouds.blobstore.domain.Blob; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import org.jclouds.blobstore.options.ListContainerOptions; +import org.jclouds.filesystem.predicates.validators.internal.FilesystemContainerNameValidatorImpl; +import org.jclouds.filesystem.predicates.validators.internal.FilesystemBlobKeyValidatorImpl; +import org.jclouds.filesystem.strategy.FilesystemStorageStrategy; +import org.jclouds.filesystem.utils.TestUtils; +import org.jclouds.io.payloads.FilePayload; +import org.testng.annotations.*; + +import static org.testng.Assert.*; + +/** + * Test class for {@link FilesystemStorageStrategyImpl } class + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +@Test(groups = "unit", testName = "filesystem.FilesystemBlobUtilsTest", sequential = true) +public class FilesystemStorageStrategyImplTest { + private static final String CONTAINER_NAME = "funambol-test"; + private static final String TARGET_CONTAINER_NAME = TestUtils.TARGET_BASE_DIR + CONTAINER_NAME; + + private static final String LOGGING_CONFIG_KEY = "java.util.logging.config.file"; + private static final String LOGGING_CONFIG_VALUE = "src/main/resources/logging.properties"; + + static { + System.setProperty(LOGGING_CONFIG_KEY, + LOGGING_CONFIG_VALUE); + } + + private FilesystemStorageStrategy storageStrategy; + + @BeforeMethod + protected void setUp() throws Exception { + storageStrategy = new FilesystemStorageStrategyImpl( + new Blob.Factory() { + @Override + public Blob create(MutableBlobMetadata metadata) { + return new BlobImpl(metadata != null ? metadata : new MutableBlobMetadataImpl()); + } + }, + TestUtils.TARGET_BASE_DIR, + new FilesystemContainerNameValidatorImpl(), + new FilesystemBlobKeyValidatorImpl()); + TestUtils.cleanDirectoryContent(TestUtils.TARGET_BASE_DIR); + } + + + @AfterMethod + protected void tearDown() throws IOException { + TestUtils.cleanDirectoryContent(TestUtils.TARGET_BASE_DIR); + } + + + public void testCreateDirectory() { + storageStrategy.createDirectory(CONTAINER_NAME, null); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + + storageStrategy.createDirectory(CONTAINER_NAME, "subdir"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "subdir", true); + + storageStrategy.createDirectory(CONTAINER_NAME, "subdir1" + File.separator); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "subdir1", true); + + storageStrategy.createDirectory(CONTAINER_NAME, File.separator + "subdir2"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "subdir2", true); + + storageStrategy.createDirectory(CONTAINER_NAME, "subdir3" + File.separator + "subdir4"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "subdir2", true); + } + + public void testCreateDirectory_DirectoryAlreadyExists() { + storageStrategy.createDirectory(CONTAINER_NAME, null); + storageStrategy.createDirectory(CONTAINER_NAME, null); + } + + public void testCreateDirectory_WrongDirectoryName() { + try { + storageStrategy.createDirectory(CONTAINER_NAME, "$%&!'`\\"); + fail("No exception throwed"); + } catch(Exception e) { + } + } + + + public void testCreateContainer() { + boolean result; + + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + result = storageStrategy.createContainer(CONTAINER_NAME); + assertTrue(result, "Container not created"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + } + + public void testCreateContainer_ContainerAlreadyExists() { + boolean result; + + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + result = storageStrategy.createContainer(CONTAINER_NAME); + assertTrue(result, "Container not created"); + result = storageStrategy.createContainer(CONTAINER_NAME); + assertFalse(result, "Container not created"); + } + + + public void testDeleteDirectory() throws IOException { + TestUtils.createContainerAsDirectory(CONTAINER_NAME); + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("lev1/lev2/lev3/", ".txt"), + TestUtils.createRandomBlobKey("lev1/lev2/lev4/", ".jpg") + } + ); + + //delete directory in different ways + storageStrategy.deleteDirectory(CONTAINER_NAME, "lev1/lev2/lev4"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "lev1/lev2/lev4", false); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "lev1/lev2", true); + + storageStrategy.deleteDirectory(CONTAINER_NAME, "lev1/lev2/lev3/"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "lev1/lev2/lev3", false); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "lev1/lev2", true); + + storageStrategy.deleteDirectory(CONTAINER_NAME, "/lev1"); + TestUtils.directoryExists(TARGET_CONTAINER_NAME + File.separator + "lev1", false); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + + //delete the directory and all the files inside + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("lev1/lev2/lev3/", ".txt"), + TestUtils.createRandomBlobKey("lev1/lev2/lev4/", ".jpg") + } + ); + storageStrategy.deleteDirectory(CONTAINER_NAME, null); + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + } + + public void testDeleteDirectory_ErrorWhenNotExists(){ + try { + storageStrategy.deleteDirectory(CONTAINER_NAME, null); + fail("No exception throwed"); + } catch(Exception e) { + } + } + + + public void testDirectoryExists() throws IOException { + final String SUBDIRECTORY_NAME = "ad" + File.separator + "sda" + File.separator + "asd"; + boolean result; + + result = storageStrategy.directoryExists(CONTAINER_NAME, null); + assertFalse(result, "Directory exist"); + + //create the container + TestUtils.createContainerAsDirectory(CONTAINER_NAME); + //check if exists + result = storageStrategy.directoryExists(CONTAINER_NAME, null); + assertTrue(result, "Directory doesn't exist"); + result = storageStrategy.directoryExists(CONTAINER_NAME + File.separator, null); + assertTrue(result, "Directory doesn't exist"); + + + result = storageStrategy.directoryExists(CONTAINER_NAME, SUBDIRECTORY_NAME); + assertFalse(result, "Directory exist"); + + //create subdirs inside the container + TestUtils.createContainerAsDirectory(CONTAINER_NAME + File.separator + SUBDIRECTORY_NAME); + //check if exists + result = storageStrategy.directoryExists(CONTAINER_NAME, SUBDIRECTORY_NAME); + assertTrue(result, "Directory doesn't exist"); + result = storageStrategy.directoryExists(CONTAINER_NAME, File.separator + SUBDIRECTORY_NAME); + assertTrue(result, "Directory doesn't exist"); + result = storageStrategy.directoryExists(CONTAINER_NAME, SUBDIRECTORY_NAME + File.separator); + assertTrue(result, "Directory doesn't exist"); + result = storageStrategy.directoryExists(CONTAINER_NAME + File.separator, File.separator + SUBDIRECTORY_NAME); + assertTrue(result, "Directory doesn't exist"); + + } + + + public void testClearContainer() throws IOException{ + storageStrategy.createContainer(CONTAINER_NAME); + Set blobs = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("clean_container-", ".jpg"), + TestUtils.createRandomBlobKey("bf/sd/as/clean_container-", ".jpg")} + ); + //test if file exits + for(String blob:blobs) { + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + blob, true); + } + + //clear the container + storageStrategy.clearContainer(CONTAINER_NAME); + //test if container still exits + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + //test if file was cleared + for(String blob:blobs) { + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + blob, false); + } + } + + + public void testClearContainer_NotExistingContainer() throws IOException{ + //test if container still exits + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + //clear the container + storageStrategy.clearContainer(CONTAINER_NAME); + //test if container still exits + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + } + + + public void testClearContainerAndThenDeleteContainer() throws IOException{ + storageStrategy.createContainer(CONTAINER_NAME); + Set blobs = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("clean_container-", ".jpg"), + TestUtils.createRandomBlobKey("bf/sd/as/clean_container-", ".jpg")} + ); + //test if file exits + for(String blob:blobs) { + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + blob, true); + } + + //clear the container + storageStrategy.clearContainer(CONTAINER_NAME); + //test if container still exits + TestUtils.directoryExists(TARGET_CONTAINER_NAME, true); + //test if file was cleared + for(String blob:blobs) { + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + blob, false); + } + + //delete the container + storageStrategy.deleteContainer(CONTAINER_NAME); + //test if container still exits + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + assertFalse(storageStrategy.containerExists(CONTAINER_NAME), "Container still exists"); + } + + + public void testDeleteContainer() throws IOException { + final String BLOB_KEY1 = "blobName.jpg"; + final String BLOB_KEY2 = "aa/bb/cc/dd/ee/ff/23/blobName.jpg"; + boolean result; + + result = storageStrategy.createContainer(CONTAINER_NAME); + + //put data inside the container + TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[] {BLOB_KEY1, BLOB_KEY2} + ); + + storageStrategy.deleteContainer(CONTAINER_NAME); + assertTrue(result, "Cannot delete container"); + TestUtils.directoryExists(CONTAINER_NAME, false); + } + + public void testDeleteContainer_EmptyContainer() { + boolean result; + + result = storageStrategy.createContainer(CONTAINER_NAME); + assertTrue(result, "Cannot create container"); + + storageStrategy.deleteContainer(CONTAINER_NAME); + TestUtils.directoryExists(CONTAINER_NAME, false); + } + + public void testDeleteContainer_ErrorWhenNotExists() { + try { + storageStrategy.deleteContainer(CONTAINER_NAME); + fail("Exception not throwed"); + } catch (Exception e) { + } + } + + + public void testGetAllContainerNames() { + Iterable resultList; + + //no container + resultList = storageStrategy.getAllContainerNames(); + assertNotNull(resultList, "Result is null"); + assertFalse(resultList.iterator().hasNext(), "Containers detected"); + + //create containers + storageStrategy.createContainer(CONTAINER_NAME + "1"); + storageStrategy.createContainer(CONTAINER_NAME + "2"); + storageStrategy.createContainer(CONTAINER_NAME + "3"); + + List containers = new ArrayList(); + resultList = storageStrategy.getAllContainerNames(); + Iterator containersIterator = resultList.iterator(); + while(containersIterator.hasNext()){ + containers.add(containersIterator.next()); + } + assertEquals(containers.size(), 3, "Different containers number"); + assertTrue(containers.contains(CONTAINER_NAME + "1"), "Containers doesn't exist"); + assertTrue(containers.contains(CONTAINER_NAME + "2"), "Containers doesn't exist"); + assertTrue(containers.contains(CONTAINER_NAME + "3"), "Containers doesn't exist"); + } + + + public void testContainerExists(){ + boolean result; + + TestUtils.directoryExists(TARGET_CONTAINER_NAME, false); + result = storageStrategy.containerExists(CONTAINER_NAME); + assertFalse(result, "Container exists"); + storageStrategy.createContainer(CONTAINER_NAME); + result = storageStrategy.containerExists(CONTAINER_NAME); + assertTrue(result, "Container exists"); + } + + + public void testNewBlob() { + String blobKey; + Blob newBlob; + + blobKey = TestUtils.createRandomBlobKey("blobtest-", ".txt"); + newBlob = storageStrategy.newBlob(blobKey); + assertNotNull(newBlob, "Created blob was null"); + assertNotNull(newBlob.getMetadata(), "Created blob metadata were null"); + assertEquals(newBlob.getMetadata().getName(), blobKey, "Created blob name is different"); + + blobKey = TestUtils.createRandomBlobKey("blobtest-", ""); + newBlob = storageStrategy.newBlob(blobKey); + assertEquals(newBlob.getMetadata().getName(), blobKey, "Created blob name is different"); + + blobKey = TestUtils.createRandomBlobKey("asd/asd/asdasd/afadsf-", ""); + newBlob = storageStrategy.newBlob(blobKey); + assertEquals(newBlob.getMetadata().getName(), blobKey, "Created blob name is different"); + } + + + public void testWritePayloadOnFile() throws IOException { + String blobKey; + File sourceFile; + FilePayload filePayload; + + blobKey = TestUtils.createRandomBlobKey("writePayload-", ".img"); + sourceFile = TestUtils.getImageForBlobPayload(); + filePayload = new FilePayload(sourceFile); + //write files + storageStrategy.writePayloadOnFile(CONTAINER_NAME, blobKey, filePayload); + //verify that the files is equal + String blobFullPath = TARGET_CONTAINER_NAME + File.separator + blobKey; + InputStream expectedInput = new FileInputStream(sourceFile); + InputStream currentInput = new FileInputStream(blobFullPath); + assertTrue(TestUtils.isSame(expectedInput, currentInput), "Files aren't equals"); + } + + public void testWritePayloadOnFile_SourceFileDoesntExist() { + File sourceFile = new File("asdfkjsadkfjasdlfasdflk.asdfasdfas"); + try { + new FilePayload(sourceFile); + fail("Exception not throwed"); + } catch (Exception ex) { + } + } + + + public void testGetFileForBlobKey() { + String blobKey; + File fileForPayload; + String fullPath = (new File(TARGET_CONTAINER_NAME).getAbsolutePath()) + File.separator; + + blobKey = TestUtils.createRandomBlobKey("getFileForBlobKey-", ".img"); + fileForPayload = storageStrategy.getFileForBlobKey(CONTAINER_NAME, blobKey); + assertNotNull(fileForPayload, "Result File object is null"); + assertEquals(fileForPayload.getAbsolutePath(), fullPath + blobKey, "Wrong file path"); + + blobKey = TestUtils.createRandomBlobKey("asd/vmad/andsnf/getFileForBlobKey-", ".img"); + fileForPayload = storageStrategy.getFileForBlobKey(CONTAINER_NAME, blobKey); + assertEquals(fileForPayload.getAbsolutePath(), fullPath + blobKey, "Wrong file path"); + } + + + public void testBlobExists() throws IOException { + String[] sourceBlobKeys = new String[]{ + TestUtils.createRandomBlobKey("blobExists-", ".jpg"), + TestUtils.createRandomBlobKey("blobExists-", ".jpg"), + TestUtils.createRandomBlobKey("afasd" + File.separator + "asdma" + File.separator + "blobExists-", ".jpg") + }; + + for(String blobKey:sourceBlobKeys) { + assertFalse(storageStrategy.blobExists(CONTAINER_NAME, blobKey), "Blob " + blobKey + " exists"); + } + TestUtils.createBlobsInContainer(CONTAINER_NAME, sourceBlobKeys); + for(String blobKey:sourceBlobKeys) { + assertTrue(storageStrategy.blobExists(CONTAINER_NAME, blobKey), "Blob " + blobKey + " doesn't exist"); + } + } + + + public void testRemoveBlob() throws IOException { + storageStrategy.createContainer(CONTAINER_NAME); + Set blobKeys = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("removeBlob-", ".jpg"), + TestUtils.createRandomBlobKey("removeBlob-", ".jpg"), + TestUtils.createRandomBlobKey("346" + File.separator + "g3sx2" + File.separator + "removeBlob-", ".jpg"), + TestUtils.createRandomBlobKey("346" + File.separator + "g3sx2" + File.separator + "removeBlob-", ".jpg") + }); + + Set remainingBlobKeys = new HashSet(); + for(String key:blobKeys) { + remainingBlobKeys.add(key); + } + for (String blobKeyToRemove:blobKeys) { + storageStrategy.removeBlob(CONTAINER_NAME, blobKeyToRemove); + //checks if the blob was removed + TestUtils.fileExists(blobKeyToRemove, false); + remainingBlobKeys.remove(blobKeyToRemove); + //checks if all other blobs still exists + for(String remainingBlobKey:remainingBlobKeys) { + TestUtils.fileExists(TARGET_CONTAINER_NAME + File.separator + remainingBlobKey, true); + } + } + } + + public void testRemoveBlob_ContainerNotExists() { + storageStrategy.removeBlob("asdasdasd", "sdfsdfsdfasd"); + } + + public void testRemoveBlob_BlobNotExists() { + storageStrategy.createContainer(CONTAINER_NAME); + storageStrategy.removeBlob(CONTAINER_NAME, "sdfsdfsdfasd"); + } + + + public void testGetBlobKeysInsideContainer() throws IOException { + Iterable resultList; + + //no container + resultList = storageStrategy.getBlobKeysInsideContainer(CONTAINER_NAME); + assertNotNull(resultList, "Result is null"); + assertFalse(resultList.iterator().hasNext(), "Blobs detected"); + + //create blobs + storageStrategy.createContainer(CONTAINER_NAME); + Set createBlobKeys = TestUtils.createBlobsInContainer( + CONTAINER_NAME, + new String[]{ + TestUtils.createRandomBlobKey("GetBlobKeys-", ".jpg"), + TestUtils.createRandomBlobKey("GetBlobKeys-", ".jpg"), + TestUtils.createRandomBlobKey("563" + File.separator + "g3sx2" + File.separator + "removeBlob-", ".jpg"), + TestUtils.createRandomBlobKey("563" + File.separator + "g3sx2" + File.separator + "removeBlob-", ".jpg") + }); + storageStrategy.getBlobKeysInsideContainer(CONTAINER_NAME); + + List retrievedBlobKeys = new ArrayList(); + resultList = storageStrategy.getBlobKeysInsideContainer(CONTAINER_NAME); + Iterator containersIterator = resultList.iterator(); + while(containersIterator.hasNext()){ + retrievedBlobKeys.add(containersIterator.next()); + } + assertEquals(retrievedBlobKeys.size(), createBlobKeys.size(), "Different blobs number"); + for(String createdBlobKey:createBlobKeys) { + assertTrue(retrievedBlobKeys.contains(createdBlobKey), "Blob " + createdBlobKey + " not found"); + } + } + + + public void testCountsBlob() { + try { + storageStrategy.countBlobs(CONTAINER_NAME, ListContainerOptions.NONE); + fail("Magically the method was implemented... Wow!"); + } catch (UnsupportedOperationException e) { + } + } + + + public void testInvalidBlobKey() { + try { + storageStrategy.newBlob("/test.jpg"); + fail("Wrong blob key not recognized"); + } catch (IllegalArgumentException e) {} + } + + public void testInvalidContainerName() { + try { + storageStrategy.createContainer("file/system"); + fail("Wrong container name not recognized"); + } catch (IllegalArgumentException e) {} + } + + //---------------------------------------------------------- Private methods + + + +} diff --git a/filesystem/src/test/java/org/jclouds/filesystem/utils/TestUtils.java b/filesystem/src/test/java/org/jclouds/filesystem/utils/TestUtils.java new file mode 100644 index 0000000000..34b65f8e33 --- /dev/null +++ b/filesystem/src/test/java/org/jclouds/filesystem/utils/TestUtils.java @@ -0,0 +1,245 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.filesystem.utils; + +import java.util.Arrays; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; +import java.io.File; +import java.io.IOException; +import org.apache.commons.io.FileUtils; + +import static org.testng.Assert.*; + +/** + * Utility class for test + * + * @author Alfredo "Rainbowbreeze" Morresi + */ +public class TestUtils { + + private static final String TARGET_RESOURCE_DIR = "." + File.separator + "src" + File.separator + "test" + File.separator + "resources" + File.separator; + /** All the files available for the tests */ + private static String[] imageResource = new String[]{ + TARGET_RESOURCE_DIR + "image1.jpg", + TARGET_RESOURCE_DIR + "image2.jpg", + TARGET_RESOURCE_DIR + "image3.jpg", + TARGET_RESOURCE_DIR + "image4.jpg" + }; + private static int imageResourceIndex = 0; + + public static final String TARGET_BASE_DIR = "." + File.separator + "target" + File.separator + "basedir" + File.separator; + + + /** + * Generate a random blob key simple name (with no path in the key) + * @return + */ + public static String createRandomBlobKey() { + return createRandomBlobKey("", ""); + } + + /** + * Generate a random blob key simple name (with no path in the key) + * @param prefix a prefix to the id, default "testkey-" + * @param extension a extension for the blob key, default ".jpg" + * @return + */ + public static String createRandomBlobKey(String prefix, String extension) { + String okPrefix = (null != prefix && !"".equals(prefix)) ? prefix : "testkey-"; + String okExtension = (null != extension && !"".equals(extension)) ? extension : ".jpg"; + return okPrefix + UUID.randomUUID().toString() + okExtension; + } + + /** + * Creates blobs in container + * @param containerName + * @param blobNames + * @return a Set with all blobs created + * @throws IOException + */ + public static Set createBlobsInContainer(String containerName, String[] blobNames) throws IOException { + Set blobNamesCreatedInContainer = new HashSet(); + for (String blobName : blobNames) { + createBlobAsFile(containerName, blobName, getImageForBlobPayload()); + blobNamesCreatedInContainer.add(blobName); + } + return blobNamesCreatedInContainer; + } + + /** + * Creates a container object creating a directory + * @param containerName + * @throws IOException + */ + public static void createContainerAsDirectory(String containerName) throws IOException { + FileUtils.forceMkdir(new File(TARGET_BASE_DIR + containerName)); + } + + /** + * + * @param directoryFullPath the directory path + * @return + */ + public static boolean directoryExists(String directoryFullPath) { + File file = new File(directoryFullPath); + boolean exists = file.exists() || file.isDirectory(); + + return exists; + } + + /** + * + * @param directoryFullPath + * @param checkResult + * @param expectedResult + * @return + */ + public static boolean directoryExists(String directoryFullPath, boolean expectedResult) { + boolean exists = directoryExists(directoryFullPath); + + if (expectedResult) { + assertTrue(exists, "Directory " + directoryFullPath + " doens't exists"); + } else { + assertFalse(exists, "Directory " + directoryFullPath + " still exists"); + } + return exists; + } + + + public static boolean fileExists(String fileFullName) { + File file = new File(fileFullName); + boolean exists = file.exists() || file.isFile(); + return exists; + } + + /** + * + * @param fileFullName + * @param checkResult + * @param expectedResult + * @return + */ + public static boolean fileExists(String fileFullName, boolean expectedResult) { + boolean exists = fileExists(fileFullName); + + if (expectedResult) { + assertTrue(exists, "File " + fileFullName + " doens't exists"); + } else { + assertFalse(exists, "File " + fileFullName + " still exists"); + } + return exists; + } + + + /** + * Empty a directory + * + * @param directoryName + * @throws IOException + */ + public static void cleanDirectoryContent(String directoryName) throws IOException { + File parentDirectory = new File(directoryName); + File[] children = parentDirectory.listFiles(); + if (null != children) { + for(File child:children) { + FileUtils.forceDelete(child); + } + } + } + + /** + * Create a blob object from a given file + * @param source + * @param containerName + * @param blobKey + * @throws IOException + */ + public static void createBlobAsFile(String containerName, String blobKey, File source) throws IOException { + String filePath; + if (blobKey.startsWith("\\")) + filePath = containerName + blobKey; + else + filePath = containerName + File.separator + blobKey; + FileUtils.copyFile(source, new File(TARGET_BASE_DIR + filePath)); + } + + + /** + * Returns a pointer to an image, cycling between the ones that are available + * @return + */ + public static File getImageForBlobPayload() { + String fileName = imageResource[imageResourceIndex++]; + if (imageResourceIndex >= imageResource.length) imageResourceIndex = 0; + return new File(fileName); + } + + + /** + * Compare two input stream + * + * @param input1 the first stream + * @param input2 the second stream + * @return true if the streams contain the same content, or false otherwise + * @throws IOException + * @throws IllegalArgumentException if the stream is null + */ + public static boolean isSame(InputStream input1, InputStream input2 ) throws IOException { + boolean error = false; + try { + byte[] buffer1 = new byte[1024]; + byte[] buffer2 = new byte[1024]; + try { + int numRead1 = 0; + int numRead2 = 0; + while (true) { + numRead1 = input1.read(buffer1); + numRead2 = input2.read(buffer2); + if (numRead1 > -1) { + if (numRead2 != numRead1) return false; + // Otherwise same number of bytes read + if (!Arrays.equals(buffer1, buffer2)) return false; + // Otherwise same bytes read, so continue ... + } else { + // Nothing more in stream 1 ... + return numRead2 < 0; + } + } + } finally { + input1.close(); + } + } catch (IOException e) { + error = true; // this error should be thrown, even if there is an error closing stream 2 + throw e; + } catch (RuntimeException e) { + error = true; // this error should be thrown, even if there is an error closing stream 2 + throw e; + } finally { + try { + input2.close(); + } catch (IOException e) { + if (!error) throw e; + } + } + } +} diff --git a/filesystem/src/test/resources/image1.jpg b/filesystem/src/test/resources/image1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5c489d2bb3abbe033b89f0eb0429188c58df59e GIT binary patch literal 347378 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
SDKuAJ~{};p(xBdKr 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�* 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�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 literal 0 HcmV?d00001 diff --git a/filesystem/src/test/resources/image2.jpg b/filesystem/src/test/resources/image2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ef513d06ce1b53853f6c23301fbcac44b9f558b GIT binary patch literal 863834 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