package water.api;
import water.persist.PersistS3;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.model.Bucket;
import com.google.common.base.Strings;
import dontweave.gson.JsonArray;
import dontweave.gson.JsonPrimitive;
public class TypeaheadS3BucketRequest extends TypeaheadRequest {
public TypeaheadS3BucketRequest() {
super("Provides a simple JSON array of S3 paths.","");
}
@Override
protected JsonArray serve(String filter, int limit) {
JsonArray array = new JsonArray();
try {
AmazonS3 s3 = PersistS3.getClient();
filter = Strings.nullToEmpty(filter);
for( Bucket b : s3.listBuckets() ) {
if( b.getName().startsWith(filter) )
array.add(new JsonPrimitive(b.getName()));
if( array.size() == limit) break;
}
} catch( IllegalArgumentException xe ) { }
return array;
}
}