Repository: usergrid Updated Branches: refs/heads/USERGRID-1047 ee8c7c4d0 -> d97f6e3c5
Fixed assets tests and fixed oversight of not updating entity metadata for AWS binary assets. Also changed tests so they will run with properties set the way its done occasionally. Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/d97f6e3c Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/d97f6e3c Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/d97f6e3c Branch: refs/heads/USERGRID-1047 Commit: d97f6e3c5d219ed8ca69be492d5d0dc9c45fd3a4 Parents: ee8c7c4 Author: George Reyes <[email protected]> Authored: Thu Jan 14 12:12:42 2016 -0800 Committer: George Reyes <[email protected]> Committed: Thu Jan 14 12:12:42 2016 -0800 ---------------------------------------------------------------------- .../rest/applications/assets/AwsAssetResourceIT.java | 9 +++++++-- .../rest/applications/assets/aws/NoAWSCredsRule.java | 4 ++-- .../usergrid/services/assets/data/AwsSdkS3BinaryStore.java | 8 +++++++- 3 files changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/d97f6e3c/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AwsAssetResourceIT.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AwsAssetResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AwsAssetResourceIT.java index 4561199..914d253 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AwsAssetResourceIT.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AwsAssetResourceIT.java @@ -34,6 +34,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ws.rs.ClientErrorException; +import javax.ws.rs.ForbiddenException; +import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.NotFoundException; import javax.ws.rs.core.MediaType; import java.io.IOException; @@ -151,7 +153,7 @@ public class AwsAssetResourceIT extends AbstractRestIT { }catch ( AwsPropertiesNotFoundException e ){ fail("Shouldn't interrupt runtime if access key isnt found."); } - catch( ClientErrorException uie){ + catch( InternalServerErrorException uie){ assertEquals( 500, uie.getResponse().getStatus() ); } finally{ @@ -193,7 +195,10 @@ public class AwsAssetResourceIT extends AbstractRestIT { }catch ( AwsPropertiesNotFoundException e ){ fail("Shouldn't interrupt runtime if access key isnt found."); } - catch( ClientErrorException uie){ + catch(ForbiddenException fe){ + assertEquals( 403, fe.getResponse().getStatus() ); + } + catch( InternalServerErrorException uie){ assertEquals( 500, uie.getResponse().getStatus() ); } finally{ http://git-wip-us.apache.org/repos/asf/usergrid/blob/d97f6e3c/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/aws/NoAWSCredsRule.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/aws/NoAWSCredsRule.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/aws/NoAWSCredsRule.java index 1dd00ff..40a6b45 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/aws/NoAWSCredsRule.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/aws/NoAWSCredsRule.java @@ -57,8 +57,8 @@ public class NoAWSCredsRule extends AbstractRestIT implements TestRule { try { Map<String,Object> properties = getRemoteTestProperties(); //TODO: GREY change this so that it checks for the properties, then if it doesn't have them, mark the tests as ignored. - accessId = (String)properties.get( SDKGlobalConfiguration.ACCESS_KEY_ENV_VAR ); - secretKey = (String)properties.get( SDKGlobalConfiguration.SECRET_KEY_ENV_VAR ); + accessId = (String)System.getProperty( SDKGlobalConfiguration.ACCESS_KEY_ENV_VAR ); + secretKey = (String)System.getProperty( SDKGlobalConfiguration.SECRET_KEY_ENV_VAR ); bucketName =(String) properties.get( "usergrid.binary.bucketname" ); if(accessId==null||secretKey==null||bucketName==null){ http://git-wip-us.apache.org/repos/asf/usergrid/blob/d97f6e3c/stack/services/src/main/java/org/apache/usergrid/services/assets/data/AwsSdkS3BinaryStore.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/assets/data/AwsSdkS3BinaryStore.java b/stack/services/src/main/java/org/apache/usergrid/services/assets/data/AwsSdkS3BinaryStore.java index d81f023..47a99c0 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/assets/data/AwsSdkS3BinaryStore.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/assets/data/AwsSdkS3BinaryStore.java @@ -140,6 +140,9 @@ public class AwsSdkS3BinaryStore implements BinaryStore { Boolean overSizeLimit = false; + EntityManager em = emf.getEntityManager( appId ); + + if ( written < FIVE_MB ) { // total smaller than 5mb ObjectMetadata om = new ObjectMetadata(); @@ -156,6 +159,9 @@ public class AwsSdkS3BinaryStore implements BinaryStore { if(md5sum != null) fileMetadata.put( AssetUtils.CHECKSUM, md5sum ); fileMetadata.put( AssetUtils.E_TAG, eTag ); + + em.update( entity ); + } else { // bigger than 5mb... dump 5 mb tmp files and upload from them written = 0; //reset written to 0, we still haven't wrote anything in fact @@ -236,7 +242,6 @@ public class AwsSdkS3BinaryStore implements BinaryStore { //check for flag here then abort. if(overSizeLimit) { - EntityManager em = emf.getEntityManager( appId ); AbortMultipartUploadRequest abortRequest = new AbortMultipartUploadRequest( bucketName, uploadFileName, initResponse.getUploadId() ); @@ -282,6 +287,7 @@ public class AwsSdkS3BinaryStore implements BinaryStore { CompleteMultipartUploadResult amazonResult = getS3Client().completeMultipartUpload( request ); fileMetadata.put( AssetUtils.CONTENT_LENGTH, written ); fileMetadata.put( AssetUtils.E_TAG, amazonResult.getETag() ); + em.update( entity ); } } }
