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; } }