Re added in the âexportâ endpoint that lets you export all entities in all collections. Currently not separated by any visual identifier.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/c7553a3c Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/c7553a3c Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/c7553a3c Branch: refs/heads/two-dot-o Commit: c7553a3c98d0d3104c9bd89642af8b4e466043f9 Parents: 152c72d Author: grey <[email protected]> Authored: Fri Feb 28 09:11:16 2014 -0800 Committer: grey <[email protected]> Committed: Fri Feb 28 09:11:16 2014 -0800 ---------------------------------------------------------------------- .../applications/ApplicationResource.java | 38 ++++++++++++++++++++ .../management/export/ExportServiceImpl.java | 32 ++++++++++++----- 2 files changed, 61 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c7553a3c/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java index 0ddf61b..4187e3e 100644 --- a/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java +++ b/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java @@ -210,6 +210,44 @@ public class ApplicationResource extends AbstractContextResource { return new JSONWithPadding( response, callback ); } + @POST + @Path("export") + @Consumes(APPLICATION_JSON) + @RequireOrganizationAccess + public Response exportPostJson( @Context UriInfo ui,Map<String, Object> json, + @QueryParam("callback") @DefaultValue("") String callback ) + throws OAuthSystemException { + + + OAuthResponse response = null; + UUID jobUUID = null; + Map<String, String> uuidRet = new HashMap<String, String>(); + + try { + //parse the json into some useful object (the config params) + ExportInfo objEx = new ExportInfo( json ); + objEx.setOrganizationId( organization.getUuid() ); + objEx.setApplicationId( applicationId ); + + jobUUID = exportService.schedule( objEx ); + uuidRet.put( "jobUUID", jobUUID.toString() ); + } + catch ( NullPointerException e ) { + OAuthResponse errorMsg = + OAuthResponse.errorResponse( SC_BAD_REQUEST ).setErrorDescription( "Job Not Created" ) + .buildJSONMessage(); + + return Response.status( errorMsg.getResponseStatus() ).type( JSONPUtils.jsonMediaType( callback ) ) + .entity( ServiceResource.wrapWithCallback( errorMsg.getBody(), callback ) ).build(); + } + catch ( Exception e ) { + //TODO:throw descriptive error message and or include on in the response + //TODO:fix below, it doesn't work if there is an exception. Make it look like the OauthResponse. + return Response.status( SC_INTERNAL_SERVER_ERROR ).build(); + } + + return Response.status( SC_ACCEPTED ).entity( uuidRet ).build(); + } @POST @Path("collection/{collection_name}/export") http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c7553a3c/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java index 7e5833f..f0fa965 100644 --- a/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java +++ b/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java @@ -140,15 +140,29 @@ public class ExportServiceImpl implements ExportService { export.setState( Export.State.STARTED ); em.update( export ); - try { - //exports all the applications for a single organization - exportApplicationForOrg( config.getOrganizationId(), config, jobExecution ); + if ( config.getCollection() == null ) { + Map<UUID, String> organizations = getOrgs(); + for ( Map.Entry<UUID, String> organization : organizations.entrySet() ) { + try { + exportApplicationsForOrg( organization, config, jobExecution ); + }catch ( Exception e ) { + export.setState( Export.State.FAILED ); + em.update( export ); + return; + } + } } - catch ( Exception e ) { - //if for any reason the backing up fails, then update the entity with a failed state. - export.setState( Export.State.FAILED ); - em.update( export ); - return; + else { + try { + //exports all the applications for a single organization + exportApplicationForOrg( config.getOrganizationId(), config, jobExecution ); + } + catch ( Exception e ) { + //if for any reason the backing up fails, then update the entity with a failed state. + export.setState( Export.State.FAILED ); + em.update( export ); + return; + } } export.setState( Export.State.FINISHED ); em.update( export ); @@ -161,7 +175,7 @@ public class ExportServiceImpl implements ExportService { * @return Map<UUID, String> * @throws Exception */ - private Map<UUID, String> getOrgs( ExportInfo exportInfo ) throws Exception { + private Map<UUID, String> getOrgs() throws Exception { // Loop through the organizations UUID orgId = null;
